【新增】新增后台可以增加代理商。方便有特别需求的用户,减少前端申请的申请及审核步骤。

This commit is contained in:
大灰灰
2022-11-08 20:41:00 +08:00
parent 61cadafa2b
commit f29b38152d
5 changed files with 283 additions and 21 deletions

View File

@@ -57,7 +57,52 @@ namespace CoreCms.Net.Model.FromBody
public string storeName { get; set; } public string storeName { get; set; }
} }
/// <summary>
/// 后台创建代理商提交参数
/// </summary>
public class FMAdminCreateAgentPost
{
/// <summary>
/// 已注册用户手机号码
/// </summary>
public System.String registeredUserMobile { get; set; }
/// <summary>
/// 用户序列
/// </summary>
public System.Int32 userId { get; set; }
/// <summary>
/// 分销商名称
/// </summary>
public System.String name { get; set; }
/// <summary>
/// 分销等级
/// </summary>
public System.Int32 gradeId { get; set; }
/// <summary>
/// 手机号
/// </summary>
public System.String mobile { get; set; }
/// <summary>
/// 微信号
/// </summary>
public System.String weixin { get; set; }
/// <summary>
/// qq号
/// </summary>
public System.String qq { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public System.Int32 verifyStatus { get; set; }
}
} }

View File

