123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- <?php
- namespace app\sys\controller;
- use think\facade\View;
- use think\facade\Request;
- use app\model\Huoma as HuomaModel;
- use app\model\HuomaUser;
- use app\model\HuomaZima;
- use think\facade\Db;
- use app\model\ShortUrl;
- use toolkits\QrCodeGen;
- use app\model\Miniprogram;
- use app\model\Employee;
- class Huoma extends Base
- {
- //添加活码
- public function add_code()
- {
-
- //return View::fetch();
- if (!request()->isAjax()){
- return View::fetch();
- }else{
- $request = request();
- $data=$request->only(['name','switch_type','is_poster','poster_img','sign_type','zima_list']);
- if(empty($data['poster_img'])) return json(['code' => 1, 'msg' => '请上传活动海报']);
- $zima=json_decode(strip_tags($data['zima_list']),true);
- $add['root_id']=$request->employee->root_id;
- $add['name'] = $data['name'];
- $add['addtime'] = date('Y-m-d',time());
- $add['switch_type'] = $data['switch_type'];
- $add['is_poster'] = !empty($data['is_poster'])?$data['is_poster']:2;
- $add['poster_img'] = !empty($data['poster_img'])?$data['poster_img']:null;
- $add['employee_id'] = request()->employee->id;
- //$add['sign_type'] = $data['sign_type'];
- Db::startTrans();
- try {
- $ms=HuomaModel::insertGetId($add);
- $xin=null;
- $allpr=0;
- foreach($zima as $key=>$val){
- $parr[]=$val['validity_date'];
- $gd=array(
- 'stort'=>$val['priority'],
- 'qrcode_img' =>$val['qrcode_img'],
- 'max_visit'=>$val['limit'],
- 'file_name'=>$val['file_name'],
- 'code_invalid_time'=>$val['validity_date'],
- 'mid'=>$ms
- );
- $xin[]=$gd;
- $code_invalid_time=$val['validity_date'];
- }
- array_multisort($parr, SORT_DESC, $zima);
- $tm=HuomaZima::insertAll($xin);
- if($tm){
- $url=$this->produce_url($ms);
- HuomaModel::where('id',$ms)->update(array('code_url'=>$url,'invalid_time'=>$zima[0]['validity_date']));
- }
- Db::commit();
- }catch (\Exception $e) {
- Db::rollback();
- //var_dump($e->getMessage());
- return json(['code' => 1, 'msg' => '提交数据失败.']);
- }
- return json(['code' => 0, 'msg' => '添加成功']);
- }
- }
- public function add_qrcode()
- {
- return View::fetch();
- }
- //生成分享链接
- public function produce_url($id)
- {
- $request = request();
- $notify=Miniprogram::where('root_id',$request->employee->root_id)->value('notify');
- $param=array(
- 'query'=>'id='.$id.'&ctp='.$notify,
- 'path'=>'/share/pages/channelsignup/channelsignup',
- 'env_version'=>'',
- 'id'=>$id,
- 'type'=>'huoma',
- 'user_id'=>'',
- 'client_type'=>$notify
- );
- // 存储参数
- $data = [
- 'content' => json_encode($param),
- 'type' => 'share'
- ];
- $shortUrl = ShortUrl::create($data);
- // 将ID进行
- $uri = dec52($shortUrl->id);
- $shortUrl->uri = $uri;
- $shortUrl->save();
- $domain = $request->domain();
- return $domain . '/' . $uri;
- }
- //添加图片
- public function add_img()
- {
- $request = request();
- $data=$request->only(['qrcode_img']);
- $ali_oss_bindurl='http://'.config('app.ali_oss_bindurl').'/';
- $data['link_qrcode_img']=$ali_oss_bindurl.$data['qrcode_img'];
- $data['name_qrcode_img']=str_replace('Huoma/','',$data['qrcode_img']);
- return json(['code' => 0, 'data' => $data, 'msg' => '获取成功']);
- }
- //修改活码
- public function edit_code()
- {
- $request = request();
- $data=$request->only(['name','switch_type','is_poster','poster_img','sign_type','zima_list','id']);
- if (!request()->isAjax()){
- $data=$request->only(['id']);
- $code_data=HuomaModel::with(['zima'])
- ->where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]])
- ->find();
- foreach($code_data['zima'] as $key=>$val){
- $code_data['zima'][$key]['qrcode_name']=str_replace('http://'.config('app.ali_oss_bindurl').'/Huoma/','',$val['qrcode_img']);
- }
- View::assign('data',$code_data);
- return View::fetch();
- }else{
- $ali_oss_bindurl='http://' .config('app.ali_oss_bindurl').'/';
- $add['name'] = $data['name'];
- $add['switch_type'] = $data['switch_type'];
- $add['is_poster'] = !empty($data['is_poster'])?$data['is_poster']:2;
- if(!empty($data['poster_img'])){
- $add['poster_img'] = str_replace($ali_oss_bindurl,'',$data['poster_img']);
- }
- $zima=json_decode(strip_tags($data['zima_list']),true);
- $gen=$in=null;
- foreach($zima as $key=>$val){
- $parr[]=$val['validity_date'];
- if($val['id']){
- $gd=array(
- 'id'=>$val['id'],
- 'stort'=>$val['priority'],
- 'qrcode_img' =>str_replace($ali_oss_bindurl,'',$val['qrcode_img']),
- 'max_visit'=>$val['limit'],
- 'file_name'=>$val['file_name'],
- 'code_invalid_time'=>$val['validity_date']
- );
- $gen[]=$gd;
- }else{
- $pd=array(
- 'stort'=>$val['priority'],
- 'qrcode_img' =>$val['qrcode_img'],
- 'max_visit'=>$val['limit'],
- 'code_invalid_time'=>$val['validity_date'],
- 'file_name'=>$val['file_name'],
- 'mid'=>$data['id']
- );
- $in[]=$pd;
- }
- }
- array_multisort($parr, SORT_DESC, $zima);
- $add['invalid_time']=$zima[0]['validity_date'];
- $ms=HuomaModel::where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]])->update($add);
- $ltg = new HuomaZima();
- if(!empty($gen)){
- $ltg->saveAll($gen);
- }
- if(!empty($in)){
- $ltg->insertAll($in);
- }
- return json(['code' => 0, 'msg' => '修改成功']);
- }
- }
- //编辑活
- public function edit_qrcode()
- {
- return View::fetch();
- $request = request();
- $data=$request->only(['id','max_visit','stort','code_invalid_time','qrcode_img']);
- if (!request()->isAjax()){
- $code_data=HuomaZima::where('id',$data['id'])->find();
- View::assign('code_data',$code_data);
- return View::fetch();
- }else{
- $ali_oss_bindurl='http://' .config('app.ali_oss_bindurl').'/';
- $save=array(
- 'max_visit'=>$data['max_visit'],
- 'stort'=>$data['stort'],
- 'qrcode_img'=>str_replace($ali_oss_bindurl,'',$data['qrcode_img']),
- );
- $ms=HuomaZima::where('id',$data['id'])->update($save);
- if($ms){
- return json(['code' => 0, 'msg' => '修改成功']);
- }else{
- return json(['code' => 0, 'msg' => '修改失败']);
- }
- }
- }
- //删除二维码
- public function del_qrcode()
- {
- $request = request();
- $data=$request->only(['id']);
- HuomaUser::where('bind_code',$data['id'])->delete();
- $ms=HuomaZima::where('id',$data['id'])->delete();
- if($ms){
- return json(['code' => 0, 'msg' => '修改成功']);
- }else{
- return json(['code' => 0, 'msg' => '修改失败']);
- }
- }
- //删除活码
- public function del_code()
- {
- $request = request();
- $data=$request->only(['id']);
- $ms=HuomaModel::where('id',$data['id'])->delete();
- if($ms){
- return json(['code' => 0, 'msg' => '删除成功']);
- }else{
- return json(['code' => 0, 'msg' => '删除失败']);
- }
- }
- //活码列表
- public function code_list()
- {
- if (!request()->isAjax()){
- $eid = HuomaModel::where([['root_id','=',request()->employee->root_id],['employee_id','>',0]])->group('employee_id')->column('employee_id');
- $where = [
- ['id','in',$eid],
- ['grant_id', '>', 0],
- ['root_id', '=', request()->employee->root_id]
- ];
- // 运营人员列表
- $employee = Employee::where($where)->field(['id', 'opt_name as name'])->select()->toArray();
- View::assign('employee', $employee);
- return View::fetch();
- }else{
- $request = request();
- $data=$request->only(['page','limit','keyword','employee_id','date']);
- //条件
- $condition = [
- ['root_id','=',$request->employee->root_id]
- ];
- if(!empty($data['keyword'])){
- $condition[] = ['name', 'like', '%' . $data['keyword'] . '%'];
- }
- if (!empty($data['employee_id'])) {
- $condition[] = ['employee_id', '=', $data['employee_id']];
- }
- if (!empty($data['date'])) {
- $arr = explode(' - ',$data['date']);
- $condition[] = ['addtime','<=', "$arr[0]"];
- $condition[] = ['invalid_time','>=',"$arr[1]"];
- }
- $list=HuomaModel::with(['employee'])
- ->where($condition)
- ->page($data['page'], $data['limit'])
- ->order(['addtime' => 'desc','id' => 'desc'])
- ->select()
- ->toArray();
- $time=date('Y-m-d',time());
- foreach($list as $key=>$val){
- $num=HuomaUser::where([['addtime','>=',$time.' 00:00:00'],['addtime','<=',$time.' 23:59:59'],['mid','=',$val['id']]])->count();
- $list[$key]['num']=$num;
- }
- $count=HuomaModel::where($condition)->count();
- return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']);
- }
- }
- //扫码统计
- public function visit_list()
- {
- $request = request();
- $data=$request->only(['page','limit','id']);
- if (!request()->isAjax()){
- View::assign('id',$data['id']);
- return View::fetch();
- }else{
- $list=HuomaZima::where('mid','=',$data['id'])
- ->page($data['page'], $data['limit'])
- //->order(['stort'=>'desc'])
- ->select()
- ->toArray();
- foreach($list as $key=>$val){
- $list[$key]['qrcode_img']=str_replace('http://'.config('app.ali_oss_bindurl').'/Huoma/','',$val['qrcode_img']);
- }
- $count=HuomaZima::where('mid','=',$data['id'])->count();
- return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']);
- }
- }
- //修改活码状态
- public function up_status()
- {
- $request = request();
- $data=$request->only(['id']);
- $ms=HuomaModel::find($data['id']);
- $ms->status = $ms->status == 1 ? 2 : 1;
- $ms->save();
- if($ms){
- return json(['code' => 0, 'msg' => '修改成功']);
- }else{
- return json(['code' => 0, 'msg' => '修改失败']);
- }
- }
- //扫码详情
- public function user_list()
- {
- $request = request();
- $data=$request->only(['page','limit','id']);
- $list=HuomaUser::with(['user'=>function($query){
- $query->field('id,nickname,headimgurl,phone');
- }])->where('bind_code','=',$data['id'])
- //->page($data['page'], $data['limit'])
- ->order(['addtime'=>'desc'])
- ->select()
- ->toArray();
- $count=HuomaUser::where('bind_code','=',$data['id'])->count();
- return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']);
- }
- }
- ?>
|