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

This commit is contained in:
大灰灰
2022-11-08 20:07:49 +08:00
parent 717b4ff286
commit 61cadafa2b
5 changed files with 300 additions and 8 deletions

View File

@@ -9,6 +9,11 @@
***********************************************************************/
using SqlSugar;
using System.ComponentModel.DataAnnotations;
using System.Security.Principal;
using System.Xml.Linq;
namespace CoreCms.Net.Model.FromBody
{
//API接口提交================================================
@@ -35,4 +40,51 @@ namespace CoreCms.Net.Model.FromBody
public string storeLogo { get; set; }
public string storeName { get; set; }
}
/// <summary>
/// 后台创建分销商提交参数
/// </summary>
public class FMAdminCreateDistributionPost
{
/// <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

@@ -21,6 +21,7 @@ using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Services;
using CoreCms.Net.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
@@ -43,18 +44,20 @@ namespace CoreCms.Net.Web.Admin.Controllers
private readonly ICoreCmsDistributionServices _coreCmsDistributionServices;
private readonly ICoreCmsUserGradeServices _userGradeServices;
private readonly ICoreCmsDistributionGradeServices _distributionGradeServices;
private readonly ICoreCmsUserServices _userServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsDistributionController(IWebHostEnvironment webHostEnvironment
, ICoreCmsDistributionServices coreCmsDistributionServices, ICoreCmsUserGradeServices userGradeServices, ICoreCmsDistributionGradeServices distributionGradeServices)
, ICoreCmsDistributionServices coreCmsDistributionServices, ICoreCmsUserGradeServices userGradeServices, ICoreCmsDistributionGradeServices distributionGradeServices, ICoreCmsUserServices userServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsDistributionServices = coreCmsDistributionServices;
_userGradeServices = userGradeServices;
_distributionGradeServices = distributionGradeServices;
_userServices = userServices;
}
#region ============================================================
@@ -247,6 +250,81 @@ namespace CoreCms.Net.Web.Admin.Controllers
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var distributionVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.DistributionVerifyStatus>();
var grades = await _distributionGradeServices.GetCaChe();
jm.code = 0;
jm.data = new
{
distributionVerifyStatus,
grades
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] FMAdminCreateDistributionPost entity)
{
var jm = new AdminUiCallBack();
var user = await _userServices.QueryByClauseAsync(p => p.mobile == entity.registeredUserMobile);
if (user == null)
{
jm.msg = "提交的【已注册手机号】未查询到注册用户";
return jm;
}
var isDistribution = await _coreCmsDistributionServices.ExistsAsync(p => p.userId == user.id);
if (isDistribution)
{
jm.msg = "提交的【已注册手机号】已经是分销商了。";
return jm;
}
var model = new CoreCmsDistribution();
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 _coreCmsDistributionServices.InsertAsync(model);
jm.code = id > 0 ? 0 : 1;
jm.msg = id > 0 ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/GetEdit

View File

@@ -0,0 +1,103 @@
<script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsDistribution-createForm" id="LAY-app-CoreCmsDistribution-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.distributionVerifyStatus, 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-CoreCmsDistribution-createForm-submit" id="LAY-app-CoreCmsDistribution-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;
laydate.render({
elem: '#createTime-CoreCmsDistribution-createTime',
type: 'datetime'
});
laydate.render({
elem: '#createTime-CoreCmsDistribution-updateTime',
type: 'datetime'
});
laydate.render({
elem: '#createTime-CoreCmsDistribution-verifyTime',
type: 'datetime'
});
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-CoreCmsDistribution-createForm');
})
};
</script>

View File

@@ -6,22 +6,22 @@
<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-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>
<label for="mobile" class="layui-form-label layui-form-required">手机号</label>
<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 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">
<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>
<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">
<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>

View File

@@ -95,6 +95,13 @@
</div>
</script>
<script type="text/html" id="LAY-app-CoreCmsDistribution-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-CoreCmsDistribution-tableBox-bar">
<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>
@@ -143,6 +150,8 @@
url: layui.setter.apiUrl + 'Api/CoreCmsDistribution/GetPageList',
method: 'POST',
toolbar: '#LAY-app-CoreCmsDistribution-toolbar',
pagebar: '#LAY-app-CoreCmsDistribution-pagebar',
className: 'pagebarbox',
defaultToolbar: ['filter', 'print', 'exports'],
height: 'full-127',//无面包屑127,搜索框189,1行62
page: true,
@@ -229,7 +238,15 @@
//查看详情
doDetails(obj);
});
//头工具栏事件
table.on('pagebar(LAY-app-CoreCmsDistribution-tableBox)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id);
switch (obj.event) {
case 'addData':
doCreate();
break;
};
});
//监听工具条
table.on('tool(LAY-app-CoreCmsDistribution-tableBox)',
function (obj) {
@@ -241,7 +258,49 @@
doEdit(obj)
}
});
//执行创建操作
function doCreate() {
coreHelper.Post("Api/CoreCmsDistribution/GetCreate", null, function (e) {
if (e.code === 0) {
admin.popup({
shadeClose: false,
title: '创建数据',
area: ['640px', '300px'],
id: 'LAY-popup-CoreCmsDistribution-create',
success: function (layero, index) {
view(this.id).render('distribution/distributor/create', { data: e.data }).done(function () {
//监听提交
form.on('submit(LAY-app-CoreCmsDistribution-createForm-submit)',
function (data) {
var field = data.field; //获取提交的字段
if (debug) { console.log(field); } //开启调试返回数据
//提交 Ajax 成功后,关闭当前弹层并重载表格
coreHelper.Post("Api/CoreCmsDistribution/DoCreate", field, function (e) {
console.log(e)
if (e.code === 0) {
layui.table.reloadData('LAY-app-CoreCmsDistribution-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-CoreCmsDistribution-createForm-submit").click();
}
});
} else {
layer.msg(e.msg);
}
});
}
//执行编辑操作
function doEdit(obj) {
coreHelper.Post("Api/CoreCmsDistribution/GetEdit", { id: obj.data.id }, function (e) {