ApplySeller.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
  8. // +----------------------------------------------------------------------
  9. // | Author: 萤火科技 <admin@yiovo.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace app\api\model;
  13. use app\api\model\UserAuthcode as UserAuthcodeModel;
  14. use app\api\service\User as UserService;
  15. use app\common\model\ApplySeller as ApplySellerModel;
  16. /**
  17. * 配送模板模型
  18. * Class Delivery
  19. * @package app\common\model
  20. */
  21. class ApplySeller extends ApplySellerModel
  22. {
  23. /**
  24. * 隐藏字段
  25. * @var array
  26. */
  27. protected $hidden = [
  28. 'is_delete',
  29. 'store_id',
  30. 'update_time'
  31. ];
  32. /**
  33. * 添加申请记录,通过邀请码升级的分销员不需要经过后台审核
  34. * @param $param
  35. * @return bool|mixed
  36. * @throws \app\common\exception\BaseException
  37. * @throws \think\db\exception\DataNotFoundException
  38. * @throws \think\db\exception\DbException
  39. * @throws \think\db\exception\ModelNotFoundException
  40. * @author: zjwhust
  41. * @Time: 2021/12/10 17:20
  42. */
  43. public function addNew($param){
  44. // if(isset($param['seller_grade']) && !in_array($param['seller_grade'],[1,2,3])){
  45. // $this->error = '推荐官等级非法';
  46. // return false;
  47. // }
  48. $param['seller_grade'] = 1;//设置推荐官等级
  49. $user = UserService::getCurrentLoginUser(true);
  50. if(isset($param['invite_code']) && !empty($param['invite_code'])){
  51. $UserAuthcodeModel = UserAuthcodeModel::where(['invite_code'=>$param['invite_code']])->find();
  52. if(!$UserAuthcodeModel){
  53. $this->error = '邀请码不存在';
  54. return false;
  55. }
  56. if($UserAuthcodeModel['activation_state']==1){
  57. $this->error = '邀请码已被使用';
  58. return false;
  59. }
  60. if($user['user_id']==$UserAuthcodeModel['user_id']){
  61. $this->error = '不能分享给自己申请。';
  62. return false;
  63. }
  64. $param['seller_grade'] = $UserAuthcodeModel['seller_grade']; //读取推荐官的当前等级
  65. }
  66. if ($user['role'] != User::NORMAL_USER){
  67. $this->error = '不能申请';
  68. return false;
  69. }
  70. if(isset($param['upper_user_id'])&&$user['user_id']==$param['upper_user_id']){
  71. $this->error = '不能分享给自己申请!';
  72. return false;
  73. }
  74. return $this->transaction(function () use($user,$param) {
  75. // 更新申请状态
  76. $status = $this->save([
  77. 'user_id' => $user['user_id'],
  78. 'nick_name' => $user->nick_name,
  79. 'mobile' => $user->mobile,
  80. 'seller_grade' => $param['seller_grade'],
  81. 'invite_code' =>$param['invite_code']??'',
  82. // 'state' => isset($param['invite_code'])&&!empty($param['invite_code']) ? 1 : 0,
  83. 'state' => 1,
  84. ]);
  85. //通过邀请码升级的分销员不需要经过后台审核
  86. if(isset($param['invite_code']) && !empty($param['invite_code'])){
  87. UserAuthcodeModel::updateBase(['activation_state'=>1], ['invite_code'=>$param['invite_code']]);//激活码置为已激活
  88. //用户等级修改为超级会员
  89. // $user->seller_grade = $param['seller_grade'];
  90. // $user->seller_expire = strtotime('+1 year');
  91. // $user->role = 99;
  92. // $user->save();
  93. }
  94. //用户等级修改为超级会员
  95. $user->seller_grade = $param['seller_grade'];
  96. $user->seller_expire = strtotime('+1 year');
  97. $user->role = 99;
  98. //1.3.5版本添加推荐官绑定关系
  99. //传了邀请码时
  100. if(isset($param['invite_code']) && !empty($param['invite_code'])){
  101. if($user->upper_user_id==0){
  102. $UserAuthcodeModel = UserAuthcodeModel::where(['invite_code'=>$param['invite_code']])->find();
  103. $upper_user = User::find($UserAuthcodeModel['user_id']);
  104. //当分享人角色是普通用户或者推荐官时才绑定关系
  105. if($upper_user['role']==User::NORMAL_USER || $upper_user['role']==User::COMMISSION_USER){
  106. $user->upper_user_id = $UserAuthcodeModel['user_id'];
  107. }
  108. }
  109. }else{//传了分享人ID并且当前用户没有上级推广人时
  110. if(isset($param['upper_user_id']) && $param['upper_user_id']>0 && $user->upper_user_id==0){
  111. $upper_user = User::find($param['upper_user_id']);
  112. //当分享人角色是普通用户或者推荐官时才绑定关系
  113. if($upper_user['role']==User::NORMAL_USER || $upper_user['role']==User::COMMISSION_USER){
  114. $user->upper_user_id = $param['upper_user_id'];
  115. }
  116. }
  117. }
  118. $user->save();
  119. return $status;
  120. });
  121. }
  122. }