王总上门按摩后台代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
shangmenanmo/app/massage/controller/IndexReseller.php

243 lines
6.3 KiB

2 months ago
<?php
namespace app\massage\controller;
use app\AdminRest;
use app\ApiRest;
use app\massage\model\City;
use app\massage\model\Coach;
use app\massage\model\CoachLevel;
use app\massage\model\Commission;
use app\massage\model\Config;
use app\massage\model\DistributionList;
use app\massage\model\Order;
use app\massage\model\User;
use app\massage\model\Wallet;
use longbingcore\wxcore\YsCloudApi;
use think\App;
class IndexReseller extends ApiRest
{
protected $model;
protected $user_model;
protected $cash_model;
protected $wallet_model;
protected $coach_model;
public function __construct(App $app) {
parent::__construct($app);
$this->model = new DistributionList();
$this->user_model = new User();
$this->cash_model = new Commission();
$this->wallet_model = new Wallet();
$this->coach_model = new Coach();
}
/**
* @author chenniang
* @DataTime: 2023-03-23 13:49
* @功能说明:合伙人中心
*/
public function partnerIndex(){
$order_model = new Order();
//超时自动取消订单
$order_model->coachBalanceArr($this->_uniacid);
$data = $this->user_model->dataInfo(['id'=>$this->_user['id']],'nickName,avatarUrl,new_cash,cash');
$data['order_cash'] = $this->model->partnerOrderPrice($this->_user['id']);
//已提现金额
$data['wallet_cash'] = $this->wallet_model->where(['user_id'=>$this->_user['id'],'type'=>4])->where('status','<>',3)->sum('total_price');
//未入账
$data['not_recorded']= $this->cash_model->where(['top_id'=>$this->_user['id'],'status'=>1])->where('type','in',[1,9])->sum('cash');
//累计订单量
$data['total_order_count'] = $this->cash_model->where(['top_id'=>$this->_user['id'],'status'=>2])->where('type','in',[1,9])->group('order_id')->count();
//今日订单数量
$data['today_order_count'] = $this->cash_model->where(['top_id'=>$this->_user['id'],'status'=>2])->where('type','in',[1,9])->whereTime('create_time','today')->group('order_id')->count();
//累计邀请技师
$data['total_coach_count'] = $this->coach_model->where(['partner_id'=>$this->_user['id'],'status'=>2])->count();
//今日邀请技师
$data['today_coach_count'] = $this->coach_model->where(['partner_id'=>$this->_user['id'],'status'=>2])->whereTime('partner_time','today')->count();
//累计邀请用户
$data['total_user_count'] = $this->user_model->where(['pid'=>$this->_user['id']])->count();
//今日邀请用户
$data['today_user_count'] = $this->user_model->where(['pid'=>$this->_user['id']])->whereTime('create_time','today')->count();
$data['order_cash'] = round($data['order_cash'],2);
$data['wallet_cash']= round($data['wallet_cash'],2);
$data['not_recorded']= round($data['not_recorded'],2);
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2023-03-23 14:30
* @功能说明:合伙人邀请的技师
*/
public function partnerCoachList(){
$dis = [
'status' => 2,
'partner_id' => $this->_user['id']
];
$data = $this->coach_model->where($dis)->field('admin_id,id,coach_name,work_img,city_id')->order('partner_time desc,id desc')->paginate(10)->toArray();
if(!empty($data['data'])){
$config_model = new Config();
$level_model = new CoachLevel();
$city_model = new City();
$admin_model = new \app\massage\model\Admin();
$config = $config_model->dataInfo(['uniacid'=>$this->_uniacid]);
$level_cycle = $config['level_cycle'];
$is_current = $config['is_current'];
foreach ($data['data'] as &$v){
$v['order_count'] = $level_model->getMinCount($v['id'],$level_cycle,0,$is_current);
$v['city'] = $city_model->where(['id'=>$v['city_id']])->value('city');
$admin = $admin_model->dataInfo(['id'=>$v['admin_id'],'status'=>1]);
//代理商
$v['admin_name'] = !empty($admin)?$admin['agent_name']:'平台';
}
}
return $this->success($data);
}
/**
* @author chenniang
* @DataTime: 2022-08-30 14:18
* @功能说明 合伙人邀请技师码
*/
public function resellerInvCoachQr(){
$input = $this->_param;
$admin_id = !empty($input['admin_id'])?$input['admin_id']:0;
$key = 'resellerInvCoach_qr'.$this->_user['id'].'-'.$this->is_app.'-'.$admin_id;
$qr = getCache($key,$this->_uniacid);
if(empty($qr)){
//小程序
if($this->is_app==0){
$input['page'] = 'technician/pages/apply';
$input['partner_id'] = $this->_user['id'];
//获取二维码
$qr = $this->user_model->orderQr($input,$this->_uniacid);
}else{
$page = 'https://'.$_SERVER['HTTP_HOST'].'/h5/#/technician/pages/apply?partner_id='.$this->_user['id'].'&admin_id='.$input['admin_id'];
$qr = base64ToPng(getCode($this->_uniacid,$page));
}
setCache($key,$qr,86400,$this->_uniacid);
}
$qr = !empty($qr)?$qr:'https://'.$_SERVER['HTTP_HOST'].'/favicon.ico';
return $this->success($qr);
}
/**
* @author chenniang
* @DataTime: 2023-05-09 10:43
* @功能说明:
*/
public function adminList(){
$admin_model = new \app\massage\model\Admin();
$dis = [
'status' => 1,
'is_admin' => 0,
'partner_auth' => 1
];
$input = $this->_param;
$where = [];
if(!empty($input['nickName'])){
$where[] =['agent_name','like','%'.$input['nickName'].'%'];
}
$data = $admin_model->where($dis)->where($where)->field('agent_name,id,city_type,user_id')->paginate(10)->toArray();
$user_model = new User();
if(!empty($data['data'])){
foreach ($data['data'] as &$v){
$v['avatarUrl'] = $user_model->where(['id'=>$v['user_id']])->value('avatarUrl');
}
}
return $this->success($data);
}
}