diff --git a/app/store/controller/dealer/Apply.php b/app/store/controller/dealer/Apply.php index 681c5b80..c43a0688 100644 --- a/app/store/controller/dealer/Apply.php +++ b/app/store/controller/dealer/Apply.php @@ -12,9 +12,11 @@ declare (strict_types=1); namespace app\store\controller\dealer; -use think\response\Json; +use app\common\enum\WholesalerEnum; +use app\common\model\invite\InviteLog; use app\store\controller\Controller; use app\store\model\dealer\Apply as ApplyModel; +use think\response\Json; /** * 分销商申请 @@ -35,6 +37,41 @@ class Apply extends Controller return $this->renderSuccess(compact('list')); } + /** + * 服务商申请列表 + * @param string $search + * @return Json + */ + public function providersList(string $search = ''): Json + { + $model = new ApplyModel; + $list = $model->getList($search); + if ($list->total()) { + $inviteModel = new InviteLog(); + $wholesalerApplyModel = new \app\store\model\wholesaler\Apply(); + foreach ($list->items() as &$item) { + $item['wholesaler'] = ''; + $adoption_num = 0; + $refuse_num = 0; + //统计邀请的采购商数量 + $invitee_user_ids = $inviteModel->where('user_id', $item['user_id']) + ->column('invitee_user_id'); + if ($invitee_user_ids) { + $adoption_num = $wholesalerApplyModel->whereIn('user_id', $invitee_user_ids) + ->where(['status' => WholesalerEnum::ADOPT]) + ->count(); + //审核拒绝 + $refuse_num = $wholesalerApplyModel->whereIn('user_id', $invitee_user_ids) + ->where(['status' => WholesalerEnum::REFUSE]) + ->count(); + } + $item['wholesaler'] = '通过:' . $adoption_num . '个,拒绝:' . $refuse_num; + + } + } + return $this->renderSuccess(compact('list')); + } + /** * 分销商审核 * @param int $applyId @@ -48,4 +85,19 @@ class Apply extends Controller } return $this->renderError($model->getError() ?: '操作失败'); } + + /** + * @notes:服务商审核 + * @param int $applyId + * @return Json + * @author: wanghousheng + */ + public function checkProviders(int $applyId): Json + { + $model = ApplyModel::detail($applyId); + if ($model->submitProviders($this->postForm())) { + return $this->renderSuccess('操作成功'); + } + return $this->renderError($model->getError() ?: '操作失败'); + } } \ No newline at end of file diff --git a/app/store/model/dealer/Apply.php b/app/store/model/dealer/Apply.php index e2841d0e..159c934a 100644 --- a/app/store/model/dealer/Apply.php +++ b/app/store/model/dealer/Apply.php @@ -12,8 +12,10 @@ declare (strict_types=1); namespace app\store\model\dealer; -use app\common\model\dealer\Apply as ApplyModel; use app\common\enum\dealer\apply\ApplyStatus as ApplyStatusEnum; +use app\common\enum\user\UserTypeEnum; +use app\common\model\dealer\Apply as ApplyModel; +use app\common\model\User as UserModel; /** * 分销商入驻申请模型 @@ -70,4 +72,42 @@ class Apply extends ApplyModel }); return true; } + + /** + * 分销商入驻审核 + * @param array $data + * @return bool + */ + public function submitProviders(array $data): bool + { + if ($data['apply_status'] == ApplyStatusEnum::REJECT && empty($data['reject_reason'])) { + $this->error = '请填写驳回原因'; + return false; + } + $this->transaction(function () use ($data) { + if ($data['apply_status'] == ApplyStatusEnum::PASS) { + // 新增分销商用户 + User::add($this['user_id'], [ + 'real_name' => $this['real_name'], + 'mobile' => $this['mobile'], + 'referee_id' => $this['referee_id'], + ]); + //修改用户身份标识以及有效时间 + $userModel = new UserModel(); + $info = UserModel::detail(['user_id' => $this['user_id']]); + if (!empty($info)) { + $info = $info->toArray(); + if ($info['effective_time'] && strtotime($info['effective_time']) > time() && $info['user_type'] == UserTypeEnum::MEMBER) { + $up['user_type'] = UserTypeEnum::DEALER; + $up['fx_effective_time'] = $info['effective_time']; + $userModel->where(['user_id' => $info['user_id']])->save($up); + } + } + } + // 更新申请记录 + $data['audit_time'] = time(); + $this->save($data); + }); + return true; + } } \ No newline at end of file