@@ -29,6 +29,7 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel; using NPOI.HSSF.UserModel;
using SqlSugar; using SqlSugar;
using CoreCms.Net.Services;
namespace CoreCms.Net.Web.Admin.Controllers namespace CoreCms.Net.Web.Admin.Controllers
{ {
@@ -45,16 +46,18 @@ namespace CoreCms.Net.Web.Admin.Controllers
private readonly IWebHostEnvironment _webHostEnvironment; private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsAgentServices _coreCmsAgentServices; private readonly ICoreCmsAgentServices _coreCmsAgentServices;
private readonly ICoreCmsAgentGradeServices _agentGradeServices; private readonly ICoreCmsAgentGradeServices _agentGradeServices;
private readonly ICoreCmsUserServices _userServices;
/// <summary> /// <summary>
/// 构造函数 /// 构造函数
///</summary> ///</summary>
public CoreCmsAgentController(IWebHostEnvironment webHostEnvironment public CoreCmsAgentController(IWebHostEnvironment webHostEnvironment
, ICoreCmsAgentServices coreCmsAgentServices, ICoreCmsAgentGradeServices agentGradeServices) , ICoreCmsAgentServices coreCmsAgentServices, ICoreCmsAgentGradeServices agentGradeServices, ICoreCmsUserServices userServices)
{ {
_webHostEnvironment = webHostEnvironment; _webHostEnvironment = webHostEnvironment;
_coreCmsAgentServices = coreCmsAgentServices; _coreCmsAgentServices = coreCmsAgentServices;
_agentGradeServices = agentGradeServices; _agentGradeServices = agentGradeServices;
_userServices = userServices;
} }
#region ============================================================ #region ============================================================
@@ -277,6 +280,82 @@ namespace CoreCms.Net.Web.Admin.Controllers
} }
#endregion #endregion
#region ============================================================
// POST: Api/CoreCmsAgent/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var agentVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.AgentVerifyStatus>();
var grades = await _agentGradeServices.GetCaChe();
jm.code = 0;
jm.data = new
{
agentVerifyStatus,
grades
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgent/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] FMAdminCreateAgentPost entity)
{
var jm = new AdminUiCallBack();
var user = await _userServices.QueryByClauseAsync(p => p.mobile == entity.registeredUserMobile);
if (user == null)
{
jm.msg = "提交的【已注册手机号】未查询到注册用户";
return jm;
}
var isAgent = await _coreCmsAgentServices.ExistsAsync(p => p.userId == user.id);
if (isAgent)
{
jm.msg = "提交的【已注册手机号】已经是代理商了。";
return jm;
}
var model = new CoreCmsAgent();
model.userId = user.id;
model.mobile = entity.registeredUserMobile;
model.name = entity.name;
model.gradeId = entity.gradeId;
model.mobile = string.IsNullOrEmpty(entity.mobile) ? user.mobile : entity.mobile;
model.weixin = entity.weixin;
model.qq = entity.qq;
model.verifyStatus = entity.verifyStatus;
model.createTime = DateTime.Now;
model.isDelete = false;
if (model.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes) model.verifyTime = DateTime.Now;
var id = await _coreCmsAgentServices.InsertAsync(model);
jm.code = id > 0 ? 0 : 1;
jm.msg = id > 0 ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================ #region ============================================================
// POST: Api/CoreCmsAgent/GetEdit // POST: Api/CoreCmsAgent/GetEdit
/// <summary> /// <summary>

View File

@@ -0,0 +1,91 @@
<script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsAgent-createForm" id="LAY-app-CoreCmsAgent-createForm">
<input type="hidden" name="userId" value="0" />
<div class="layui-form-item">
<label for="mobile" class="layui-form-label layui-form-required">已注册手机号</label>
<div class="layui-input-inline">
<input name="registeredUserMobile" lay-verify="required|phone" class="layui-input" placeholder="请输入手机号" lay-reqText="请输入手机号" />
</div>
</div>
<div class="layui-form-item">
<label for="name" class="layui-form-label layui-form-required">代理商名称</label>
<div class="layui-input-inline">
<input name="name" lay-verify="required|verifyname" class="layui-input" placeholder="请输入代理商名称" lay-reqText="请输入代理商名称" />
</div>
<label for="mobile" class="layui-form-label layui-form-required">手机号</label>
<div class="layui-input-inline">
<input name="mobile" lay-verify="required|phone" class="layui-input" placeholder="请输入手机号" lay-reqText="请输入手机号" />
</div>
</div>
<div class="layui-form-item">
<label for="weixin" class="layui-form-label">微信号</label>
<div class="layui-input-inline">
<input name="weixin" class="layui-input" placeholder="请输入微信号" lay-reqText="请输入微信号" />
</div>
<label for="qq" class="layui-form-label">qq号</label>
<div class="layui-input-inline">
<input name="qq" class="layui-input" placeholder="请输入qq号" lay-reqText="请输入qq号" />
</div>
</div>
<div class="layui-form-item">
<label for="gradeId" class="layui-form-label layui-form-required">代理等级</label>
<div class="layui-input-inline">
<select name="gradeId" lay-verify="required">
<option value="">请选择</option>
{{# layui.each(d.params.data.grades, function(index, item){ }}
<option value="{{ item.id }}">{{ item.name }}</option>
{{# }); }}
</select>
</div>
<label for="verifyStatus" class="layui-form-label layui-form-required">审核状态</label>
<div class="layui-input-inline">
<select name="verifyStatus" id="verifyStatus">
<option value="">请选择</option>
{{# layui.each(d.params.data.agentVerifyStatus, function(index, item){ }}
<option value="{{ item.value }}">{{ item.description }}</option>
{{# }); }}
</select>
</div>
</div>
<div class="layui-form-item text-right core-hidden">
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-CoreCmsAgent-createForm-submit" id="LAY-app-CoreCmsAgent-createForm-submit" value="确认添加">
</div>
</div>
</script>
<script>
var debug = layui.setter.debug;
layui.data.done = function (d) {
//开启调试情况下获取接口赋值数据
if (debug) { console.log(d.params.data); }
layui.use(['admin', 'form', 'laydate', 'upload', 'coreHelper', 'cropperImg'],
function () {
var $ = layui.$
, form = layui.form
, admin = layui.admin
, laydate = layui.laydate
, upload = layui.upload
, cropperImg = layui.cropperImg
, coreHelper = layui.coreHelper;
form.verify({
verifyname: [/^.{0,255}$/, '代理商名称最大只允许输入255位字符'],
verifymobile: [/^.{0,50}$/, '手机号最大只允许输入50位字符'],
verifyweixin: [/^.{0,50}$/, '微信号最大只允许输入50位字符'],
verifyqq: [/^.{0,50}$/, 'qq号最大只允许输入50位字符'],
verifystoreName: [/^.{0,255}$/, '店铺名称最大只允许输入255位字符'],
verifystoreLogo: [/^.{0,255}$/, '店铺Logo最大只允许输入255位字符'],
verifystoreBanner: [/^.{0,255}$/, '店铺Banner最大只允许输入255位字符'],
verifystoreDesc: [/^.{0,255}$/, '店铺简介最大只允许输入255位字符'],
});
//重载form
form.render(null, 'LAY-app-CoreCmsAgent-createForm');
})
};
</script>

View File

@@ -6,22 +6,22 @@
<div class="layui-form-item"> <div class="layui-form-item">
<label for="name" class="layui-form-label layui-form-required">代理商名称</label> <label for="name" class="layui-form-label layui-form-required">代理商名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input name="name" lay-verType="tips" lay-verify="required|verifyname" class="layui-input" placeholder="请输入代理商名称" lay-reqText="请输入代理商名称" value="{{d.params.data.model.name || '' }}" /> <input name="name" lay-verify="required|verifyname" class="layui-input" placeholder="请输入代理商名称" lay-reqText="请输入代理商名称" value="{{d.params.data.model.name || '' }}" />
</div> </div>
<label for="mobile" class="layui-form-label layui-form-required">手机号</label> <label for="mobile" class="layui-form-label layui-form-required">手机号</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input name="mobile" lay-verType="tips" lay-verify="required|phone" class="layui-input" placeholder="请输入手机号" lay-reqText="请输入手机号" value="{{d.params.data.model.mobile || '' }}" /> <input name="mobile" lay-verify="required|phone" class="layui-input" placeholder="请输入手机号" lay-reqText="请输入手机号" value="{{d.params.data.model.mobile || '' }}" />
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label for="weixin" class="layui-form-label layui-form-required">微信号</label> <label for="weixin" class="layui-form-label">微信号</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input name="weixin" lay-verType="tips" lay-verify="required|verifyweixin" class="layui-input" placeholder="请输入微信号" lay-reqText="请输入微信号" value="{{d.params.data.model.weixin || '' }}" /> <input name="weixin" class="layui-input" placeholder="请输入微信号" lay-reqText="请输入微信号" value="{{d.params.data.model.weixin || '' }}" />
</div> </div>
<label for="qq" class="layui-form-label layui-form-required">qq号</label> <label for="qq" class="layui-form-label">qq号</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input name="qq" lay-verType="tips" lay-verify="required|number" class="layui-input" placeholder="请输入qq号" lay-reqText="请输入qq号" value="{{d.params.data.model.qq || '' }}" /> <input name="qq" class="layui-input" placeholder="请输入qq号" lay-reqText="请输入qq号" value="{{d.params.data.model.qq || '' }}" />
</div> </div>
</div> </div>
@@ -66,18 +66,6 @@
, upload = layui.upload , upload = layui.upload
, coreHelper = layui.coreHelper; , coreHelper = layui.coreHelper;
laydate.render({
elem: '#editTime-CoreCmsAgent-createTime',
type: 'datetime'
});
laydate.render({
elem: '#editTime-CoreCmsAgent-updateTime',
type: 'datetime'
});
laydate.render({
elem: '#editTime-CoreCmsAgent-verifyTime',
type: 'datetime'
});
form.verify({ form.verify({
verifyname: [/^[\S]{0,255}$/, '代理商名称最大只允许输入255位字符且不能出现空格'], verifyname: [/^[\S]{0,255}$/, '代理商名称最大只允许输入255位字符且不能出现空格'],

View File

@@ -11,7 +11,7 @@
/* 重写样式 */ /* 重写样式 */
</style> </style>
<script type="text/html" template lay-type="Post" lay-url="{{ layui.setter.apiUrl }}Api/CoreCmsAgent/GetIndex" lay-done="layui.data.done(d);"> <script type="text/html" template lay-type="Post" lay-url="{{ layui.setter.apiUrl }}Api/CoreCmsAgent/GetIndex" lay-done="layui.data.done(d);">
</script> </script>
<div class="table-body"> <div class="table-body">
<table id="LAY-app-CoreCmsAgent-tableBox" lay-filter="LAY-app-CoreCmsAgent-tableBox"></table> <table id="LAY-app-CoreCmsAgent-tableBox" lay-filter="LAY-app-CoreCmsAgent-tableBox"></table>
@@ -74,6 +74,13 @@
</div> </div>
</script> </script>
<script type="text/html" id="LAY-app-CoreCmsAgent-pagebar">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="addData"><i class="layui-icon layui-icon-add-1"></i></button>
</div>
</script>
<script type="text/html" id="LAY-app-CoreCmsAgent-tableBox-bar"> <script type="text/html" id="LAY-app-CoreCmsAgent-tableBox-bar">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
@@ -122,6 +129,8 @@
url: layui.setter.apiUrl + 'Api/CoreCmsAgent/GetPageList', url: layui.setter.apiUrl + 'Api/CoreCmsAgent/GetPageList',
method: 'POST', method: 'POST',
toolbar: '#LAY-app-CoreCmsAgent-toolbar', toolbar: '#LAY-app-CoreCmsAgent-toolbar',
pagebar: '#LAY-app-CoreCmsAgent-pagebar',
className: 'pagebarbox',
defaultToolbar: ['filter', 'print', 'exports'], defaultToolbar: ['filter', 'print', 'exports'],
height: 'full-127',//无面包屑127,搜索框189,1行62 height: 'full-127',//无面包屑127,搜索框189,1行62
page: true, page: true,
@@ -199,7 +208,15 @@
//查看详情 //查看详情
doDetails(obj); doDetails(obj);
}); });
//头工具栏事件
table.on('pagebar(LAY-app-CoreCmsAgent-tableBox)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
switch (obj.event) {
case 'addData':
doCreate();
break;
};
});
//监听工具条 //监听工具条
table.on('tool(LAY-app-CoreCmsAgent-tableBox)', table.on('tool(LAY-app-CoreCmsAgent-tableBox)',
function (obj) { function (obj) {
@@ -211,7 +228,49 @@
doEdit(obj) doEdit(obj)
} }
}); });
//执行创建操作
function doCreate() {
coreHelper.Post("Api/CoreCmsAgent/GetCreate", null, function (e) {
if (e.code === 0) {
admin.popup({
shadeClose: false,
title: '创建数据',
area: ['640px', '300px'],
id: 'LAY-popup-CoreCmsAgent-create',
success: function (layero, index) {
view(this.id).render('agent/agents/create', { data: e.data }).done(function () {
//监听提交
form.on('submit(LAY-app-CoreCmsAgent-createForm-submit)',
function (data) {
var field = data.field; //获取提交的字段
if (debug) { console.log(field); } //开启调试返回数据
//提交 Ajax 成功后,关闭当前弹层并重载表格
coreHelper.Post("Api/CoreCmsAgent/DoCreate", field, function (e) {
console.log(e)
if (e.code === 0) {
layui.table.reloadData('LAY-app-CoreCmsAgent-tableBox'); //重载表格
layer.close(index); //再执行关闭
layer.msg(e.msg);
} else {
layer.msg(e.msg);
}
});
});
});
// 禁止弹窗出现滚动条
$(layero).children('.layui-layer-content').css('overflow', 'visible');
}
, btn: ['确定', '取消']
, yes: function (index, layero) {
layero.contents().find("#LAY-app-CoreCmsAgent-createForm-submit").click();
}
});
} else {
layer.msg(e.msg);
}
});
}
//执行编辑操作 //执行编辑操作
function doEdit(obj) { function doEdit(obj) {
coreHelper.Post("Api/CoreCmsAgent/GetEdit", { id: obj.data.id }, function (e) { coreHelper.Post("Api/CoreCmsAgent/GetEdit", { id: obj.data.id }, function (e) {