| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926 |
- <?php
- /**
- * @package merchant
- *
- * @author xaboy
- * @day 2020/5/29
- *
- *
- */
- namespace app\controller\merchant\user;
- use app\common\model\user\UserCertification;
- use app\common\repositories\merchant\order\OrderGzcRepository;
- use app\common\repositories\store\order\StoreOrderRepository;
- use app\common\repositories\user\UserBillRepository;
- use app\common\repositories\user\UserGroupRepository;
- use app\common\repositories\user\UserLabelRepository;
- use app\controller\api\user\Im;
- use app\traits\HaikeApiRequest;
- use app\validate\admin\UserValidate;
- use crmeb\basic\BaseController;
- use app\common\repositories\user\UserRepository;
- use think\App;
- use think\db\exception\DataNotFoundException;
- use think\db\exception\DbException;
- use think\db\exception\ModelNotFoundException;
- use think\facade\Cache;
- use think\facade\Db;
- use crmeb\services\WechatTemplateService;
- use think\facade\Log;
- use function Complex\add;
- class User extends BaseController
- {
- protected $repository;
- public function __construct(App $app, UserRepository $repository)
- {
- parent::__construct($app);
- $this->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' => '创客合伙人'];
- $allCount = Db::name('user')->where('mer_id', $mer_id)->count();
- $countmoyer[] = ['className' => 'el-icon-s-goods', 'count' => (int)($allCount), '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,wechat_user_id,ali_user_id,avatar')
- // ->whereIn('uid', $chilid_userids)
- ->where('mer_id', $mer_id)
- ->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) {
- })->when($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);
- }
- }
|