verify_sign(); // 检查登录 $uid = $this->checkLogin(); // 获取客户信息 $custom = $Custom->getOne($uid); // 如果存在的话 if( !$custom ) return json_send(['code'=>'no_login','msg'=>'请登录','data'=>['error'=>'无对应客户']]); // 接收参数 $id = request('id',0); // 如果存在的话 if( !$id ) return json_send(['code'=>'error','msg'=>'未知的活动ID','data'=>['error'=>'未知的活动ID']]); // 获取客户城市的数据 $data = $Model->getOne($id); // 如果存在的话 if( !$data ) return json_send(['code'=>'error','msg'=>'暂无活动','data'=>['error'=>'暂无活动']]); // 活动时间判断 if( $data['start_time'] > time() ) return json_send(['code'=>'error','msg'=>'活动暂未开始','data'=>$data]); // 活动时间判断 if( $data['end_time'] < time() ) return json_send(['code'=>'error','msg'=>'活动已结束','data'=>$data]); // 默认可以参加活动 $data['allow_join'] = 1; // 判断是不是可以参与 if( $data['tag_scope'] ) { // 解析数组 $data['tag_scope'] = explode(',',$data['tag_scope']); // 查询用户标签 $tags = $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']); // 标签范围限定时,默认不能参与 $data['allow_join'] = 0; // 判断标签是不是存在 foreach ($tags as $value) { // 标签范围内,允许参加 if( in_array($value['name'],$data['tag_scope']) ) $data['allow_join'] = 1; } // 如果不能参与 if( !$data['allow_join'] ) return json_send(['code'=>'error','msg'=>'账号不在标签范围','data'=>['error'=>'不在标签范围内']]); } // 判断是不是可以参与 if( $data['city_ids'] ) { // 解析数组 $data['city_ids'] = explode(',',$data['city_ids']); // 如果不在城市范围 if( !in_array($custom['city_id'],$data['city_ids']) ) $data['allow_join'] = 0; // 如果不能参与 if( !$data['allow_join'] ) return json_send(['code'=>'error','msg'=>'账号不在活动城市','data'=>['error'=>'账号不在活动城市']]); } // 获取参与次数 $joinTotal = $ActiveRecord->query()->where([['active_id','=',$id],['custom_uid','=',$uid]])->count(); // 获取答题次数 $shareTotal = $ActiveShare->query()->where([['active_id','=',$id],['custom_uid','=',$uid]])->count(); // 计算答题次数 $data['join_total'] = $data['join_total'] + ( $shareTotal >= $data['join_share'] ? $data['join_share'] : $shareTotal); // 计算剩余参与次数 $data['join_last'] = $data['join_total'] - $joinTotal; // 计算剩余参与次数 $data['logo'] = $data['logo'] ? path_compat($data['logo']) : ''; // 计算剩余分享次数 $data['share_last'] = ($data['join_share'] - $shareTotal <= 0 ? 0 : $data['join_share'] - $shareTotal); // 删除不必要的数据 unset($data['allow_join'],$data['tag_scope'],$data['city_ids']); // 返回结果 return json_send(['code'=>'success','msg'=>'获取成功','data'=>$data]); } }