From 3e3233438108bc0ce30f78ffb6bf8d50d1aca3d2 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Wed, 27 Mar 2024 18:08:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E5=88=86=E9=94=80?= =?UTF-8?q?=E5=95=86=E7=94=B3=E8=AF=B7=E8=BD=AC=E6=AD=A3=E5=8F=8A=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/user/UserBrokerageApplyFormalDao.php | 33 ++++++++++++ app/common/model/user/User.php | 5 ++ .../model/user/UserBrokerageApplyFormal.php | 24 +++++++++ .../UserBrokerageApplyFormalRepository.php | 50 +++++++++++++++++++ .../repositories/user/UserRepository.php | 17 +++++-- app/controller/admin/user/User.php | 38 ++++++++++++++ app/controller/api/user/User.php | 48 ++++++++++++++++++ route/admin/spread.php | 9 ++++ route/api.php | 6 +++ 9 files changed, 225 insertions(+), 5 deletions(-) create mode 100644 app/common/dao/user/UserBrokerageApplyFormalDao.php create mode 100644 app/common/model/user/UserBrokerageApplyFormal.php create mode 100644 app/common/repositories/user/UserBrokerageApplyFormalRepository.php diff --git a/app/common/dao/user/UserBrokerageApplyFormalDao.php b/app/common/dao/user/UserBrokerageApplyFormalDao.php new file mode 100644 index 0000000..41ef31b --- /dev/null +++ b/app/common/dao/user/UserBrokerageApplyFormalDao.php @@ -0,0 +1,33 @@ +when(isset($search['id']) && $search['id'] !== '',function($query) use ($search){ + $query->where('id',$search['id']); + }) + ->when(isset($search['uid']) && $search['uid'] !== '',function($query) use ($search){ + $query->where('uid',$search['uid']); + }) + ->with([ + 'user' => function($query){ + $query->field('uid,nickname,avatar'); + } + ]); + } + + + +} diff --git a/app/common/model/user/User.php b/app/common/model/user/User.php index a283dd1..a7f0dcc 100644 --- a/app/common/model/user/User.php +++ b/app/common/model/user/User.php @@ -163,6 +163,11 @@ class User extends BaseModel return $this->hasOne(UserBrokerage::class, 'brokerage_level', 'brokerage_level')->where('type',0); } + public function brokerageApplyFormal(){ + return $this->hasOne(UserBrokerageApplyFormal::class, 'uid', 'uid'); + } + + public function member() { return $this->hasOne(UserBrokerage::class, 'brokerage_level', 'member_level')->where('type',1); diff --git a/app/common/model/user/UserBrokerageApplyFormal.php b/app/common/model/user/UserBrokerageApplyFormal.php new file mode 100644 index 0000000..edd485b --- /dev/null +++ b/app/common/model/user/UserBrokerageApplyFormal.php @@ -0,0 +1,24 @@ +hasOne(User::class, 'uid', 'uid'); + } + + + + + + +} diff --git a/app/common/repositories/user/UserBrokerageApplyFormalRepository.php b/app/common/repositories/user/UserBrokerageApplyFormalRepository.php new file mode 100644 index 0000000..754ad17 --- /dev/null +++ b/app/common/repositories/user/UserBrokerageApplyFormalRepository.php @@ -0,0 +1,50 @@ +dao = $dao; + } + /** + * Common: 查询模型 + * Author: wu-hui + * Time: 2024/03/27 17:55 + * @param $where + * @return \app\common\model\user\UserBrokerageApplyFormal + */ + public function searchModel($where){ + return $this->dao->searchModel($where); + } + /** + * Common: 列表获取 + * Author: wu-hui + * Time: 2024/03/27 17:56 + * @param $search + * @param $page + * @param $limit + * @param string $field + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function getList($search, $page, $limit, $field = '*'){ + $query = $this->dao->searchModel($search); + $list = $query + ->field($field) + ->order('create_time desc,id desc') + ->page($page, $limit) + ->select(); + $count = $query->count(); + + return compact('count', 'list'); + } + + +} diff --git a/app/common/repositories/user/UserRepository.php b/app/common/repositories/user/UserRepository.php index fd38816..5df3a6f 100644 --- a/app/common/repositories/user/UserRepository.php +++ b/app/common/repositories/user/UserRepository.php @@ -234,11 +234,18 @@ class UserRepository extends BaseRepository public function promoterList(array $where, $page, $limit) { $where['is_promoter'] = 1; - $query = $this->dao->search($where)->with(['spread' => function ($query) { - $query->field('uid,nickname,spread_uid'); - }, 'brokerage' => function ($query) { - $query->field('brokerage_level,brokerage_name,brokerage_icon'); - }]); + $query = $this->dao->search($where) + ->with([ + 'spread' => function($query){ + $query->field('uid,nickname,spread_uid'); + }, + 'brokerage' => function($query){ + $query->field('brokerage_level,brokerage_name,brokerage_icon'); + }, + 'brokerageApplyFormal' => function($query){ + $query->field('id,uid,status'); + } + ]); $count = $query->count($this->dao->getPk()); $list = $query->page($page, $limit)->select()->toArray(); if (count($list)) { diff --git a/app/controller/admin/user/User.php b/app/controller/admin/user/User.php index 83bffc9..527e785 100644 --- a/app/controller/admin/user/User.php +++ b/app/controller/admin/user/User.php @@ -7,6 +7,7 @@ namespace app\controller\admin\user; use app\common\repositories\store\ExcelRepository; +use app\common\repositories\user\UserBrokerageApplyFormalRepository; use app\common\repositories\user\UserHistoryRepository; use app\common\repositories\user\UserSignRepository; use app\common\repositories\user\UserSpreadLogRepository; @@ -29,6 +30,7 @@ use think\App; use think\db\exception\DataNotFoundException; use think\db\exception\DbException; use think\db\exception\ModelNotFoundException; +use think\exception\ValidateException; use think\facade\Db; /** @@ -623,4 +625,40 @@ class User extends BaseController [$page, $limit] = $this->getPage(); return app('json')->success($repository->getList( $page, $limit, $id, 1)); } + /** + * Common: 转正申请 - 列表 + * Author: wu-hui + * Time: 2024/03/27 17:56 + * @return mixed + */ + public function formalList(){ + $search = $this->request->params(['uid']); + [$page, $limit] = $this->getPage(); + $data = app()->make(UserBrokerageApplyFormalRepository::class)->getList($search, $page, $limit); + + return app('json')->success($data); + } + /** + * Common: 转正申请 - 审核 + * Author: wu-hui + * Time: 2024/03/27 18:01 + * @return mixed + */ + public function formalExamine(){ + // 参数获取 + $params = $this->request->params(['id','status','reason']); + if($params['id'] <= 0) throw new ValidateException('方法请求,信息不明确!'); + // 审核 + if((int)$params['status'] === 1){ + // 审核通过 + app()->make(UserBrokerageApplyFormalRepository::class)->update($params['id'],['status'=>1]); + }else{ + // 驳回 + app()->make(UserBrokerageApplyFormalRepository::class)->update($params['id'],['status'=>2,'reject_reason'=>$params['reason']]); + } + + return app('json')->success('操作成功'); + } + + } diff --git a/app/controller/api/user/User.php b/app/controller/api/user/User.php index 6e2e5c5..77d01f2 100644 --- a/app/controller/api/user/User.php +++ b/app/controller/api/user/User.php @@ -6,6 +6,7 @@ namespace app\controller\api\user; +use app\common\model\user\UserBrokerageApplyFormal; use app\common\repositories\store\IntegralRepository; use app\common\repositories\store\service\StoreServiceRepository; use app\common\repositories\system\CacheRepository; @@ -25,6 +26,7 @@ use think\App; use think\db\exception\DataNotFoundException; use think\db\exception\DbException; use think\db\exception\ModelNotFoundException; +use think\exception\ValidateException; use think\facade\Db; class User extends BaseController @@ -93,6 +95,10 @@ class User extends BaseController 'broken_day' => (int)systemConfig('lock_brokerage_timer'), 'user_extract_min' => (int)systemConfig('user_extract_min'), ]; + // 获取用户分销商 申请转正信息 + $data['is_formal'] = (int)UserBrokerageApplyFormal::where('uid', $user->uid)->value('status'); + + return app('json')->success($data); } @@ -621,5 +627,47 @@ class User extends BaseController $this->repository->updateBaseInfo($data,$user); return app('json')->success('修改成功'); } + /** + * Common: 分销商申请转正 + * Author: wu-hui + * Time: 2024/03/27 17:36 + * @return mixed + */ + public function brokerageFormalInfo(){ + $voucherImage = $this->request->param('voucher_image',''); + $uid = $this->request->uid(); + if(empty($voucherImage)) throw new ValidateException('请上传凭证!'); + // 判断:是否已经申请 + $info = UserBrokerageApplyFormal::where('uid', $uid)->findOrEmpty()->toArray(); + if($info){ + // 已申请 + if($info['status'] == 0) throw new ValidateException('审核中,请勿重复申请!'); + if($info['status'] == 1) throw new ValidateException('已通过,请勿重复申请!'); + UserBrokerageApplyFormal::update(['voucher_image'=>$voucherImage,'status'=>0],['uid'=>$uid]); + }else{ + // 未申请 + UserBrokerageApplyFormal::insert([ + 'uid' => $uid, + 'voucher_image' => $voucherImage, + ]); + } + + return app('json')->success('提交成功'); + } + /** + * Common: 获取用户转正申请信息 + * Author: wu-hui + * Time: 2024/03/27 16:59 + * @return mixed + */ + public function brokerageFormalInfoGet(){ + $uid = $this->request->uid(); + $info = UserBrokerageApplyFormal::where('uid', $uid)->findOrEmpty()->toArray(); + $info['voucher_image'] = $info['voucher_image'] ?? ''; + + return app('json')->success($info); + } + + } diff --git a/route/admin/spread.php b/route/admin/spread.php index 2ddb0de..a114779 100644 --- a/route/admin/spread.php +++ b/route/admin/spread.php @@ -24,6 +24,15 @@ Route::group(function () { Route::post('/spread/:id/save', '/spreadLevelSave')->name('systemUserSpreadSave')->option([ '_alias' => '修改分销员等级', ]); + // 转正申请 + Route::get('promoter/formal_list', '/formalList')->name('systemPromoterFormalList')->option([ + '_alias' => '转正申请列表', + ]); + Route::get('promoter/formal_examine', '/formalExamine')->name('systemPromoterFormalExamine')->option([ + '_alias' => '转正申请列表', + ]); + + })->prefix('admin.user.User')->option([ '_path' => '/promoter/user', '_auth' => true, diff --git a/route/api.php b/route/api.php index 9be29d0..ca2f29b 100644 --- a/route/api.php +++ b/route/api.php @@ -156,6 +156,12 @@ Route::group('api/', function () { Route::get('brokerage_top', 'User/brokerage_top'); Route::get('spread_info', 'User/spread_info'); Route::get('spread_level', 'User/spread_info'); + // 分销商 - 转正信息 + Route::post('brokerage_formal_info', 'User/brokerageFormalInfo'); + Route::get('brokerage_formal_info', 'User/brokerageFormalInfoGet'); + + + Route::get('brokerage/info', 'User/brokerage_info'); Route::get('brokerage/all', 'User/brokerage_all');