'string', 'position_description'=>'string', 'contain'=>'int', 'telephone'=>'mobile', ]; HelperService::diffParam($param_list,$this->post); $data = [ 'activity_img'=>isset($this->post['activity_img'])?$this->post['activity_img']:'', 'title'=>$this->post['title'], 'sub_title'=>isset($this->post['sub_title'])?$this->post['sub_title']:'', 'show_param'=>isset($this->post['show_param'])?$this->post['show_param']:'', 'position_description'=>$this->post['position_description'], 'contain'=>$this->post['contain'], 'telephone'=>$this->post['telephone'], 'type'=>isset($this->post['type'])?$this->post['type']:0, 'status'=>0 ]; $activityModel = new ActivityModel(); $res = $activityModel->addInfo($data); $this->returnJson($res); } /** * 修改活动接口 */ public function updateActivity(){ $param_list = [ 'activity_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $data = [ 'activity_img'=>isset($this->post['activity_img'])?$this->post['activity_img']:'', 'title'=>isset($this->post['title'])?$this->post['title']:'', 'sub_title'=>isset($this->post['sub_title'])?$this->post['sub_title']:'', 'position_description'=>isset($this->post['position_description'])?$this->post['position_description']:'', 'contain'=>isset($this->post['contain'])?$this->post['contain']:0, 'telephone'=>isset($this->post['telephone'])?$this->post['telephone']:'', 'show_param'=>isset($this->post['show_param'])?$this->post['show_param']:'', ]; $data = array_filter($data); if(isset($this->post['status'])){ $data['status'] = $this->post['status']; } if(isset($this->post['type'])){ $data['type'] = $this->post['type']; } $activityModel = new ActivityModel(); $row = $activityModel->upInfo(['activity_id'=>$this->post['activity_id']],$data); $this->returnJson(['row'=>$row]); } /** * 获取当前活动列表 */ public function getActivityList(){ $param_list = [ 'user_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $where = [ 'activity.status'=>0, ]; $activityModel = new ActivityModel(); $order = "sort desc,activity_id desc"; if(isset($this->post['type']) && is_numeric($this->post['type'])){ $order = "type <> {$this->post['type']},sort desc,activity_id desc"; } $list = $activityModel->getListAndCollection($where,$order); $collectionActivityIds = $activityModel->getCurrentUserCollectionList($this->post['user_id']); foreach($list as &$item){ if(isset($collectionActivityIds[$item['activity_id']])){ $item['is_collection'] = 1; }else{ $item['is_collection'] = 0; } } $this->returnJson($list); } /** * 获取当前活动列表 */ public function getActivityPage(){ $param_list = [ 'page'=>'number', 'pageSize'=>'number', 'condition'=>'array' ]; HelperService::diffParam($param_list,$this->post); $search_key = ['title','telephone','status']; $condition = $this->post['condition']; $where = []; foreach($condition as $key=>$item){ if(!in_array($key,$search_key)){ continue; } switch($key){ case "status": $where[$key] = $item; break; case 'title': case 'telephone': $where[$key] = ['like',"%{$item}%"]; break; } } $page = $this->post['page']>1?$this->post['page']:1; $pageSize = $this->post['pageSize']>2?$this->post['pageSize']:2; $activityModel = new ActivityModel(); $list = $activityModel->getPage($where,"sort desc,activity_id desc", $page,$pageSize); $this->returnJson($list); } /** * 通过条件获取订单信息 */ public function getUserOrderByType(){ $param_list = [ 'user_id'=>'number', 'status'=>'int' ]; HelperService::diffParam($param_list,$this->post); if(!in_array($this->post['status'],[0,1,2,3,4,10])){ $this->returnJson([],400,'status is error'); } $params = []; $params['user_id'] = $this->post['user_id']; if($this->post['status']!=10){ $params['status'] = $this->post['status']; } $activityOrderModel = new ActivityOrderModel(); $activityOrder = $activityOrderModel->getList($params,"activity_order_id desc",100); if(empty($activityOrder)){ $activityOrder = []; }else{ foreach($activityOrder as $key=>$item) { $activityOrder[$key]['detail'] = $item['people_json']?json_decode($item['people_json']):[]; unset($activityOrder[$key]['people_json']); } } $this->returnJson($activityOrder); } /** * 用户每种类型订单的数量 */ public function getUserOrderCountByType(){ $param_list = [ 'user_id'=>'number', 'status'=>'int' ]; HelperService::diffParam($param_list,$this->post); if(!in_array($this->post['status'],[0,1,2,3,4,10])){ $this->returnJson([],400,'status is error'); } $params = []; $params['user_id'] = $this->post['user_id']; if($this->post['status']!=10){ $params['status'] = $this->post['status']; } $activityOrderModel = new ActivityOrderModel(); $activityOrder = $activityOrderModel->where($params)->count(); $this->returnJson($activityOrder); } /** * 前后台修改订单(通用) */ public function saveOrderStatus(){ $param_list = [ 'activity_order_no'=>'string', 'status'=>'number', ]; HelperService::diffParam($param_list,$this->post); if(!in_array($this->post['status'],[0,1,2,3,4])){ $this->returnJson([],400,'status is error'); } $where = ['activity_order_no' => $this->post['activity_order_no']]; $data = ['status' => $this->post['status']]; $activityOrderModel = new ActivityOrderModel(); $activityOrderModel->upInfo($where,$data); $this->returnJson('success'); } /** * 根据订单编号或许订单详情 */ public function getOrderByOrderNo(){ $param_list = [ 'activity_order_no'=>'string' ]; HelperService::diffParam($param_list,$this->post); $params = []; $params['activity_order_no'] = $this->post['activity_order_no']; $activityOrderModel = new ActivityOrderModel(); $activityOrder = $activityOrderModel->getOne($params); $activityOrder['detail'] = $activityOrder['people_json']?json_decode($activityOrder['people_json']):[]; unset($activityOrder['people_json']); $this->returnJson($activityOrder); } /** * 加入到活动订单里面 */ public function addActivityOrder(){ $params_list = [ 'user_id'=>'number', 'activity_id'=>'number', 'total_price'=>'number', 'total_people'=>'number', 'pay_style'=>'int', 'peopleType_num_price_array'=>'array', ]; HelperService::diffParam($params_list,$this->post); $data = [ 'user_id'=>$this->post['user_id'], 'activity_id'=>$this->post['activity_id'], 'total_price'=>$this->post['total_price'], 'total_people'=>$this->post['total_people'], 'pay_style'=>$this->post['pay_style'], 'people_json'=>json_encode($this->post['peopleType_num_price_array']), 'add_time'=>time(), 'add_date'=>date('Y-m-d'), 'data'=>isset($this->post['data'])?$this->post['data']:'', 'status'=>0 ]; $uni_qid = uniqid();//为了保证子项业务先执行的机制,建立唯一字段关联 $data['activity_order_no'] = $uni_qid; $row = 0;//受影响的行数 $activityOrderDetailModel = new ActivityOrderDetailModel(); $peopleType_num_price_array = $this->post['peopleType_num_price_array']; foreach($peopleType_num_price_array as $item) { if (is_array($item) && isset($item['type']) && isset($item['num']) && isset($item['single_price'])) { $params = [ 'activity_order_no'=>$uni_qid, 'people_type'=>$item['type'], 'single_price'=>$item['single_price'], 'people_num'=>$item['num'], 'add_time'=>time(), ]; $activityOrderDetail = $activityOrderDetailModel->addInfo($params); if($activityOrderDetail){ $row += 1; } } } if($row == 0){ $this->returnJson(null,400,'please give me a valid array of peopleType_num_price_array'); } $activityOrderModel = new ActivityOrderModel(); $id = $activityOrderModel->addInfo($data); $this->returnJson($uni_qid); } /** * 获取各种类型的活动订单列表 */ public function ActivityOrderListByType(){ $params_list =[ 'type'=>'int', 'user_id'=>'number' ]; HelperService::diffParam($params_list,$this->post); $activityService = new ActivityService(); $condition = [ 'user_id' => $this->post['user_id'] ]; if(in_array($this->post['type'],[0,1,2,3])){ $condition['status'] = $this->post['type']; } $activityOrderList = $activityService->getActivityOrderListByCondition($condition); foreach($activityOrderList as $key=>$activityOrder){ $activityOrderList[$key]['detail'] = json_decode($activityOrderList[$key]['people_json'],true); unset($activityOrderList[$key]['people_json']); } $this->returnJson($activityOrderList); } /** * 通过订单id获取订单信息 */ public function getActivityOrderInfoById(){ $param_list = [ 'order_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $activityOrderModel = new ActivityOrderModel(); $activityOrder = $activityOrderModel->getOne(['activity_order_id'=>$this->post['order_id']]); if(!empty($activityOrder)){ $activityOrder['detail'] = json_decode($activityOrder['people_json'],true); unset($activityOrder['people_json']); } $this->returnJson($activityOrder); } /** * 获取活动订单分页 */ public function ActivityOrderPage(){ $params_list =[ 'page'=>'number', 'pageSize'=>'number', 'condition'=>'array', ]; HelperService::diffParam($params_list,$this->post); $activityService = new ActivityService(); $page = $this->post['page'] >1?$this->post['page']:1; $pageSize = $this->post['pageSize'] >2? $this->post['pageSize']:2; $condition = $this->post['condition']; $where = [ 'user_id'=>isset($condition['user_id'])?$condition['user_id']:0, 'activity_id'=>isset($condition['activity_id'])?$condition['activity_id']:0, ]; $where = array_filter($where); if(isset($condition['status']) && is_numeric($condition['status']) && in_array($condition['status'],[0,1,2,3])){ $where['status'] = $condition['status']; } $activityOrderList = $activityService->getActivityOrderPageByCondition($where,'activity_id desc',$page,$pageSize); foreach($activityOrderList['list'] as $key=>$activityOrder){ $activityOrderList['list'][$key]['detail'] = !empty($activityOrder['people_json'])?json_decode($activityOrder['people_json'],true):[]; unset($activityOrderList['list'][$key]['people_json']); } $this->returnJson($activityOrderList); } /** * 针对于活动订单的处理 */ public function dealActivityOrder(){ $param_list = [ 'activity_order_id'=>'number', 'status'=>'number', ]; HelperService::diffParam($param_list,$this->post); if(!in_array($this->post['status'],[0,1,2,3])){ $this->returnJson('',400,'status is error'); } $data = [ 'status'=>$this->post['status'], ]; if(isset($this->post['note']) && !empty($this->post['note'])){ $data['note'] = $this->post['note']; } $activityOrderModel = new ActivityOrderModel(); $row = $activityOrderModel->upInfo([ 'activity_order_id'=>$this->post['activity_order_id'] ],$data); $this->returnJson(['row'=>$row]); } /** * 根据活动id获取活动信息 */ public function getActivityInfoById(){ $param_list = [ 'activity_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $activityModel = new ActivityModel(); $activity = $activityModel->getOne(['activity_id'=>$this->post['activity_id']]); $this->returnJson($activity); } /** *活动每日订单数量 */ public function ActivityOrderDayNum(){ $param = $this->request->param(); $end_date = isset($param['end_date'])?strtotime($param['end_date']):strtotime("-1 seconds",strtotime(date('Y-m-d'))); $start_date = isset($param['start_date'])?strtotime($param['start_date']):0; //控制时间,以免增加服务器压力 if(empty($start_date) || $end_date-$start_date>86400*20){ $start_date = $end_date-86400*20; } $activityOrderModel = new ActivityOrderModel(); $activityOrder = $activityOrderModel ->field('count(activity_order_id) as total_count,add_date') ->where(['add_date'=>['between',[date('Y-m-d',$start_date),date('Y-m-d',$end_date)]]])->group('add_date')->cache(3600*2)->select(); $this->returnJson($activityOrder); } /** *订单总数量 */ public function totalOrderNum(){ $activityOrderModel = new ActivityOrderModel(); $activityOrder = $activityOrderModel->cache(10)->count(); $this->returnJson(['count'=>$activityOrder]); } /** * 根据活动id获取活动信息 */ public function getActivityInfoByIdAndUserId(){ $param_list = [ 'activity_id'=>'number', 'user_id'=>'int', ]; HelperService::diffParam($param_list,$this->post); $activityModel = new ActivityModel(); $activity = $activityModel->getOne(['activity_id'=>$this->post['activity_id']]); //判断当前的人是否收藏了该活动 $is_collection = $activityModel->getCurrentUserIsCollection( $this->post['user_id'], $this->post['activity_id'] ); //获取当前活动时间的信息 $activityTime = new ActivityTimeModel(); $time_arr = $activityTime->getList(['activity_id'=>$this->post['activity_id']]); $activity['is_collection'] = empty($is_collection)?0:1; $activity['time_arr'] = empty($time_arr)?[]:$time_arr; $activity['collection_num'] = $activityModel->getCollectionCount($this->post['activity_id']); $this->returnJson($activity); } /** * 保存活动收藏 */ public function saveCollection(){ $param_list = [ 'user_id'=>'number', 'activity_id'=>'number', 'status'=>'int' ]; HelperService::diffParam($param_list,$this->post); $data = [ 'user_id'=>$this->post['user_id'], 'activity_id'=>$this->post['activity_id'], 'status'=>$this->post['status'] ]; $collectionModel = new CollectionModel(); //判断活动是否存在 $collection = $collectionModel->getOne(['user_id'=>$data['user_id'],'activity_id'=>$data['activity_id']]); if(empty($collection) && $this->post['status'] == 0) { $data['add_time'] = time(); $id = $collectionModel->addInfo($data); $this->returnJson(['id'=>$id]); }else{ if($this->post['status'] == 0) { $row = $collectionModel->upInfo(['id' => $collection['id']], $data); $this->returnJson(['row' => $row]); }else{ $row = $collectionModel->where(['id' => $collection['id']])->delete(); $this->returnJson(['row' => $row]); } } } /** * 获取用户的收藏列表 */ public function getCollectionByUid(){ $param_list = [ 'user_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $collectionModel = new CollectionModel(); $collection = $collectionModel->getActivityCollection( ['user_id'=>$this->post['user_id']] ); $this->returnJson($collection); } /** * 活动保存价格的接口 */ public function saveActivityPrice(){ $param_list = [ 'activity_id'=>'number', 'people_price_array'=>'array' ]; HelperService::diffParam($param_list,$this->post); //首先删除这个活动的所有价格,然后再去填充数据库 $activityPriceModel = new ActivityPriceModel(); $activityPriceModel->where(['activity_id'=>$this->post['activity_id']])->delete(); //拆分数组 $people_price_array = $this->post['people_price_array']; $row = 0; foreach($people_price_array as $key=>$item){ if(is_numeric($item)){ $id = $activityPriceModel->addInfo([ 'activity_id'=>$this->post['activity_id'], 'people_type'=>$key, 'price'=>$item, ]); if($id){ $row += 1; } } } $this->returnJson(['row'=>$row]); } /** * 活动保存价格的接口 */ public function saveActivityTime(){ $param_list = [ 'activity_id'=>'number', 'start_end_time_sort_array'=>'array' ]; HelperService::diffParam($param_list,$this->post); //首先删除这个活动的所有时间,然后再去填充数据库 $activityTimeModel = new ActivityTimeModel(); $activityTimeModel->where(['activity_id'=>$this->post['activity_id']])->delete(); //拆分数组 $start_end_time_sort_array = $this->post['start_end_time_sort_array']; $row = 0; foreach($start_end_time_sort_array as $item){ if(is_array($item) && isset($item['start_time']) && isset($item['end_time']) && isset($item['sort'])){ $id = $activityTimeModel->addInfo([ 'activity_id'=>$this->post['activity_id'], 'start_time'=>intval($item['start_time']), 'end_time'=>intval($item['end_time']), 'sort'=>intval($item['sort']), ]); if($id){ $row += 1; } } } $this->returnJson(['row'=>$row]); } /** * 获取活动时间列表 */ public function getActivityTimeList(){ $param_list = [ 'activity_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $activityTimeModel = new ActivityTimeModel(); $list = $activityTimeModel->getList(['activity_id'=>$this->post['activity_id']], 'sort desc,id desc',100); $this->returnJson($list); } /** *获取活动价格 */ public function getActivityPriceList(){ $param_list = [ 'activity_id'=>'number', ]; HelperService::diffParam($param_list,$this->post); $activityPriceModel = new ActivityPriceModel(); $activityPriceList = $activityPriceModel->where(['activity_id'=>$this->post['activity_id']])->select(); $this->returnJson($activityPriceList); } /** * 获取活动最新关注的人 */ public function getNewOrderByActivityId(){ $param_list = [ 'activity_id'=>'int', ]; HelperService::diffParam($param_list,$this->post); $activityOrderModel = new ActivityOrderModel(); $limit = isset($this->post['limit'])?intval($this->post['limit']):10; $activityOrderList = $activityOrderModel->getOrderListByActivityId($this->post['activity_id'],$limit,"user_id"); $this->returnJson($activityOrderList); } }