123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <?php
- // +----------------------------------------------------------------------
- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
- // +----------------------------------------------------------------------
- // | Author: 萤火科技 <admin@yiovo.com>
- // +----------------------------------------------------------------------
- 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;
- });
- }
- }
|