作者 何书鹏
1 个管道 的构建 通过 耗费 1 秒

合并分支 'heshupeng' 到 'master'

切换社区



查看合并请求 !62
@@ -393,7 +393,7 @@ class HouseBoard extends Api @@ -393,7 +393,7 @@ class HouseBoard extends Api
393 { 393 {
394 "id": // 活动id 394 "id": // 活动id
395 "title": // 活动标题 395 "title": // 活动标题
396 - "spec_type": // 活动规格:0=无规格,免费,1=单规格,2=多规格 396 + "spec_type": // 活动规格:0=无规格-免费,1=单规格,2=多规格
397 "content": // 活动描述 397 "content": // 活动描述
398 "activity_time": 活动日期 398 "activity_time": 活动日期
399 "price": // 报名费用 399 "price": // 报名费用
@@ -429,7 +429,7 @@ class HouseBoard extends Api @@ -429,7 +429,7 @@ class HouseBoard extends Api
429 "data": { 429 "data": {
430 "id": // 活动id 430 "id": // 活动id
431 "title": // 活动标题 431 "title": // 活动标题
432 - "spec_type": // 活动规格:0=无规格,免费,1=单规格,2=多规格 432 + "spec_type": // 活动规格:0=无规格-免费,1=单规格,2=多规格
433 "content": // 活动描述 433 "content": // 活动描述
434 "activity_time": 活动日期 434 "activity_time": 活动日期
435 "price": // 报名费用 435 "price": // 报名费用
@@ -578,10 +578,7 @@ class HouseBoard extends Api @@ -578,10 +578,7 @@ class HouseBoard extends Api
578 empty($total_num) && $this->error('缺少必要参数'); 578 empty($total_num) && $this->error('缺少必要参数');
579 empty($contact) && $this->error('缺少必要参数'); 579 empty($contact) && $this->error('缺少必要参数');
580 empty($mobile) && $this->error('缺少必要参数'); 580 empty($mobile) && $this->error('缺少必要参数');
581 - $activity = Db::name('house_activity')  
582 - ->where('id',$house_activity_id)  
583 - ->field('title,content,spec_type,start_time,end_time')  
584 - ->find(); 581 + $activity = \app\admin\model\HouseActivity::get($house_activity_id,['specRel']);
585 empty($activity) && $this->error('活动信息不存在'); 582 empty($activity) && $this->error('活动信息不存在');
586 if($activity['spec_type'] == '2' && empty($spec_sku_id)){ 583 if($activity['spec_type'] == '2' && empty($spec_sku_id)){
587 $this->error('多规格活动,请传入spec_sku_id'); 584 $this->error('多规格活动,请传入spec_sku_id');
@@ -600,8 +597,18 @@ class HouseBoard extends Api @@ -600,8 +597,18 @@ class HouseBoard extends Api
600 $total_price = $price * $total_num; 597 $total_price = $price * $total_num;
601 $house_activity_spec_id = $house_activity_spec['id']; 598 $house_activity_spec_id = $house_activity_spec['id'];
602 } 599 }
  600 + // 活动规格信息
  601 + $activity_attr = '';
  602 + if($activity['spec_type'] == '2'){
  603 + $attrs = explode('_', $spec_sku_id);
  604 + $spec_rel = array_column($activity['specRel'], null, 'id');
  605 + foreach ($attrs as $specValueId) {
  606 + $activity_attr .= $spec_rel[$specValueId]['spec']['spec_name'] . ':'
  607 + . $spec_rel[$specValueId]['spec_value'] . '; ';
  608 + }
  609 + }
603 // 生成报名订单 610 // 生成报名订单
604 - $house_join_id = Db::name('house_join')->insertGetId(array_merge([ 611 + $house_join_id = Db::name('house_join')->insertGetId([
605 'order_no' => date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8), 612 'order_no' => date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8),
606 'contact' => $contact, 613 'contact' => $contact,
607 'mobile' => $mobile, 614 'mobile' => $mobile,
@@ -614,8 +621,14 @@ class HouseBoard extends Api @@ -614,8 +621,14 @@ class HouseBoard extends Api
614 'total_num' => $total_num, 621 'total_num' => $total_num,
615 'spec_sku_id' => $spec_sku_id, 622 'spec_sku_id' => $spec_sku_id,
616 'house_activity_spec_id' => $house_activity_spec_id, 623 'house_activity_spec_id' => $house_activity_spec_id,
617 - 'createtime' => time()  
618 - ],$activity)); 624 + 'activity_attr' => $activity_attr,
  625 + 'createtime' => time(),
  626 + 'title' => $activity['title'],
  627 + 'content' => $activity['content'],
  628 + 'spec_type' => $activity['spec_type'],
  629 + 'start_time' => $activity['start_time'],
  630 + 'end_time' => $activity['end_time']
  631 + ]);
619 if($total_price > 0){ 632 if($total_price > 0){
620 // 调起支付 633 // 调起支付
621 $this->init_wx_pay_for_gzh(true); 634 $this->init_wx_pay_for_gzh(true);
@@ -9,6 +9,8 @@ use fast\Random; @@ -9,6 +9,8 @@ use fast\Random;
9 use think\Validate; 9 use think\Validate;
10 use think\Cache; 10 use think\Cache;
11 use app\api\model\HouseJoin; 11 use app\api\model\HouseJoin;
  12 +use app\api\model\UserHouse;
  13 +use app\api\model\UserMoneyLog;
12 14
13 /** 15 /**
14 * 会员接口 16 * 会员接口
@@ -107,19 +109,18 @@ class User extends Api @@ -107,19 +109,18 @@ class User extends Api
107 public function index() 109 public function index()
108 { 110 {
109 $user = $this->auth->getUser(); 111 $user = $this->auth->getUser();
110 - $store_inform_log = new \app\api\model\StoreInformLog;  
111 $data = [ 112 $data = [
112 // 当前小区信息 113 // 当前小区信息
113 'house' => \app\api\model\House::get($user['house_id']) 114 'house' => \app\api\model\House::get($user['house_id'])
114 ->visible(['id','name'])->toArray(), 115 ->visible(['id','name'])->toArray(),
115 // 今日收益 116 // 今日收益
116 - 'today_money' => $store_inform_log  
117 - ->where('user_id',$this->auth->id) 117 + 'today_money' => UserMoneyLog::where('user_id',$this->auth->id)
  118 + ->where('money','>',0)
118 ->whereTime('createtime', 'today') 119 ->whereTime('createtime', 'today')
119 ->sum('money'), 120 ->sum('money'),
120 // 总收益 121 // 总收益
121 - 'total_money' => $store_inform_log  
122 - ->where('user_id',$this->auth->id) 122 + 'total_money' => UserMoneyLog::where('user_id',$this->auth->id)
  123 + ->where('money','>',0)
123 ->sum('money'), 124 ->sum('money'),
124 // 未读消息数量 125 // 未读消息数量
125 'message_num' => \app\api\model\Message::where('to_user_id',$user['id']) 126 'message_num' => \app\api\model\Message::where('to_user_id',$user['id'])
@@ -138,6 +139,120 @@ class User extends Api @@ -138,6 +139,120 @@ class User extends Api
138 } 139 }
139 140
140 /** 141 /**
  142 + * @ApiTitle (个人中心-选择社区)
  143 + * @ApiSummary (个人中心-选择社区)
  144 + * @ApiMethod (POST)
  145 + * @ApiRoute (/api/user/houseList)
  146 + *
  147 + * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
  148 + * @ApiParams (name="area", type="string", required=true, description="市区地址例如:'天津市/西青区'")
  149 + * @ApiParams (name="keyword", type="string", required=false, description="关键字")
  150 + *
  151 + * @ApiReturn({
  152 + "code": 1,
  153 + "msg": "success",
  154 + "time": "1598688508",
  155 + "data": [{
  156 + "id": 16, //小区ID
  157 + "name": "兴安苑", //小区名称
  158 + "area": "北京/北京市/朝阳区", //小区所在地区
  159 + "status": 1, //状态:1=申请中,2=已绑定
  160 + "is_current": 0 //是否当前小区:0=否,1=是
  161 + }]
  162 + })
  163 + */
  164 + public function houseList()
  165 + {
  166 + $user = $this->auth->getUser();
  167 + $area = $this->request->param('area');
  168 + $keyword = $this->request->param('keyword');
  169 + $where = [];
  170 + if(!empty($area)){
  171 + $where['h.area'] = ['like',"%$area%"];
  172 + }
  173 + if(!empty($keyword)){
  174 + $where['h.name'] = ['like',"%$keyword%"];
  175 + }
  176 + // 查出该用户已绑定的和申请中的小区
  177 + $list = UserHouse::alias('uh')
  178 + ->join('house h','h.id = uh.house_id')
  179 + ->where('uh.user_id',$user['id'])
  180 + ->where($where)
  181 + ->field("h.id,h.name,h.area,uh.status")
  182 + ->order('uh.status desc')
  183 + ->select();
  184 + foreach($list as &$v){
  185 + $v['is_current'] = $user['house_id'] == $v['id'] ? 1 : 0;
  186 + }
  187 + $this->success('success',$list);
  188 + }
  189 +
  190 + /**
  191 + * @ApiTitle (个人中心-选择社区-切换)
  192 + * @ApiSummary (个人中心-选择社区-切换)
  193 + * @ApiMethod (POST)
  194 + * @ApiRoute (/api/user/houseUnbind)
  195 + *
  196 + * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
  197 + * @ApiParams (name="house_id", type="inter", required=true, description="小区ID")
  198 + *
  199 + * @ApiReturn({
  200 + "code": 1,
  201 + "msg": "切换成功"
  202 + })
  203 + */
  204 + public function houseChange()
  205 + {
  206 + $user = $this->auth->getUser();
  207 + $house_id = $this->request->param('house_id');
  208 + empty($house_id) && $this->error('缺少必要参数');
  209 + $info = UserHouse::get(['user_id'=>$user['id'],'house_id'=>$house_id]);
  210 + empty($info) && $this->error('绑定信息不存在');
  211 + $info['status'] != 2 && $this->error('您还没有绑定该小区,无法切换');
  212 + $user->house_id = $house_id;
  213 + $user->save();
  214 + $this->success('切换成功');
  215 + }
  216 +
  217 + /**
  218 + * @ApiTitle (个人中心-选择社区-解绑)
  219 + * @ApiSummary (个人中心-选择社区-解绑)
  220 + * @ApiMethod (POST)
  221 + * @ApiRoute (/api/user/houseUnbind)
  222 + *
  223 + * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
  224 + * @ApiParams (name="house_id", type="inter", required=true, description="小区ID")
  225 + *
  226 + * @ApiReturn({
  227 + "code": 1,
  228 + "msg": "解绑成功"
  229 + })
  230 + */
  231 + public function houseUnbind()
  232 + {
  233 + $user = $this->auth->getUser();
  234 + $house_id = $this->request->param('house_id');
  235 + empty($house_id) && $this->error('缺少必要参数');
  236 + $info = UserHouse::get(['user_id'=>$user['id'],'house_id'=>$house_id]);
  237 + empty($info) && $this->error('绑定信息不存在');
  238 + $info['status'] != 2 && $this->error('您还没有绑定该小区,无法解绑');
  239 + // 启动事务
  240 + Db::startTrans();
  241 + try{
  242 + $info->delete();
  243 + $user->house_id = 0;
  244 + $user->save();
  245 + // 提交事务
  246 + Db::commit();
  247 + } catch (\Exception $e) {
  248 + // 回滚事务
  249 + Db::rollback();
  250 + $this->error($e->getMessage());
  251 + }
  252 + $this->success('解绑成功');
  253 + }
  254 +
  255 + /**
141 * @ApiTitle (个人中心-我的活动) 256 * @ApiTitle (个人中心-我的活动)
142 * @ApiSummary (个人中心-我的活动) 257 * @ApiSummary (个人中心-我的活动)
143 * @ApiMethod (POST) 258 * @ApiMethod (POST)
@@ -175,18 +290,24 @@ class User extends Api @@ -175,18 +290,24 @@ class User extends Api
175 * @ApiMethod (POST) 290 * @ApiMethod (POST)
176 * @ApiRoute (/api/user/activityInfo) 291 * @ApiRoute (/api/user/activityInfo)
177 * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") 292 * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
178 - * @ApiParams (name="house_join_id", type="string", required=true, description="报名ID") 293 + * @ApiParams (name="house_join_id", type="inter", required=true, description="报名ID")
179 294
180 * @ApiReturn ({ 295 * @ApiReturn ({
181 "code": 1, 296 "code": 1,
182 "msg": "成功", 297 "msg": "成功",
183 - "time": "1598673648",  
184 - "data": [{  
185 - "id": 20, //报名ID 298 + "time": "1598684603",
  299 + "data": {
  300 + "order_no": "2020082852995199", //订单号
  301 + "pay_price": "60.00", //合计费用
  302 + "price": "30.00", // 报名费用
  303 + "total_num": 2, // 报名数量
186 "title": "澳大利亚政府这人品:我只要不承认,就不是针对中国", //活动标题 304 "title": "澳大利亚政府这人品:我只要不承认,就不是针对中国", //活动标题
187 - "content": "", //活动内容  
188 - "activity_time": "2020-08-28-2020-08-28" //活动时间  
189 - }] 305 + "content": "", //活动描述
  306 + "spec_type": "2", //活动规格:0=无规格-免费,1=单规格,2=多规格
  307 + "activity_attr": "", //规格
  308 + "activity_time": "2020-08-28-2020-08-28", //活动时间
  309 + "join_time": "2020-08-28 18:45:56" //报名时间
  310 + }
190 }) 311 })
191 */ 312 */
192 public function activityInfo() 313 public function activityInfo()
@@ -195,11 +316,50 @@ class User extends Api @@ -195,11 +316,50 @@ class User extends Api
195 empty($house_join_id) && $this->error('请传入必填参数'); 316 empty($house_join_id) && $this->error('请传入必填参数');
196 $info = HouseJoin::get(['user_id'=>$this->auth->id,'id'=>$house_join_id]); 317 $info = HouseJoin::get(['user_id'=>$this->auth->id,'id'=>$house_join_id]);
197 empty($info) && $this->error('活动信息不存在'); 318 empty($info) && $this->error('活动信息不存在');
198 - $info['activity_time'] = date('Y-m-d',$info['start_time']).'-'.date('Y-m-d',$info['end_time']); 319 + $data = [
  320 + // 活动时间
  321 + 'activity_time' => date('Y-m-d',$info['start_time']).'-'.date('Y-m-d',$info['end_time']),
  322 + // 报名时间
  323 + 'join_time' => date('Y-m-d H:i:s',!empty($info['pay_time']) ? $info['pay_time'] : $info['createtime'])
  324 + ];
199 $info = $info->visible([ 325 $info = $info->visible([
200 'title', 326 'title',
201 - ]);  
202 - $this->success('成功', $info); 327 + 'content',
  328 + 'spec_type',
  329 + 'price',
  330 + 'order_no',
  331 + 'total_num',
  332 + 'pay_price',
  333 + 'activity_attr'
  334 + ])->toArray();
  335 + $this->success('成功', array_merge($info,$data));
  336 + }
  337 +
  338 + /**
  339 + * @ApiTitle (个人中心-收益明细)
  340 + * @ApiSummary (个人中心-收益明细)
  341 + * @ApiMethod (POST)
  342 + * @ApiRoute (/api/user/moneyLog)
  343 + *
  344 + * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
  345 + *
  346 + * @ApiReturn({
  347 + "code": 1,
  348 + "msg": "成功",
  349 + "time": "1598692386",
  350 + "data": [{
  351 + "memo": "测试", //标题
  352 + "money": "10.00", //金额
  353 + "createtime": "2020-08-29 17:07:56" // 时间
  354 + }]
  355 + })
  356 + */
  357 + public function moneyLog()
  358 + {
  359 + $list = UserMoneyLog::where('user_id',$this->auth->id)
  360 + ->field("memo,money,from_unixtime(createtime, '%Y-%m-%d %H:%i:%S') createtime")
  361 + ->select();
  362 + $this->success('成功',$list);
203 } 363 }
204 364
205 /** 365 /**