商户入驻审核
This commit is contained in:
parent
3bd30462d7
commit
45468a70a1
@ -29,6 +29,7 @@ class MerchantIntention extends BaseController
|
||||
$this->intention = $intention;
|
||||
$this->path = [
|
||||
'index' => 'merchant/system/merchant/intention/lst',
|
||||
'status' => 'merchant/system/merchant/intention/status',
|
||||
'mark' => 'merchant/system/merchant/intention/mark',
|
||||
'read' => 'merchant/system/merchant/intention/read',
|
||||
'add' => 'merchant/system/merchant/intention/add'
|
||||
@ -69,9 +70,34 @@ class MerchantIntention extends BaseController
|
||||
return to_assign(0, '', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核表单
|
||||
*/
|
||||
public function StatusForm()
|
||||
{
|
||||
return View($this->path['index']);
|
||||
$id = get_params('id');
|
||||
if (!$this->intention->getWhereCount(['mer_intention_id' => $id, 'is_del' => 0]))
|
||||
return to_assign(1,'数据不存在');
|
||||
|
||||
return View($this->path['status'], ['id'=>$id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核
|
||||
*/
|
||||
public function SwitchStatus()
|
||||
{
|
||||
$params = get_params(['status','fail_msg','create_mer','id']);
|
||||
$id = $params['id'];
|
||||
|
||||
//创建
|
||||
if (!$this->intention->GetWhereCount(['mer_intention_id' => $id, 'is_del' => 0]))
|
||||
return to_assign(1,'数据不存在');
|
||||
|
||||
$params['status'] = $params['status'] == 1 ? 1 : 2;
|
||||
$this->intention->updateStatus($id, $params);
|
||||
|
||||
return to_assign(0,'修改成功');
|
||||
}
|
||||
|
||||
public function MarkForm()
|
||||
|
@ -17,15 +17,15 @@
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">选择时间</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-btn-group" id="chonse_date">
|
||||
<input type="hidden" name="chonse_date" value="" disabled placeholder="选择时间">
|
||||
<button name="both" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal">全部</button>
|
||||
<button name="today" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">今天</button>
|
||||
<button name="yeserday" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">昨天</button>
|
||||
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近7天</button>
|
||||
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近30天</button>
|
||||
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本月</button>
|
||||
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本年</button>
|
||||
<div class="layui-btn-group">
|
||||
<input id="chonse_date" type="hidden" name="chonse_date" value="" disabled placeholder="选择时间">
|
||||
<button name="both" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal">全部</button>
|
||||
<button name="today" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">今天</button>
|
||||
<button name="yeserday" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">昨天</button>
|
||||
<button lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近7天</button>
|
||||
<button lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近30天</button>
|
||||
<button lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本月</button>
|
||||
<button lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本年</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -52,8 +52,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商户审核</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-btn-group" id="store_status">
|
||||
<input type="hidden" name="status" value="0" disabled placeholder="核审状态值">
|
||||
<div class="layui-btn-group">
|
||||
<input type="hidden" id="status" name="status" value="0" disabled placeholder="核审状态值">
|
||||
<button name="both" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal">全部</button>
|
||||
<button name="wait_status" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">待审核</button>
|
||||
<button name="success_status" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">审核通过</button>
|
||||
@ -67,10 +67,10 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商户分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="mer_cate" lay-filter="aihao">
|
||||
<select name="category_id" lay-filter="seleform">
|
||||
<option value=""></option>
|
||||
{volist name="category" key="k" id="vo"}
|
||||
<option value="0">{$vo.category_name}</option>
|
||||
<option value="{$vo.merchant_category_id}">{$vo.category_name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
@ -88,10 +88,10 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">店铺类型</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="type" lay-filter="aihao">
|
||||
<select name="type_id" lay-filter="seleform">
|
||||
<option value=""></option>
|
||||
{volist name="type" key="k" id="vo"}
|
||||
<option value="0">{$vo.type_name}</option>
|
||||
<option value="{$vo.mer_type_id}">{$vo.type_name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
@ -124,6 +124,7 @@
|
||||
<script type="text/html" id="toolbarDemo"></script>
|
||||
<script type="text/html" id="barDemo">
|
||||
<div class="layui-btn-group">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="status">审核</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="mark">备注</a>
|
||||
<a class="layui-btn layui-btn-xs" lay-event="del">删除</a>
|
||||
</div>
|
||||
@ -239,6 +240,8 @@
|
||||
// console.log(data);
|
||||
if (obj.event === 'mark') {
|
||||
tool.side('/admin/merchant/intention/markform?id=' + obj.data.mer_intention_id);
|
||||
} else if (obj.event === 'status') {
|
||||
tool.side('/admin/merchant/intention/statusform?id=' + obj.data.mer_intention_id);
|
||||
} else if (obj.event === 'del') {
|
||||
layer.confirm('确定要删除该记录吗?', {
|
||||
icon: 3,
|
||||
@ -306,6 +309,20 @@
|
||||
return false;
|
||||
});
|
||||
|
||||
form.on('submit(chonse_date)', function(data){
|
||||
console.log(data.elem.name);
|
||||
$('#chonse_date').val(data.elem.name);
|
||||
layui.pageTable.reload({
|
||||
where: {
|
||||
...data.field
|
||||
},
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
});
|
||||
return false;
|
||||
})
|
||||
|
||||
//监听select提交
|
||||
form.on('select(seleform)', function(data) {
|
||||
active['reload'] ? active['reload'].call(this) : '';
|
||||
|
@ -0,0 +1,66 @@
|
||||
{extend name="common/base" /}
|
||||
<!-- 主体 -->
|
||||
{block name="body"}
|
||||
<form class="layui-form p-4">
|
||||
<h3 class="pb-3">审核状态</h3>
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">审核状态<font>*</font>
|
||||
</td>
|
||||
<td>
|
||||
<select name="status" lay-verify="required" lay-reqText="审核状态">
|
||||
<option selected="selected" value="1">同意</option>
|
||||
<option value="2">不同意</option>
|
||||
</select>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">创建商户<font>*</font>
|
||||
</td>
|
||||
<td>
|
||||
<input type="radio" checked="checked" name="create_mer" value="1" title="是">
|
||||
<input type="radio" name="create_mer" value="0" title="不是">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
<div style="padding: 10px 0">
|
||||
<input type="hidden" name="id" value="{$id}">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
{/block}
|
||||
<!-- /主体 -->
|
||||
|
||||
<!-- 脚本 -->
|
||||
{block name="script"}
|
||||
<script>
|
||||
const moduleInit = ['tool'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,tool=layui.tool;
|
||||
//监听提交
|
||||
form.on('submit(webform)', function (data) {
|
||||
console.log(data.field)
|
||||
if (!data.field.status || data.field.id == '' || data.field.create_mer == '') {
|
||||
layer.msg('请选择审核表单');
|
||||
return false;
|
||||
}
|
||||
let callback = function (e) {
|
||||
layer.msg(e.msg);
|
||||
if (e.code == 0) {
|
||||
setTimeout(function () {
|
||||
// parent.location.reload();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
tool.post('/admin/merchant/intention/status', data.field, callback);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
<!-- /脚本 -->
|
@ -12,6 +12,7 @@ namespace app\common\model\merchant\system\merchant;
|
||||
|
||||
use app\common\model\merchant\system\merchant\MerchantCategory;
|
||||
use think\Model;
|
||||
use think\exception\ValidateException;
|
||||
|
||||
/**
|
||||
* @mixin \think\Model
|
||||
@ -102,10 +103,139 @@ class MerchantIntention extends Model
|
||||
$this->getModel()::getDB()->where($this->getPk(), $id)->update(['status' => $data['status'], 'mark' => $data['mark']]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据是否存在
|
||||
*/
|
||||
public function GetWhereCount($mer_intention_id)
|
||||
{
|
||||
$count = self::where(['mer_intention_id' => $mer_intention_id, 'is_del' => 0])->fetchSql()->count();
|
||||
echo $count = self::where(['mer_intention_id' => $mer_intention_id, 'is_del' => 0])->count();
|
||||
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核
|
||||
* TODO: 未完全
|
||||
*/
|
||||
public function updateStatus($id, $data)
|
||||
{
|
||||
$create = $data['create_mer'] == 1;
|
||||
unset($data['create_mer']);
|
||||
$intention = $this->search(['mer_intention_id' => $id])->find();
|
||||
$smsData = [];
|
||||
if (!$intention)
|
||||
throw new ValidateException('信息不存在');
|
||||
if ($intention->status)
|
||||
throw new ValidateException('状态有误,修改失败');
|
||||
|
||||
//TODO: 此处需开发为可配置字段
|
||||
$config = ['broadcast_room_type'=>0, 'broadcast_goods_type'=>0];
|
||||
|
||||
$margin = app()->make(MerchantTypeRepository::class)->get($intention['mer_type_id']);
|
||||
$data['is_margin'] = $margin['is_margin'] ?? -1;
|
||||
$data['margin'] = $margin['margin'] ?? 0;
|
||||
$merData = [];
|
||||
if ($create) {
|
||||
$password = substr($intention['phone'], -6);
|
||||
$merData = [
|
||||
'mer_name' => $intention['mer_name'],
|
||||
'mer_phone' => $intention['phone'],
|
||||
'mer_account' => $intention['phone'],
|
||||
'category_id' => $intention['merchant_category_id'],
|
||||
'type_id' => $intention['mer_type_id'],
|
||||
'real_name' => $intention['name'],
|
||||
'status' => 1,
|
||||
'is_audit' => 1,
|
||||
// 'is_bro_room' => $config['broadcast_room_type'] == 1 ? 0 : 1,
|
||||
// 'is_bro_goods' => $config['broadcast_goods_type'] == 1 ? 0 : 1,
|
||||
'is_bro_room' => empty($config['broadcast_room_type']) ? 0 : 1,
|
||||
'is_bro_goods' => !empty($config['broadcast_goods_type']) ? 0 : 1,
|
||||
'mer_password' => $password,
|
||||
'is_margin' => $margin['is_margin'] ?? -1,
|
||||
'margin' => $margin['margin'] ?? 0,
|
||||
'area_id' => $intention['area_id'] ?? 0,
|
||||
'geo_street' => $intention['street_id'] ?? 0,
|
||||
'village_id' => $intention['village_id'] ?? 0,
|
||||
'is_nmsc' => $intention['is_nmsc'] ?? 0,
|
||||
];
|
||||
if ($data['status'] == 1) {
|
||||
$data['fail_msg'] = '';
|
||||
$smsData = [
|
||||
'date' => date('m月d日', strtotime($intention->create_time)),
|
||||
'mer' => $intention['mer_name'],
|
||||
'phone' => $intention['phone'],
|
||||
'pwd' => $password ?? '',
|
||||
// 'site_name' => systemConfig('site_name'),
|
||||
];
|
||||
}
|
||||
}
|
||||
if ($data['status'] == 2) {
|
||||
$smsData = [
|
||||
'phone' => $intention['phone'],
|
||||
'date' => date('m月d日', strtotime($intention->create_time)),
|
||||
'mer' => $intention['mer_name'],
|
||||
// 'site' => systemConfig('site_name'),
|
||||
];
|
||||
}
|
||||
|
||||
self::transaction(function () use ($config, $intention, $data, $create,$margin,$merData,$smsData) {
|
||||
if ($data['status'] == 1) {
|
||||
if ($create) {
|
||||
$merchant = self::createMerchant($merData);
|
||||
$data['mer_id'] = $merchant->mer_id;
|
||||
// 暂不开通通知
|
||||
// Queue::push(SendSmsJob::class, ['tempId' => 'APPLY_MER_SUCCESS', 'id' => $smsData]);
|
||||
}
|
||||
} else {
|
||||
// Queue::push(SendSmsJob::class, ['tempId' => 'APPLY_MER_FAIL', 'id' => $smsData]);
|
||||
}
|
||||
$intention->save($data);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @author xaboy
|
||||
* @day 2020-04-17
|
||||
*/
|
||||
protected function createMerchant(array $data)
|
||||
{
|
||||
if ($this->fieldExists('mer_name', $data['mer_name']))
|
||||
throw new ValidateException('商户名已存在');
|
||||
if ($data['mer_phone'] && isPhone($data['mer_phone']))
|
||||
throw new ValidateException('请输入正确的手机号');
|
||||
$merchantCategoryRepository = app()->make(MerchantCategoryRepository::class);
|
||||
$adminRepository = app()->make(MerchantAdminRepository::class);
|
||||
|
||||
if (!$data['category_id'] || !$merchantCategoryRepository->exists($data['category_id']))
|
||||
throw new ValidateException('商户分类不存在');
|
||||
if ($adminRepository->fieldExists('account', $data['mer_account']))
|
||||
throw new ValidateException('账号已存在');
|
||||
|
||||
/** @var MerchantAdminRepository $make */
|
||||
$make = app()->make(MerchantAdminRepository::class);
|
||||
|
||||
$margin = app()->make(MerchantTypeRepository::class)->get($data['type_id']);
|
||||
$data['is_margin'] = $margin['is_margin'] ?? -1;
|
||||
$data['margin'] = $margin['margin'] ?? 0;
|
||||
|
||||
return Db::transaction(function () use ($data, $make) {
|
||||
$account = $data['mer_account'];
|
||||
$password = $data['mer_password'];
|
||||
unset($data['mer_account'], $data['mer_password']);
|
||||
|
||||
$merchant = $this->dao->create($data);
|
||||
$make->createMerchantAccount($merchant, $account, $password);
|
||||
$address_id = Db::name('merchant_address')->insertGetId(['mer_id'=>$merchant->mer_id,'street_id'=>$data['geo_street']]);
|
||||
if($data['area_id'] && $data['village_id']){
|
||||
Db::name('merchant_address')->where('id',$address_id)->update(['area_id'=>$data['area_id'],'village_id'=>$data['village_id']]);
|
||||
}
|
||||
app()->make(ShippingTemplateRepository::class)->createDefault($merchant->mer_id);
|
||||
app()->make(ProductCopyRepository::class)->defaulCopyNum($merchant->mer_id);
|
||||
return $merchant;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user