123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php namespace App\Http\Controllers\Api;
- use App\Http\Controllers\Api\Api;
- use App\Models\RecruitmentActive as Model;
- use App\Models\RecruitmentPrizeRecord;
- use App\Models\RecruitmentRecord;
- use App\Models\Custom;
- use App\Models\WeiBan\Tags;
- use Vinkla\Hashids\Facades\Hashids;
- /**
- * 拉新活动接口
- *
- * @author 刘相欣
- *
- * */
- class Recruitment extends Api{
- /**
- * 获取拉新活动 /api/recruitment/get_info
- *
- * */
- public function get_info(Model $Model,Custom $Custom,Tags $WeiBanTags){
- // 接口验签
- // $this->verify_sign();
- // 验证登录
- $uid = $this->checkLogin();
- // 获取客户城市ID
- $custom = $Custom->getOne($uid);
- //查询拉新活动
- if( !$custom['city_id'] ) return json_send(['code'=>'error','msg'=>'请选择所在城市后下单','data'=>['error'=>'请选择所在城市后下单']]);
- // 获取城市ID
- $cityId = $custom['city_id'];
- // 查询用户标签
- $tagsList = $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
- $tagsList = array_column($tagsList,'name');
- // 查询数据
- $map = [['start_time','<=',time()], ['end_time','>',time()],['status','=',0]];
- // 查询数据
- $activeList = $Model->query()->where($map)->get(['id','name','banner_img','start_time','end_time','status','city_ids','tag_except','tag_scope','active_rule'])->toArray();
- // 获取参数
- $activeInfo = [];
- // 循环处理活动数据
- foreach ( $activeList as $active ) {
- // 如果城市限制并且不在在城市范围内,不允许参加
- if ( $active['city_ids'] && !in_array($cityId,explode(',',$active['city_ids'])) ) continue;
- // 判断标签限制并且不在标签限制范围内,不允许参加
- if( $active['tag_scope'] && !array_intersect(explode(',',$active['tag_scope']),$tagsList) ) continue;
- // 判断标签排除限制并且在标签排除范围内,不允许参加
- if( $active['tag_except'] && array_intersect(explode(',',$active['tag_except']),$tagsList) ) continue;
- // 获取活动信息
- $activeInfo = $active;
- }
- // 如果存在活动信息
- if ( $activeInfo ) {
- $activeInfo['start_time'] = date('Y-m-d H:i:s',$activeInfo['start_time']);
- $activeInfo['end_time'] = date('Y-m-d H:i:s',$activeInfo['end_time']);
- $activeInfo['banner_img'] = $activeInfo['banner_img'] ? path_compat($activeInfo['banner_img']) : '';
- }
- // 返回结果
- return json_send(['code'=>'success','msg'=>'获取成功','data'=>$activeInfo]);
- }
- /**
- * 获取奖励记录 /api/recruitment/get_record
- *
- * */
- public function get_record(RecruitmentPrizeRecord $recruitmentPrizeRecord){
- // 接口验签
- // $this->verify_sign();
- // 验证登录
- $uid = $this->checkLogin();
- // 接收参数
- $limit = request('limit',15);
- // 查询条件
- $map = [['recruitment_prize_record.custom_uid','=',$uid]];
- // 查询数据
- $Paginator = $recruitmentPrizeRecord->query()
- ->join('recruitment_record','recruitment_record.id','=','recruitment_prize_record.recruitment_record_id')
- ->join('custom','custom.uid','=','recruitment_record.new_uid')
- ->where($map)
- ->orderByDesc('id')
- ->paginate($limit,['recruitment_prize_record.id','recruitment_prize_record.prize_type','recruitment_prize_record.prize','recruitment_prize_record.type','recruitment_prize_record.custom_uid','recruitment_prize_record.insert_time','recruitment_prize_record.recruitment_record_id','custom.username']);
- // 重置数据
- $list = [];
- // 获取数据
- $list['total'] = $Paginator->total();
- $list['current_page'] = $Paginator->currentPage();
- $list['per_page'] = $Paginator->perPage();
- $list['last_page'] = $Paginator->lastPage();
- $list['data'] = $Paginator->items();
- // 循环数据
- foreach ($list['data'] as $key => $value) {
- // 处理时间
- $value['insert_time'] = date('Y-m-d H:i:s',$value['insert_time']);
- // 重组
- $list['data'][$key] = $value;
- }
- // 返回数据
- return json_send(['code'=>'success','msg'=>'获取成功','data'=>$list]);
- }
- }
|