UserController.php
5.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php
namespace api\home\controller;
use cmf\controller\RestBaseController;
use think\Db;
/**
* @title 会员端-个人中心
*/
class UserController extends RestBaseController
{
/**
* @title 首页
* @description 个人中心首页
* @author Pan Haowen
* @url /home/user/index
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:time type:int require:0 desc:时间搜索条件
* @return data:个人信息
*/
public function index()
{
$userId = $this->getUserId();
$data=Db::name('user')->where('id',$userId)->find();
// $data['avatar']=cmf_get_image_preview_url($data['avatar']);
$this->success("获取数据成功", $data);
}
/**
* @title 场所合作
* @description 场所合作
* @author Pan Haowen
* @url /home/user/cooperate
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @return data:合作电话
*/
public function cooperate()
{
$this->getUserId();
$data=Db::name('config')->where('id',1)->field('mobile')->find();
$this->success("获取数据成功", $data);
}
/**
* @title 信息反馈
* @description 信息反馈提交接口
* @author Pan Haowen
* @url /home/user/message
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:content type:varchar require:1 desc:反馈内容
* @param name:type type:int require:1 desc:1=>会员 2=》教练
* @return data:得分列表
*/
public function message()
{
$userId=$this->getUserId();
$param = $this->request->param();
$param['user_id']=$userId;
$param['create_time']=time();
$re=Db::name('message')->insert($param);
if ($re) {
$this->success("操作成功");
}else{
$this->error("操作失败");
}
}
/**
* @title 个人信息修改
* @description 个人信息修改提交接口
* @author Pan Haowen
* @url /home/user/edit
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:user_nickname type:varchar require:1 desc:用户姓名
* @param name:mobile type:int require:1 desc:用户手机号
* @param name:number type:varchar require:1 desc:用户编号
*/
public function edit()
{
$userId=$this->getUserId();
$param = $this->request->param();
Db::name('message')->where('id',$userId)->update($param);
$this->success("操作成功");
}
/**
* @title 会员主页
* @description 会员主页接口
* @author Pan Haowen
* @url /home/user/userIndex
* @method POST
* @header name:XX-Token require:1 default: desc:token
* @param name:user_id type:int require:1 desc:会员id
*/
public function userIndex(){
$this->getUserId();
$param = $this->request->param();
$user=Db::name('user')->where('id',$param['user_id'])->find();
$where=[];
if (!empty($param['time'])) {
$where['c.start_time'] = [['>= time', intval($param['time'])], ['<= time', strtotime('+1 month', $param['time'])]];
} else {
$where['c.start_time'] = [['>= time', strtotime('+1 month', strtotime(date('Y-m', time())))], ['<= time', strtotime('+2 month', strtotime(date('Y-m', time())))]];
}
$data=Db::name('user_class_apply')
->alias('uca')
->join('class c','uca.class_id=c.id')
->join('room r','c.room_id=r.id')
->join('product p','c.product_id=p.id')
->where($where)
->where(['uca.status'=>1,'uca.user_id'=>$param['user_id'],'p.delete_time'=>null,'c.delete_time'=>null,'c.status'=>1])
->order('uca.create_time','desc')
->field('p.name as pname,r.name as rname,c.start_time,c.times,uca.user_id,c.id as cid,uca.id,c.type')
->select()
->each(function ($item) {
$item['assess']=0;
$item['filter']=0;
$item['train']=0;
//目标评估得分,功能筛查评分
$score=Db::name('user_coach_class')
->alias('ucc')
->join('coach_class cc','ucc.coach_class_id=cc.id')
->where(['ucc.user_id'=>$item['user_id'],'cc.class_id'=>$item['cid'],'cc.status'=>0,'ucc.status'=>1])
->select()
->each(function ($item2) {
$assess=explode(',',$item2['assess_target_score_id']);
$filter=explode(',',$item2['filter_target_score_id']);
$item2['assess']=Db::name('assess_target_score')->where('id','in',$assess)->sum('score');
$item2['filter']=Db::name('filter_target_score')->where('id','in',$filter)->sum('score');
return $item2;
});
foreach ($score as $k=>$V){
$item['assess']+=$score[$k]['assess'];
$item['filter']+=$score[$k]['filter'];
}
//协同训练课程数
$train=Db::name('user_coach_class')
->alias('ucc')
->join('coach_class cc','ucc.coach_class_id=cc.id')
->where(['ucc.user_id'=>$item['user_id'],'cc.class_id'=>$item['cid'],'cc.status'=>0,'ucc.status'=>1])
->select()
->each(function ($item3) {
$item3['train'] =count(explode(',',$item3['train_id']),1);
return $item3;
});
foreach ($train as $k=>$V){
$item['train']+=$train[$k]['train'];
}
return $item;
});
$this->success('获取数据成功',['user'=>$user,'data'=>$data]);
}
}