repository = $repository; } public function detail($id) { if($id<1){ return app('json')->fail('信息错误'); } $data=$this->repository->userOrderDetail($id); $data['enterprise_user'] = null; $data['pay_count']=Db::name("store_order")->where('uid',$id)->where('paid',1)->count(); $data['pay_price']=Db::name("store_order")->where('uid',$id)->where('paid',1)->where('pay_type!=5')->sum('pay_price'); $data['total_pay_count']=Db::name("store_order")->where('create_time > "'.date('Y-m-01 00:00:00').'"')->where('uid',$id)->where('paid',1)->count(); $data['total_pay_price']=Db::name("store_order")->where('create_time > "'.date('Y-m-01 00:00:00').'"')->where('uid',$id)->where('paid',1)->where('pay_type!=5')->sum('pay_price'); $where=["uid"=>$id,"type"=>"commission","commission_type"=>5]; $ylj=Db::name("user_bill")->where($where)->whereIn('status',[0,1])->sum('number'); $data['ylj']=$ylj?$ylj:0; return app('json')->success($data); } public function enterpriseUserScoreApi(){ $where = $this->request->params(['uid']); $list=Db::name('user_sign_score')->where($where)->order('id desc')->select(); foreach ($list as $k=>$v){ $v['pm_text']='收入'; if($v['pm']==2 || $v['pm']==4){ $v['pm_text']='支出'; $v['reward_socre']='-'.$v['reward_socre']; }else{ $v['pm_text']='收入'; $v['reward_socre']='+'.$v['reward_socre']; } if($v['order_id'] && empty($v['order_sn'])){ $v['order_sn']=Db::name('store_order')->where('order_id',$v['order_id'])->value('order_sn'); } if(!$v['order_sn']){ $v['order_sn']='--'; } $v['create_time'] = $v['settlement_time']; $v['create_time'] = date("Y-m-d H:i:s", $v['addtime']); $list[$k]=$v; } $data['list']=$list; $data['count']=Db::name('user_sign_score')->where($where)->count(); return app('json')->success($data); } public function order($id) { [$page, $limit] = $this->getPage(); $merid=$this->request->merId(); $query = Db::name('store_order')->where([ 'uid' => $id, // 'mer_id' => $merid, 'paid' => 1, ]); $count = $query->count(); $list = $query->page($page, $limit)->order('order_id desc')->select()->toArray(); foreach ($list as $k=>$v){ $v['youhui_price']+$v['total_price']; $list[$k]['total_price']+=$v['youhui_price']; if ($v['mer_id'] != $merid) { $list[$k]['order_sn'] = '--'; } } $data= compact('count', 'list'); return app('json')->success($data); } public function annuitylog($id, UserRepository $user_repository){ [$page, $limit] = $this->getPage(); $merid=$this->request->merId(); // $where=["uid"=>$id,"type"=>"commission","commission_type"=>5,'mer_id'=>$merid]; $where=["uid"=>$id,"type"=>"commission","commission_type"=>5]; $res = $user_repository->yanglaolog($where,$page,$limit); // foreach ($res['list'] as $k=>$v){ // if ($v['mer_id'] != $merid) { // $res['list'][$k]['order_sn'] = '--'; // } // } return app('json')->success($res); } public function tuandui($id, UserRepository $user_repository){ if($id<1){ return app('json')->fail('信息错误'); } $merId=$this->request->merId(); $where['eu.uid']=$id; $where['eu.mer_id']=$merId; $data=Db::name('enterprise_user') ->alias('eu') ->join('user u','u.uid=eu.uid') ->field('u.nickname,u.sex,u.real_name,u.account,eu.avatar,eu.performance,eu.identity,eu.uid') ->where($where) ->find(); $data['children']=$this->buildTree($id,$merId); $data['num']=$this->buildTree_num($id,$merId); // $data['num']++; if($data['identity']==0){ $identity_name='普通用户'; }else if ($data['identity']==100){ $identity_name='合伙人'; }else{ $identity_name=Db::name('enterprise_performance_divvy')->where('state',1)->where('mer_id',$merId)->where('id',$data['identity'])->value('name'); if(!$identity_name){ $identity_name='合伙人'; } } $data['identity']=$identity_name?$identity_name:'普通用户'; return app('json')->success($data); } function buildTree($uid = 0,$merId=0) { $where['eu.puid']=$uid; $where['eu.mer_id']=$merId; $user=Db::name('enterprise_user') ->alias('eu') ->join('user u','u.uid=eu.uid') ->field('u.nickname,u.sex,u.real_name,u.account,eu.avatar,eu.performance,eu.identity,eu.uid') ->where($where) ->select()->toArray(); if($user){ foreach ($user as &$v){ $v['children']=$this->buildTree($v['uid'],$merId); if($v['identity']==0){ $identity_name='普通用户'; }else if ($v['identity']==100){ $identity_name='合伙人'; }else{ $identity_name=Db::name('enterprise_performance_divvy')->where('state',1)->where('mer_id',$merId)->where('id',$v['identity'])->value('name'); if(!$identity_name){ $identity_name='合伙人'; } } $v['identity']=$identity_name?$identity_name:'普通用户'; $v['num']=$this->buildTree_num($v['uid'],$merId); // $v['num']++; } } return $user; } function buildTree_num($uid = 0,$merId=0,$num=0) { $where['eu.puid']=$uid; $where['eu.mer_id']=$merId; $user=Db::name('enterprise_user') ->alias('eu') ->join('user u','u.uid=eu.uid') ->field('u.nickname,u.sex,u.real_name,u.account,eu.avatar,eu.performance,eu.identity,eu.uid') ->where($where) ->select()->toArray(); if($user){ foreach ($user as &$v){ $num++; $num=$this->buildTree_num($v['uid'],$merId,$num); } } return $num; } public function lst() { $result = Db::name('user')->alias('u') ->leftJoin('user_rich ur', 'u.uid = ur.uid') ->field('u.uid') ->where('ur.uid', null) ->select(); foreach ($result as $v){ $count=Db::name('user_rich')->where('uid',$v['uid'])->count(); if($count<1){ Db::name('user_rich')->insert(['uid'=>$v['uid']]); } } $where = $this->request->params([ 'user_time_type', 'user_time', ]); $identity=$this->request->param('identity',-1); $nickname=$this->request->param('nickname',''); $account=$this->request->param('account',''); $user_rich=$this->request->param('user_rich',''); $level=$this->request->param('level',''); $stockholder=$this->request->param('stockholder',''); $exchange=$this->request->param('exchange',''); $yy=$this->request->param('yy',''); $ling=$this->request->param('ling',''); $status=$this->request->param('status',''); $withdraw=$this->request->param('withdraw',''); if($withdraw==='0' || $withdraw==='1'){ $where2['eu.withdraw']=$withdraw; } if($status==='0' || $status==='1'){ $where2['eu.status']=$status; } if($yy){ $where2['eu.operate']=$yy; } if($ling=='1'){ $where2['eu.node_uid']=11714; } if($stockholder){ $where2['eu.partnership']=101; } if($level){ $where2['eu.level']=$level; } if($user_rich){ $where2['ur.star_level']=$user_rich; } if($identity!='' && $identity>-1){ $where2['eu.identity']=$identity; } $uids=''; if($exchange){ $where2['eu.exchange']=100; // $uids='11682,11684,11694,11698,11648,11696,11163,11697,11701,11695,9606,11700,11687,11690,11691,11692,11679,11681,11693,9605,11638,11699,10980,11702,11644'; } $p_phone=$this->request->param('p_phone',''); if($p_phone){ $p_uid=Db::name('user')->where('account',$p_phone)->value('uid'); if($p_uid){ $where2['eu.puid']=$p_uid; }else{ $where2['eu.puid']=-1; } } $node_phone=$this->request->param('node_phone',''); if($node_phone){ $node_uid=Db::name('user')->where('account',$node_phone)->value('uid'); if($node_uid){ $where2['eu.node_uid']=$node_uid; }else{ $where2['eu.node_uid']=-1; } } [$page, $limit] = $this->getPage(); $where2['eu.mer_id']=$this->request->merId(); $query_sql = Db::name('enterprise_user') ->alias('eu') ->join('user u','u.uid=eu.uid') ->join('user_rich ur','ur.uid=eu.uid') ->field('u.nickname,u.avatar,u.phone,u.sex,u.real_name,u.account,eu.*') ->where($where2) ->when($uids,function ($query) use ($uids){ $query->whereIn('u.uid',$uids); }) ->when($nickname,function ($query) use ($nickname){ $query->whereLike('u.nickname',"%".$nickname."%"); })->when($account,function ($query) use ($account){ $query->whereLike('u.account',"%".$account."%"); })->when(isset($where['user_time_type']) && $where['user_time_type'] !== '' && $where['user_time'] != '', function ($query) use ($where) { list($startTime, $endTime) = explode('-', $where['user_time']); if ($where['user_time_type'] == 'visitno') { $query->whereTime("u.last_time", 'between', [$startTime, $endTime]); } if ($where['user_time_type'] == 'visit') { $query->whereTime('u.last_time', '>=', $startTime); $query->whereTime('u.last_time', '<', $endTime); } if ($where['user_time_type'] == 'add_time') { $query->whereTime('u.create_time', '>=', $startTime); $query->whereTime('u.create_time', '<', $endTime); } }); $merId=$this->request->merId(); $date['list'] = $query_sql ->page($page, $limit) ->order("eu.enterprise_user_id desc") ->select() ->each(function ($item) use ($merId) { if($item['puid']){ $item['p_phone']=Db::name('user')->where('uid',$item['puid'])->value('phone'); }else{ $item['p_phone']=''; } if($item['node_uid']){ $item['node_phone']=Db::name('user')->where('uid',$item['node_uid'])->value('phone'); }else{ $item['node_phone']=''; } $user_rich=Db::name('user_rich')->where('uid', $item['uid'])->find(); $item['user_rich']=$user_rich; $item['certification'] = Db::name('user_certification')->where('uid', $item['uid'])->find();; $identity_name=Db::name('enterprise_performance_divvy')->where('state',1)->where('mer_id',$merId)->where('id',$item['identity'])->value('name'); if(!$identity_name && $item['identity']>0){ $item['identity'] =100; } $identity_name=Db::name('enterprise_agent_divvy')->where('state',1)->where('mer_id',$merId)->where('id',$item['level'])->value('name'); if(!$identity_name){ $item['level'] =0; } $item['exchange_ues_red'] = 0; if($item['exchange']==100){ $exchange_red_order_id = Db::name('store_order')->where('exchange_phone', $item['phone'])->value('order_id'); if ($exchange_red_order_id) { $item['exchange_ues_red'] = (float)Db::name('enterprise_user_score')->where('order_id', $exchange_red_order_id)->value('reward_socre'); } if($item['exchange_ues_red']<=0){ $item['exchange_ues_red'] = (float)Db::name('enterprise_user_score')->where('use_uid', $item['uid'])->value('reward_socre'); } } return $item; }); $date['count']= $query_sql->count(); $query_sql_0 = clone $query_sql; $user_count=$query_sql_0->where('eu.identity',0)->count(); $countmoyer[]=['className'=> 'el-icon-s-goods', 'count'=>$user_count, 'field'=>'', 'name'=> '普通用户总数' ]; $query_sql_1 = clone $query_sql; $count=$query_sql_1->where('eu.identity',100)->count(); $countmoyer[]=['className'=> 'el-icon-s-goods', 'count'=>$count, 'field'=>'元', 'name'=> '合伙人总数' ]; $mer_id=$this->request->merId(); $enterprise_performance_divvy=Db::name('enterprise_performance_divvy')->where('mer_id',$mer_id)->where('state',1)->order('id asc')->select(); foreach ($enterprise_performance_divvy as $v){ $query_sql_2[$v['id']] = clone $query_sql; $count2[$v['id']]= $query_sql_2[$v['id']]->where('eu.identity',$v['id'])->count(); $countmoyer[]= ['className'=> 'el-icon-s-goods', 'count'=>$count2[$v['id']], 'field'=>'', 'name'=> $v['name'].'总数' ]; } $query_sql_6 = clone $query_sql; $query_sql_8 = clone $query_sql; $query_sql_9 = clone $query_sql; $count6=$query_sql_6->where('eu.partnership',101)->count(); $count8=$query_sql_8->where('eu.operate',101)->count(); $count9=$query_sql_9->where('eu.operate',102)->count(); $countmoyer[]= ['className'=> 'el-icon-s-goods', 'count'=>$count6, 'field'=>'元', 'name'=> '董事股东总数' ]; $countmoyer[]= ['className'=> 'el-icon-s-goods', 'count'=>$count8, 'field'=>'', 'name'=> '一级运营中心' ]; $countmoyer[]= ['className'=> 'el-icon-s-goods', 'count'=>$count9, 'field'=>'', 'name'=> '二级运营中心' ]; $date['countmoyer']=$countmoyer; return app('json')->success($date); } public function update($id, UserValidate $validate, UserLabelRepository $labelRepository, UserGroupRepository $groupRepository) { $data = $this->request->params(['real_name','phone', 'birthday', 'card_id', 'addres', 'mark','nickname','is_shop_partner']); $data['nickname']=$substring = mb_substr($data['nickname'], 0, 7, 'UTF-8'); $validate->check($data); if (!$this->repository->exists($id)) return app('json')->fail('数据不存在'); if(!$data['birthday']) unset($data['birthday']); $user=Db::name('user')->where('uid',$id)->find(); if($user['account']!=$data['phone']){ $user_count=Db::name('user')->where('account',$data['phone'])->where('uid != '.$id)->count(); if($user_count>0){ return app('json')->fail('该手机号已存在~'); } $data['account']=$data['phone']; } //todo 数据库字段未定义 // //是否可以提现 0-可以 1-禁止 // $data['withdraw'] = 0; // //用户状态 0为正常,1为禁止 // $data['status'] = 0; $this->repository->update($id, $data); // // $enterprise_user_data = $this->request->param('enterprise_user'); //// var_dump($enterprise_user_data);die; // $data2['level'] = $enterprise_user_data['level']; // $data2['partnership'] = $enterprise_user_data['partnership']; // $data2['identity'] = $enterprise_user_data['identity']; // $data2['stock_num'] = $enterprise_user_data['stock_num'] ?? ''; // $data2['stock_right'] = $enterprise_user_data['stock_right'] ?? ''; // $where['mer_id']= $this->request->merId(); // $where['uid']= $id; // if($enterprise_user_data['identity']==0 && $enterprise_user_data['level']!=0){ // return app('json')->fail('请先升级成合伙人~'); // } // $enterprise_user=Db::name('enterprise_user')->where($where)->find(); // if($enterprise_user['level']!= $data2['level']){ // $data2['tad'] = 0; // } // // $data2['withdraw'] = 0; // $data2['status'] = 0; // if(isset($enterprise_user_data['status']) && $enterprise_user_data['status']==1){//是否可以提现 0-可以 1-禁止 // $data2['status'] = 1; // } // if(isset($enterprise_user_data['withdraw']) && $enterprise_user_data['withdraw']==1){//用户状态0为正常,1为禁止 // $data2['withdraw'] = 1; // } // // if($enterprise_user_data['yy']=='0'){ // $data2['operate'] = 0; // } // if($enterprise_user_data['yy']=='1' && $enterprise_user['operate']==0){ // $puser=Db::name('enterprise_user')->where('uid', $enterprise_user['puid'])->where('mer_id', $enterprise_user['mer_id'])->find(); // // if($puser){ // if($puser['operate']==0){ // $data2['operate'] = 101; // }else if($puser['operate']==101){ // $data2['operate'] = 102; // }else if($puser['operate']==102){ // return app('json')->fail('该用户上级为二级运营中心,不可再设置运营中心~'); // } // }else{ // $data2['operate'] = 101; // } // // } // // //// $merchant=Db::name('merchant')->where('mer_id',$this->request->merId())->find(); // // $uid_0=11714; // //11714 他下面的就是是0号节点 // // if($enterprise_user_data['zero_node']==1){ // if($enterprise_user['node_uid']!=$uid_0){ // $data2['node_uid']=$uid_0; // $data2['old_node_uid']=$enterprise_user['node_uid']; // } // }else{ // if($enterprise_user['old_node_uid']==0 && $enterprise_user['node_uid']==$uid_0){ // return app('json')->fail('零号节点不支持修改业绩归属人~'); // } // if($enterprise_user['old_node_uid']> 0 && $enterprise_user['node_uid']==$uid_0){ // $data2['node_uid']=$enterprise_user['old_node_uid']; // $data2['old_node_uid']=0; // } // // } // Db::name('enterprise_user')->where($where)->update($data2); //更新身份证信息 $cardData = []; if ($data['card_id']) { $cardData['user_card'] = $data['card_id']; } if ($data['real_name']) { $cardData['user_name'] = $data['real_name']; } if (!empty($cardData)) { //查询是否存在 $user_certification = Db::name('user_certification')->where("uid", $id)->find(); if ($user_certification) { Db::name('user_certification')->where("uid", $id)->update($cardData); } else { $cardData['uid'] = $id; $cardData['status'] = 1; $userCertification = app()->make(UserCertification::class); $userCertification->create($cardData); } } // $admin_start_level=input('post.admin_start_level',0); // if (!empty($admin_start_level)) { // } // $pics=input('post.area_manage_pics',[]); // $user_rich_ypdate['type']=input('post.user_rich_type',0); // $user_rich_ypdate['obtain']=input('post.area_manage_obtain',0); // $user_rich_ypdate['admin_start_level']=input('post.admin_start_level',0); // if($pics){ // $user_rich_ypdate['pics']=implode(',',$pics); // } // $rich=Db::name('user_rich')->where('uid',$id)->count(); // if($rich){ // Db::name('user_rich')->where('uid',$id)->update($user_rich_ypdate); // }else{ // $user_rich_ypdate['uid']=$id; // Db::name('user_rich')->insert($user_rich_ypdate); // } return app('json')->success('编辑成功'); } public function partnership(){ $where2['mer_id']=$this->request->merId(); $where2['partnership']=101; $date['count']= Db::name('enterprise_user')->where($where2)->count(); return app('json')->success($date); } public function changeProForm($id) { if (!$this->repository->exists($id)) return app('json')->fail('数据不存在'); $type = $this->request->param('type',0); $mer_id=$this->request->merId(); $enterprise_user=Db::name('enterprise_user')->where('uid',$id)->where('mer_id',$mer_id)->find(); $merchant=Db::name('merchant')->where('mer_id',$this->request->merId())->find(); if($enterprise_user && $merchant && $merchant['uid']==$enterprise_user['node_uid']){ return app('json')->fail('零号节点不支持修改业绩归属人~'); } return app('json')->success(formToData($this->repository->changeProForm_yhc($id,(int)$type))); } public function changePro($id) { $spread_account = $this->request->param('spread_account'); $type = $this->request->param('type',0); if (!$spread_account || !$id){ return app('json')->fail('参数丢失'); } $mer_id=$this->request->merId(); //推荐人信息 $spread_uid = Db::name("user")->where('account',$spread_account)->value("uid"); if($spread_uid){ $enterprise_user=Db::name("enterprise_user")->where('uid',$spread_uid)->where('mer_id',$mer_id)->count(); if(!$enterprise_user){ return app('json')->fail("号码不存在~ "); } $enterprise_user2=Db::name("enterprise_user")->where('uid',$id)->where('mer_id',$mer_id)->find(); if($type==1){ $update=['node_uid'=>$spread_uid]; if($enterprise_user2['node_uid']==$spread_uid){ return app('json')->success("修改成功"); } }else{ $update=['puid'=>$spread_uid]; if($enterprise_user2['puid']==$spread_uid){ return app('json')->success("修改成功"); } } $re=Db::name("enterprise_user")->where('uid',$id)->where('mer_id',$mer_id)->update($update); }else{ return app('json')->fail("号码不存在~ "); } if(isset($re) && $re){ return app('json')->success("修改成功"); }else{ return app('json')->fail("失败"); } } public function enterprise_update(){ $we_com['we_com'] = $this->request->param('we_com', ''); $we_com['we_com_url'] = $this->request->param('we_com_url', ''); $where2['mer_id']=$this->request->merId(); $user= Db::name('enterprise')->where($where2)->update($we_com); return app('json')->success("修改成功"); } public function enterprise(){ $where2['mer_id']=$this->request->merId(); $user= Db::name('enterprise')->field('we_com,we_com_url')->where($where2)->find(); return app('json')->success($user); } public function get_info($id) { if (!$this->repository->exists($id)) return app('json')->fail('数据不存在'); $user=Db::name('user')->find($id); $certification = Db::name('user_certification')->where("uid", $id)->find(); $user['real_name'] = $certification['user_name'] ?? ''; $user['card_id'] = $certification['user_card'] ?? ''; $user_rich=Db::name('user_rich')->where('uid',$id)->find(); $user['admin_start_level'] =$user_rich?$user_rich['admin_start_level']:'0'; $user['user_rich_type'] =$user_rich?$user_rich['type']:'0'; $user['area_manage_pics'] =[]; $user['area_manage_obtain'] ='0'; //身份 $user['user_group_name'] = $this->repository->getUserGroupMap()[$user['user_group'] ?? ''] ?? ''; //代理区域 $user['manage_address_string'] = ''; if (!empty($user['manage_address'])) { $manage_address_list = explode(",", $user['manage_address']); $address_list = Db::name('regions')->whereIn('id', $manage_address_list)->field('id,name,level')->select()->toArray(); array_multisort(array_column($address_list, 'level'), SORT_ASC, $address_list); foreach ($address_list as $index => $item) { if ($index == count($address_list) - 1) { $user['manage_address_string'] .= $item['name']; break; } $user['manage_address_string'] .= $item['name'] . "/"; } } //是否创客合伙人 is_shop_partner //是否直推用户 当前查询用户的spread_uid=商户uid为直推用户 $uid = Db::name('merchant')->where('mer_id', $this->request->merId())->value('uid'); $user['direct_push'] = 0; if ($user['spread_uid'] == $uid) { $user['direct_push'] = 1; } return app('json')->success($user); } public function getUserList() { $keyword = $this->request->param('keyword', ''); if (!$keyword) return app('json')->fail('请输入关键字'); [$page, $limit] = $this->getPage(); return app('json')->success($this->repository->merList($keyword, $page, $limit)); } //配置微信公众号 public function haike_wx(){ $where['mer_id'] = $this->request->merId(); $merch_no = Db::name("Merchant") -> where($where) -> value("merch_no"); $url = env('HAIKE.HOSTNAME')."/api/v1/wx-appid-conf/add"; $data = [ "agent_no"=> env('HAIKE.AGENT_NO'), "merch_no"=> $merch_no, "conf_key"=> "pay_appId", "conf_value"=> 'wx10669a2eca032216', ]; $res = HaikeApiRequest::request($data,$url); if($res['result'] == 0){ Db::name("Merchant") -> where($where) -> update(array("haike_mp"=>1)); return app('json')->status('success', $res); } return app('json')->fail($res); } //海科小程序收款配置状态 public function haike_wx_status(){ $where['mer_id'] = $this->request->merId(); $status = Db::name("Merchant") -> where($where) -> value("haike_mp"); return app('json')->success(['status'=>$status]); } //小程序点餐二维码列表 public function get_wx_code(){ $where['mer_id'] = $this->request->merId(); $list = Db::name('mp_qrcode') -> where($where) -> select(); return app('json')->success($list); } //生成小程序点餐二维码 public function create_wx_code(){ $mer_id = $this->request->merId(); $table_id = $this -> request->param('table_id', ''); if($table_id == '') return app('json')->fail('请输入桌子编号'); $access_token = $this -> get_mp_access_token(); $url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=".$access_token; $data['scene'] = 'mer_id='.$mer_id.'&table_id='.$table_id; $res = $this -> posturl($url,$data); //判断是否是 json格式 if(is_null(json_decode($res))){ $new_file = (int)(microtime(true) * 1000); $dir = iconv("UTF-8", "GBK", "./public/mpqrcode"); if (!file_exists($dir)){ mkdir ($dir,0777,true); } $path = $dir.'/'.$new_file.".jpg"; file_put_contents($path, $res); $imgurl = env('APP_URL')."/mpqrcode/".$new_file.".jpg"; $db = Db::name('mp_qrcode'); $db -> insert(['table_id'=>$table_id,'mer_id'=>$mer_id,'qrcode'=>"/mpqrcode/".$new_file.".jpg"]); return app('json')->success(['qrcode'=>$imgurl]); }else{ $res=json_decode($res,true); //没有接收到数据流 return false; } } public function get_mp_access_token(){ $access_token = Cache::get('mp_access_token'); if($access_token) return $access_token; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx10669a2eca032216&secret=0e71d5c636fdb9bf1c79c403db70f739"; $res = curlGet($url); Cache::set('mp_access_token', $res['access_token'], $res['expires_in']); return $res['access_token']; } public function posturl($url,$data){ $json = json_encode($data, JSON_UNESCAPED_UNICODE); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $json); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_MAXREDIRS, 10); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $output = curl_exec($curl); curl_close($curl); return $output; } public function getImUser(){ $mer_id = $this->request->merId(); $merchant = Db::name('merchant')->where('mer_id',$mer_id)->find(); if(empty($merchant)) return app('json')->fail('查找不到该用户'); $uid=$merchant['uid']; $im = new Im(); $user = Db::name('merchant_admin')->field('im_user_id,im_pass,im_uuid,uid')->where('mer_id', $mer_id)->find(); if(isset($user['im_user_id']) && $user['im_user_id']!=''){ return app('json')->success($user); } $update['im_user_id'] = 'mer_' . $mer_id; $update['im_pass'] = mt_rand(100000,999999); // 获取用户是否存在 $imUser = $im->getImUser($update['im_user_id']); if (isset($imUser['activated']) && $imUser['activated'] == true) { $uuid = $imUser['uuid']; } else { // $getImUserResult = $im->getImUser($user_id); // Log::info('getImUser'.json_encode($getImUserResult)); $uuid = $im->MerCreateImUser($update['im_user_id'], $update['im_pass'], $merchant['mer_name']); Log::info('createImUserResult' . json_encode($uuid)); } $update['im_uuid']=$uuid; if($uuid){ Db::name('merchant_admin')->where('mer_id', $mer_id)->where('uid', $uid)->update($update); return app('json')->success($update); }else{ return app('json')->fail('创建失败'); } } public function new_user_list(){ $nickname=$this->request->param('nickname',''); $account=$this->request->param('account',''); $user_group=$this->request->param('user_group',''); $is_shop_partner=$this->request->param('is_shop_partner',''); $status=$this->request->param('status',''); $p_phone=$this->request->param('p_phone',''); $spread_uid = ''; if($p_phone){ $p_uid=Db::name('user')->where('account',$p_phone)->value('uid'); if($p_uid){ $spread_uid=$p_uid; }else{ $spread_uid=-1; } } $mer_id = $this->request->merId(); $mer_uid = Db::name('merchant')->where('mer_id', $mer_id)->value('uid'); $userRepository = app()->make(UserRepository::class); $chilid_userids = $userRepository->getSpreadUidBreak($mer_uid); $chilid_userids_string = "1"; if (!empty($chilid_userids)) { $chilid_userids_string = implode(',',$chilid_userids); } [$page, $limit] = $this->getPage(); $dataQuery = Db::query("SELECT user_group,count(uid) count FROM `rrx_user` where uid in ($chilid_userids_string) group by user_group"); $dataQuery = array_column($dataQuery, 'count', 'user_group'); $shopPartnerCount = Db::query("SELECT user_group,count(uid) count FROM `rrx_user` where uid in ($chilid_userids_string) and is_shop_partner=1 group by user_group"); $countmoyer[] = ['className' => 'el-icon-s-goods', 'user_group' => 1, 'count' => (int)($dataQuery[1] ?? 0), 'name' => '消费者']; $countmoyer[] = ['className' => 'el-icon-s-goods', 'user_group' => 2, 'count' => (int)($dataQuery[2] ?? 0), 'name' => 'V客']; $countmoyer[] = ['className' => 'el-icon-s-goods', 'user_group' => 3, 'count' => (int)($dataQuery[3] ?? 0), 'name' => '大V经理']; $countmoyer[] = ['className' => 'el-icon-s-goods', 'user_group' => 4, 'count' => (int)($dataQuery[4] ?? 0), 'name' => '创客']; $countmoyer[] = ['className' => 'el-icon-s-goods', 'user_group' => 5, 'count' => (int)($dataQuery[5] ?? 0), 'name' => '区县代理']; $countmoyer[] = ['className' => 'el-icon-s-goods', 'user_group' => 6, 'count' => (int)($dataQuery[6] ?? 0), 'name' => '省级代理']; // $countmoyer[] = ['className' => 'el-icon-s-goods', 'count' => (int)($shopPartnerCount), 'name' => '创客合伙人']; $whereTime = $this->request->params([ 'user_time_type', 'user_time', ]); $query =Db::name('user') ->field('uid,nickname,phone,spread_uid,user_group,create_time,is_shop_partner') ->whereIn('uid', $chilid_userids) ->when($nickname != '',function ($query) use ($nickname){ $query->whereLike('nickname',"%".$nickname."%"); })->when($account != '',function ($query) use ($account){ $query->whereLike('account',"%".$account."%"); })->when($user_group != '',function ($query) use ($user_group){ $query->where('user_group',$user_group); })->when($is_shop_partner != '',function ($query) use ($is_shop_partner){ $query->where('is_shop_partner',$is_shop_partner); })->when($status != '',function ($query) use ($status){ $query->where('status',$status); })->when($p_phone != '',function ($query) use ($spread_uid){ $query->where('spread_uid',$spread_uid); })->when(isset($whereTime['user_time_type']) && $whereTime['user_time_type'] !== '' && $whereTime['user_time'] != '', function ($query) use ($whereTime) { list($startTime, $endTime) = explode('-', $whereTime['user_time']); if ($whereTime['user_time_type'] == 'visitno') { $query->whereTime("last_time", 'between', [$startTime, $endTime]); } if ($whereTime['user_time_type'] == 'visit') { $query->whereTime('u.last_time', '>=', $startTime); $query->whereTime('u.last_time', '<', $endTime); } if ($whereTime['user_time_type'] == 'add_time') { $query->whereTime('create_time', '>=', $startTime); $query->whereTime('create_time', '<', $endTime); } })->order('create_time desc'); $date['list'] = $query->page($page, $limit)->select() ->each(function ($item) { if($item['spread_uid']){ $item['p_phone']=Db::name('user')->where('uid',$item['spread_uid'])->value('phone'); }else{ $item['p_phone']=''; } $item['user_card'] = Db::name("user_certification")->where(["uid" => $item['uid'], 'status' => 1])->value('user_card'); $item['is_certification'] = (boolean)$item['user_card']; unset($item['spread_uid']); return $item; });; $date['count'] = $query->count(); $date['shouyi'] = 0; $date['stride_shop_money'] = 0; $date['real_subsidy_money'] = 0; $date['countmoyer']=$countmoyer; return app('json')->success($date); } /** * @return mixed * @author xaboy * @day 2020/6/22 */ public function bill($id, UserBillRepository $billRepository) { [$page, $limit] = $this->getPage(); $where = [ // 'now_money' => $this->request->param('type', 0), 'status' => $this->request->param('status'), // 'mer_id' => $this->request->merId() ]; if ($this->request->param('is_red') == true) { $where['is_red_brokerage'] = 1; } $where['commission_type'][] = 3; $bill_list = $billRepository->userList($where, $id, $page, $limit); foreach ($bill_list['list'] as $key => $item) { if ($item['mer_id'] != $this->request->merId()) { $bill_list['list'][$key]['order_sn'] = "--"; } if (in_array($item['commission_type'], [3, 16, 7])) { $md = date('m.d', strtotime($item['create_time'])); $m = date('m', strtotime($item['create_time'])); if ($item['commission_type'] == 3) $bill_list['list'][$key]['title'] = "直推奖({$md})"; if ($item['commission_type'] == 16) $bill_list['list'][$key]['title'] = "大V经理分享奖($m)"; if ($item['commission_type'] == 7) $bill_list['list'][$key]['title'] = "跨店奖励($m)"; } if ($item['status'] == 1) $bill_list['list'][$key]['jiesuan_string'] = "已结算"; if ($item['status'] == 0) $bill_list['list'][$key]['jiesuan_string'] = "未结算"; if ($item['status'] == -1) $bill_list['list'][$key]['jiesuan_string'] = "已失效"; } return app('json')->success($bill_list); } }