优化:分销商升级审核
This commit is contained in:
parent
8822e6f378
commit
d6520a1fd0
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Reference in New Issue