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.
2203 lines
50 KiB
2203 lines
50 KiB
<?php
|
|
namespace app\massage\controller;
|
|
use app\ApiRest;
|
|
|
|
use app\card\model\UserPhone;
|
|
use app\card\model\UserSk;
|
|
use app\dynamic\model\DynamicFollow;
|
|
use app\fdd\model\FddAgreementRecord;
|
|
use app\fdd\model\FddConfig;
|
|
use app\massage\model\AgentApply;
|
|
use app\massage\model\ChannelCate;
|
|
use app\massage\model\ChannelList;
|
|
use app\massage\model\City;
|
|
use app\massage\model\Coach;
|
|
use app\massage\model\CoachCollect;
|
|
use app\massage\model\CoachLevel;
|
|
use app\massage\model\CoachTimeList;
|
|
use app\massage\model\Commission;
|
|
use app\massage\model\Config;
|
|
use app\massage\model\ConfigSetting;
|
|
use app\massage\model\CouponAtv;
|
|
use app\massage\model\CouponAtvRecord;
|
|
use app\massage\model\CouponAtvRecordCoupon;
|
|
use app\massage\model\CouponAtvRecordList;
|
|
use app\massage\model\CouponRecord;
|
|
use app\massage\model\Address;
|
|
|
|
use app\massage\model\DistributionList;
|
|
use app\massage\model\Feedback;
|
|
use app\massage\model\Order;
|
|
use app\massage\model\Salesman;
|
|
use app\massage\model\Service;
|
|
use app\massage\model\ShieldList;
|
|
use app\massage\model\ShortCodeConfig;
|
|
use app\massage\model\StoreList;
|
|
use app\massage\model\User;
|
|
use app\massage\model\UserChannel;
|
|
use app\massage\model\Wallet;
|
|
use app\mobilenode\model\RoleAdmin;
|
|
use think\App;
|
|
use think\facade\Db;
|
|
use think\Request;
|
|
|
|
|
|
class IndexUser extends ApiRest
|
|
{
|
|
|
|
protected $model;
|
|
|
|
protected $address_model;
|
|
|
|
protected $coach_model;
|
|
|
|
protected $coupon_record_model;
|
|
|
|
protected $follow_model;
|
|
|
|
protected $noNeedLogin = ['sendCodeMsg'];
|
|
|
|
public function __construct(App $app) {
|
|
|
|
parent::__construct($app);
|
|
|
|
$this->model = new User();
|
|
|
|
$this->address_model = new Address();
|
|
|
|
$this->coach_model = new Coach();
|
|
|
|
$this->coupon_record_model = new CouponRecord();
|
|
|
|
$this->follow_model = new DynamicFollow();
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-12-08 14:12
|
|
* @功能说明:认证技师
|
|
*/
|
|
public function attestationCoach(){
|
|
|
|
$data = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','in',[1,2,3,4]];
|
|
//查看是否是团长
|
|
$cap_info = $this->coach_model->where($cap_dis)->order('status')->find();
|
|
|
|
$cap_info = !empty($cap_info)?$cap_info->toArray():[];
|
|
//-1表示未申请团长,1申请中,2已通过,3取消,4拒绝
|
|
$data['coach_status'] = !empty($cap_info)?$cap_info['status']:-1;
|
|
//认证技师
|
|
if($data['coach_status']==-1){
|
|
|
|
$this->coach_model->attestationCoach($data);
|
|
}
|
|
//查看是否是团长
|
|
$cap_info = $this->coach_model->where($cap_dis)->order('status')->find();
|
|
|
|
$cap_info = !empty($cap_info)?$cap_info->toArray():[];
|
|
//-1表示未申请团长,1申请中,2已通过,3取消,4拒绝
|
|
$data['coach_status'] = !empty($cap_info)?$cap_info['status']:-1;
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-19 15:48
|
|
* @功能说明:个人中心
|
|
*/
|
|
public function index(){
|
|
|
|
if(empty($this->getUserId())){
|
|
|
|
return $this->success([]);
|
|
|
|
}
|
|
$data = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
if(empty($data)){
|
|
$this->errorMsg('need login',401);
|
|
}
|
|
//获取各类角色的审核结果
|
|
$data = $this->model->authCheckData($data);
|
|
//优惠券数
|
|
$data['coupon_count'] = $this->coupon_record_model->couponCount($this->getUserId());
|
|
|
|
$data['balance'] = $this->model->where(['id'=>$this->getUserId()])->sum('balance');
|
|
|
|
$data['balance'] = round($data['balance'] ,2);
|
|
//说明是技师
|
|
if(in_array($data['coach_status'],[2,3])){
|
|
//技师等级
|
|
$data['coach_level'] = $this->coach_model->getCoachLevel($data['coach_id'],$this->_uniacid);
|
|
|
|
$level_model = new CoachLevel();
|
|
|
|
$config_model= new Config();
|
|
|
|
$config = $config_model->dataInfo(['uniacid'=>$this->_uniacid]);
|
|
//服务时长
|
|
$data['service_time_long'] = $level_model->getMinTimeLong($data['coach_id'],$config['level_cycle']);
|
|
|
|
}
|
|
|
|
$atv_model = new CouponAtv();
|
|
|
|
$atv_record_model = new CouponAtvRecord();
|
|
|
|
$dis = [
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'status' => 1
|
|
];
|
|
//查询有没有进行中的活动
|
|
$atv_ing = $atv_record_model->dataInfo($dis);
|
|
|
|
$is_atv = 0;
|
|
|
|
if(!empty($atv_ing)){
|
|
|
|
$is_atv = 1;
|
|
|
|
}else{
|
|
|
|
$atv_config = $atv_model->dataInfo(['uniacid'=>$this->_uniacid]);
|
|
|
|
$where[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$where[] = ['status','<>',3];
|
|
|
|
$count = $atv_record_model->where($where)->count();
|
|
|
|
if($atv_config['status']==1&&$atv_config['start_time']<time()&&$atv_config['end_time']>time()&&$count<$atv_config['atv_num']){
|
|
|
|
$is_atv = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$data['is_atv'] = $is_atv;
|
|
//是否开启了推荐有礼
|
|
$data['is_atv_status'] = $atv_model->where(['uniacid'=>$this->_uniacid])->value('is_atv_status');
|
|
|
|
$data['is_atv_status'] = !empty($data['is_atv_status'])?$data['is_atv_status']:0;
|
|
//技师收藏
|
|
$data['collect_count'] = $this->coach_model->coachCollectCount($this->getUserId(),$this->_uniacid);
|
|
//关注技师数量
|
|
$data['follow_count'] = $this->follow_model->followCoachNum($this->getUserId());
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-19 15:54
|
|
* @功能说明:用户地址列表
|
|
*/
|
|
public function addressList(){
|
|
|
|
$dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$dis[] = ['status','>',-1];
|
|
|
|
$data = $this->address_model->dataList($dis,10);
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-19 15:57
|
|
* @功能说明:用户地址详情
|
|
*/
|
|
public function addressInfo(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$dis = [
|
|
|
|
'id' => $input['id']
|
|
];
|
|
|
|
$data = $this->address_model->dataInfo($dis);
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-19 15:58
|
|
* @功能说明:添加用户地址
|
|
*/
|
|
public function addressAdd(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$input['uniacid'] = $this->_uniacid;
|
|
|
|
$input['user_id'] = $this->getUserId();
|
|
|
|
$res = $this->address_model->dataAdd($input);
|
|
|
|
if($input['status']==1){
|
|
|
|
$id = $this->address_model->getLastInsID();
|
|
|
|
$this->address_model->updateOne($id);
|
|
}
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-19 15:58
|
|
* @功能说明:添加用户地址
|
|
*/
|
|
public function addressUpdate(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'id' => $input['id']
|
|
];
|
|
|
|
$res = $this->address_model->dataUpdate($dis,$input);
|
|
|
|
if(!empty($input['status'])&&$input['status']==1){
|
|
|
|
$this->address_model->updateOne($input['id']);
|
|
|
|
}
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-11 22:54
|
|
* @功能说明:获取默认地址
|
|
*/
|
|
public function getDefultAddress(){
|
|
|
|
$address_model = new Address();
|
|
|
|
$address = $address_model->dataInfo(['user_id'=>$this->getUserId(),'status'=>1]);
|
|
|
|
return $this->success($address);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-19 16:13
|
|
* @功能说明:删除地址
|
|
*/
|
|
public function addressDel(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'id' => $input['id']
|
|
];
|
|
|
|
$res = $this->address_model->where($dis)->delete();
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-22 13:56
|
|
* @功能说明:修改用户信息 授权微信信息等
|
|
*/
|
|
public function userUpdate(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'id' => $this->getUserId()
|
|
];
|
|
|
|
if(!empty($input['coupon_atv_id'])&&empty($this->getUserInfo()['nickName'])&&!empty($input['nickName'])){
|
|
|
|
$coupon_atv_model = new CouponAtv();
|
|
|
|
$coupon_atv_model->invUser($this->getUserId(),$input['coupon_atv_id']);
|
|
}
|
|
|
|
$update = [
|
|
|
|
'nickName' => $input['nickName'],
|
|
|
|
'gender' => !empty($input['gender'])?$input['gender']:'',
|
|
|
|
'language' => !empty($input['language'])?$input['language']:'',
|
|
|
|
'city' => !empty($input['city'])?$input['city']:'',
|
|
|
|
'province' => !empty($input['province'])?$input['province']:'',
|
|
|
|
'country' => !empty($input['country'])?$input['country']:'',
|
|
|
|
'avatarUrl'=> !empty($input['avatarUrl'])?$input['avatarUrl']:'',
|
|
|
|
];
|
|
|
|
$res = $this->model->dataUpdate($dis,$update);
|
|
|
|
//
|
|
if(!empty($input['encryptedData'])){
|
|
|
|
$encryptedData = $input[ 'encryptedData' ];
|
|
|
|
$iv = $input[ 'iv' ];
|
|
|
|
$config = longbingGetAppConfig($this->_uniacid);
|
|
|
|
$appid = $config[ 'appid' ];
|
|
|
|
$session_key = $this->model->where(['id'=>$this->getUserId()])->value('session_key');
|
|
|
|
if(empty($session_key)){
|
|
|
|
$this->errorMsg('need login',401);
|
|
}
|
|
$datas = null;
|
|
// 解密
|
|
$errCode = decryptDataLongbing( $appid, $session_key, $encryptedData, $iv, $datas );
|
|
//获取unionid
|
|
if ( $errCode == 0 )
|
|
{
|
|
$data = json_decode( $datas, true );
|
|
|
|
$unionid = !empty($data['unionid'])?$data['unionid']:'';
|
|
|
|
if(!empty($unionid)){
|
|
|
|
$dis = [
|
|
|
|
'unionid' => $unionid,
|
|
|
|
'uniacid' => $this->uniacid
|
|
|
|
];
|
|
|
|
$find = $this->model->dataInfo($dis);
|
|
|
|
if(!empty($find)){
|
|
|
|
$this->errorMsg('need login',401);
|
|
|
|
}else{
|
|
|
|
$this->model->dataUpdate(['id'=>$this->getUserId()],['unionid'=>$unionid]);
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
return $this->error( $errCode );
|
|
}
|
|
|
|
}
|
|
|
|
$user_info = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
|
|
setCache($this->autograph, $user_info, 7200, $this->_uniacid);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-22 14:08
|
|
* @功能说明:用户信息
|
|
*/
|
|
public function userInfo(){
|
|
|
|
$data = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','in',[1,2,3,4]];
|
|
//查看是否是团长
|
|
$cap_info = $this->coach_model->where($cap_dis)->order('status')->find();
|
|
|
|
$cap_info = !empty($cap_info)?$cap_info->toArray():[];
|
|
//-1表示未申请团长,1申请中,2已通过,3取消,4拒绝
|
|
$data['coach_status'] = !empty($cap_info)?$cap_info['status']:-1;
|
|
|
|
$data['coach_position'] = !empty($cap_info['coach_position'])&&$data['coach_status']==2?1:0;
|
|
|
|
$distri_model = new DistributionList();
|
|
|
|
$fx = $distri_model->dataInfo($cap_dis);
|
|
|
|
$data['fx_status'] = !empty($fx)?$fx['status']:-1;
|
|
|
|
$data['fx_text'] = !empty($fx)?$fx['sh_text']:'';
|
|
|
|
$channel_model = new ChannelList();
|
|
|
|
$channel = $channel_model->dataInfo($cap_dis);
|
|
|
|
$data['channel_status'] = !empty($channel)?$channel['status']:-1;
|
|
|
|
$data['channel_text'] = !empty($channel)?$channel['sh_text']:'';
|
|
//税点
|
|
$data['tax_point'] = getConfigSetting($this->_uniacid,'tax_point');
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-23 09:39
|
|
* @功能说明:团长详情
|
|
*/
|
|
public function coachInfo(){
|
|
|
|
if(empty($this->getUserId())){
|
|
|
|
return $this->success([]);
|
|
|
|
}
|
|
$order_model = new Order();
|
|
|
|
$order_model->coachBalanceArr($this->_uniacid);
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','in',[1,2,3,4]];
|
|
|
|
$cap_info = $this->coach_model->dataInfo($cap_dis);
|
|
|
|
$city_model = new City();
|
|
|
|
if(!empty($cap_info)){
|
|
|
|
$cap_info['city'] = $city_model->where(['id'=>$cap_info['city_id']])->value('title');
|
|
//技师真正的等级
|
|
$coach_level = $this->coach_model->getCoachLevel($cap_info['id'],$this->_uniacid);
|
|
//技师等级
|
|
$cap_info['coach_level'] = $this->coach_model->coachLevelInfo($coach_level);
|
|
|
|
$cap_info['text_type'] = $this->coach_model->getCoachWorkStatus($cap_info['id'],$this->_uniacid);
|
|
|
|
$record_model= new FddAgreementRecord();
|
|
|
|
$config_model= new FddConfig();
|
|
|
|
$dis = [
|
|
|
|
'user_id' => $this->_user['id'],
|
|
|
|
'status' => 3,
|
|
|
|
'admin_id' => $cap_info['admin_id']
|
|
];
|
|
|
|
$cap_info['fdd_agreement'] = $record_model->where($dis)->field('download_url,viewpdf_url,end_time')->order('id desc')->find();
|
|
|
|
$fdd_status = $config_model->getStatus($this->_uniacid);
|
|
|
|
$cap_info['fdd_auth_status'] = $fdd_status;
|
|
//开启了法大大
|
|
if($fdd_status==1){
|
|
|
|
if(!empty($cap_info['fdd_agreement'])){
|
|
|
|
$cap_info['fdd_status'] = $cap_info['fdd_agreement']->end_time>time()?2:1;
|
|
|
|
}else{
|
|
|
|
$cap_info['fdd_status'] = 0;
|
|
}
|
|
}else{
|
|
|
|
$cap_info['fdd_status'] = 2;
|
|
}
|
|
|
|
}
|
|
|
|
$level_model = new CoachLevel();
|
|
//技师最高可提成
|
|
$cap_info['max_level'] = $level_model->where(['uniacid'=>$this->_uniacid,'status'=>1])->max('balance');
|
|
|
|
return $this->success($cap_info);
|
|
|
|
}
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-22 13:35
|
|
* @功能说明:申请技师
|
|
*/
|
|
public function coachApply(){
|
|
|
|
$input = $this->_input;
|
|
|
|
if(!empty($input['short_code'])){
|
|
|
|
$short_code = getCache($input['mobile'],$this->_uniacid);
|
|
//验证码验证手机号
|
|
if($input['short_code']!=$short_code){
|
|
|
|
return $this->error('验证码错误');
|
|
|
|
}
|
|
|
|
unset($input['short_code']);
|
|
}
|
|
|
|
$res = $this->coach_model->coachApply($input,$this->getUserId(),$this->_uniacid);
|
|
|
|
if(!empty($res['code'])){
|
|
|
|
$this->errorMsg($res['msg']);
|
|
}
|
|
|
|
setCache($input['mobile'],'',99,$this->_uniacid);
|
|
|
|
return $this->success($res);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-07 22:41
|
|
* @功能说明:教练收藏列表
|
|
*/
|
|
|
|
public function coachCollectList(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$config_model = new ConfigSetting();
|
|
|
|
$config = $config_model->dataInfo($this->_uniacid);
|
|
|
|
$collect_model = new CoachCollect();
|
|
|
|
if($config['coach_format']==1){
|
|
|
|
$data = $collect_model->coachCollectListTypeOne($input,$this->_user['id'],$this->_uniacid);
|
|
|
|
}else{
|
|
|
|
$data = $collect_model->coachCollectListTypeTow($input,$this->_user['id'],$this->_uniacid);
|
|
}
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-07 22:57
|
|
* @功能说明:添加技师收藏
|
|
*/
|
|
public function addCollect(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'coach_id'=> $input['coach_id'],
|
|
|
|
'user_id' => $this->getUserId()
|
|
];
|
|
|
|
$collect_model = new CoachCollect();
|
|
|
|
$res = $collect_model->dataAdd($insert);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-07 22:59
|
|
* @功能说明:取消收藏
|
|
*/
|
|
public function delCollect(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'coach_id'=> $input['coach_id'],
|
|
|
|
'user_id' => $this->getUserId()
|
|
];
|
|
|
|
$collect_model = new CoachCollect();
|
|
|
|
$res = $collect_model->where($dis)->delete();
|
|
|
|
return $this->success($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-08 11:51
|
|
* @功能说明:用户优惠券列表
|
|
*/
|
|
public function userCouponList(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$this->coupon_record_model->initCoupon($this->_uniacid);
|
|
|
|
$dis = [
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'status' => $input['status'],
|
|
|
|
'is_show' => 1
|
|
];
|
|
|
|
$data = $this->coupon_record_model->dataList($dis);
|
|
|
|
if(!empty($data['data'])){
|
|
|
|
foreach ($data['data'] as &$v){
|
|
|
|
$v['start_time'] = date('Y.m.d H:i',$v['start_time']).' - '.date('Y.m.d H:i',$v['end_time']);
|
|
|
|
}
|
|
}
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-16 22:09
|
|
* @功能说明:删除优惠券
|
|
*/
|
|
public function couponDel(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$coupon = $this->coupon_record_model->dataInfo(['id'=>$input['coupon_id']]);
|
|
|
|
if($coupon['status']==1){
|
|
|
|
$this->errorMsg('待使用待卡券不能删除');
|
|
}
|
|
|
|
$res = $this->coupon_record_model->dataUpdate(['id'=>$input['coupon_id']],['is_show'=>0]);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-13 19:45
|
|
* @功能说明:优惠券活动详情
|
|
*/
|
|
public function couponAtvInfo(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$atv_record_model = new CouponAtvRecord();
|
|
|
|
$atv_record_list_model = new CouponAtvRecordList();
|
|
|
|
$atv_model = new CouponAtv();
|
|
|
|
if(empty($input['id'])){
|
|
|
|
$dis_where[] = ['status','=',1];
|
|
|
|
$dis_where[] = ['end_time','<',time()];
|
|
//修改过期状态
|
|
$atv_record_model->dataUpdate($dis_where,['status'=>3]);
|
|
|
|
$dis = [
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'status' => 1
|
|
];
|
|
//查询有没有进行中的活动
|
|
$atv_ing = $atv_record_model->dataInfo($dis);
|
|
|
|
if(empty($atv_ing)){
|
|
|
|
$atv_ing = $this->couponAtvAdd();
|
|
}
|
|
//
|
|
if(empty($atv_ing)){
|
|
|
|
$atv_ing = $atv_record_model->where(['user_id'=>$this->getUserId()])->order('id desc')->find();
|
|
|
|
$atv_ing = !empty($atv_ing)?$atv_ing->toArray():[];
|
|
}
|
|
|
|
if(empty($atv_ing)){
|
|
|
|
$this->errorMsg('你没有可以进行的活动');
|
|
}
|
|
|
|
}else{
|
|
|
|
$dis = [
|
|
|
|
'id' => $input['id']
|
|
];
|
|
//查询有没有进行中的活动
|
|
$atv_ing = $atv_record_model->dataInfo($dis);
|
|
}
|
|
|
|
$atv = $atv_model->dataInfo(['uniacid'=>$this->_uniacid]);
|
|
|
|
$atv_ing['atv_num'] = $atv['atv_num'];
|
|
|
|
$atv_ing['end_time'] -= time();
|
|
|
|
$atv_ing['end_time'] = $atv_ing['end_time']>0?$atv_ing['end_time']:0;
|
|
|
|
$data['atv_info'] = $atv_ing;
|
|
//邀请记录
|
|
$data['record_list'] = $atv_record_list_model->dataList(['a.record_id'=>$atv_ing['id']],50);
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-12 16:29
|
|
* @功能说明:发起优惠券活动
|
|
*/
|
|
public function couponAtvAdd(){
|
|
|
|
$atv_model = new CouponAtv();
|
|
|
|
$atv_record_model = new CouponAtvRecord();
|
|
|
|
$atv_record_coupon_model = new CouponAtvRecordCoupon();
|
|
|
|
$atv_config = $atv_model->dataInfo(['uniacid'=>$this->_uniacid]);
|
|
|
|
|
|
if($atv_config['status']==0){
|
|
|
|
return [];
|
|
}
|
|
|
|
if($atv_config['start_time']>time()||$atv_config['end_time']<time()){
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
if(empty($atv_config['coupon'])){
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
$where[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$where[] = ['status','<>',3];
|
|
|
|
$count = $atv_record_model->where($where)->count();
|
|
|
|
if($count>=$atv_config['atv_num']){
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'atv_id' => $atv_config['id'],
|
|
|
|
'atv_start_time' => $atv_config['start_time'],
|
|
|
|
'atv_end_time' => $atv_config['end_time'],
|
|
|
|
'inv_user_num' => $atv_config['inv_user_num'],
|
|
|
|
'inv_time' => $atv_config['inv_time'],
|
|
|
|
'start_time' => time(),
|
|
|
|
'end_time' => time()+$atv_config['inv_time']*3600,
|
|
|
|
'inv_user' => $atv_config['inv_user'],
|
|
|
|
'to_inv_user' => $atv_config['to_inv_user'],
|
|
|
|
'share_img' => $atv_config['share_img'],
|
|
|
|
];
|
|
|
|
Db::startTrans();
|
|
|
|
$res = $atv_record_model->dataAdd($insert);
|
|
|
|
if($res==0){
|
|
|
|
Db::rollback();
|
|
|
|
$this->errorMsg('发起活动失败');
|
|
}
|
|
|
|
$record_id = $atv_record_model->getLastInsID();
|
|
//记录该活动需要派发那些券
|
|
foreach ($atv_config['coupon'] as $value){
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'atv_id' => $atv_config['id'],
|
|
|
|
'record_id' => $record_id,
|
|
|
|
'coupon_id' => $value['coupon_id'],
|
|
|
|
'num' => $value['num'],
|
|
|
|
];
|
|
|
|
$res = $atv_record_coupon_model->dataAdd($insert);
|
|
|
|
if($res==0){
|
|
|
|
Db::rollback();
|
|
|
|
$this->errorMsg('发起活动失败');
|
|
}
|
|
|
|
}
|
|
|
|
Db::commit();
|
|
|
|
$record = $atv_record_model->dataInfo(['id'=>$record_id]);
|
|
|
|
return $record;
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-25 17:40
|
|
* @功能说明:生产二维码
|
|
*/
|
|
|
|
public function atvQr(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$key = 'atv_coupon'.$input['coupon_atv_id'];
|
|
|
|
$qr = getCache($key,$this->_uniacid);
|
|
|
|
if(empty($qr)){
|
|
|
|
// $qr_insert = [
|
|
//
|
|
// 'coupon_atv_id' => $input['coupon_atv_id']
|
|
// ];
|
|
//获取二维码
|
|
$qr = $this->model->orderQr($input,$this->_uniacid);
|
|
|
|
setCache($key,$qr,86400,$this->_uniacid);
|
|
}
|
|
|
|
$qr = !empty($qr)?$qr:$this->defaultImage['image'];
|
|
|
|
return $this->success($qr);
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-07-14 19:22
|
|
* @功能说明:授权手机号
|
|
*/
|
|
public function reportPhone ()
|
|
{
|
|
|
|
$params = $this->_input;
|
|
|
|
$encryptedData = $params[ 'encryptedData' ];
|
|
|
|
$iv = $params[ 'iv' ];
|
|
|
|
$config = longbingGetAppConfig($this->_uniacid);
|
|
|
|
$appid = $config[ 'appid' ];
|
|
|
|
// $appsecret = $config[ 'app_secret' ];
|
|
|
|
$session_key = $this->model->where(['id'=>$this->getUserId()])->value('session_key');
|
|
|
|
if(empty($session_key)){
|
|
|
|
$this->errorMsg('need login',401);
|
|
}
|
|
$data = null;
|
|
// 解密
|
|
$errCode = decryptDataLongbing( $appid, $session_key, $encryptedData, $iv, $data );
|
|
|
|
if ( $errCode == 0 )
|
|
{
|
|
$data = json_decode( $data, true );
|
|
|
|
$phone = $data[ 'purePhoneNumber' ];
|
|
|
|
}
|
|
else
|
|
{
|
|
return $this->error( $errCode );
|
|
}
|
|
|
|
$res = $this->model->dataUpdate(['id'=>$this->getUserId()],['phone'=>$phone]);
|
|
|
|
$user_info = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
|
|
setCache($this->autograph, $user_info, 7200, $this->_uniacid);
|
|
|
|
return $this->success($phone);
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-08-28 23:03
|
|
* @功能说明:佣金记录
|
|
*/
|
|
public function commList(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$limit = !empty($input['limit'])?$input['limit']:10;
|
|
|
|
$dis[] = ['a.uniacid','=',$this->_uniacid];
|
|
|
|
$dis[] = ['a.top_id','=',$this->getUserId()];
|
|
|
|
$dis[] = ['a.type','in',[1,9]];
|
|
|
|
if(!empty($input['status'])){
|
|
|
|
$dis[] = ['a.status','=',$input['status']];
|
|
}else{
|
|
|
|
$dis[] = ['a.status','>',-1];
|
|
|
|
}
|
|
|
|
$comm_model = new Commission();
|
|
|
|
$order_model = new Order();
|
|
|
|
$order_model->coachBalanceArr($this->_uniacid);
|
|
|
|
$coach_model = new Coach();
|
|
|
|
$data = $comm_model->recordList($dis,$limit);
|
|
|
|
$data['total_cash'] = $comm_model->where(['top_id'=>$this->getUserId()])->where('type','in',[1,9])->where('status','>',-1)->sum('cash');
|
|
|
|
$data['total_cash'] = round($data['total_cash'],2);
|
|
|
|
if(!empty($data['data'])){
|
|
|
|
foreach ($data['data'] as &$v){
|
|
|
|
$coach_id = $order_model->where(['id'=>$v['order_id']])->value('coach_id');
|
|
|
|
$v['coach_name'] = $coach_model->where(['id'=>$coach_id])->value('coach_name');
|
|
|
|
$v['nickName'] = $this->model->where(['id'=>$v['user_id']])->value('nickName');
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
}
|
|
}
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-03-09 13:43
|
|
* @功能说明:base64转图片
|
|
*/
|
|
public function base64ToImg(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$image = $input['img'];
|
|
|
|
$imageName = "25220_".date("His",time())."_".rand(1111,9999).'.png';
|
|
|
|
if (strstr($image,",")){
|
|
$image = explode(',',$image);
|
|
$image = $image[1];
|
|
}
|
|
|
|
$base_path = '/image/' . $this->uniacid . '/' . date('y') . '/' . date('m');
|
|
|
|
$path = FILE_UPLOAD_PATH.$base_path;
|
|
|
|
if (!is_dir($path)){ //判断目录是否存在 不存在就创建
|
|
mkdir($path,0777,true);
|
|
}
|
|
$imageSrc= $path."/". $imageName; //图片名字
|
|
|
|
$r = file_put_contents($imageSrc, base64_decode($image));//返回的是字节数
|
|
// if (!$r) {
|
|
// return json(['data'=>null,"code"=>1,"msg"=>"图片生成失败"]);
|
|
// }else{
|
|
// return json(['data'=>1,"code"=>0,"msg"=>"图片生成成功"]);
|
|
// }
|
|
|
|
$img = UPLOAD_PATH.$imageSrc;
|
|
|
|
return $this->success($img);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-25 17:40
|
|
* @功能说明:加盟商邀请技师二维码
|
|
*/
|
|
|
|
public function adminCoachQr(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$admin_model = new \app\massage\model\Admin();
|
|
|
|
$dis = [
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'status' => 1
|
|
];
|
|
|
|
$admin_user = $admin_model->dataInfo($dis);
|
|
|
|
if(empty($admin_user)){
|
|
|
|
$this->errorMsg('你还不是加盟商');
|
|
}
|
|
|
|
$key = 'join_admin'.$admin_user['id'].'-'.$this->is_app;
|
|
|
|
$qr = getCache($key,$this->_uniacid);
|
|
|
|
if(empty($qr)){
|
|
//小程序
|
|
if($this->is_app==0){
|
|
|
|
$input['page'] = 'technician/pages/apply';
|
|
|
|
// $input['page'] = 'pages/user/home';
|
|
|
|
$input['admin_id'] = $admin_user['id'];
|
|
//获取二维码
|
|
$qr = $this->model->orderQr($input,$this->_uniacid);
|
|
|
|
}else{
|
|
|
|
$page = 'https://'.$_SERVER['HTTP_HOST'].'/h5/#/technician/pages/apply?admin_id='.$admin_user['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: 2022-06-14 18:44
|
|
* @功能说明:用户分销数据
|
|
*/
|
|
public function userCashInfo(){
|
|
|
|
$user_info = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
|
|
$data['new_cash'] = $user_info['new_cash'];
|
|
|
|
$dis = [
|
|
|
|
'top_id' => $this->getUserId(),
|
|
|
|
'type' => 1
|
|
];
|
|
|
|
$comm_model = new Commission();
|
|
|
|
$wallet_model = new Wallet();
|
|
|
|
$data['total_cash'] = $comm_model->where($dis)->where('status','>',-1)->sum('cash');
|
|
|
|
$dis['status'] = 1;
|
|
//未入账金额
|
|
$data['unrecorded_cash'] = $comm_model->where($dis)->sum('cash');
|
|
|
|
$data['unrecorded_cash'] = round($data['unrecorded_cash'],2);
|
|
|
|
$data['total_cash'] = round($data['total_cash'],2);
|
|
//累计提现
|
|
$data['extract_total_price'] = $wallet_model->userCash($this->getUserId(),2);
|
|
|
|
$data['extract_ing_price'] = $wallet_model->userCash($this->getUserId(),1);
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-24 13:33
|
|
* @功能说明:用户申请提现
|
|
*/
|
|
public function applyWallet(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$user_info = $this->model->dataInfo(['id'=>$this->getUserId()]);
|
|
|
|
$new_cash = $user_info['new_cash'];
|
|
|
|
if(empty($input['apply_price'])||$input['apply_price']<0.01){
|
|
|
|
$this->errorMsg('提现费最低一分');
|
|
}
|
|
//服务费
|
|
if($input['apply_price']>$new_cash){
|
|
|
|
$this->errorMsg('余额不足');
|
|
}
|
|
//获取税点
|
|
$tax_point = getConfigSetting($this->_uniacid,'tax_point');
|
|
|
|
$balance = 100-$tax_point;
|
|
|
|
$key = 'user_wallet'.$this->getUserId();
|
|
|
|
$value = getCache($key,$this->_uniacid);
|
|
|
|
if(!empty($value)){
|
|
|
|
$this->errorMsg('网络错误,请刷新重试');
|
|
|
|
}
|
|
//加一个锁防止重复提交
|
|
incCache($key,1,$this->_uniacid);
|
|
|
|
Db::startTrans();
|
|
//减佣金
|
|
$res = $this->model->dataUpdate(['id'=>$this->getUserId(),'lock'=>$user_info['lock']],['new_cash'=>$user_info['new_cash']-$input['apply_price'],'lock'=>$user_info['lock']+1]);
|
|
|
|
if($res!=1){
|
|
|
|
Db::rollback();
|
|
//减掉
|
|
delCache($key,$this->_uniacid);
|
|
|
|
$this->errorMsg('申请失败');
|
|
}
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'coach_id' => 0,
|
|
|
|
'admin_id' => 0,
|
|
|
|
'total_price' => $input['apply_price'],
|
|
|
|
'balance' => $balance,
|
|
|
|
'apply_price' => round($input['apply_price']*$balance/100,2),
|
|
|
|
'service_price' => round( $input['apply_price'] * $tax_point / 100, 2),
|
|
|
|
'tax_point' => $tax_point,
|
|
|
|
'code' => orderCode(),
|
|
|
|
'text' => $input['text'],
|
|
|
|
'type' => 4,
|
|
|
|
'apply_transfer' => !empty($input['apply_transfer'])?$input['apply_transfer']:0,
|
|
'chikaren' => !empty($input['chikaren'])?$input['chikaren']:'',
|
|
|
|
'kaihuhang' => !empty($input['kaihuhang'])?$input['kaihuhang']:'',
|
|
|
|
'suoshuzhihang' => !empty($input['suoshuzhihang'])?$input['suoshuzhihang']:'',
|
|
|
|
'yinhangkahao' => !empty($input['yinhangkahao'])?$input['yinhangkahao']:'',
|
|
|
|
];
|
|
|
|
$wallet_model = new Wallet();
|
|
//提交审核
|
|
$res = $wallet_model->dataAdd($insert);
|
|
|
|
if($res!=1){
|
|
|
|
Db::rollback();
|
|
//减掉
|
|
delCache($key,$this->_uniacid);
|
|
|
|
$this->errorMsg('申请失败');
|
|
}
|
|
|
|
Db::commit();
|
|
//减掉
|
|
delCache($key,$this->_uniacid);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-30 14:39
|
|
* @功能说明:用户分销提现记录
|
|
*/
|
|
public function walletList(){
|
|
|
|
$wallet_model = new Wallet();
|
|
|
|
$input = $this->_param;
|
|
|
|
$dis = [
|
|
|
|
'user_id' => $this->getUserId()
|
|
];
|
|
|
|
if(!empty($input['status'])){
|
|
|
|
$dis['status'] = $input['status'];
|
|
}
|
|
|
|
$dis['type'] = 4;
|
|
//提现记录
|
|
$data = $wallet_model->dataList($dis,10);
|
|
|
|
if(!empty($data['data'])){
|
|
|
|
foreach ($data['data'] as &$v){
|
|
|
|
$v['create_time'] = date('Y-m-d H:i:s',$v['create_time']);
|
|
}
|
|
}
|
|
//累计提现
|
|
$data['extract_total_price'] = $wallet_model->userCash($this->getUserId(),2);
|
|
|
|
return $this->success($data);
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-06-15 14:56
|
|
* @功能说明:我的团队
|
|
*/
|
|
public function myTeam(){
|
|
|
|
$user_model = new User();
|
|
|
|
$dis = [
|
|
|
|
'a.pid' => $this->getUserId()
|
|
];
|
|
|
|
$data = $user_model->alias('a')
|
|
->join('massage_service_order_list b','a.id = b.user_id AND b.pay_type > 1','left')
|
|
->where($dis)
|
|
->field('a.id,a.nickName,a.avatarUrl,ifnull(SUM(b.true_service_price),0) as pay_price,ifnull(COUNT(b.id),0) as order_count')
|
|
->group('a.id')
|
|
->order('pay_price desc,a.id desc')
|
|
->paginate(10)
|
|
->toArray();
|
|
|
|
if(!empty($data['data'])){
|
|
|
|
foreach ($data['data'] as &$v){
|
|
|
|
$v['pay_price'] = round($v['pay_price'],2);
|
|
}
|
|
}
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-25 17:40
|
|
* @功能说明:加盟商邀请技师二维码
|
|
*/
|
|
|
|
public function userCommQr(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$key = 'user_commss'.$this->getUserId().'-'.$this->is_app;
|
|
|
|
$qr = getCache($key,$this->_uniacid);
|
|
|
|
if(empty($qr)){
|
|
//小程序
|
|
if($this->is_app==0){
|
|
|
|
$input['page'] = 'user/pages';
|
|
|
|
$input['pid'] = $this->getUserId();
|
|
//获取二维码
|
|
$qr = $this->model->orderQr($input,$this->_uniacid);
|
|
|
|
}else{
|
|
|
|
$page = 'https://'.$_SERVER['HTTP_HOST'].'/h5/#/user/pages/gzh?pid='.$this->getUserId();
|
|
|
|
$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: 2022-07-21 17:08
|
|
* @功能说明:申请分销商
|
|
*/
|
|
public function applyReseller(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$distribution_model = new DistributionList();
|
|
|
|
$dis[] = ['status','>',-1];
|
|
|
|
$dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$find = $distribution_model->dataInfo($dis);
|
|
|
|
if(!empty($find)&&in_array($find['status'],[1,2,3])){
|
|
|
|
$this->errorMsg('你已经申请');
|
|
|
|
}
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'user_name'=> $input['user_name'],
|
|
|
|
'mobile' => $input['mobile'],
|
|
|
|
'text' => $input['text'],
|
|
|
|
'status' => 1,
|
|
|
|
];
|
|
|
|
if(!empty($find)&&$find['status']==4){
|
|
|
|
$res = $distribution_model->dataUpdate(['id'=>$find['id']],$insert);
|
|
|
|
}else{
|
|
|
|
$res = $distribution_model->dataAdd($insert);
|
|
}
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-23 09:39
|
|
* @功能说明:分销商详情
|
|
*/
|
|
public function resellerInfo(){
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','in',[1,2,3,4]];
|
|
|
|
$distribution_model = new DistributionList();
|
|
|
|
$cap_info = $distribution_model->dataInfo($cap_dis);
|
|
|
|
return $this->success($cap_info);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-07-21 17:08
|
|
* @功能说明:申请渠道商
|
|
*/
|
|
public function applyChannel(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$distribution_model = new ChannelList();
|
|
|
|
$dis[] = ['status','>',-1];
|
|
|
|
$dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$find = $distribution_model->dataInfo($dis);
|
|
|
|
if(!empty($find)&&in_array($find['status'],[1,2,3])){
|
|
|
|
$this->errorMsg('你已经申请');
|
|
|
|
}
|
|
//如果是业务员邀请需要绑定业务员以及业务员的代理商
|
|
if(!empty($input['salesman_id'])){
|
|
|
|
$salesman_model = new Salesman();
|
|
|
|
$salesman = $salesman_model->dataInfo(['id'=>$input['salesman_id']]);
|
|
|
|
if(!empty($salesman)){
|
|
|
|
$salesman_id = $salesman['id'];
|
|
|
|
$admin_id = $salesman['admin_id'];
|
|
}
|
|
|
|
}
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'user_name'=> $input['user_name'],
|
|
|
|
'mobile' => $input['mobile'],
|
|
|
|
'cate_id' => $input['cate_id'],
|
|
|
|
'text' => !empty($input['text'])?$input['text']:'',
|
|
|
|
'status' => 1,
|
|
|
|
'salesman_id'=> !empty($salesman_id)?$salesman_id:0,
|
|
|
|
'admin_id' => !empty($admin_id)?$admin_id:0,
|
|
];
|
|
|
|
if(!empty($find)&&$find['status']==4){
|
|
|
|
$res = $distribution_model->dataUpdate(['id'=>$find['id']],$insert);
|
|
|
|
}else{
|
|
|
|
$res = $distribution_model->dataAdd($insert);
|
|
}
|
|
|
|
return $this->success($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2021-03-23 09:39
|
|
* @功能说明:渠道商详情
|
|
*/
|
|
public function channelInfo(){
|
|
|
|
if(empty($this->getUserId())){
|
|
|
|
return $this->success([]);
|
|
|
|
}
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','in',[1,2,3,4]];
|
|
|
|
$distribution_model = new ChannelList();
|
|
|
|
$cap_info = $distribution_model->dataInfo($cap_dis);
|
|
|
|
return $this->success($cap_info);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-08-30 14:57
|
|
* @功能说明:渠道商分类下拉框
|
|
*/
|
|
public function channelCateSelect(){
|
|
|
|
$cate_model = new ChannelCate();
|
|
|
|
$dis = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'status' => 1
|
|
];
|
|
|
|
$data = $cate_model->where($dis)->select()->toArray();
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-03-14 11:55
|
|
* @功能说明:发送验证码
|
|
*/
|
|
public function sendShortMsg(){
|
|
|
|
|
|
$input = $this->_input;
|
|
|
|
//验证码验证
|
|
$config = new ShortCodeConfig();
|
|
|
|
$dis = [
|
|
|
|
'uniacid' =>$this->_uniacid,
|
|
|
|
'phone' => $input['phone']
|
|
];
|
|
|
|
$find = $this->model->dataInfo($dis);
|
|
|
|
if(!empty($find)){
|
|
|
|
// $this->errorMsg('该手机号已经被绑定');
|
|
}
|
|
|
|
$res = $config->sendSmsCode($input['phone'],$this->_uniacid);
|
|
|
|
if(!empty($res['Message'])&&$res['Message']=='OK'){
|
|
|
|
return $this->success(1);
|
|
|
|
}else{
|
|
|
|
return $this->error($res['Message']);
|
|
|
|
}
|
|
|
|
}
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-03-14 11:55
|
|
* @功能说明:发送验证码
|
|
*/
|
|
public function sendCodeMsg(){
|
|
|
|
|
|
$input = $this->_input;
|
|
|
|
//验证码验证
|
|
$config = new ShortCodeConfig();
|
|
//判断是否存在未验证的验证码
|
|
|
|
|
|
$short_code = getCache($input['phone'],'666');
|
|
|
|
if($short_code) return $this->error("操作频繁,请歇一会");
|
|
$res = $config->sendSmsCode($input['phone'],$this->_uniacid);
|
|
|
|
if(!empty($res['Message'])&&$res['Message']=='OK'){
|
|
|
|
return $this->success(1);
|
|
|
|
}else{
|
|
|
|
return $this->error($res['Message']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-08-26 10:29
|
|
* @功能说明:判断用户手机号
|
|
*/
|
|
public function bindUserPhone(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'uniacid' =>$this->_uniacid,
|
|
|
|
'phone' => $input['phone']
|
|
];
|
|
|
|
$find = $this->model->dataInfo($dis);
|
|
|
|
// if(!empty($find)){
|
|
//
|
|
// // $this->errorMsg('该手机号已经被绑定');
|
|
// }
|
|
|
|
$short_code = getCache($input['phone'],$this->_uniacid);
|
|
//验证码验证手机号
|
|
if($input['short_code']!=$short_code){
|
|
|
|
return $this->error('验证码错误');
|
|
|
|
}
|
|
if(!empty($find)){
|
|
//解除绑定
|
|
$this->model->dataUpdate($dis,['phone'=>'']);
|
|
}
|
|
|
|
$res = $this->model->dataUpdate(['id'=>$this->getUserId()],$dis);
|
|
|
|
$user = $this->getUserInfo();
|
|
|
|
$user['phone'] = $input['phone'];
|
|
|
|
$key = 'longbing_user_autograph_' . $user['id'];
|
|
|
|
$key = md5($key);
|
|
|
|
setCache($key, $user, 7200);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
/**
|
|
* 添加反馈
|
|
* @return \think\Response
|
|
*/
|
|
public function addFeedback()
|
|
{
|
|
$input = $this->request->only(['type_name', 'order_code', 'content', 'images', 'video_url']);
|
|
$rule = [
|
|
'type_name' => 'require',
|
|
'content' => 'require',
|
|
];
|
|
$validate = \think\facade\Validate::rule($rule);
|
|
if (!$validate->check($input)) {
|
|
return $this->error($validate->getError());
|
|
}
|
|
$input['coach_id'] = $this->getUserId();
|
|
$input['uniacid'] = $this->_uniacid;
|
|
if (!empty($input['images'])) {
|
|
$input['images'] = json_encode($input['images']);
|
|
}
|
|
$input['create_time'] = time();
|
|
$res = Feedback::insert($input);
|
|
if ($res) {
|
|
return $this->success('');
|
|
}
|
|
return $this->error('提交失败');
|
|
}
|
|
|
|
/**
|
|
* 反馈列表
|
|
* @return \think\Response
|
|
*/
|
|
public function listFeedback()
|
|
{
|
|
$input = $this->request->param();
|
|
$limit = $this->request->param('limit',10);
|
|
$where = [];
|
|
if (isset($input['status']) && in_array($input['status'], [1, 2])) {
|
|
$where[] = ['a.status', '=', $input['status']];
|
|
}
|
|
$where[] = ['a.coach_id', '=', $this->getUserId()];
|
|
$where[] = ['a.uniacid', '=', $this->_uniacid];
|
|
$data = Feedback::getList($where,$limit);
|
|
$data['wait'] = Feedback::where(['coach_id' => $this->getUserId(), 'uniacid' => $this->_uniacid, 'status' => 1])->count();
|
|
return $this->success($data);
|
|
}
|
|
|
|
/**
|
|
* 详情
|
|
* @return \think\Response
|
|
*/
|
|
public function feedbackInfo()
|
|
{
|
|
$id = $this->request->param('id');
|
|
if (empty($id)) {
|
|
return $this->error('参数错误');
|
|
}
|
|
$data = Feedback::getInfo(['a.id' => $id]);
|
|
return $this->success($data);
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-10-18 15:31
|
|
* @功能说明:
|
|
*/
|
|
public function delUserInfo(){
|
|
|
|
if(empty($this->getUserId())){
|
|
|
|
$this->errorMsg('请先登录');
|
|
}
|
|
|
|
$order_model = new Order();
|
|
|
|
$order = $order_model->where(['user_id'=>$this->getUserId()])->where('pay_type','not in',[-1,7])->find();
|
|
|
|
if(!empty($order)){
|
|
|
|
$this->errorMsg('你还有订单未完成');
|
|
}
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','>',-1];
|
|
|
|
$cap_info = $this->coach_model->dataInfo($cap_dis);
|
|
|
|
if(!empty($cap_info)){
|
|
|
|
$this->errorMsg('技师不能注销');
|
|
|
|
}
|
|
|
|
$open_id = $this->getUserInfo()['openid'].time();
|
|
|
|
$res = $this->model->dataUpdate(['id'=>$this->getUserId()],['status'=>-1,'openid'=>$open_id]);
|
|
|
|
setCache($this->autograph,'',0);
|
|
|
|
return $this->success(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-01-30 16:03
|
|
* @功能说明:屏蔽技师和屏蔽技师动态 type1动态 2技师
|
|
*/
|
|
public function shieldCoachAdd(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'coach_id' => $input['coach_id'],
|
|
|
|
'user_id' => $this->_user_id,
|
|
|
|
'type' => $input['type'],
|
|
|
|
'uniacid' => $this->_uniacid
|
|
];
|
|
|
|
$shield_model = new ShieldList();
|
|
//没屏蔽过再屏蔽
|
|
$find = $shield_model->dataInfo($dis);
|
|
|
|
if(empty($find)){
|
|
|
|
$shield_model->dataAdd($dis);
|
|
|
|
}
|
|
|
|
return $this->success(true);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-01-30 16:03
|
|
* @功能说明:解除技师屏蔽
|
|
*/
|
|
public function shieldCoachDel(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'id' => $input['id'],
|
|
];
|
|
|
|
$shield_model = new ShieldList();
|
|
|
|
$res = $shield_model->where($dis)->delete();
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-01-30 16:03
|
|
* @功能说明:解除技师屏蔽
|
|
*/
|
|
public function shieldCoachList(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$dis = [
|
|
|
|
'a.user_id' => $this->_user_id,
|
|
|
|
'a.type' => $input['type']
|
|
];
|
|
|
|
$shield_model = new ShieldList();
|
|
|
|
$res = $shield_model->dataList($dis);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-02-24 11:31
|
|
* @功能说明:绑定支付宝账号
|
|
*/
|
|
public function bindAlipayNumber(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$dis = [
|
|
|
|
'id' => $this->_user_id
|
|
];
|
|
|
|
$res = $this->model->dataUpdate($dis,['alipay_number'=>$input['alipay_number'],'alipay_name'=>$input['alipay_name']]);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2022-12-09 15:18
|
|
* @功能说明:技师获取客户虚拟电话
|
|
*/
|
|
public function getVirtualPhone(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$order_model = new Order();
|
|
|
|
$order = $order_model->dataInfo(['id'=>$input['order_id']]);
|
|
|
|
$called = new \app\virtual\model\Config();
|
|
|
|
$res = $called->getVirtual($order,2);
|
|
|
|
return $this->success($res);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-04-03 10:30
|
|
* @功能说明:获取门店下拉框
|
|
*/
|
|
public function getStoreSelect(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$store_model = new StoreList();
|
|
|
|
$dis = [
|
|
|
|
'uniacid'=> $this->_uniacid,
|
|
|
|
'status' => 1
|
|
];
|
|
|
|
if(!empty($input['admin_id'])){
|
|
|
|
$dis['admin_id'] = $input['admin_id'];
|
|
}
|
|
|
|
$data = $store_model->where($dis)->field('id,title')->select()->toArray();
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-04-21 10:33
|
|
* @功能说明:申请业务员
|
|
*/
|
|
public function applySalesman(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$salesman_model = new Salesman();
|
|
|
|
$dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$dis[] = ['status','>',-1];
|
|
|
|
$info = $salesman_model->dataInfo($dis);
|
|
|
|
if(!empty($info)&&in_array($info['status'],[1,2,3])){
|
|
|
|
$this->errorMsg('你已经申请过分销员了');
|
|
}
|
|
//是否开启审核
|
|
if(getConfigSetting($this->_uniacid,'salesman_check_status')==1){
|
|
|
|
$status = 1;
|
|
|
|
$sh_time = 0;
|
|
}else{
|
|
|
|
$status = 2;
|
|
|
|
$sh_time = time();
|
|
|
|
}
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'user_id' => $this->getUserId(),
|
|
|
|
'admin_id'=> $input['admin_id'],
|
|
|
|
'phone' => $input['phone'],
|
|
|
|
'user_name'=> $input['user_name'],
|
|
|
|
'status' => $status,
|
|
|
|
'sh_time' => $sh_time,
|
|
|
|
];
|
|
|
|
$res = $salesman_model->dataAdd($insert);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-04-21 11:30
|
|
* @功能说明:业务员详情
|
|
*/
|
|
public function salesmanInfo(){
|
|
|
|
$input = $this->_param;
|
|
|
|
$salesman_model = new Salesman();
|
|
|
|
$admin_model = new \app\massage\model\Admin();
|
|
|
|
$cap_dis[] = ['user_id','=',$this->getUserId()];
|
|
|
|
$cap_dis[] = ['status','in',[1,2,3,4]];
|
|
|
|
$data = $salesman_model->dataInfo($cap_dis);
|
|
|
|
if(!empty($data)){
|
|
|
|
$data['admin_name'] = $admin_model->where(['id'=>$data['admin_id'],'status'=>1])->value('agent_name');
|
|
}
|
|
|
|
return $this->success($data);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-05-09 15:28
|
|
* @功能说明:申请代理商合伙人
|
|
*/
|
|
public function agentApply(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$agent_model = new AgentApply();
|
|
|
|
$input['uniacid'] = $this->_uniacid;
|
|
|
|
$input['user_id'] = $this->_user['id'];
|
|
|
|
if(!empty($input['short_code'])){
|
|
|
|
$short_code = getCache($input['phone'],$this->_uniacid);
|
|
//验证码验证手机号
|
|
if($input['short_code']!=$short_code){
|
|
|
|
return $this->error('验证码错误');
|
|
|
|
}
|
|
|
|
unset($input['short_code']);
|
|
|
|
setCache($input['phone'],'',99,$this->_uniacid);
|
|
|
|
}
|
|
|
|
$res = $agent_model->dataAdd($input);
|
|
|
|
return $this->success($res);
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* @author chenniang
|
|
* @DataTime: 2023-05-29 18:28
|
|
* @功能说明:绑定渠道商
|
|
*/
|
|
public function bindChannel(){
|
|
|
|
$input = $this->_input;
|
|
|
|
$channel_model = new UserChannel();
|
|
|
|
$channel_model->where(['user_id'=>$this->_user['id']])->delete();
|
|
|
|
$user_channel_over_time = getConfigSetting($this->_uniacid,'user_channel_over_time');
|
|
|
|
$insert = [
|
|
|
|
'uniacid' => $this->_uniacid,
|
|
|
|
'user_id' => $this->_user['id'],
|
|
|
|
'channel_id' => $input['channel_id'],
|
|
|
|
'over_time' => time()+$user_channel_over_time*3600
|
|
];
|
|
|
|
$res = $channel_model->dataAdd($insert);
|
|
|
|
return $this->success($res);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|