// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\api\model; use app\api\model\UserAuthcode as UserAuthcodeModel; use app\api\service\User as UserService; use app\common\model\ApplySeller as ApplySellerModel; /** * 配送模板模型 * Class Delivery * @package app\common\model */ class ApplySeller extends ApplySellerModel { /** * 隐藏字段 * @var array */ protected $hidden = [ 'is_delete', 'store_id', 'update_time' ]; /** * 添加申请记录,通过邀请码升级的分销员不需要经过后台审核 * @param $param * @return bool|mixed * @throws \app\common\exception\BaseException * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author: zjwhust * @Time: 2021/12/10 17:20 */ public function addNew($param){ // if(isset($param['seller_grade']) && !in_array($param['seller_grade'],[1,2,3])){ // $this->error = '推荐官等级非法'; // return false; // } $param['seller_grade'] = 1;//设置推荐官等级 $user = UserService::getCurrentLoginUser(true); if(isset($param['invite_code']) && !empty($param['invite_code'])){ $UserAuthcodeModel = UserAuthcodeModel::where(['invite_code'=>$param['invite_code']])->find(); if(!$UserAuthcodeModel){ $this->error = '邀请码不存在'; return false; } if($UserAuthcodeModel['activation_state']==1){ $this->error = '邀请码已被使用'; return false; } if($user['user_id']==$UserAuthcodeModel['user_id']){ $this->error = '不能分享给自己申请。'; return false; } $param['seller_grade'] = $UserAuthcodeModel['seller_grade']; //读取推荐官的当前等级 } if ($user['role'] != User::NORMAL_USER){ $this->error = '不能申请'; return false; } if(isset($param['upper_user_id'])&&$user['user_id']==$param['upper_user_id']){ $this->error = '不能分享给自己申请!'; return false; } return $this->transaction(function () use($user,$param) { // 更新申请状态 $status = $this->save([ 'user_id' => $user['user_id'], 'nick_name' => $user->nick_name, 'mobile' => $user->mobile, 'seller_grade' => $param['seller_grade'], 'invite_code' =>$param['invite_code']??'', // 'state' => isset($param['invite_code'])&&!empty($param['invite_code']) ? 1 : 0, 'state' => 1, ]); //通过邀请码升级的分销员不需要经过后台审核 if(isset($param['invite_code']) && !empty($param['invite_code'])){ UserAuthcodeModel::updateBase(['activation_state'=>1], ['invite_code'=>$param['invite_code']]);//激活码置为已激活 //用户等级修改为超级会员 // $user->seller_grade = $param['seller_grade']; // $user->seller_expire = strtotime('+1 year'); // $user->role = 99; // $user->save(); } //用户等级修改为超级会员 $user->seller_grade = $param['seller_grade']; $user->seller_expire = strtotime('+1 year'); $user->role = 99; //1.3.5版本添加推荐官绑定关系 //传了邀请码时 if(isset($param['invite_code']) && !empty($param['invite_code'])){ if($user->upper_user_id==0){ $UserAuthcodeModel = UserAuthcodeModel::where(['invite_code'=>$param['invite_code']])->find(); $upper_user = User::find($UserAuthcodeModel['user_id']); //当分享人角色是普通用户或者推荐官时才绑定关系 if($upper_user['role']==User::NORMAL_USER || $upper_user['role']==User::COMMISSION_USER){ $user->upper_user_id = $UserAuthcodeModel['user_id']; } } }else{//传了分享人ID并且当前用户没有上级推广人时 if(isset($param['upper_user_id']) && $param['upper_user_id']>0 && $user->upper_user_id==0){ $upper_user = User::find($param['upper_user_id']); //当分享人角色是普通用户或者推荐官时才绑定关系 if($upper_user['role']==User::NORMAL_USER || $upper_user['role']==User::COMMISSION_USER){ $user->upper_user_id = $param['upper_user_id']; } } } $user->save(); return $status; }); } }