| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 | 
							- <?php
 
- /**
 
-  * @copyright   Copyright (c) 2017 https://www.sapixx.com All rights reserved.
 
-  * @license     Licensed (http://www.apache.org/licenses/LICENSE-2.0).
 
-  * @author      pillar<ltmn@qq.com>
 
-  * 联盟促销
 
-  */
 
- namespace app\allwin\controller\home;
 
- use app\common\facade\Inform;
 
- use think\facade\Request;
 
- use app\common\controller\Official;
 
- use app\common\event\User;
 
- use app\common\facade\WechatMp;
 
- use app\allwin\model\AllwinUnmarket;
 
- use app\allwin\model\AllwinUnmarketOrder;
 
- use app\allwin\model\AllwinUnmarketStore;
 
- use app\allwin\model\AllwinUnmarketBooking;
 
- use app\allwin\model\AllwinUnmarketReward;
 
- use app\allwin\model\AllwinUnmarketVerif;
 
- use app\allwin\model\MchId;
 
- use app\common\facade\WechatPay;
 
- use app\allwin\model\AllwinStore;
 
- class Unmarket extends Official{
 
-     /**
 
-      * 分享赚钱营销
 
-      */
 
-     public function index($id){
 
-         if(request()->isAjax()){
 
-             $data = [
 
-                 'id'                => input('post.id/d'),
 
-                 'member_miniapp_id' => $this->member_miniapp_id,
 
-                 'telphone'          => input('post.telphone/s','','htmlspecialchars'),
 
-                 'telname'           => input('post.telname/s','','htmlspecialchars'),
 
-                 'uid'               => $this->user->id,
 
-             ];
 
-             $validate = $this->validate($data,'Unmarket.order');
 
-             if(true !== $validate){
 
-                 return json(['code'=>0,'msg'=>$validate]);
 
-             }
 
-             //判断是否已购买过
 
-             $order = AllwinUnmarketOrder::where(['member_miniapp_id' => $this->member_miniapp_id,'share_id' => $data['id'],'uid' => $this->user->id,'state' => 1])->count();
 
-             if($order > 0){
 
-                 return json(['code'=>0,'msg'=>'您已下单,不允许重复下单']);
 
-             }
 
-             //判断是否邀请用户
 
-             $ucode = model('SystemUser')->isInvite(User::getUcode());
 
-             $data['share_uid'] = 0;
 
-             if($ucode){
 
-                 if($this->user['id'] != $ucode){
 
-                     $data['share_uid'] = $ucode;
 
-                 }
 
-             }
 
-             $order_no = $this->user->invite_code.order_no();
 
-             $data['order_no'] = $order_no;
 
-             $result =  AllwinUnmarketOrder::createOrder($data);
 
-             if($result){
 
-                 $unorder['miniapp_id'] = $this->member_miniapp_id;
 
-                 $unorder['name']       = $result->title;
 
-                 $unorder['order_no']   = $order_no;
 
-                 $unorder['total_fee']  = $result->price*100;
 
-                 $unorder['notify_url'] = Request::root(true).'/api-'.$this->member_miniapp_id.'/4/allwin-unmarket-notify.html';
 
-                 $setting = model('AllwinConfig')->getConfig($this->member_miniapp_id);
 
-                 if ($setting->is_psp == 1) {
 
-                     $mid = MchId::getMch(0,$this->member_miniapp_id);
 
-                     $unorder['mchid']  = $mid->mchid;
 
-                 }
 
-                 $unorder['openid']     = $this->user->official_uid;
 
-                 $ispay = WechatPay::orderPay($unorder,true);
 
-                 if ($ispay['code'] == 0) {
 
-                     return json(['code'=>0,'return_code'=>'FAIL','msg' => $ispay['msg']]);
 
-                 }
 
-                 return json(['code'=>200,'msg'=>'操作成功','data'=>$ispay['data']]);
 
-             }else{
 
-                 return json(['code'=>0,'msg'=>'活动不存在']);
 
-             }
 
-         }else{
 
-             $condition['id'] = $id;
 
-             $info = AllwinUnmarket::where($condition)->find();
 
-             if(empty($info)){
 
-                 $this->error("404 NOT FOUND");
 
-             }
 
-             $imgs = json_decode($info['imgs'],true);
 
-             $info['imgs']        = array_values_unset($info->img,$imgs);
 
-             $view['info']        = $info;
 
-             $view['order']       = AllwinUnmarketOrder::where(['share_id' => $info->id,'state' => 1])->order('id desc')->select(); //订单
 
-             $view['order_num']   = count($view['order']);
 
-             $view['store']       = AllwinUnmarketStore::where(['union_id' => $info->id])->order('id desc')->select();  //好店
 
-             $view['award_amout'] = AllwinUnmarketReward::where(['union_id' => $info->id])->sum('money');   //计算福利总金额
 
-             $view['award']       = AllwinUnmarketReward::where(['union_id' => $info->id])->order('money desc')->limit(50)->select();  //福利排行榜
 
-             $view['weconfig']    = WechatMp::jsApiList($this->member_miniapp_id);
 
-             $view['post_url']    = urls('Allwin/unmarket/index',$this->member_miniapp_id,['id' =>$id,'ucode' => $this->ucode]);
 
-             $view['share_url']   = urls('Allwin/unmarket/index',$this->member_miniapp_id,['id' =>$id,'ucode' => $this->user->invite_code]);
 
-             $view['share_rcode'] = action("common/library/qrcode/create",['url' => $view['share_url'],'qrname'=>'unmarket_qrcode_'.$id.'_'.$this->user['invite_code']],'facade');
 
-             AllwinUnmarket::where($condition)->setInc('views',rand(1,5));
 
-             $this->view->engine->layout(false);
 
-             return view()->assign($view);
 
-         }
 
-     }
 
-     /**
 
-      * 联盟商家
 
-      */
 
-     public function store(int $id,int $unid){
 
-         $info = AllwinUnmarket::where(['id' => $unid])->field(['title,share_img,share_title,share_text'])->find();
 
-         if(empty($info)){
 
-             $this->error("404 NOT FOUND");
 
-         }
 
-         $store = AllwinUnmarketStore::where(['id' => $id,'union_id' => $unid])->find();
 
-         if(empty($store)){
 
-             $this->error("404 NOT FOUND");
 
-         }
 
-         $store->imgs         = array_values_unset($store->img,json_decode($store->imgs,true));
 
-         $view['store']       = $store;
 
-         $view['info']        = $info;
 
-         $view['weconfig']    = WechatMp::jsApiList($this->member_miniapp_id);
 
-         $view['share_url']   = urls('Allwin/unmarket/index',$this->member_miniapp_id,['id' =>$unid,'ucode' => $this->user->invite_code]);
 
-         $this->view->engine->layout(false);
 
-         return view()->assign($view);
 
-     }
 
-    /**
 
-      * 我的订单
 
-      */
 
-     public function order(int $id){
 
-         if (request()->isAjax()) {
 
-             $data = [
 
-                 'id'                => $id,
 
-                 'store_id'          => input('post.store_id/d'),
 
-                 'member_miniapp_id' => $this->member_miniapp_id,
 
-                 'uid'               => $this->user->id,
 
-             ];
 
-             $validate = $this->validate($data,'Unmarket.okpass');
 
-             if(true !== $validate){
 
-                 return json(['code'=>0,'msg'=>$validate]);
 
-             }
 
-             //判断是否付款
 
-             $order = AllwinUnmarketOrder::where(['uid' => $this->user->id,'share_id' => $id,'state' => 1])->count();
 
-             if($order <= 0){
 
-                 return json(['code'=>0,'msg'=>'你没有下单,禁止核销']);
 
-             }
 
-             //判断是否联盟
 
-             $store = AllwinUnmarketStore::where(['member_miniapp_id' => $this->member_miniapp_id,'union_id' => $id,'id' => $data['store_id']])->find();
 
-             if(empty($store)){
 
-                 return json(['code'=>0,'msg'=>'未找到核销商家,禁止核销']);
 
-             }
 
-             //判断是否重复核销
 
-             $verif = AllwinUnmarketVerif::where(['uid' => $this->user->id,'union_id' => $id,'store_id' => $data['store_id']])->count();
 
-             if($verif > 0){
 
-                 return json(['code'=>0,'msg'=>'统一店铺,禁止重复核销']);
 
-             }
 
-             $verif_data['member_miniapp_id'] = $this->member_miniapp_id;
 
-             $verif_data['uid']               = $this->user->id;
 
-             $verif_data['union_id']          = $id;
 
-             $verif_data['store_id']          = $data['store_id'];
 
-             $verif_data['times']             = time();
 
-             $rel = AllwinUnmarketVerif::insert($verif_data);
 
-             if(empty($rel)){
 
-                 return json(['code'=>0,'msg'=>'核销失败']);
 
-             }else{
 
-                 $modelStore = AllwinStore::where(['id' => $store->store_id])->find();
 
-                 if($modelStore){
 
-                     //通知店主到微信
 
-                     Inform::sms($modelStore->manage_uid,$this->member_miniapp_id,['title' =>'业务进展通知','type' => '订单核销','content' =>'您有新订单已经成功核销','state' => '成功']);
 
-                 }
 
-                 //通知申请者到微信
 
-                 Inform::sms($this->user->id,$this->member_miniapp_id,['title' =>'业务进展通知','type' => '订单核销','content' =>'您的订单已经成功核销','state' => '成功']);
 
-                 return json(['code'=>200,'msg'=>'您已成功核销']);
 
-             }
 
-         }else{
 
-             $view['info'] = AllwinUnmarket::where(['id' => $id])->field(['id,telphone,mycode,tips,title,share_img,share_title,share_text,start_time,end_time'])->find();
 
-             if(empty($view['info'])){
 
-                 $this->error("404 NOT FOUND");
 
-             }
 
-             $is_order = AllwinUnmarketOrder::where(['uid' => $this->user->id,'share_id' => $id,'state' => 1])->find();
 
-             $order = [];
 
-             if(empty($is_order)){
 
-                 $view['store'] = [];
 
-             }else{
 
-                 $view['store'] = AllwinUnmarketStore::where(['member_miniapp_id' => $this->member_miniapp_id,'union_id' => $id])->select();
 
-                 $verif = AllwinUnmarketVerif::where(['uid' => $this->user->id,'union_id' => $id])->field('store_id')->select()->toArray();
 
-                 $order = array_column($verif,'store_id');
 
-             }
 
-             $view['order'] = $order;
 
-             $this->view->engine->layout(false);
 
-             return view()->assign($view);
 
-         } 
 
-     }
 
-     /**
 
-      * 联系客服
 
-      */
 
-     public function service(){
 
-         if (request()->isAjax()) {
 
-             $data = [
 
-                 'member_miniapp_id' => $this->member_miniapp_id,
 
-                 'union_id'          => input('post.union_id/d', '', 'htmlspecialchars'),
 
-                 'name'              => input('post.storename/s', '', 'htmlspecialchars'),
 
-                 'telphone'          => input('post.telphone/s', '', 'htmlspecialchars'),
 
-                 'telname'           => input('post.telname/s', '', 'htmlspecialchars'),
 
-             ];
 
-             $validate = $this->validate($data, 'Unmarket.service');
 
-             if (true !== $validate) {
 
-                 return json(['code'=>0,'msg'=>$validate]);
 
-             }
 
-             //读取所属活动
 
-             $info = AllwinUnmarket::where(['id' => $data['union_id'],'member_miniapp_id' => $this->member_miniapp_id])->field('id')->find();
 
-             if (empty($info)) {
 
-                 return json(['code'=>0,'msg'=>'活动不存在']);
 
-             }
 
-             $param = [
 
-                 'member_miniapp_id' => $this->member_miniapp_id,
 
-                 'union_id'          => $info->id,
 
-                 'store_name'        => $data['name'],
 
-                 'name'              => $data['telname'],
 
-                 'telphone'          => $data['telphone'],
 
-             ];
 
-             $result =  AllwinUnmarketBooking::edit($param);
 
-             if ($result) {
 
-                 return json(['code'=>200,'msg'=>'我们客服会在8小时内与你联系']);
 
-             } else {
 
-                 return json(['code'=>0,'msg'=>'提交错误,请重试']);
 
-             }
 
-         } else {
 
-             $this->error('404 Not Found');
 
-         }
 
-     }
 
- }
 
 
  |