123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- namespace app\api\controller;
- use app\model\Huoma as HuomaModel;
- use app\model\HuomaUser;
- use app\model\HuomaZima;
- use think\facade\Db;
- class Huoma extends Base
- {
- //活码详情
- public function code_detail()
- {
- $token = $this->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' => '请求成功.']);
- }
- }
- ?>
|