优化:分销商升级审核

This commit is contained in:
wuhui_zzw 2023-02-27 14:28:57 +08:00
parent 8822e6f378
commit d6520a1fd0
6 changed files with 445 additions and 21 deletions

View File

@ -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));
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);

View File

@ -0,0 +1,198 @@
{extend name="app/shop/view/base.html"/}
{block name="resources"}
<style>
.id-card-content{
width: 100%;
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.id-card-content .id-card-img{}
.id-card-content .id-card-img img{
width: 120px!important;
max-width: none;
}
.id-card-content .id-card{}
</style>
{/block}
{block name="main"}
<!-- 筛选面板 -->
<div class="screen layui-collapse" lay-filter="selection_panel">
<div class="layui-colla-item">
<div class="layui-colla-content layui-form layui-show" lay-filter="search_form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">姓名:</label>
<div class="layui-input-inline">
<input type="text" name="nickname" placeholder="" autocomplete="off" class="layui-input"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">审核状态:</label>
<div class="layui-input-inline">
<select name="status" lay-filter="is_settlement">
<option value="">全部</option>
<option value="1">审核中</option>
<option value="2">已通过</option>
<option value="3">已驳回</option>
</select>
</div>
</div>
</div>
<div class="form-row">
<button class="layui-btn" lay-submit lay-filter="search">筛选</button>
<button type="reset" lay-submit lay-filter="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</div>
</div>
<!-- 列表 -->
<table id="listContent" lay-filter="listContent"></table>
<!-- 操作 -->
<script type="text/html" id="operation">
<div class="table-btn">
{{# if(d.status == 1){ }}
<a class="layui-btn" lay-event="examinePass">通过</a>
<a class="layui-btn" lay-event="examineReject">驳回</a>
{{# } }}
</div>
</script>
<!--会员信息-->
<script type="text/html" id="memberInfo">
<div class='table-title'>
<div class='title-pic'>
<img layer-src src="{{ns.img(d.headimg)}}" onerror="this.src = '{:img(\'public/static/img/default_img/head.png\')}' ">
</div>
<div class='title-content'>
{{# if(d.seller_username){ }}
<p class="layui-elip">{{d.username}}</p>
{{# } else { }}
<p class="layui-elip">{{d.nickname}}</p>
{{# } }}
</div>
</div>
</script>
<!--商品信息-->
<script type="text/html" id="goodsInfo">
<div class='id-card-content'>
<!--身份证正反面-->
<div class="id-card-img">
<img layer-src src="{{ns.img(d.id_card_front)}}">
<img layer-src src="{{ns.img(d.id_card_reverse)}}">
</div>
<!--身份证信息-->
<div class="id-card">身份证号:{{ d.id_card }}</div>
</div>
</script>
{/block}
{block name="script"}
<script>
var table, form, editIframe, repeat_flag = false;//防重复标识;
layui.use(['form'], function() {
form = layui.form;
form.render();
// 内容获取
table = new Table({
elem: '#listContent',
url: ns.url("fenxiao://shop/fenxiao/upgradeApply"),
cols: [[
{align: 'center', field: 'id', title: 'ID', width: '5%', unresize: 'false'},
{align: 'left', title: '用户信息', unresize: 'area',width: '15%', templet: '#memberInfo'},
{align: 'center', title: '身份证信息', unresize: 'area',width: '35%', templet: '#goodsInfo'},
{align: 'center', title: '用户真实姓名', field: 'username',width: '10%', unresize: 'area'},
{align: 'center', title: '手机号', field: 'phone',width: '10%', unresize: 'area'},
{
align: 'center',width: '5%', templet: function (d) {
// 申请状态1申请中 2通过 3驳回
let statusText = '';
switch (parseInt(d.status)) {
case 1: statusText = '<p>申请中</p>'; break;
case 2: statusText = '<p style="color: #07c160;">通过</p>'; break;
case 3: statusText = '<p style="color: #ad0000;">驳回</p>'; break;
}
return statusText;
}, title: '状态', unresize: 'false'
},
{
align: 'center',width: '10%', templet: function (d) {
return ns.time_to_date(d.update_time,'YYYY-MM-DD h:m');
}, title: '申请时间', unresize: 'false'
},
{title: '操作',width: '10%', toolbar: '#operation', unresize: 'false', align: 'right'}
]],
});
// 点击搜索
form.on('submit(search)', function(data) {
table.reload({
page: {
curr: 1
},
where: data.field
});
return false;
});
// 重置表单
form.on('submit(reset)', function(data) {
let field = {
"nickname": "",
"status": "",
};
form.val("search_form", field);
layui.form.render();
// 刷新表格
table.reload({
page: {
curr: 1
},
where: field
});
});
// 监听工具栏操作
table.tool(function(obj) {
var data = obj.data;
eval(obj.event)(data)
});
});
// 审核 - 通过
function examinePass(data){
layer.confirm('确认当前用户升级请求通过!', {icon: 3, title:'提示'}, function(index){
layer.close(index);
examineResult({ id:data.id,type: 'pass' });
});
}
// 审核 - 驳回
function examineReject(data){
layer.prompt({
formType: 2,
value: '',
title: '请输入驳回原因',
area: ['800px', '350px'] //自定义文本域宽高
}, function(value, index, elem){
layer.close(index);
examineResult({ id:data.id,type: 'reject',cause: value });
});
}
// 审核 - 结果提交
function examineResult(data){
if(repeat_flag) return;
repeat_flag = true;
$.ajax({
type: 'POST',
dataType: 'JSON',
url: ns.url("fenxiao://shop/fenxiao/upgradeExamine"),
data: data,
async: false,
success: function(res){
repeat_flag = false;
layer.msg(res.message);
if (parseInt(res.code) === 0) table.reload();
}
})
}
</script>
{/block}

View File

@ -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',