diff --git a/addon/fenxiao/api/controller/Apply.php b/addon/fenxiao/api/controller/Apply.php index 5dcaf285..4e054b1a 100644 --- a/addon/fenxiao/api/controller/Apply.php +++ b/addon/fenxiao/api/controller/Apply.php @@ -98,4 +98,40 @@ class Apply extends BaseApi return $this->response($res); } + /** + * Common: 用户升级申请基本信息获取 + * Author: wu-hui + * Time: 2023/02/27 10:35 + * @return false|string + */ + public function upgradeBase(){ + // 用户登录 + $token = $this->checkToken(); + if ($token['code'] < 0) return $this->response($token); + // 获取设置信息 + $config = (new Config())->getFenxiaoBasicsConfig($this->site_id)['data']; + $data['upgrade_agree'] = $config['value']['upgrade_agree'] ?? ''; + // 获取申请信息 + $field = "username,phone,id_card,id_card_front,id_card_reverse,status,reject_cause"; + $data['info'] = (new FenxiaoApply())->getFenXiaoUpgradeApplyInfo([['member_id','=',$this->member_id]],$field)['data']; + + + return $this->response($this->success($data)); + } + /** + * Common: 分销商升级申请信息 + * Author: wu-hui + * Time: 2023/02/27 10:31 + * @return false|string + */ + public function upgradeApply(){ + // 用户登录 + $token = $this->checkToken(); + if ($token['code'] < 0) return $this->response($token); + $this->params['member_id'] = $token['data']['member_id']; + + return $this->response((new FenxiaoApply())->upgradeApply($this->params)); + } + + } \ No newline at end of file diff --git a/addon/fenxiao/model/FenxiaoApply.php b/addon/fenxiao/model/FenxiaoApply.php index f091c030..edfb2422 100644 --- a/addon/fenxiao/model/FenxiaoApply.php +++ b/addon/fenxiao/model/FenxiaoApply.php @@ -12,7 +12,7 @@ namespace addon\fenxiao\model; use app\model\BaseModel; use app\model\member\Member; - +use think\facade\Db; /** * 分销 @@ -306,4 +306,124 @@ class FenxiaoApply extends BaseModel return $this->success($count); } + + + /** + * Common: 获取分销商升级申请 + * Author: wu-hui + * Time: 2023/02/27 10:18 + * @param array $condition + * @param string $field + * @return array + */ + public function getFenXiaoUpgradeApplyInfo($condition = [], $field = '*'){ + $res = model('fenxiao_apply_upgrade')->getInfo($condition, $field); + return $this->success($res); + } + /** + * Common: 分销商申请升级 + * Author: wu-hui + * Time: 2023/02/27 10:26 + * @param $params + * @return array + */ + public function upgradeApply($params){ + // 判断: 协议是否一致 + $config = (new Config())->getFenxiaoBasicsConfig($params['site_id'])['data']; + $upgradeAgree = $config['value']['upgrade_agree'] ?? ''; + if($params['upgrade_agree'] !== $upgradeAgree) return $this->error('','协议不一致,请检查输入内容是否和协议内容一直'); + // 判断:当前用户是否为分销商 + $fenXiaoInfo = (new Fenxiao())->getFenxiaoInfo([['member_id','=',$params['member_id']]])['data']; + if(!$fenXiaoInfo) return $this->error('','请先成为分销商!'); + // 判断:如果存在审核中申请 禁止提交 + $upgradeInfo = $this->getFenXiaoUpgradeApplyInfo([['member_id','=',$params['member_id']]])['data']; + if($upgradeInfo && $upgradeInfo['status'] == 1) return $this->error('','申请审核中,请勿重复提交!'); + // 添加协议 + $data = [ + 'username' => $params['username'], + 'phone' => $params['phone'], + 'id_card' => $params['id_card'], + 'id_card_front' => $params['id_card_front'], + 'id_card_reverse' => $params['id_card_reverse'], + 'update_time' => time(), + 'status' => 1, + ]; + if($upgradeInfo){ + // 修改 + model('fenxiao_apply_upgrade')->update($data, [['member_id','=',$params['member_id']]]); + }else{ + // 添加 + $data['site_id'] = $params['site_id']; + $data['fenxiao_id'] = $fenXiaoInfo['fenxiao_id']; + $data['member_id'] = $params['member_id']; + $data['create_time'] = time(); + $data['site_id'] = $params['site_id']; + + model('fenxiao_apply_upgrade')->add($data); + } + + return $this->success(); + } + /** + * Common: 分销商申请升级列表 + * Author: wu-hui + * Time: 2023/02/27 11:39 + * @param array $condition + * @param int $page + * @param int $page_size + * @param string $order + * @param string $field + * @param string $alias + * @param array $join + * @return array + */ + public function getPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = 'a.*', $alias = 'a', $join = []){ + $list = model('fenxiao_apply_upgrade')->pageList($condition, $field, $order, $page, $page_size, $alias, $join); + return $this->success($list); + } + /** + * Common: 升级申请 审核 + * Author: wu-hui + * Time: 2023/02/27 14:28 + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function upgradeApplyExamine(){ + //参数获取 + $id = input('id'); + $type = input('type'); + $cause = input('cause',''); + // 根据审核类型生成修改数据 + $update['update_time'] = time(); + if($type === 'pass') { + $update['status'] = 2; + // 审核通过 + $fenXiaoId = (int)Db::name('fenxiao_apply_upgrade')->where('id',$id)->value('fenxiao_id'); + if($fenXiaoId <= 0) return $this->error('','分销商不存在!'); + $currentLevelId = (int)Db::name('fenxiao')->where('fenxiao_id',$fenXiaoId)->value('level_id'); + // 升级:按照权重顺序升级 加一查询下一级内容 如果存在则升级成功,否则升级失败 + $currentNum = (int)Db::name('fenxiao_level')->where('level_id',$currentLevelId)->value('level_num'); + $currentNum++; + $next = Db::name('fenxiao_level') + ->field('level_id,level_name') + ->where('level_num',$currentNum) + ->find(); + // 修改分销商等级 + model('fenxiao')->update([ + 'level_id' => $next['level_id'], + 'level_name' => $next['level_name'] + ],[['fenxiao_id','=',$fenXiaoId]]); + } + else if($type === 'reject'){ + // 审核不通过 + $update['status'] = 3; + $update['reject_cause'] = $cause; + } + model('fenxiao_apply_upgrade')->update($update, [['id','=',$id]]); + + return $this->success(); + } + } \ No newline at end of file diff --git a/addon/fenxiao/shop/controller/Fenxiao.php b/addon/fenxiao/shop/controller/Fenxiao.php index 7240f3c2..05ef0158 100644 --- a/addon/fenxiao/shop/controller/Fenxiao.php +++ b/addon/fenxiao/shop/controller/Fenxiao.php @@ -15,11 +15,13 @@ use addon\fenxiao\model\Fenxiao as FenxiaoModel; use addon\fenxiao\model\FenxiaoAccount; use addon\fenxiao\model\FenxiaoApply; use addon\fenxiao\model\FenxiaoData; +use addon\fenxiao\model\FenxiaoLevel; use addon\fenxiao\model\FenxiaoLevel as FenxiaoLevelModel; use addon\fenxiao\model\FenxiaoOrder as FenxiaoOrderModel; use app\model\goods\Goods as GoodsModel; use app\model\member\Member as MemberModel; use app\shop\controller\BaseShop; +use think\facade\Db; /** * 分销设置 @@ -697,4 +699,64 @@ class Fenxiao extends BaseShop $fenxiao_account_model = new FenxiaoAccount(); return $fenxiao_account_model->addAccount($fenxiao['fenxiao_id'], $fenxiao['fenxiao_name'], 'house_purchase', -$adjust_num, $fenxiao['fenxiao_id'], 'house_purchase', $remark); } + + /** + * Common: 分销商升级申请 + * Author: wu-hui + * Time: 2023/02/27 11:44 + * @return array|mixed + */ + public function upgradeApply(){ + if (request()->isAjax()) { + // 参数获取 + $page = input('page',1); + $pageSize = input('page_size',PAGE_LIST_ROWS); + $nickname = input('nickname',''); + $status = (int)input('status',0);//申请状态(1申请中 2通过 3驳回) + // 获取内容 + $field = [ + 'm.username', + 'm.nickname', + 'm.headimg', + 'a.id', + 'a.member_id', + 'a.username', + 'a.phone', + 'a.id_card', + 'a.id_card_front', + 'a.id_card_reverse', + 'a.update_time', + 'a.status', + ]; + // 表关联 + $join = [ + ['member m', 'm.member_id = a.member_id', 'left'], + ]; + // 条件生成 + $condition = [ + ['a.site_id','=',$this->site_id] + ]; + if($nickname) $condition[] = ['m.username|m.nickname|m.username',"like","%{$nickname}%"]; + if($status > 0) $condition[] = ['a.status',"=",$status]; + + return (new FenxiaoApply())->getPageList($condition, $page, $pageSize, 'a.update_time desc,a.id desc', $field, 'a', $join); + } + else { + + //$this->forthMenu(); + return $this->fetch('fenxiao/upgrade_apply'); + } + } + /** + * Common: 分销商升级审核 + * Author: wu-hui + * Time: 2023/02/27 13:51 + * @return array + */ + public function upgradeExamine(){ + + return (new FenxiaoApply())->upgradeApplyExamine(); + } + + } \ No newline at end of file diff --git a/addon/fenxiao/shop/controller/Level.php b/addon/fenxiao/shop/controller/Level.php index c01d2730..821c5e11 100644 --- a/addon/fenxiao/shop/controller/Level.php +++ b/addon/fenxiao/shop/controller/Level.php @@ -44,7 +44,7 @@ class Level extends BaseShop return $list; } else { - $this->forthMenu(); + //$this->forthMenu(); //获取系统配置 $config_model = new ConfigModel(); $basics = $config_model->getFenxiaoBasicsConfig($this->site_id); diff --git a/addon/fenxiao/shop/view/fenxiao/upgrade_apply.html b/addon/fenxiao/shop/view/fenxiao/upgrade_apply.html new file mode 100644 index 00000000..dcfa3894 --- /dev/null +++ b/addon/fenxiao/shop/view/fenxiao/upgrade_apply.html @@ -0,0 +1,198 @@ +{extend name="app/shop/view/base.html"/} +{block name="resources"} + +{/block} + +{block name="main"} + +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+ +
+ + + + + + +{/block} + +{block name="script"} + +{/block} \ No newline at end of file diff --git a/config/menu_shop.php b/config/menu_shop.php index 33de712c..862c7deb 100644 --- a/config/menu_shop.php +++ b/config/menu_shop.php @@ -1958,28 +1958,36 @@ return [ ], ], ], + // [ + // 'name' => 'PROMOTION_FENXIAO_APPLY', + // 'title' => '分销商申请', + // 'url' => 'fenxiao://shop/fenxiao/apply', + // 'is_show' => 1, + // 'sort' => 4, + // 'child_list' => [ + // [ + // 'name' => 'PROMOTION_FENXIAO_PASS', + // 'title' => '审核通过', + // 'url' => 'fenxiao://shop/fenxiao/pass', + // 'is_show' => 0, + // 'is_control' => 1, + // ], + // [ + // 'name' => 'PROMOTION_FENXIAO_REFUSE', + // 'title' => '审核拒绝', + // 'url' => 'fenxiao://shop/fenxiao/refuse', + // 'is_show' => 0, + // 'is_control' => 1, + // ], + // ], + // ], [ - 'name' => 'PROMOTION_FENXIAO_APPLY', - 'title' => '分销商申请', - 'url' => 'fenxiao://shop/fenxiao/apply', + 'name' => 'PROMOTION_FENXIAO_UPGRADE_APPLY', + 'title' => '升级申请', + 'url' => 'fenxiao://shop/fenxiao/upgradeApply', 'is_show' => 1, 'sort' => 4, - 'child_list' => [ - [ - 'name' => 'PROMOTION_FENXIAO_PASS', - 'title' => '审核通过', - 'url' => 'fenxiao://shop/fenxiao/pass', - 'is_show' => 0, - 'is_control' => 1, - ], - [ - 'name' => 'PROMOTION_FENXIAO_REFUSE', - 'title' => '审核拒绝', - 'url' => 'fenxiao://shop/fenxiao/refuse', - 'is_show' => 0, - 'is_control' => 1, - ], - ], + 'child_list' => [], ], [ 'name' => 'PROMOTION_FENXIAO_ORDER',