request->token; $data = $this->request->only(['id','uid']); $is_sing=0; if(!empty($data['uid'])){ $you=HuomaUser::where([['uid','=',$data['uid']],['mid','=',$data['id']]])->value('bind_code'); if(!empty($you)){ //$you_zima_data=HuomaZima::where('id',$you)->field('id,qrcode_img')->find(); $is_sing=1; } } $code_data=HuomaModel::with(['company'=>function($query){ $query->field('root_id,company_name,logo'); }])->where([['id','=',$data['id']],['status','=',1]])->field('id,name,is_poster,poster_img,root_id')->find(); if(empty($code_data)) return json(['code' => 1, 'msg' => '活码信息为空']); $data=array( 'code_data'=>$code_data, 'is_sing'=>$is_sing ); return json(['code' => 0, 'data'=>$data ,'msg' => '请求成功.']); } //分配二维码 public function send_qrcode() { $token = $this->request->token; $data = $this->request->only(['id','uid','mobile']); if(!empty($data['uid'])){ $you=HuomaUser::where([['uid','=',$data['uid']],['mid','=',$data['id']]])->value('bind_code'); if(!empty($you)){ $you_zima_data=HuomaZima::where('id',$you)->field('id,qrcode_img')->find(); return json(['code' => 0, 'data'=>$you_zima_data['qrcode_img'] ,'msg' => '请求成功.']); } } $code_data=HuomaModel::where([['id','=',$data['id']],['status','=',1]])->find(); if(empty($code_data)) return json(['code' => 1, 'msg' => '活码信息为空或者已经停止']); $code_id=$this->switch_type($code_data['id'],$code_data['switch_type']); if(empty($code_id)) return json(['code' => 1, 'msg' => '二维码暂无']); $add=array( 'uid'=>$data['uid'], 'bind_code'=>$code_id, 'mid'=>$data['id'], 'phone'=>!empty($data['mobile'])?$data['mobile']:'' ); Db::startTrans(); try { HuomaUser::insert($add); $zima_data=HuomaZima::where('id',$code_id)->find();//->inc('visit_num')->update(); $zima_data->visit_num=Db::raw('visit_num+1'); $zima_data->save(); $code_data->visit=Db::raw('visit+1'); $code_data->save(); Db::commit(); }catch (\Exception $e) { Db::rollback(); return json(['code' => 1, 'msg' => '录入数据失败.']); } return json(['code' => 0, 'data'=>$zima_data['qrcode_img'] ,'msg' => '请求成功.']); } private function switch_type($id,$type) { $list=HuomaZima::where([['mid','=',$id],['code_invalid_time','>=',date('Y-m-d',time())]])->order('stort asc')->select()->toArray(); $newid=null; switch($type) { //轮循切换 case 1: $shang=HuomaUser::where('mid',$id)->order('id desc')->value('bind_code'); $xin=null; foreach($list as $key=>$val){ if($val['visit_num'] < $val['max_visit']){ $xin[]=$val['id']; } } //var_dump($xin); //exit; if(empty($xin)) break; if(!empty($shang)){ $k=array_search($shang,$xin); if($k==(count($xin)-1)){ $newid=$xin[0]; } if($k < (count($xin)-1)){ $newid=$xin[$k+1]; } }else{ $newid=$xin[0]; } break; //顺序切换 case 2: foreach($list as $key=>$val){ if($val['visit_num'] < $val['max_visit']){ //return $val['id']; $newid=$val['id']; break; } } break; //随机切换 case 3: foreach($list as $key=>$val){ if($val['visit_num'] < $val['max_visit']){ $xin[]=$val['id']; } } $newid=$xin[array_rand($xin)]; break; } return $newid; } public function sd_list() { $list=HuomaModel::with(['zima'])->select(); return json(['code' => 0, 'data'=>$list ,'msg' => '请求成功.']); } } ?>