添加项目文件。

This commit is contained in:
JianWeie
2021-12-20 21:27:32 +08:00
parent 747486f5cb
commit 82d825b7a5
3514 changed files with 887941 additions and 0 deletions
@@ -0,0 +1,381 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 广告位置表
/// </summary>
[Description("广告位置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAdvertPositionController : ControllerBase
{
private readonly ICoreCmsAdvertPositionServices _coreCmsAdvertPositionServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsAdvertPositionServices"></param>
public CoreCmsAdvertPositionController(IWebHostEnvironment webHostEnvironment, ICoreCmsAdvertPositionServices coreCmsAdvertPositionServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsAdvertPositionServices = coreCmsAdvertPositionServices;
}
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsAdvertPosition>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsAdvertPosition, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "code":
orderEx = p => p.code;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
case "isEnable":
orderEx = p => p.isEnable;
break;
case "sort":
orderEx = p => p.sort;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//位置编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//添加时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//状态 bit
var isEnable = Request.Form["isEnable"].FirstOrDefault();
if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "true")
@where = @where.And(p => p.isEnable);
else if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "false")
@where = @where.And(p => p.isEnable == false);
//排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//获取数据
var list = await _coreCmsAdvertPositionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var data = EnumHelper.EnumToList<GlobalEnumVars.AdvertTemplateCode>();
jm.data = data;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsAdvertPosition entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var bl = await _coreCmsAdvertPositionServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAdvertPositionServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var advertTemplateCode = EnumHelper.EnumToList<GlobalEnumVars.AdvertTemplateCode>();
jm.code = 0;
jm.data = new
{
model,
advertTemplateCode
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsAdvertPosition/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsAdvertPosition entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsAdvertPositionServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.name = entity.name;
oldModel.code = entity.code;
oldModel.updateTime = DateTime.Now;
oldModel.isEnable = entity.isEnable;
oldModel.sort = entity.sort;
//事物处理过程结束
var bl = await _coreCmsAdvertPositionServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAdvertPositionServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsAdvertPositionServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertPosition/DoSetisEnable/10
/// <summary>
/// 设置状态
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置状态")]
public async Task<AdminUiCallBack> DoSetisEnable([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsAdvertPositionServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isEnable = entity.data;
var bl = await _coreCmsAdvertPositionServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,522 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 广告表
/// </summary>
[Description("广告表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAdvertisementController : ControllerBase
{
private readonly ICoreCmsAdvertisementServices _coreCmsAdvertisementServices;
private readonly ICoreCmsAdvertPositionServices _coreCmsAdvertPositionServices;
private readonly ICoreCmsArticleServices _coreCmsArticleServices;
private readonly ICoreCmsArticleTypeServices _coreCmsArticleTypeServices;
private readonly ICoreCmsGoodsServices _coreCmsGoodsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsAdvertisementServices"></param>
/// <param name="coreCmsAdvertPositionServices"></param>
/// <param name="coreCmsGoodsServices"></param>
/// <param name="coreCmsArticleServices"></param>
/// <param name="coreCmsArticleTypeServices"></param>
public CoreCmsAdvertisementController(IWebHostEnvironment webHostEnvironment
, ICoreCmsAdvertisementServices coreCmsAdvertisementServices
, ICoreCmsAdvertPositionServices coreCmsAdvertPositionServices
, ICoreCmsGoodsServices coreCmsGoodsServices
, ICoreCmsArticleServices coreCmsArticleServices
, ICoreCmsArticleTypeServices coreCmsArticleTypeServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsAdvertisementServices = coreCmsAdvertisementServices;
_coreCmsAdvertPositionServices = coreCmsAdvertPositionServices;
_coreCmsGoodsServices = coreCmsGoodsServices;
_coreCmsArticleServices = coreCmsArticleServices;
_coreCmsArticleTypeServices = coreCmsArticleTypeServices;
}
#region ============================================================
// POST: Api/CoreCmsAdvertisement/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsAdvertisement>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsAdvertisement, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "positionId":
orderEx = p => p.positionId;
break;
case "name":
orderEx = p => p.name;
break;
case "imageUrl":
orderEx = p => p.imageUrl;
break;
case "val":
orderEx = p => p.val;
break;
case "sort":
orderEx = p => p.sort;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
case "code":
orderEx = p => p.code;
break;
case "type":
orderEx = p => p.type;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//位置序列 int
var positionId = Request.Form["positionId"].FirstOrDefault().ObjectToInt(0);
if (positionId > 0) @where = @where.And(p => p.positionId == positionId);
//广告名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//广告图片id nvarchar
var imageUrl = Request.Form["imageUrl"].FirstOrDefault();
if (!string.IsNullOrEmpty(imageUrl)) @where = @where.And(p => p.imageUrl.Contains(imageUrl));
//链接属性值 nvarchar
var val = Request.Form["val"].FirstOrDefault();
if (!string.IsNullOrEmpty(val)) @where = @where.And(p => p.val.Contains(val));
//从小到大 越小越靠前 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//添加时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//广告位置编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//获取数据
var list = await _coreCmsAdvertisementServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertisement/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
types
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertisement/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
advertPosition,
types
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertisement/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsAdvertisement entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var type = await _coreCmsAdvertPositionServices.QueryByIdAsync(entity.positionId);
if (type != null) entity.code = type.code;
var bl = await _coreCmsAdvertisementServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertisement/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAdvertisementServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var advertPosition = await _coreCmsAdvertPositionServices.QueryAsync();
var types = EnumHelper.EnumToList<GlobalEnumVars.AdvertPositionType>();
jm.data = new
{
model,
advertPosition,
types
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsAdvertisement/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsAdvertisement entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsAdvertisementServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
//oldModel.id = entity.id;
if (oldModel.positionId != entity.positionId)
{
oldModel.positionId = entity.positionId;
var type = _coreCmsAdvertPositionServices.QueryById(entity.positionId);
if (type != null) oldModel.code = type.code;
}
oldModel.name = entity.name;
oldModel.imageUrl = entity.imageUrl;
oldModel.val = entity.val;
oldModel.valDes = entity.valDes;
oldModel.sort = entity.sort;
//oldModel.createTime = entity.createTime;
oldModel.updateTime = DateTime.Now;
oldModel.type = entity.type;
//事物处理过程结束
var bl = await _coreCmsAdvertisementServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAdvertisement/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAdvertisementServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsAdvertisementServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region
// POST: Api/CoreCmsAdvertisement/GetGoods
/// <summary>
/// 获取商品列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取商品列表")]
public async Task<AdminUiCallBack> GetGoods()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsGoods>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsGoods, object>> orderEx = p => p.createTime;
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//商品编码 nvarchar
var bn = Request.Form["bn"].FirstOrDefault();
if (!string.IsNullOrEmpty(bn)) @where = @where.And(p => p.bn.Contains(bn));
//商品名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
where = where.And(p => p.isDel == false);
//获取数据
var list = await _coreCmsGoodsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region
// POST: Api/CoreCmsAdvertisement/GetArticle
/// <summary>
/// 获取文章列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取文章列表")]
public async Task<AdminUiCallBack> GetArticle()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsArticle>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsArticle, object>> orderEx = p => p.id;
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//标题 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title)) @where = @where.And(p => p.title.Contains(title));
where = where.And(p => p.isDel == false);
//获取数据
var list = await _coreCmsArticleServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region
// POST: Api/CoreCmsAdvertisement/GetArticleType
/// <summary>
/// 获取文章分类列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取文章分类列表")]
public async Task<AdminUiCallBack> GetArticleType()
{
var jm = new AdminUiCallBack();
//获取数据
var list = await _coreCmsArticleTypeServices.QueryAsync();
//返回数据
jm.data = list;
jm.code = 0;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
}
}
@@ -0,0 +1,423 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 代理商表
///</summary>
[Description("代理商表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAgentController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsAgentServices _coreCmsAgentServices;
private readonly ICoreCmsAgentGradeServices _agentGradeServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsAgentController(IWebHostEnvironment webHostEnvironment
, ICoreCmsAgentServices coreCmsAgentServices, ICoreCmsAgentGradeServices agentGradeServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsAgentServices = coreCmsAgentServices;
_agentGradeServices = agentGradeServices;
}
#region ============================================================
// POST: Api/CoreCmsAgent/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsAgent>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsAgent, object>> orderEx = orderField switch
{
"id" => p => p.id,
"userId" => p => p.userId,
"name" => p => p.name,
"gradeId" => p => p.gradeId,
"mobile" => p => p.mobile,
"weixin" => p => p.weixin,
"qq" => p => p.qq,
"storeName" => p => p.storeName,
"storeLogo" => p => p.storeLogo,
"storeBanner" => p => p.storeBanner,
"storeDesc" => p => p.storeDesc,
"verifyStatus" => p => p.verifyStatus,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
"verifyTime" => p => p.verifyTime,
"isDelete" => p => p.isDelete,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//用户Id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//代理商名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name))
{
where = where.And(p => p.name.Contains(name));
}
//代理商等级 int
var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
if (gradeId > 0)
{
where = where.And(p => p.gradeId == gradeId);
}
//手机号 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile))
{
where = where.And(p => p.mobile.Contains(mobile));
}
//微信号 nvarchar
var weixin = Request.Form["weixin"].FirstOrDefault();
if (!string.IsNullOrEmpty(weixin))
{
where = where.And(p => p.weixin.Contains(weixin));
}
//qq号 nvarchar
var qq = Request.Form["qq"].FirstOrDefault();
if (!string.IsNullOrEmpty(qq))
{
where = where.And(p => p.qq.Contains(qq));
}
//店铺名称 nvarchar
var storeName = Request.Form["storeName"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeName))
{
where = where.And(p => p.storeName.Contains(storeName));
}
//店铺Logo nvarchar
var storeLogo = Request.Form["storeLogo"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeLogo))
{
where = where.And(p => p.storeLogo.Contains(storeLogo));
}
//店铺Banner nvarchar
var storeBanner = Request.Form["storeBanner"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeBanner))
{
where = where.And(p => p.storeBanner.Contains(storeBanner));
}
//店铺简介 nvarchar
var storeDesc = Request.Form["storeDesc"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeDesc))
{
where = where.And(p => p.storeDesc.Contains(storeDesc));
}
//审核状态 int
var verifyStatus = Request.Form["verifyStatus"].FirstOrDefault().ObjectToInt(0);
if (verifyStatus > 0)
{
where = where.And(p => p.verifyStatus == verifyStatus);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//审核时间 datetime
var verifyTime = Request.Form["verifyTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(verifyTime))
{
if (verifyTime.Contains("到"))
{
var dts = verifyTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.verifyTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.verifyTime < dtEnd);
}
else
{
var dt = verifyTime.ObjectToDate();
where = where.And(p => p.verifyTime > dt);
}
}
//是否删除 bit
var isDelete = Request.Form["isDelete"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDelete == true);
}
else if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDelete == false);
}
//获取数据
var list = await _coreCmsAgentServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgent/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var agentVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.AgentVerifyStatus>();
var grades = await _agentGradeServices.GetCaChe();
jm.data = new
{
agentVerifyStatus,
grades
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgent/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAgentServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var agentVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.AgentVerifyStatus>();
var grades = await _agentGradeServices.GetCaChe();
jm.data = new
{
model,
agentVerifyStatus,
grades
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgent/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsAgent entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsAgentServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.name = entity.name;
oldModel.gradeId = entity.gradeId;
oldModel.mobile = entity.mobile;
oldModel.weixin = entity.weixin;
oldModel.qq = entity.qq;
oldModel.verifyStatus = entity.verifyStatus;
oldModel.updateTime = DateTime.Now;
if (oldModel.verifyStatus == (int)GlobalEnumVars.AgentVerifyStatus.VerifyYes)
{
oldModel.verifyTime = DateTime.Now;
}
//事物处理过程结束
var bl = await _coreCmsAgentServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgent/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAgentServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsAgentServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgent/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAgentServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var agentVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.AgentVerifyStatus>();
var grades = await _agentGradeServices.GetCaChe();
jm.data = new
{
agentVerifyStatus,
grades,
model
};
return jm;
}
#endregion
}
}
@@ -0,0 +1,395 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Services;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 代理商品池
///</summary>
[Description("代理商品池")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAgentGoodsController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsAgentGoodsServices _agentGoodsServices;
private readonly ICoreCmsGoodsServices _goodsServices;
private readonly ICoreCmsAgentGradeServices _agentGradeServices;
private readonly ICoreCmsAgentProductsServices _agentProductsServices;
private readonly ICoreCmsProductsServices _productsServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsAgentGoodsController(IWebHostEnvironment webHostEnvironment
, ICoreCmsAgentGoodsServices agentGoodsServices, ICoreCmsGoodsServices goodsServices, ICoreCmsAgentGradeServices agentGradeServices, ICoreCmsAgentProductsServices agentProductsServices, ICoreCmsProductsServices productsServices)
{
_webHostEnvironment = webHostEnvironment;
_agentGoodsServices = agentGoodsServices;
_goodsServices = goodsServices;
_agentGradeServices = agentGradeServices;
_agentProductsServices = agentProductsServices;
_productsServices = productsServices;
}
#region ============================================================
// POST: Api/CoreCmsAgentGoods/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsAgentGoods>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsAgentGoods, object>> orderEx = orderField switch
{
"id" => p => p.id,
"goodId" => p => p.goodId,
"sortId" => p => p.sortId,
"isEnable" => p => p.isEnable,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//商品序列 int
var goodId = Request.Form["goodId"].FirstOrDefault().ObjectToInt(0);
if (goodId > 0)
{
where = where.And(p => p.goodId == goodId);
}
//排序 int
var sortId = Request.Form["sortId"].FirstOrDefault().ObjectToInt(0);
if (sortId > 0)
{
where = where.And(p => p.sortId == sortId);
}
//是否启用 bit
var isEnable = Request.Form["isEnable"].FirstOrDefault();
if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "true")
{
where = where.And(p => p.isEnable == true);
}
else if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "false")
{
where = where.And(p => p.isEnable == false);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//最后更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _agentGoodsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var goods = await _goodsServices.QueryEnumEntityAsync();
var agentGrade = await _agentGradeServices.GetCaChe();
jm.data = new
{
goods,
agentGrade
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] FMCreateAgentGood entity)
{
var jm = new AdminUiCallBack();
jm = await _agentGoodsServices.InsertAsync(entity.good, entity.products);
jm.data = entity;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _agentGoodsServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var goods = await _goodsServices.QueryEnumEntityAsync();
var good = await _goodsServices.QueryByClauseAsync(p => p.id == model.goodId);
var products = await _productsServices.QueryListByClauseAsync(p => p.goodsId == model.goodId && p.isDel == false);
var agentGrade = await _agentGradeServices.GetCaChe();
var agentProducts = await _agentProductsServices.QueryListByClauseAsync(p => p.goodId == model.goodId, p => p.id, OrderByType.Asc);
var allNew = false;
if (agentProducts.Any() && products.Any())
{
var pIds = products.Select(p => p.id).ToList();
var apIds = agentProducts.Select(p => p.productId).ToList();
var sameArr = pIds.Intersect(apIds).ToArray();
allNew = sameArr.Length <= 0;
}
jm.data = new
{
model,
goods,
good,
agentGrade,
agentProducts,
products,
allNew
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] FMCreateAgentGood entity)
{
var jm = await _agentGoodsServices.UpdateAsync(entity.good, entity.products);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = await _agentGoodsServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _agentGoodsServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var goods = await _goodsServices.QueryByClauseAsync(p => p.id == model.goodId);
var products = await _productsServices.QueryListByClauseAsync(p => p.goodsId == model.goodId && p.isDel == false);
var agentGrade = await _agentGradeServices.GetCaChe();
var agentProducts = await _agentProductsServices.QueryListByClauseAsync(p => p.goodId == model.goodId, p => p.id, OrderByType.Asc);
jm.data = new
{
model,
goods,
agentGrade,
agentProducts,
products
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGoods/DoSetisEnable/10
/// <summary>
/// 设置是否启用
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否启用")]
public async Task<AdminUiCallBack> DoSetisEnable([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _agentGoodsServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isEnable = (bool)entity.data;
var bl = await _agentGoodsServices.UpdateAsync(p => new CoreCmsAgentGoods() { isEnable = oldModel.isEnable }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,355 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 代理商等级设置表
///</summary>
[Description("代理商等级设置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAgentGradeController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsAgentGradeServices _coreCmsAgentGradeServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsAgentGradeController(IWebHostEnvironment webHostEnvironment
, ICoreCmsAgentGradeServices coreCmsAgentGradeServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsAgentGradeServices = coreCmsAgentGradeServices;
}
#region ============================================================
// POST: Api/CoreCmsAgentGrade/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsAgentGrade>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsAgentGrade, object>> orderEx = orderField switch
{
"id" => p => p.id,
"name" => p => p.name,
"isDefault" => p => p.isDefault,
"isAutoUpGrade" => p => p.isAutoUpGrade,
"defaultSalesPriceType" => p => p.defaultSalesPriceType,
"defaultSalesPriceNumber" => p => p.defaultSalesPriceNumber,
"sortId" => p => p.sortId,
"description" => p => p.description,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//等级序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//等级名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name))
{
where = where.And(p => p.name.Contains(name));
}
//是否默认等级 bit
var isDefault = Request.Form["isDefault"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDefault == true);
}
else if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDefault == false);
}
//是否自动升级 bit
var isAutoUpGrade = Request.Form["isAutoUpGrade"].FirstOrDefault();
if (!string.IsNullOrEmpty(isAutoUpGrade) && isAutoUpGrade.ToLowerInvariant() == "true")
{
where = where.And(p => p.isAutoUpGrade == true);
}
else if (!string.IsNullOrEmpty(isAutoUpGrade) && isAutoUpGrade.ToLowerInvariant() == "false")
{
where = where.And(p => p.isAutoUpGrade == false);
}
//价格加成方式 int
var defaultSalesPriceType = Request.Form["defaultSalesPriceType"].FirstOrDefault().ObjectToInt(0);
if (defaultSalesPriceType > 0)
{
where = where.And(p => p.defaultSalesPriceType == defaultSalesPriceType);
}
//价格加成值 int
var defaultSalesPriceNumber = Request.Form["defaultSalesPriceNumber"].FirstOrDefault().ObjectToInt(0);
if (defaultSalesPriceNumber > 0)
{
where = where.And(p => p.defaultSalesPriceNumber == defaultSalesPriceNumber);
}
//等级排序 int
var sortId = Request.Form["sortId"].FirstOrDefault().ObjectToInt(0);
if (sortId > 0)
{
where = where.And(p => p.sortId == sortId);
}
//等级说明 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description))
{
where = where.And(p => p.description.Contains(description));
}
//获取数据
var list = await _coreCmsAgentGradeServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var agentDefaultSalesPriceType = EnumHelper.EnumToList<GlobalEnumVars.AgentDefaultSalesPriceType>();
jm.data = new
{
agentDefaultSalesPriceType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var agentDefaultSalesPriceType = EnumHelper.EnumToList<GlobalEnumVars.AgentDefaultSalesPriceType>();
jm.data = new
{
agentDefaultSalesPriceType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsAgentGrade entity)
{
var jm = await _coreCmsAgentGradeServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAgentGradeServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var agentDefaultSalesPriceType = EnumHelper.EnumToList<GlobalEnumVars.AgentDefaultSalesPriceType>();
jm.data = new
{
model,
agentDefaultSalesPriceType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsAgentGrade entity)
{
var jm = await _coreCmsAgentGradeServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAgentGradeServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _coreCmsAgentGradeServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/DoSetisDefault/10
/// <summary>
/// 设置是否默认等级
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否默认等级")]
public async Task<AdminUiCallBack> DoSetisDefault([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsAgentGradeServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDefault = (bool)entity.data;
jm = await _coreCmsAgentGradeServices.UpdateAsync(oldModel);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentGrade/DoSetisAutoUpGrade/10
/// <summary>
/// 设置是否自动升级
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否自动升级")]
public async Task<AdminUiCallBack> DoSetisAutoUpGrade([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsAgentGradeServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isAutoUpGrade = (bool)entity.data;
jm = await _coreCmsAgentGradeServices.UpdateAsync(oldModel);
return jm;
}
#endregion
}
}
@@ -0,0 +1,238 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 代理商订单记录表
///</summary>
[Description("代理商订单记录表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAgentOrderController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsAgentOrderServices _CoreCmsAgentOrderServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsAgentOrderController(IWebHostEnvironment webHostEnvironment
, ICoreCmsAgentOrderServices CoreCmsAgentOrderServices
)
{
_webHostEnvironment = webHostEnvironment;
_CoreCmsAgentOrderServices = CoreCmsAgentOrderServices;
}
#region ============================================================
// POST: Api/CoreCmsAgentOrder/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsAgentOrder>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsAgentOrder, object>> orderEx = orderField switch
{
"id" => p => p.id,
"userId" => p => p.userId,
"buyUserId" => p => p.buyUserId,
"orderId" => p => p.orderId,
"amount" => p => p.amount,
"isSettlement" => p => p.isSettlement,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
"isDelete" => p => p.isDelete,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//用户代理商id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//下单用户id int
var buyUserId = Request.Form["buyUserId"].FirstOrDefault().ObjectToInt(0);
if (buyUserId > 0)
{
where = where.And(p => p.buyUserId == buyUserId);
}
//订单编号 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId))
{
where = where.And(p => p.orderId.Contains(orderId));
}
//是否结算 int
var isSettlement = Request.Form["isSettlement"].FirstOrDefault().ObjectToInt(0);
if (isSettlement > 0)
{
where = where.And(p => p.isSettlement == isSettlement);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//是否删除 bit
var isDelete = Request.Form["isDelete"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDelete == true);
}
else if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDelete == false);
}
//获取数据
var list = await _CoreCmsAgentOrderServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentOrder/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var agentOrderSettlementStatus = EnumHelper.EnumToList<GlobalEnumVars.AgentOrderSettlementStatus>();
jm.data = new
{
agentOrderSettlementStatus
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsAgentOrder/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsAgentOrderServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
}
}
@@ -0,0 +1,103 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 代理设置表
///</summary>
[Description("代理设置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAgentSettingController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsSettingServices _coreCmsSettingServices;
/// <summary>
/// 构造函数
///</summary>
/// <param name="webHostEnvironment"></param>
///<param name="CoreCmsSettingServices"></param>
public CoreCmsAgentSettingController(IWebHostEnvironment webHostEnvironment, ICoreCmsSettingServices CoreCmsSettingServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsSettingServices = CoreCmsSettingServices;
}
#region ============================================================
// POST: Api/CoreCmsSetting/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var configs = await _coreCmsSettingServices.GetConfigDictionaries();
var filesStorageOptionsType = EnumHelper.EnumToList<GlobalEnumVars.FilesStorageOptionsType>();
jm.data = new
{
configs,
filesStorageOptionsType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSetting/DoSave
/// <summary>
/// 保存提交
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Description("保存提交")]
public async Task<AdminUiCallBack> DoSave([FromBody] FMCoreCmsSettingDoSaveModel model)
{
var jm = await _coreCmsSettingServices.UpdateAsync(model);
return jm;
}
#endregion
}
}
@@ -0,0 +1,478 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 文章表
/// </summary>
[Description("文章表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsArticleController : ControllerBase
{
private readonly ICoreCmsArticleServices _coreCmsArticleServices;
private readonly ICoreCmsArticleTypeServices _coreCmsArticleTypeServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsArticleServices"></param>
/// <param name="coreCmsArticleTypeServices"></param>
public CoreCmsArticleController(IWebHostEnvironment webHostEnvironment
, ICoreCmsArticleServices coreCmsArticleServices
, ICoreCmsArticleTypeServices coreCmsArticleTypeServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsArticleServices = coreCmsArticleServices;
_coreCmsArticleTypeServices = coreCmsArticleTypeServices;
}
#region ============================================================
// POST: Api/CoreCmsArticle/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsArticle>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsArticle, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "title":
orderEx = p => p.title;
break;
case "brief":
orderEx = p => p.brief;
break;
case "coverImage":
orderEx = p => p.coverImage;
break;
case "contentBody":
orderEx = p => p.contentBody;
break;
case "typeId":
orderEx = p => p.typeId;
break;
case "sort":
orderEx = p => p.sort;
break;
case "isPub":
orderEx = p => p.isPub;
break;
case "isDel":
orderEx = p => p.isDel;
break;
case "pv":
orderEx = p => p.pv;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//标题 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title)) @where = @where.And(p => p.title.Contains(title));
//简介 nvarchar
var brief = Request.Form["brief"].FirstOrDefault();
if (!string.IsNullOrEmpty(brief)) @where = @where.And(p => p.brief.Contains(brief));
//封面图 nvarchar
var coverImage = Request.Form["coverImage"].FirstOrDefault();
if (!string.IsNullOrEmpty(coverImage)) @where = @where.And(p => p.coverImage.Contains(coverImage));
//文章内容 nvarchar
var contentBody = Request.Form["contentBody"].FirstOrDefault();
if (!string.IsNullOrEmpty(contentBody)) @where = @where.And(p => p.contentBody.Contains(contentBody));
//分类id int
var typeId = Request.Form["typeId"].FirstOrDefault().ObjectToInt(0);
if (typeId > 0) @where = @where.And(p => p.typeId == typeId);
//排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//是否发布 bit
var isPub = Request.Form["isPub"].FirstOrDefault();
if (!string.IsNullOrEmpty(isPub) && isPub.ToLowerInvariant() == "true")
@where = @where.And(p => p.isPub);
else if (!string.IsNullOrEmpty(isPub) && isPub.ToLowerInvariant() == "false")
@where = @where.And(p => p.isPub == false);
//是否删除 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDel == true);
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDel == false);
//访问量 int
var pv = Request.Form["pv"].FirstOrDefault().ObjectToInt(0);
if (pv > 0) @where = @where.And(p => p.pv == pv);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsArticleServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var categories = await _coreCmsArticleTypeServices.QueryAsync();
var jm = new AdminUiCallBack { code = 0 };
jm.data = new
{
categories
};
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var categories = await _coreCmsArticleTypeServices.QueryAsync();
jm.data = new
{
categories
};
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsArticle entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var bl = await _coreCmsArticleServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsArticleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var categories = await _coreCmsArticleTypeServices.QueryAsync();
jm.data = new
{
categories,
model
};
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Admins/CoreCmsArticle/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsArticle entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsArticleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
//oldModel.id = entity.id;
oldModel.title = entity.title;
oldModel.brief = entity.brief;
oldModel.coverImage = entity.coverImage;
oldModel.contentBody = entity.contentBody;
oldModel.typeId = entity.typeId;
oldModel.sort = entity.sort;
oldModel.isPub = entity.isPub;
oldModel.isDel = entity.isDel;
oldModel.pv = entity.pv;
//oldModel.createTime = entity.createTime;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsArticleServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsArticleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsArticleServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/DoSetisPub/10
/// <summary>
/// 设置是否发布
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否发布")]
public async Task<AdminUiCallBack> DoSetisPub([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsArticleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isPub = entity.data;
var bl = await _coreCmsArticleServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsArticle/DoSetisDel/10
/// <summary>
/// 设置是否删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否删除")]
public async Task<AdminUiCallBack> DoSetisDel([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsArticleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDel = entity.data;
var bl = await _coreCmsArticleServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
}
}
@@ -0,0 +1,251 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 文章分类表
///</summary>
[Description("文章分类表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsArticleTypeController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsArticleTypeServices _coreCmsArticleTypeServices;
private readonly ICoreCmsArticleServices _coreCmsArticleServices;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsArticleTypeServices"></param>
/// <param name="coreCmsArticleServices"></param>
public CoreCmsArticleTypeController(IWebHostEnvironment webHostEnvironment
, ICoreCmsArticleTypeServices coreCmsArticleTypeServices
, ICoreCmsArticleServices coreCmsArticleServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsArticleTypeServices = coreCmsArticleTypeServices;
_coreCmsArticleServices = coreCmsArticleServices;
}
#region ============================================================
// POST: Api/CoreCmsArticleType/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
//获取数据
var list = await _coreCmsArticleTypeServices.QueryAsync();
//返回数据
jm.data = list;
jm.code = 0;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArticleType/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArticleType/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var categories = await _coreCmsArticleTypeServices.QueryAsync();
jm.data = new
{
categories = ArticleHelper.GetTree(categories)
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArticleType/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsArticleType entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsArticleTypeServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArticleType/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsArticleTypeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var categories = await _coreCmsArticleTypeServices.QueryAsync();
jm.data = new
{
model,
categories = ArticleHelper.GetTree(categories)
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsArticleType/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsArticleType entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsArticleTypeServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.name = entity.name;
oldModel.parentId = entity.parentId;
oldModel.sort = entity.sort;
//事物处理过程结束
var bl = await _coreCmsArticleTypeServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArticleType/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsArticleTypeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
if (await _coreCmsArticleTypeServices.ExistsAsync(p => p.parentId == entity.id))
{
jm.msg = GlobalConstVars.DeleteIsHaveChildren;
return jm;
}
if (await _coreCmsArticleServices.ExistsAsync(p => p.typeId == entity.id))
{
jm.msg = "栏目下有文章禁止删除";
return jm;
}
var bl = await _coreCmsArticleTypeServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,239 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Claims;
using System.Threading.Tasks;
using CoreCms.Net.Auth.OverWrite;
using CoreCms.Net.Auth.Policys;
using CoreCms.Net.Configuration;
using CoreCms.Net.IRepository;
using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Net.Http.Headers;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户授权登录
/// </summary>
[Route("api/[controller]/[action]")]
[AllowAnonymous]
public class LoginController : ControllerBase
{
private readonly PermissionRequirement _permissionRequirement;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly ISysUserServices _sysUserServices;
private readonly ISysRoleMenuServices _sysRoleMenuServices;
private readonly ISysLoginRecordRepository _sysLoginRecordRepository;
/// <summary>
/// 构造函数注入
/// </summary>
public LoginController(
PermissionRequirement permissionRequirement
, ISysUserServices sysUserServices
, ISysRoleMenuServices sysRoleMenuServices
, IHttpContextAccessor httpContextAccessor
, ISysLoginRecordRepository sysLoginRecordRepository
)
{
_permissionRequirement = permissionRequirement;
_sysUserServices = sysUserServices;
_sysRoleMenuServices = sysRoleMenuServices;
_httpContextAccessor = httpContextAccessor;
_sysLoginRecordRepository = sysLoginRecordRepository;
}
/// <summary>
/// 获取JWT的授权
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
public async Task<AdminUiCallBack> GetJwtToken([FromBody] FMLogin model)
{
var jm = new AdminUiCallBack();
if (string.IsNullOrEmpty(model.userName) || string.IsNullOrEmpty(model.password))
{
jm.msg = "用户名或密码不能为空";
return jm;
}
model.password = CommonHelper.Md5For32(model.password);
var user = await _sysUserServices.QueryByClauseAsync(p => p.userName == model.userName && p.passWord == model.password);
if (user != null)
{
if (user.state == 1)
{
jm.msg = "您的账户已经被冻结,请联系管理员解锁";
return jm;
}
var userRoles = await _sysUserServices.GetUserRoleNameStr(model.userName, model.password);
//如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色
var claims = new List<Claim> {
new Claim(ClaimTypes.GivenName, user.nickName),
new Claim(ClaimTypes.Name, user.userName),
new Claim(JwtRegisteredClaimNames.Jti, user.id.ToString()),
new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_permissionRequirement.Expiration.TotalSeconds).ToString()) };
claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s)));
// ids4和jwt切换
// jwt
if (!Permissions.IsUseIds4)
{
var data = await _sysRoleMenuServices.RoleModuleMaps();
var list = (from item in data
orderby item.id
select new PermissionItem
{
Url = item.menu?.component,
RouteUrl = item.menu?.path,
Authority = item.menu?.authority,
Role = item.role?.roleCode,
}).ToList();
_permissionRequirement.Permissions = list;
}
//用户标识
var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
identity.AddClaims(claims);
var token = JwtToken.BuildJwtToken(claims.ToArray(), _permissionRequirement);
jm.code = 0;
jm.msg = "认证成功";
jm.data = new
{
token,
loginUrl = "Panel.html"
};
//插入登录日志
var log = new SysLoginRecord();
log.username = model.userName;
log.ip = _httpContextAccessor.HttpContext?.Connection.RemoteIpAddress != null ?
_httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() : "127.0.0.1";
log.os = RuntimeInformation.OSDescription;
if (_httpContextAccessor.HttpContext != null)
log.browser = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.UserAgent];
log.operType = (int)GlobalEnumVars.LoginRecordType.;
log.createTime = DateTime.Now;
await _sysLoginRecordRepository.InsertAsync(log);
return jm;
}
else
{
//插入登录日志
var log = new SysLoginRecord();
log.username = model.userName;
log.ip = _httpContextAccessor.HttpContext?.Connection.RemoteIpAddress != null ?
_httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() : "127.0.0.1";
log.os = RuntimeInformation.OSDescription;
if (_httpContextAccessor.HttpContext != null)
log.browser = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.UserAgent];
log.operType = (int)GlobalEnumVars.LoginRecordType.;
log.createTime = DateTime.Now;
await _sysLoginRecordRepository.InsertAsync(log);
jm.msg = "账户密码错误";
return jm;
}
}
/// <summary>
/// 请求刷新Token(以旧换新)
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
[HttpPost]
[Route("RefreshToken")]
public async Task<AdminUiCallBack> RefreshToken(string token = "")
{
var jm = new AdminUiCallBack();
if (string.IsNullOrEmpty(token))
{
jm.code = 1001;
jm.msg = "token无效,请重新登录!";
return jm;
}
var tokenModel = JwtHelper.SerializeJwt(token);
if (tokenModel != null && tokenModel.Uid > 0)
{
var user = await _sysUserServices.QueryByIdAsync(tokenModel.Uid);
if (user != null)
{
var userRoles = await _sysUserServices.GetUserRoleNameStr(user.userName, user.passWord);
//如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色
var claims = new List<Claim> {
new Claim(ClaimTypes.Name, user.userName),
new Claim(JwtRegisteredClaimNames.Jti, tokenModel.Uid.ObjectToString()),
new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_permissionRequirement.Expiration.TotalSeconds).ToString()) };
claims.AddRange(userRoles.Split(',').Select(s => new Claim(ClaimTypes.Role, s)));
//用户标识
var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
identity.AddClaims(claims);
var refreshToken = JwtToken.BuildJwtToken(claims.ToArray(), _permissionRequirement);
jm.code = 0;
jm.msg = "认证成功";
jm.data = refreshToken;
//插入登录日志
var log = new SysLoginRecord();
log.username = user.userName;
if (_httpContextAccessor.HttpContext != null)
{
if (_httpContextAccessor.HttpContext.Connection.RemoteIpAddress != null)
{
log.ip = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
}
log.os = RuntimeInformation.OSDescription;
log.browser = _httpContextAccessor.HttpContext.Request.Headers[HeaderNames.UserAgent];
}
log.operType = (int)GlobalEnumVars.LoginRecordType.Token;
log.createTime = DateTime.Now;
await _sysLoginRecordRepository.InsertAsync(log);
return jm;
}
}
jm.code = 1001;
jm.msg = "token无效,请重新登录!";
return jm;
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,390 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 分销商表
/// </summary>
[Description("分销商表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsDistributionController : ControllerBase
{
private readonly ICoreCmsDistributionServices _coreCmsDistributionServices;
private readonly ICoreCmsUserGradeServices _userGradeServices;
private readonly ICoreCmsDistributionGradeServices _distributionGradeServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsDistributionController(IWebHostEnvironment webHostEnvironment
, ICoreCmsDistributionServices coreCmsDistributionServices, ICoreCmsUserGradeServices userGradeServices, ICoreCmsDistributionGradeServices distributionGradeServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsDistributionServices = coreCmsDistributionServices;
_userGradeServices = userGradeServices;
_distributionGradeServices = distributionGradeServices;
}
#region ============================================================
// POST: Api/CoreCmsDistribution/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsDistribution>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsDistribution, object>> orderEx = orderField switch
{
"id" => p => p.id,
"userId" => p => p.userId,
"name" => p => p.name,
"gradeId" => p => p.gradeId,
"mobile" => p => p.mobile,
"weixin" => p => p.weixin,
"qq" => p => p.qq,
"storeName" => p => p.storeName,
"storeLogo" => p => p.storeLogo,
"storeBanner" => p => p.storeBanner,
"storeDesc" => p => p.storeDesc,
"verifyStatus" => p => p.verifyStatus,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
"verifyTime" => p => p.verifyTime,
"isDelete" => p => p.isDelete,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) where = where.And(p => p.id == id);
//用户Id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//分销商名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) where = where.And(p => p.name.Contains(name));
//分销等级 int
var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
if (gradeId > 0) where = where.And(p => p.gradeId == gradeId);
//手机号 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) where = where.And(p => p.mobile.Contains(mobile));
//微信号 nvarchar
var weixin = Request.Form["weixin"].FirstOrDefault();
if (!string.IsNullOrEmpty(weixin)) where = where.And(p => p.weixin.Contains(weixin));
//qq号 nvarchar
var qq = Request.Form["qq"].FirstOrDefault();
if (!string.IsNullOrEmpty(qq)) where = where.And(p => p.qq.Contains(qq));
//店铺名称 nvarchar
var storeName = Request.Form["storeName"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeName)) where = where.And(p => p.storeName.Contains(storeName));
//店铺Logo nvarchar
var storeLogo = Request.Form["storeLogo"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeLogo)) where = where.And(p => p.storeLogo.Contains(storeLogo));
//店铺Banner nvarchar
var storeBanner = Request.Form["storeBanner"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeBanner)) where = where.And(p => p.storeBanner.Contains(storeBanner));
//店铺简介 nvarchar
var storeDesc = Request.Form["storeDesc"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeDesc)) where = where.And(p => p.storeDesc.Contains(storeDesc));
//审核状态 int
var verifyStatus = Request.Form["verifyStatus"].FirstOrDefault().ObjectToInt(0);
if (verifyStatus > 0) where = where.And(p => p.verifyStatus == verifyStatus);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//审核时间 datetime
var verifyTime = Request.Form["verifyTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(verifyTime))
{
if (verifyTime.Contains("到"))
{
var dts = verifyTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.verifyTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.verifyTime < dtEnd);
}
else
{
var dt = verifyTime.ObjectToDate();
where = where.And(p => p.verifyTime > dt);
}
}
//是否删除 bit
var isDelete = Request.Form["isDelete"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "true")
where = where.And(p => p.isDelete);
else if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "false")
where = where.And(p => p.isDelete == false);
//获取数据
var list = await _coreCmsDistributionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var distributionVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.DistributionVerifyStatus>();
var grades = await _distributionGradeServices.GetCaChe();
jm.data = new
{
distributionVerifyStatus,
grades
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var distributionVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.DistributionVerifyStatus>();
var grades = await _distributionGradeServices.GetCaChe();
jm.code = 0;
jm.data = new
{
model,
distributionVerifyStatus,
grades
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsDistribution entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsDistributionServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.name = entity.name;
oldModel.gradeId = entity.gradeId;
oldModel.mobile = entity.mobile;
oldModel.weixin = entity.weixin;
oldModel.qq = entity.qq;
oldModel.verifyStatus = entity.verifyStatus;
oldModel.updateTime = DateTime.Now;
if (oldModel.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes) oldModel.verifyTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsDistributionServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsDistributionServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistribution/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var distributionVerifyStatus = EnumHelper.EnumToList<GlobalEnumVars.DistributionVerifyStatus>();
var grades = await _distributionGradeServices.GetCaChe();
jm.code = 0;
jm.data = new
{
model,
distributionVerifyStatus,
grades
};
return jm;
}
#endregion
}
}
@@ -0,0 +1,654 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 分销商等级设置表
/// </summary>
[Description("分销商等级设置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsDistributionGradeController : ControllerBase
{
private readonly ICoreCmsDistributionConditionServices _coreCmsDistributionConditionServices;
private readonly ICoreCmsDistributionGradeServices _coreCmsDistributionGradeServices;
private readonly ICoreCmsDistributionResultServices _coreCmsDistributionResultServices;
private readonly ICoreCmsUserGradeServices _coreCmsUserGradeServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsDistributionGradeController(IWebHostEnvironment webHostEnvironment
, ICoreCmsDistributionGradeServices coreCmsDistributionGradeServices
, ICoreCmsUserGradeServices coreCmsUserGradeServices
, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices
, ICoreCmsDistributionResultServices coreCmsDistributionResultServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsDistributionGradeServices = coreCmsDistributionGradeServices;
_coreCmsUserGradeServices = coreCmsUserGradeServices;
_coreCmsDistributionConditionServices = coreCmsDistributionConditionServices;
_coreCmsDistributionResultServices = coreCmsDistributionResultServices;
}
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsDistributionGrade>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsDistributionGrade, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "isDefault":
orderEx = p => p.isDefault;
break;
case "isAutoUpGrade":
orderEx = p => p.isAutoUpGrade;
break;
case "sortId":
orderEx = p => p.sortId;
break;
case "description":
orderEx = p => p.description;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//等级序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//等级名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name))
{
where = where.And(p => p.name.Contains(name));
}
//是否默认等级 bit
var isDefault = Request.Form["isDefault"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDefault == true);
}
else if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDefault == false);
}
//是否自动升级 bit
var isAutoUpGrade = Request.Form["isAutoUpGrade"].FirstOrDefault();
if (!string.IsNullOrEmpty(isAutoUpGrade) && isAutoUpGrade.ToLowerInvariant() == "true")
{
where = where.And(p => p.isAutoUpGrade == true);
}
else if (!string.IsNullOrEmpty(isAutoUpGrade) && isAutoUpGrade.ToLowerInvariant() == "false")
{
where = where.And(p => p.isAutoUpGrade == false);
}
//等级排序 int
var sortId = Request.Form["sortId"].FirstOrDefault().ObjectToInt(0);
if (sortId > 0)
{
where = where.And(p => p.sortId == sortId);
}
//等级说明 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description))
{
where = where.And(p => p.description.Contains(description));
}
//获取数据
var list = await _coreCmsDistributionGradeServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsDistributionGrade entity)
{
var jm = await _coreCmsDistributionGradeServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionGradeServices.QueryByClauseAsync(p => p.id == entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var distributionConditions = await _coreCmsDistributionConditionServices.QueryListByClauseAsync(p => p.gradeId == model.id);
var distributionResults = await _coreCmsDistributionResultServices.QueryListByClauseAsync(p => p.gradeId == model.id);
jm.code = 0;
jm.data = new
{
model,
distributionConditions,
distributionResults
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsUserGrade/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsDistributionGrade entity)
{
var jm = await _coreCmsDistributionGradeServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoSetisDefault/10
/// <summary>
/// 设置是否默认等级
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否默认等级")]
public async Task<AdminUiCallBack> DoSetisDefault([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsDistributionGradeServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDefault = (bool)entity.data;
jm = await _coreCmsDistributionGradeServices.UpdateAsync(oldModel);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoSetisAutoUpGrade/10
/// <summary>
/// 设置是否自动升级
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否自动升级")]
public async Task<AdminUiCallBack> DoSetisAutoUpGrade([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsDistributionGradeServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isAutoUpGrade = (bool)entity.data;
jm = await _coreCmsDistributionGradeServices.UpdateAsync(oldModel);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = await _coreCmsDistributionGradeServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
//升级条件
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetDistributionConditionPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetDistributionConditionPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsDistributionCondition>();
//查询筛选
//会员等级Id int
var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
if (gradeId > 0)
{
@where = @where.And(p => p.gradeId == gradeId);
}
//获取数据
var list = await _coreCmsDistributionConditionServices.QueryPageAsync(where, p => p.id, OrderByType.Asc, pageCurrent, pageSize);
if (list.Any())
{
var distributionConditions = EnumHelper.EnumToList<GlobalEnumVars.DistributionConditions>();
foreach (var condition in list)
{
var cd = distributionConditions.Find(p => p.title == condition.code);
condition.name = cd?.description;
}
}
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetDistributionConditionCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetDistributionConditionCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var distributionConditionsCode = EnumHelper.EnumToList<GlobalEnumVars.DistributionConditionsCode>();
jm.data = new
{
distributionConditionsCode,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDistributionConditionCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoDistributionConditionCreate([FromBody] CoreCmsDistributionCondition entity)
{
var jm = await _coreCmsDistributionConditionServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetDistributionConditionEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetDistributionConditionEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionConditionServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var distributionConditionsCode = EnumHelper.EnumToList<GlobalEnumVars.DistributionConditionsCode>();
jm.code = 0;
jm.data = new
{
model,
distributionConditionsCode,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDistributionConditionEdit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoDistributionConditionEdit([FromBody] CoreCmsDistributionCondition entity)
{
var jm = await _coreCmsDistributionConditionServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDistributionConditionDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDistributionConditionDelete([FromBody] FMIntId entity)
{
var jm = await _coreCmsDistributionConditionServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
//升级结果
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetDistributionResultPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetDistributionResultPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsDistributionResult>();
//查询筛选
//会员等级Id int
var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
if (gradeId > 0)
{
@where = @where.And(p => p.gradeId == gradeId);
}
//获取数据
var list = await _coreCmsDistributionResultServices.QueryPageAsync(where, p => p.code, OrderByType.Asc, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetDistributionResultCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetDistributionResultCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDistributionResultCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoDistributionResultCreate([FromBody] CoreCmsDistributionResult entity)
{
var jm = await _coreCmsDistributionResultServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/GetDistributionResultEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetDistributionResultEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionResultServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDistributionResultEdit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoDistributionResultEdit([FromBody] CoreCmsDistributionResult entity)
{
var jm = await _coreCmsDistributionResultServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionGrade/DoDistributionResultDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDistributionResultDelete([FromBody] FMIntId entity)
{
var jm = await _coreCmsDistributionResultServices.DeleteByIdAsync(entity.id); ;
return jm;
}
#endregion
}
}
@@ -0,0 +1,630 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 分销商订单记录表
///</summary>
[Description("分销商订单记录表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsDistributionOrderController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsDistributionOrderServices _coreCmsDistributionOrderServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsDistributionOrderController(IWebHostEnvironment webHostEnvironment
, ICoreCmsDistributionOrderServices coreCmsDistributionOrderServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsDistributionOrderServices = coreCmsDistributionOrderServices;
}
#region ============================================================
// POST: Api/CoreCmsDistributionOrder/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsDistributionOrder>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsDistributionOrder, object>> orderEx = orderField switch
{
"id" => p => p.id,
"userId" => p => p.userId,
"buyUserId" => p => p.buyUserId,
"orderId" => p => p.orderId,
"amount" => p => p.amount,
"isSettlement" => p => p.isSettlement,
"level" => p => p.level,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
"isDelete" => p => p.isDelete,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//用户分销商id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//下单用户id int
var buyUserId = Request.Form["buyUserId"].FirstOrDefault().ObjectToInt(0);
if (buyUserId > 0)
{
where = where.And(p => p.buyUserId == buyUserId);
}
//订单编号 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId))
{
where = where.And(p => p.orderId.Contains(orderId));
}
//购买用户昵称 nvarchar
var buyUserNickName = Request.Form["buyUserNickName"].FirstOrDefault();
if (!string.IsNullOrEmpty(buyUserNickName))
{
where = where.And(p => p.buyUserNickName.Contains(buyUserNickName));
}
//分销用户昵称 nvarchar
var distributorName = Request.Form["distributorName"].FirstOrDefault();
if (!string.IsNullOrEmpty(distributorName))
{
where = where.And(p => p.distributorName.Contains(distributorName));
}
//是否结算 int
var isSettlement = Request.Form["isSettlement"].FirstOrDefault().ObjectToInt(0);
if (isSettlement > 0)
{
where = where.And(p => p.isSettlement == isSettlement);
}
//层级 int
var level = Request.Form["level"].FirstOrDefault().ObjectToInt(0);
if (level > 0)
{
where = where.And(p => p.level == level);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//是否删除 bit
var isDelete = Request.Form["isDelete"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDelete == true);
}
else if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDelete == false);
}
//获取数据
var list = await _coreCmsDistributionOrderServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionOrder/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var distributionOrderSettlementStatus = EnumHelper.EnumToList<GlobalEnumVars.DistributionOrderSettlementStatus>();
jm.data = new
{
distributionOrderSettlementStatus
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionOrder/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionOrderServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionOrder/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _coreCmsDistributionOrderServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("用户分销商id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("下单用户id");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("订单编号");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("结算金额");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("是否结算");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("层级");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("创建时间");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("更新时间");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("是否删除");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].userId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].buyUserId.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].orderId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].amount.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].isSettlement.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].level.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].createTime.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].updateTime.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].isDelete.ToString());
rowTemp9.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsDistributionOrder导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionOrder/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsDistributionOrder>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//用户分销商id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//下单用户id int
var buyUserId = Request.Form["buyUserId"].FirstOrDefault().ObjectToInt(0);
if (buyUserId > 0)
{
where = where.And(p => p.buyUserId == buyUserId);
}
//订单编号 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId))
{
where = where.And(p => p.orderId.Contains(orderId));
}
//是否结算 int
var isSettlement = Request.Form["isSettlement"].FirstOrDefault().ObjectToInt(0);
if (isSettlement > 0)
{
where = where.And(p => p.isSettlement == isSettlement);
}
//层级 int
var level = Request.Form["level"].FirstOrDefault().ObjectToInt(0);
if (level > 0)
{
where = where.And(p => p.level == level);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//是否删除 bit
var isDelete = Request.Form["isDelete"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDelete == true);
}
else if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDelete == false);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _coreCmsDistributionOrderServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("用户分销商id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("下单用户id");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("订单编号");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("结算金额");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("是否结算");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("层级");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("创建时间");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("更新时间");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("是否删除");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].userId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].buyUserId.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].orderId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].amount.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].isSettlement.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].level.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].createTime.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].updateTime.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].isDelete.ToString());
rowTemp9.CellStyle = commonCellStyle;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsDistributionOrder导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,428 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 等级佣金表
/// </summary>
[Description("等级佣金表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsDistributionResultController : ControllerBase
{
private readonly ICoreCmsDistributionResultServices _coreCmsDistributionResultServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsDistributionResultController(IWebHostEnvironment webHostEnvironment
, ICoreCmsDistributionResultServices coreCmsDistributionResultServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsDistributionResultServices = coreCmsDistributionResultServices;
}
#region ============================================================
// POST: Api/CoreCmsDistributionResult/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsDistributionResult>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsDistributionResult, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "gradeId":
orderEx = p => p.gradeId;
break;
case "code":
orderEx = p => p.code;
break;
case "parameters":
orderEx = p => p.parameters;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//会员等级Id int
var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
if (gradeId > 0) @where = @where.And(p => p.gradeId == gradeId);
//佣金编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//佣金设置序列化参数 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//获取数据
var list = await _coreCmsDistributionResultServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsDistributionResult entity)
{
var jm = await _coreCmsDistributionResultServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionResultServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsDistributionResult entity)
{
var jm = await _coreCmsDistributionResultServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = await _coreCmsDistributionResultServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = await _coreCmsDistributionResultServices.DeleteByIdsAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsDistributionResultServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsDistributionResultServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("会员等级Id");
row1.CreateCell(2).SetCellValue("佣金编码");
row1.CreateCell(3).SetCellValue("佣金设置序列化参数");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].gradeId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].code);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].parameters);
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsDistributionResult导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsDistributionResult/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsDistributionResult>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//会员等级Id int
var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
if (gradeId > 0) @where = @where.And(p => p.gradeId == gradeId);
//佣金编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//佣金设置序列化参数 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsDistributionResultServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("会员等级Id");
row1.CreateCell(2).SetCellValue("佣金编码");
row1.CreateCell(3).SetCellValue("佣金设置序列化参数");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].gradeId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].code);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].parameters);
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsDistributionResult导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,103 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 分销设置表
///</summary>
[Description("分销设置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsDistributionSettingController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsSettingServices _coreCmsSettingServices;
/// <summary>
/// 构造函数
///</summary>
/// <param name="webHostEnvironment"></param>
///<param name="CoreCmsSettingServices"></param>
public CoreCmsDistributionSettingController(IWebHostEnvironment webHostEnvironment, ICoreCmsSettingServices CoreCmsSettingServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsSettingServices = CoreCmsSettingServices;
}
#region ============================================================
// POST: Api/CoreCmsSetting/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var configs = await _coreCmsSettingServices.GetConfigDictionaries();
var filesStorageOptionsType = EnumHelper.EnumToList<GlobalEnumVars.FilesStorageOptionsType>();
jm.data = new
{
configs,
filesStorageOptionsType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSetting/DoSave
/// <summary>
/// 保存提交
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Description("保存提交")]
public async Task<AdminUiCallBack> DoSave([FromBody] FMCoreCmsSettingDoSaveModel model)
{
var jm = await _coreCmsSettingServices.UpdateAsync(model);
return jm;
}
#endregion
}
}
@@ -0,0 +1,479 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 支付单表
/// </summary>
[Description("支付单表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBillPaymentsController : ControllerBase
{
private readonly ICoreCmsBillPaymentsServices _coreCmsBillPaymentsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsBillPaymentsServices"></param>
public CoreCmsBillPaymentsController(IWebHostEnvironment webHostEnvironment
, ICoreCmsBillPaymentsServices coreCmsBillPaymentsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBillPaymentsServices = coreCmsBillPaymentsServices;
}
#region ============================================================
// POST: Api/CoreCmsBillPayments/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBillPayments>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBillPayments, object>> orderEx;
switch (orderField)
{
case "paymentId":
orderEx = p => p.paymentId;
break;
case "money":
orderEx = p => p.money;
break;
case "userId":
orderEx = p => p.userId;
break;
case "type":
orderEx = p => p.type;
break;
case "status":
orderEx = p => p.status;
break;
case "paymentCode":
orderEx = p => p.paymentCode;
break;
case "ip":
orderEx = p => p.ip;
break;
case "parameters":
orderEx = p => p.parameters;
break;
case "payedMsg":
orderEx = p => p.payedMsg;
break;
case "tradeNo":
orderEx = p => p.tradeNo;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.paymentId;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//支付单号 nvarchar
var paymentId = Request.Form["paymentId"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentId)) where = where.And(p => p.paymentId.Contains(paymentId));
//用户ID 关联user.id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//资源类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//支付状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) where = where.And(p => p.status == status);
//支付类型编码 关联payments.code nvarchar
var paymentCode = Request.Form["paymentCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentCode)) where = where.And(p => p.paymentCode.Contains(paymentCode));
//支付单生成IP nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip)) where = where.And(p => p.ip.Contains(ip));
//支付的时候需要的参数,存的是json格式的一维数组 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) where = where.And(p => p.parameters.Contains(parameters));
//支付回调后的状态描述 nvarchar
var payedMsg = Request.Form["payedMsg"].FirstOrDefault();
if (!string.IsNullOrEmpty(payedMsg)) where = where.And(p => p.payedMsg.Contains(payedMsg));
//第三方平台交易流水号 nvarchar
var tradeNo = Request.Form["tradeNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(tradeNo)) where = where.And(p => p.tradeNo.Contains(tradeNo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsBillPaymentsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillPayments/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var paymentsStatus = EnumHelper.EnumToList<GlobalEnumVars.BillPaymentsStatus>();
var paymentsResourceTypes = EnumHelper.EnumToList<GlobalEnumVars.BillPaymentsType>();
//订单支付方式
var paymentCode = EnumHelper.EnumToList<GlobalEnumVars.PaymentsTypes>();
jm.data = new
{
paymentsStatus,
paymentsResourceTypes,
paymentCode
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillPayments/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillPaymentsServices.QueryByClauseAsync(p => p.paymentId == entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var paymentsStatus = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillPaymentsStatus>(model.status);
var paymentsResourceTypes = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillPaymentsType>(model.type);
var paymentCode = EnumHelper.GetEnumDescriptionByKey<GlobalEnumVars.PaymentsTypes>(model.paymentCode);
jm.code = 0;
jm.data = new
{
model,
paymentsStatus,
paymentsResourceTypes,
paymentCode,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillPayments/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillPaymentsServices.QueryListByClauseAsync(p => entity.id.Contains(p.paymentId),
p => p.paymentId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("支付单号");
row1.CreateCell(1).SetCellValue("支付金额");
row1.CreateCell(2).SetCellValue("用户ID 关联user.id");
row1.CreateCell(3).SetCellValue("资源类型");
row1.CreateCell(4).SetCellValue("支付状态");
row1.CreateCell(5).SetCellValue("支付类型编码 关联payments.code");
row1.CreateCell(6).SetCellValue("支付单生成IP");
row1.CreateCell(7).SetCellValue("支付的时候需要的参数,存的是json格式的一维数组");
row1.CreateCell(8).SetCellValue("支付回调后的状态描述");
row1.CreateCell(9).SetCellValue("第三方平台交易流水号");
row1.CreateCell(10).SetCellValue("创建时间");
row1.CreateCell(11).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].paymentId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].paymentCode);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].ip);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].parameters);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].payedMsg);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].tradeNo);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillPayments导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillPayments/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsBillPayments>();
//查询筛选
//支付单号 nvarchar
var paymentId = Request.Form["paymentId"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentId)) where = where.And(p => p.paymentId.Contains(paymentId));
//用户ID 关联user.id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//资源类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//支付状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) where = where.And(p => p.status == status);
//支付类型编码 关联payments.code nvarchar
var paymentCode = Request.Form["paymentCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentCode)) where = where.And(p => p.paymentCode.Contains(paymentCode));
//支付单生成IP nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip)) where = where.And(p => p.ip.Contains(ip));
//支付的时候需要的参数,存的是json格式的一维数组 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) where = where.And(p => p.parameters.Contains(parameters));
//支付回调后的状态描述 nvarchar
var payedMsg = Request.Form["payedMsg"].FirstOrDefault();
if (!string.IsNullOrEmpty(payedMsg)) where = where.And(p => p.payedMsg.Contains(payedMsg));
//第三方平台交易流水号 nvarchar
var tradeNo = Request.Form["tradeNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(tradeNo)) where = where.And(p => p.tradeNo.Contains(tradeNo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillPaymentsServices.QueryListByClauseAsync(where, p => p.paymentId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("支付单号");
row1.CreateCell(1).SetCellValue("支付金额");
row1.CreateCell(2).SetCellValue("用户ID 关联user.id");
row1.CreateCell(3).SetCellValue("资源类型");
row1.CreateCell(4).SetCellValue("支付状态");
row1.CreateCell(5).SetCellValue("支付类型编码 关联payments.code");
row1.CreateCell(6).SetCellValue("支付单生成IP");
row1.CreateCell(7).SetCellValue("支付的时候需要的参数,存的是json格式的一维数组");
row1.CreateCell(8).SetCellValue("支付回调后的状态描述");
row1.CreateCell(9).SetCellValue("第三方平台交易流水号");
row1.CreateCell(10).SetCellValue("创建时间");
row1.CreateCell(11).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].paymentId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].paymentCode);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].ip);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].parameters);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].payedMsg);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].tradeNo);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillPayments导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,606 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 退款单表
/// </summary>
[Description("退款单表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBillRefundController : ControllerBase
{
private readonly ICoreCmsBillRefundServices _coreCmsBillRefundServices;
private readonly ICoreCmsUserServices _userServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsBillRefundServices"></param>
/// <param name="userServices"></param>
public CoreCmsBillRefundController(IWebHostEnvironment webHostEnvironment
, ICoreCmsBillRefundServices coreCmsBillRefundServices, ICoreCmsUserServices userServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBillRefundServices = coreCmsBillRefundServices;
_userServices = userServices;
}
#region ============================================================
// POST: Api/CoreCmsBillRefund/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBillRefund>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBillRefund, object>> orderEx;
switch (orderField)
{
case "refundId":
orderEx = p => p.refundId;
break;
case "aftersalesId":
orderEx = p => p.aftersalesId;
break;
case "money":
orderEx = p => p.money;
break;
case "userId":
orderEx = p => p.userId;
break;
case "sourceId":
orderEx = p => p.sourceId;
break;
case "type":
orderEx = p => p.type;
break;
case "paymentCode":
orderEx = p => p.paymentCode;
break;
case "tradeNo":
orderEx = p => p.tradeNo;
break;
case "status":
orderEx = p => p.status;
break;
case "memo":
orderEx = p => p.memo;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.refundId;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//退款单ID nvarchar
var refundId = Request.Form["refundId"].FirstOrDefault();
if (!string.IsNullOrEmpty(refundId)) where = where.And(p => p.refundId.Contains(refundId));
//售后单id nvarchar
var aftersalesId = Request.Form["aftersalesId"].FirstOrDefault();
if (!string.IsNullOrEmpty(aftersalesId)) where = where.And(p => p.aftersalesId.Contains(aftersalesId));
//用户ID 关联user.id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//资源id,根据type不同而关联不同的表 nvarchar
var sourceId = Request.Form["sourceId"].FirstOrDefault();
if (!string.IsNullOrEmpty(sourceId)) where = where.And(p => p.sourceId.Contains(sourceId));
//资源类型1=订单,2充值单 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//退款支付类型编码 默认原路返回 关联支付单表支付编码 nvarchar
var paymentCode = Request.Form["paymentCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentCode)) where = where.And(p => p.paymentCode.Contains(paymentCode));
//第三方平台交易流水号 nvarchar
var tradeNo = Request.Form["tradeNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(tradeNo)) where = where.And(p => p.tradeNo.Contains(tradeNo));
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) where = where.And(p => p.status == status);
//退款失败原因 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) where = where.And(p => p.memo.Contains(memo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsBillRefundServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillRefund/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var paymentsResourceTypes = EnumHelper.EnumToList<GlobalEnumVars.BillPaymentsType>();
var refundStatus = EnumHelper.EnumToList<GlobalEnumVars.BillRefundStatus>();
//订单支付方式
var paymentCode = EnumHelper.EnumToList<GlobalEnumVars.PaymentsTypes>();
jm.data = new
{
paymentsResourceTypes,
refundStatus,
paymentCode
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillRefund/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillRefundServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var paymentsResourceTypes = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillPaymentsType>(model.type);
var refundStatus = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillRefundStatus>(model.status);
var paymentCode = EnumHelper.GetEnumDescriptionByKey<GlobalEnumVars.PaymentsTypes>(model.paymentCode);
jm.code = 0;
jm.data = model;
jm.data = new
{
paymentsResourceTypes,
refundStatus,
paymentCode,
model
};
return jm;
}
#endregion
#region 退============================================================
// POST: Api/CoreCmsBillRefund/GetAudit
/// <summary>
/// 审核退款单
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("审核退款单")]
public async Task<AdminUiCallBack> GetAudit([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillRefundServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var paymentsResourceTypes =
EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillPaymentsType>(model.type);
var refundStatus = EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillRefundStatus>(model.status);
var paymentCode = EnumHelper.EnumToList<GlobalEnumVars.PaymentsTypes>();
var userInfo = await _userServices.QueryByClauseAsync(p => p.id == model.userId);
jm.code = 0;
jm.data = new
{
paymentsResourceTypes,
refundStatus,
paymentCode,
model,
userInfo
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillRefund/Edit
/// <summary>
/// 提交审核结果
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("提交审核结果")]
public async Task<AdminUiCallBack> DoAudit([FromBody] FMDoAuditPost entity)
{
var jm = new AdminUiCallBack();
if (string.IsNullOrEmpty(entity.refundId))
{
jm.msg = GlobalErrorCodeVars.Code10000;
return jm;
}
if (string.IsNullOrEmpty(entity.paymentCode))
{
jm.msg = GlobalErrorCodeVars.Code10000;
return jm;
}
if (entity.status != 2 && entity.status != 4)
{
jm.msg = GlobalErrorCodeVars.Code10000;
return jm;
}
var result =
await _coreCmsBillRefundServices.ToRefund(entity.refundId, entity.status, entity.paymentCode);
//事物处理过程结束
jm.code = result.status ? 0 : 1;
jm.msg = result.msg;
jm.data = result.data;
return jm;
}
#endregion
#region 退退============================================================
// POST: Api/CoreCmsBillRefund/Edit
/// <summary>
/// 退款失败状态再次退款
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("退款失败状态再次退款")]
public async Task<AdminUiCallBack> DoReAudit([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
if (string.IsNullOrEmpty(entity.id))
{
jm.msg = GlobalErrorCodeVars.Code13215;
return jm;
}
var oldModel = await _coreCmsBillRefundServices.QueryByClauseAsync(p =>
p.refundId == entity.id && p.status == (int)GlobalEnumVars.BillRefundStatus.STATUS_FAIL);
if (oldModel == null)
{
jm.msg = GlobalErrorCodeVars.Code13224;
return jm;
}
var result = await _coreCmsBillRefundServices.PaymentRefund(entity.id);
//事物处理过程结束
jm.code = result.status ? 0 : 1;
jm.msg = result.msg;
jm.data = result.data;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillRefund/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillRefundServices.QueryListByClauseAsync(p => entity.id.Contains(p.refundId),
p => p.refundId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("退款单ID");
row1.CreateCell(1).SetCellValue("售后单id");
row1.CreateCell(2).SetCellValue("退款金额");
row1.CreateCell(3).SetCellValue("用户ID 关联user.id");
row1.CreateCell(4).SetCellValue("资源id,根据type不同而关联不同的表");
row1.CreateCell(5).SetCellValue("资源类型1=订单,2充值单");
row1.CreateCell(6).SetCellValue("退款支付类型编码 默认原路返回 关联支付单表支付编码");
row1.CreateCell(7).SetCellValue("第三方平台交易流水号");
row1.CreateCell(8).SetCellValue("状态");
row1.CreateCell(9).SetCellValue("退款失败原因");
row1.CreateCell(10).SetCellValue("创建时间");
row1.CreateCell(11).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].refundId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].aftersalesId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].sourceId);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].paymentCode);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].tradeNo);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillRefund导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillRefund/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsBillRefund>();
//查询筛选
//退款单ID nvarchar
var refundId = Request.Form["refundId"].FirstOrDefault();
if (!string.IsNullOrEmpty(refundId)) where = where.And(p => p.refundId.Contains(refundId));
//售后单id nvarchar
var aftersalesId = Request.Form["aftersalesId"].FirstOrDefault();
if (!string.IsNullOrEmpty(aftersalesId))
where = where.And(p => p.aftersalesId.Contains(aftersalesId));
//用户ID 关联user.id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//资源id,根据type不同而关联不同的表 nvarchar
var sourceId = Request.Form["sourceId"].FirstOrDefault();
if (!string.IsNullOrEmpty(sourceId)) where = where.And(p => p.sourceId.Contains(sourceId));
//资源类型1=订单,2充值单 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//退款支付类型编码 默认原路返回 关联支付单表支付编码 nvarchar
var paymentCode = Request.Form["paymentCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentCode)) where = where.And(p => p.paymentCode.Contains(paymentCode));
//第三方平台交易流水号 nvarchar
var tradeNo = Request.Form["tradeNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(tradeNo)) where = where.And(p => p.tradeNo.Contains(tradeNo));
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) where = where.And(p => p.status == status);
//退款失败原因 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) where = where.And(p => p.memo.Contains(memo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillRefundServices.QueryListByClauseAsync(where, p => p.refundId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("退款单ID");
row1.CreateCell(1).SetCellValue("售后单id");
row1.CreateCell(2).SetCellValue("退款金额");
row1.CreateCell(3).SetCellValue("用户ID 关联user.id");
row1.CreateCell(4).SetCellValue("资源id,根据type不同而关联不同的表");
row1.CreateCell(5).SetCellValue("资源类型1=订单,2充值单");
row1.CreateCell(6).SetCellValue("退款支付类型编码 默认原路返回 关联支付单表支付编码");
row1.CreateCell(7).SetCellValue("第三方平台交易流水号");
row1.CreateCell(8).SetCellValue("状态");
row1.CreateCell(9).SetCellValue("退款失败原因");
row1.CreateCell(10).SetCellValue("创建时间");
row1.CreateCell(11).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].refundId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].aftersalesId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].sourceId);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].paymentCode);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].tradeNo);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillRefund导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,534 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 发票表
/// </summary>
[Description("发票表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsInvoiceController : ControllerBase
{
private readonly ICoreCmsInvoiceServices _coreCmsInvoiceServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsInvoiceServices"></param>
public CoreCmsInvoiceController(IWebHostEnvironment webHostEnvironment
, ICoreCmsInvoiceServices coreCmsInvoiceServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsInvoiceServices = coreCmsInvoiceServices;
}
#region ============================================================
// POST: Api/CoreCmsInvoice/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsInvoice>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsInvoice, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "category":
orderEx = p => p.category;
break;
case "sourceId":
orderEx = p => p.sourceId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "type":
orderEx = p => p.type;
break;
case "title":
orderEx = p => p.title;
break;
case "taxNumber":
orderEx = p => p.taxNumber;
break;
case "amount":
orderEx = p => p.amount;
break;
case "status":
orderEx = p => p.status;
break;
case "remarks":
orderEx = p => p.remarks;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) where = where.And(p => p.id == id);
//开票类型 int
var category = Request.Form["category"].FirstOrDefault().ObjectToInt(0);
if (category > 0) where = where.And(p => p.category == category);
//资源ID nvarchar
var sourceId = Request.Form["sourceId"].FirstOrDefault();
if (!string.IsNullOrEmpty(sourceId)) where = where.And(p => p.sourceId.Contains(sourceId));
//所属用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//发票类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//发票抬头 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title)) where = where.And(p => p.title.Contains(title));
//发票税号 nvarchar
var taxNumber = Request.Form["taxNumber"].FirstOrDefault();
if (!string.IsNullOrEmpty(taxNumber)) where = where.And(p => p.taxNumber.Contains(taxNumber));
//开票备注 nvarchar
var remarks = Request.Form["remarks"].FirstOrDefault();
if (!string.IsNullOrEmpty(remarks)) where = where.And(p => p.remarks.Contains(remarks));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsInvoiceServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsInvoice/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var orderTaxCategory = EnumHelper.EnumToList<GlobalEnumVars.OrderTaxCategory>();
var orderTaxType = EnumHelper.EnumToList<GlobalEnumVars.OrderTaxType>();
var orderTaxStatus = EnumHelper.EnumToList<GlobalEnumVars.OrderTaxStatus>();
jm.data = new
{
orderTaxCategory,
orderTaxType,
orderTaxStatus
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsInvoice/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsInvoiceServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var orderTaxCategory = EnumHelper.EnumToList<GlobalEnumVars.OrderTaxCategory>();
var orderTaxType = EnumHelper.EnumToList<GlobalEnumVars.OrderTaxType>();
var orderTaxStatus = EnumHelper.EnumToList<GlobalEnumVars.OrderTaxStatus>();
jm.code = 0;
jm.data = new
{
model,
orderTaxCategory,
orderTaxType,
orderTaxStatus
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsInvoice/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsInvoice entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsInvoiceServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.type = entity.type;
oldModel.title = entity.title;
oldModel.taxNumber = entity.taxNumber;
oldModel.amount = entity.amount;
oldModel.status = entity.status;
oldModel.remarks = entity.remarks;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsInvoiceServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsInvoice/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsInvoiceServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsInvoiceServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsInvoice/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _coreCmsInvoiceServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("开票类型");
row1.CreateCell(2).SetCellValue("资源ID");
row1.CreateCell(3).SetCellValue("所属用户ID");
row1.CreateCell(4).SetCellValue("发票类型");
row1.CreateCell(5).SetCellValue("发票抬头");
row1.CreateCell(6).SetCellValue("发票税号");
row1.CreateCell(7).SetCellValue("发票金额");
row1.CreateCell(8).SetCellValue("是否开票");
row1.CreateCell(9).SetCellValue("开票备注");
row1.CreateCell(10).SetCellValue("创建时间");
row1.CreateCell(11).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].category.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].sourceId);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].title);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].taxNumber);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].amount.ToString());
rowtemp.CreateCell(8).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].remarks);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsInvoice导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsInvoice/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsInvoice>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) where = where.And(p => p.id == id);
//开票类型 int
var category = Request.Form["category"].FirstOrDefault().ObjectToInt(0);
if (category > 0) where = where.And(p => p.category == category);
//资源ID nvarchar
var sourceId = Request.Form["sourceId"].FirstOrDefault();
if (!string.IsNullOrEmpty(sourceId)) where = where.And(p => p.sourceId.Contains(sourceId));
//所属用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) where = where.And(p => p.userId == userId);
//发票类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//发票抬头 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title)) where = where.And(p => p.title.Contains(title));
//发票税号 nvarchar
var taxNumber = Request.Form["taxNumber"].FirstOrDefault();
if (!string.IsNullOrEmpty(taxNumber)) where = where.And(p => p.taxNumber.Contains(taxNumber));
//开票备注 nvarchar
var remarks = Request.Form["remarks"].FirstOrDefault();
if (!string.IsNullOrEmpty(remarks)) where = where.And(p => p.remarks.Contains(remarks));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _coreCmsInvoiceServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("开票类型");
row1.CreateCell(2).SetCellValue("资源ID");
row1.CreateCell(3).SetCellValue("所属用户ID");
row1.CreateCell(4).SetCellValue("发票类型");
row1.CreateCell(5).SetCellValue("发票抬头");
row1.CreateCell(6).SetCellValue("发票税号");
row1.CreateCell(7).SetCellValue("发票金额");
row1.CreateCell(8).SetCellValue("是否开票");
row1.CreateCell(9).SetCellValue("开票备注");
row1.CreateCell(10).SetCellValue("创建时间");
row1.CreateCell(11).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].category.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].sourceId);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].title);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].taxNumber);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].amount.ToString());
rowtemp.CreateCell(8).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].remarks);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsInvoice导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,306 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 支付方式表
/// </summary>
[Description("支付方式表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsPaymentsController : ControllerBase
{
private readonly ICoreCmsPaymentsServices _coreCmsPaymentsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsPaymentsServices"></param>
public CoreCmsPaymentsController(IWebHostEnvironment webHostEnvironment
, ICoreCmsPaymentsServices coreCmsPaymentsServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsPaymentsServices = coreCmsPaymentsServices;
}
#region ============================================================
// POST: Api/CoreCmsPayments/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsPayments>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsPayments, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "code":
orderEx = p => p.code;
break;
case "isOnline":
orderEx = p => p.isOnline;
break;
case "parameters":
orderEx = p => p.parameters;
break;
case "sort":
orderEx = p => p.sort;
break;
case "memo":
orderEx = p => p.memo;
break;
case "isEnable":
orderEx = p => p.isEnable;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
// int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//支付类型名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//支付类型编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//是否线上支付 bit
var isOnline = Request.Form["isOnline"].FirstOrDefault();
if (!string.IsNullOrEmpty(isOnline) && isOnline.ToLowerInvariant() == "true")
@where = @where.And(p => p.isOnline);
else if (!string.IsNullOrEmpty(isOnline) && isOnline.ToLowerInvariant() == "false")
@where = @where.And(p => p.isOnline == false);
//参数 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//方式描述 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//是否启用 bit
var isEnable = Request.Form["isEnable"].FirstOrDefault();
if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "true")
@where = @where.And(p => p.isEnable);
else if (!string.IsNullOrEmpty(isEnable) && isEnable.ToLowerInvariant() == "false")
@where = @where.And(p => p.isEnable == false);
//获取数据
var list = await _coreCmsPaymentsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPayments/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPayments/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPaymentsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPayments/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsPayments entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsPaymentsServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.parameters = entity.parameters;
oldModel.sort = entity.sort;
oldModel.isEnable = entity.isEnable;
//事物处理过程结束
var bl = await _coreCmsPaymentsServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region 线============================================================
// POST: Api/CoreCmsPayments/DoSetisOnline/10
/// <summary>
/// 设置是否线上支付
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否线上支付")]
public async Task<AdminUiCallBack> DoSetisOnline([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsPaymentsServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isOnline = entity.data;
var bl = await _coreCmsPaymentsServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPayments/DoSetisEnable/10
/// <summary>
/// 设置是否启用
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否启用")]
public async Task<AdminUiCallBack> DoSetisEnable([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsPaymentsServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isEnable = entity.data;
var bl = await _coreCmsPaymentsServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,362 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 品牌表
/// </summary>
[Description("品牌表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBrandController : ControllerBase
{
private readonly ICoreCmsBrandServices _coreCmsBrandServices;
private readonly ICoreCmsGoodsServices _goodsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsBrandController(IWebHostEnvironment webHostEnvironment,
ICoreCmsBrandServices coreCmsBrandServices, ICoreCmsGoodsServices goodsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBrandServices = coreCmsBrandServices;
_goodsServices = goodsServices;
}
#region ============================================================
// POST: Api/CoreCmsBrand/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBrand>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBrand, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "logoImageUrl":
orderEx = p => p.logoImageUrl;
break;
case "sort":
orderEx = p => p.sort;
break;
case "isShow":
orderEx = p => p.isShow;
break;
case "createTime":
orderEx = p => p.createTime;
break;
default:
orderEx = p => p.sort;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//品牌ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//品牌名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//品牌LOGO nvarchar
var logoImageUrl = Request.Form["logoImageUrl"].FirstOrDefault();
if (!string.IsNullOrEmpty(logoImageUrl)) @where = @where.And(p => p.logoImageUrl.Contains(logoImageUrl));
//品牌排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//是否显示 bit
var isShow = Request.Form["isShow"].FirstOrDefault();
if (!string.IsNullOrEmpty(isShow) && isShow.ToLowerInvariant() == "true")
@where = @where.And(p => p.isShow);
else if (!string.IsNullOrEmpty(isShow) && isShow.ToLowerInvariant() == "false")
@where = @where.And(p => p.isShow == false);
//更新时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _coreCmsBrandServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBrand/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBrand/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBrand/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsBrand entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsBrandServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
if (bl)
{
var brands = await _coreCmsBrandServices.QueryListByClauseAsync(p => p.id > 0, p => p.id, OrderByType.Desc, true);
jm.data = new
{
brands
};
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBrand/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBrandServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsBrand/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsBrand entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsBrandServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.name = entity.name;
oldModel.logoImageUrl = entity.logoImageUrl;
oldModel.sort = entity.sort;
oldModel.isShow = entity.isShow;
oldModel.createTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsBrandServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBrand/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBrandServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
if (await _goodsServices.ExistsAsync(p => p.brandId == model.id))
{
jm.msg = "有商品关联品牌数据,禁止删除";
return jm;
}
var bl = await _coreCmsBrandServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBrand/DoSetisShow/10
/// <summary>
/// 设置是否显示
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否显示")]
public async Task<AdminUiCallBack> DoSetisShow([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsBrandServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isShow = entity.data;
oldModel.createTime = DateTime.Now;
var bl = await _coreCmsBrandServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,306 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using AutoMapper;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 商品分类
///</summary>
[Description("商品分类")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsGoodsCategoryController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsGoodsCategoryServices _coreCmsGoodsCategoryServices;
private readonly ICoreCmsGoodsServices _goodsServices;
private IMapper _mapper;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsGoodsCategoryController(IWebHostEnvironment webHostEnvironment
, ICoreCmsGoodsCategoryServices coreCmsGoodsCategoryServices
, IMapper mapper, ICoreCmsGoodsServices goodsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsGoodsCategoryServices = coreCmsGoodsCategoryServices;
_mapper = mapper;
_goodsServices = goodsServices;
}
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
//获取数据
var list = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.id > 0, p => p.sort,
OrderByType.Desc);
//返回数据
jm.data = list;
jm.code = 0;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort,
OrderByType.Asc);
jm.data = new
{
categories = GoodsHelper.GetTree(categories),
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsGoodsCategory entity)
{
var jm = new AdminUiCallBack();
var result = await _coreCmsGoodsCategoryServices.InsertAsync(entity);
var bl = result.code == 0;
jm.code = bl ? 0 : 1;
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
if (bl)
{
var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort,
OrderByType.Asc);
jm.data = new
{
categories = GoodsHelper.GetTree(categories, false)
};
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort,
OrderByType.Asc); ;
jm.data = new
{
model,
categories = GoodsHelper.GetTree(categories),
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsGoodsCategory/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsGoodsCategory entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
if (entity.id == entity.parentId)
{
jm.msg = "上级不能为本类";
return jm;
}
//事物处理过程开始
oldModel.parentId = entity.parentId;
oldModel.name = entity.name;
oldModel.typeId = entity.typeId;
oldModel.sort = entity.sort;
oldModel.imageUrl = entity.imageUrl;
oldModel.isShow = entity.isShow;
oldModel.createTime = entity.createTime;
//事物处理过程结束
var result = await _coreCmsGoodsCategoryServices.UpdateAsync(oldModel);
var bl = result.code == 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
if (await _coreCmsGoodsCategoryServices.ExistsAsync(p => p.parentId == entity.id))
{
jm.msg = GlobalConstVars.DeleteIsHaveChildren;
return jm;
}
if (await _goodsServices.ExistsAsync(p => p.goodsCategoryId == entity.id && !p.isDel))
{
jm.msg = "有商品关联此栏目,禁止删除";
return jm;
}
var result = await _coreCmsGoodsCategoryServices.DeleteByIdAsync(entity.id);
var bl = result.code == 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsCategory/DoSetisShow/10
/// <summary>
/// 设置是否显示
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否显示")]
public async Task<AdminUiCallBack> DoSetisShow([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isShow = (bool)entity.data;
var result = await _coreCmsGoodsCategoryServices.UpdateAsync(oldModel);
var bl = result.code == 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,380 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 商品评价表
///</summary>
[Description("商品评价表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsGoodsCommentController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsGoodsCommentServices _coreCmsGoodsCommentServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsGoodsCommentController(IWebHostEnvironment webHostEnvironment
, ICoreCmsGoodsCommentServices coreCmsGoodsCommentServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsGoodsCommentServices = coreCmsGoodsCommentServices;
}
#region ============================================================
// POST: Api/CoreCmsGoodsComment/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsGoodsComment>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsGoodsComment, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "commentId":
orderEx = p => p.commentId;
break;
case "score":
orderEx = p => p.score;
break;
case "userId":
orderEx = p => p.userId;
break;
case "goodsId":
orderEx = p => p.goodsId;
break;
case "orderId":
orderEx = p => p.orderId;
break;
case "addon":
orderEx = p => p.addon;
break;
case "images":
orderEx = p => p.images;
break;
case "contentBody":
orderEx = p => p.contentBody;
break;
case "sellerContent":
orderEx = p => p.sellerContent;
break;
case "isDisplay":
orderEx = p => p.isDisplay;
break;
case "createTime":
orderEx = p => p.createTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//父级评价ID int
var commentId = Request.Form["commentId"].FirstOrDefault().ObjectToInt(0);
if (commentId > 0)
{
where = where.And(p => p.commentId == commentId);
}
//评价1-5星 int
var score = Request.Form["score"].FirstOrDefault().ObjectToInt(0);
if (score > 0)
{
where = where.And(p => p.score == score);
}
//评价用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//商品ID int
var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
if (goodsId > 0)
{
where = where.And(p => p.goodsId == goodsId);
}
//评价订单ID nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId))
{
where = where.And(p => p.orderId.Contains(orderId));
}
//货品规格序列号存储 nvarchar
var addon = Request.Form["addon"].FirstOrDefault();
if (!string.IsNullOrEmpty(addon))
{
where = where.And(p => p.addon.Contains(addon));
}
//评价图片逗号分隔最多五张 nvarchar
var images = Request.Form["images"].FirstOrDefault();
if (!string.IsNullOrEmpty(images))
{
where = where.And(p => p.images.Contains(images));
}
//评价内容 nvarchar
var contentBody = Request.Form["contentBody"].FirstOrDefault();
if (!string.IsNullOrEmpty(contentBody))
{
where = where.And(p => p.contentBody.Contains(contentBody));
}
//商家回复 nvarchar
var sellerContent = Request.Form["sellerContent"].FirstOrDefault();
if (!string.IsNullOrEmpty(sellerContent))
{
where = where.And(p => p.sellerContent.Contains(sellerContent));
}
//用户昵称 nvarchar
var nickName = Request.Form["nickName"].FirstOrDefault();
if (!string.IsNullOrEmpty(nickName))
{
where = where.And(p => p.nickName.Contains(nickName));
}
//商品名称 nvarchar
var goodName = Request.Form["goodName"].FirstOrDefault();
if (!string.IsNullOrEmpty(goodName))
{
where = where.And(p => p.goodName.Contains(goodName));
}
//前台显示 bit
var isDisplay = Request.Form["isDisplay"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDisplay) && isDisplay.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDisplay == true);
}
else if (!string.IsNullOrEmpty(isDisplay) && isDisplay.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDisplay == false);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _coreCmsGoodsCommentServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsComment/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsComment/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsCommentServices.DetailsByIdAsync(p => p.id == entity.id, p => p.id, OrderByType.Desc);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsComment/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] FMIntId entity)
{
var jm = await _coreCmsGoodsCommentServices.Reply(entity.id, entity.data.ToString());
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsComment/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsCommentServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _coreCmsGoodsCommentServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsComment/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsCommentServices.DetailsByIdAsync(p => p.id == entity.id, p => p.id, OrderByType.Desc);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsComment/DoSetisDisplay/10
/// <summary>
/// 设置前台显示
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置前台显示")]
public async Task<AdminUiCallBack> DoSetisDisplay([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsGoodsCommentServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDisplay = (bool)entity.data;
jm = await _coreCmsGoodsCommentServices.UpdateAsync(oldModel);
return jm;
}
#endregion
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,540 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 商品参数表
/// </summary>
[Description("商品参数表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsGoodsParamsController : ControllerBase
{
private readonly ICoreCmsGoodsParamsServices _coreCmsGoodsParamsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsGoodsParamsController(IWebHostEnvironment webHostEnvironment,
ICoreCmsGoodsParamsServices coreCmsGoodsParamsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsGoodsParamsServices = coreCmsGoodsParamsServices;
}
#region ============================================================
// POST: Api/CoreCmsGoodsParams/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsGoodsParams>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsGoodsParams, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "value":
orderEx = p => p.value;
break;
case "type":
orderEx = p => p.type;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//参数名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//参数值 nvarchar
var value = Request.Form["value"].FirstOrDefault();
if (!string.IsNullOrEmpty(value)) @where = @where.And(p => p.value.Contains(value));
//参数类型 nvarchar
var type = Request.Form["type"].FirstOrDefault();
if (!string.IsNullOrEmpty(type)) @where = @where.And(p => p.type.Contains(type));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsGoodsParamsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var goodsParamTypes = EnumHelper.EnumToList<GlobalEnumVars.GoodsParamTypes>();
jm.data = new
{
goodsParamTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var goodsParamTypes = EnumHelper.EnumToList<GlobalEnumVars.GoodsParamTypes>();
jm.data = new
{
goodsParamTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsGoodsParams entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var bl = await _coreCmsGoodsParamsServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
if (bl)
{
//获取列表
var paramsList = await _coreCmsGoodsParamsServices.QueryListByClauseAsync(p => p.id > 0, p => p.id, OrderByType.Desc, true);
jm.data = new
{
paramsList
};
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsParamsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var goodsParamTypes = EnumHelper.EnumToList<GlobalEnumVars.GoodsParamTypes>();
jm.data = new
{
model,
goodsParamTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsGoodsParams/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsGoodsParams entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsGoodsParamsServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.name = entity.name;
oldModel.value = entity.value;
oldModel.type = entity.type;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsGoodsParamsServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsParamsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsGoodsParamsServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsParamsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsGoodsParamsServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("参数名称");
row1.CreateCell(2).SetCellValue("参数值");
row1.CreateCell(3).SetCellValue("参数类型");
row1.CreateCell(4).SetCellValue("创建时间");
row1.CreateCell(5).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].name);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].value);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].type);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsGoodsParams导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsParams/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsGoodsParams>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//参数名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//参数值 nvarchar
var value = Request.Form["value"].FirstOrDefault();
if (!string.IsNullOrEmpty(value)) @where = @where.And(p => p.value.Contains(value));
//参数类型 nvarchar
var type = Request.Form["type"].FirstOrDefault();
if (!string.IsNullOrEmpty(type)) @where = @where.And(p => p.type.Contains(type));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsGoodsParamsServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("参数名称");
row1.CreateCell(2).SetCellValue("参数值");
row1.CreateCell(3).SetCellValue("参数类型");
row1.CreateCell(4).SetCellValue("创建时间");
row1.CreateCell(5).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].name);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].value);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].type);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsGoodsParams导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,278 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 商品类型属性表
/// </summary>
[Description("商品类型属性表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsGoodsTypeSpecController : ControllerBase
{
private readonly ICoreCmsGoodsTypeSpecServices _coreCmsGoodsTypeSpecServices;
private readonly ICoreCmsGoodsTypeSpecValueServices _valueServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsGoodsTypeSpecController(IWebHostEnvironment webHostEnvironment
, ICoreCmsGoodsTypeSpecServices coreCmsGoodsTypeSpecServices
, ICoreCmsGoodsTypeSpecValueServices coreCmsGoodsTypeSpecValueServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsGoodsTypeSpecServices = coreCmsGoodsTypeSpecServices;
_valueServices = coreCmsGoodsTypeSpecValueServices;
}
#region ============================================================
// POST: Api/CoreCmsGoodsTypeSpec/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsGoodsTypeSpec>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsGoodsTypeSpec, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "sort":
orderEx = p => p.sort;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//属性名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//属性排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//获取数据
var list = await _coreCmsGoodsTypeSpecServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
if (list != null && list.Any())
{
var ids = list.Select(p => p.id).ToList();
if (ids.Any())
{
var values = await _valueServices.QueryListByClauseAsync(p => ids.Contains(p.specId));
foreach (var item in list)
item.specValues = values.Where(p => p.specId == item.id).OrderBy(p => p.sort).ToList();
}
}
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsTypeSpec/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsTypeSpec/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsTypeSpec/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] FmGoodsTypeSpecInsert entity)
{
var jm = await _coreCmsGoodsTypeSpecServices.InsertAsync(entity);
if (jm.code == 0)
{
//获取SKU列表
var skuList = await _coreCmsGoodsTypeSpecServices.QueryListByClauseAsync(p => p.id > 0, p => p.id, OrderByType.Desc, true);
jm.data = new
{
skuList
};
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsTypeSpec/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsTypeSpecServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var values =
await _valueServices.QueryListByClauseAsync(p => p.specId == model.id, p => p.sort,
OrderByType.Asc);
model.specValues = values;
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsGoodsTypeSpec/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] FmGoodsTypeSpecUpdate entity)
{
var jm = await _coreCmsGoodsTypeSpecServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsGoodsTypeSpec/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsGoodsTypeSpecServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _coreCmsGoodsTypeSpecServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
}
}
@@ -0,0 +1,208 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 货品表
///</summary>
[Description("货品表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsProductsController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsProductsServices _coreCmsProductsServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsProductsController(IWebHostEnvironment webHostEnvironment
, ICoreCmsProductsServices coreCmsProductsServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsProductsServices = coreCmsProductsServices;
}
#region ============================================================
// POST: Api/CoreCmsProducts/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsProducts>();
where = where.And(p => p.isDel == false);
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsProducts, object>> orderEx = orderField switch
{
"id" => p => p.id,
"goodsId" => p => p.goodsId,
"barcode" => p => p.barcode,
"sn" => p => p.sn,
"price" => p => p.price,
"costprice" => p => p.costprice,
"mktprice" => p => p.mktprice,
"marketable" => p => p.marketable,
"weight" => p => p.weight,
"stock" => p => p.stock,
"freezeStock" => p => p.freezeStock,
"spesDesc" => p => p.spesDesc,
"isDefalut" => p => p.isDefalut,
"images" => p => p.images,
"isDel" => p => p.isDel,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//货品条码 nvarchar
var barcode = Request.Form["barcode"].FirstOrDefault();
if (!string.IsNullOrEmpty(barcode))
{
where = where.And(p => p.barcode.Contains(barcode));
}
//商品编码 nvarchar
var sn = Request.Form["sn"].FirstOrDefault();
if (!string.IsNullOrEmpty(sn))
{
where = where.And(p => p.sn.Contains(sn));
}
//规格值 nvarchar
var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
if (!string.IsNullOrEmpty(spesDesc))
{
where = where.And(p => p.spesDesc.Contains(spesDesc));
}
//规格值 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name))
{
where = where.And(p => p.name.Contains(name));
}
//获取数据
var list = await _coreCmsProductsServices.QueryDetailPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsProducts/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsProducts/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsProductsServices.QueryByClauseAsync(p => p.id == entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsProducts/DoSetStock/10
/// <summary>
/// 设置库存
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置库存")]
public async Task<AdminUiCallBack> DoSetStock([FromBody] FMUpdateIntegerDataByIntId entity)
{
var jm = await _coreCmsProductsServices.EditStock(entity.id, entity.data);
return jm;
}
#endregion
}
}
@@ -0,0 +1,498 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 表单
/// </summary>
[Description("表单")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsFormController : ControllerBase
{
private readonly ICoreCmsFormServices _coreCmsFormServices;
private readonly ICoreCmsFormItemServices _formItemServices;
private readonly ICoreCmsFormSubmitServices _formSubmitServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsFormController(IWebHostEnvironment webHostEnvironment
, ICoreCmsFormServices coreCmsFormServices, ICoreCmsFormItemServices formItemServices, ICoreCmsFormSubmitServices formSubmitServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsFormServices = coreCmsFormServices;
_formItemServices = formItemServices;
_formSubmitServices = formSubmitServices;
}
#region ============================================================
// POST: Api/CoreCmsForm/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsForm>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsForm, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "type":
orderEx = p => p.type;
break;
case "sort":
orderEx = p => p.sort;
break;
case "description":
orderEx = p => p.description;
break;
case "headType":
orderEx = p => p.headType;
break;
case "headTypeValue":
orderEx = p => p.headTypeValue;
break;
case "headTypeVideo":
orderEx = p => p.headTypeVideo;
break;
case "buttonName":
orderEx = p => p.buttonName;
break;
case "buttonColor":
orderEx = p => p.buttonColor;
break;
case "isLogin":
orderEx = p => p.isLogin;
break;
case "times":
orderEx = p => p.times;
break;
case "qrcode":
orderEx = p => p.qrcode;
break;
case "returnMsg":
orderEx = p => p.returnMsg;
break;
case "endDateTime":
orderEx = p => p.endDateTime;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) where = where.And(p => p.id == id);
//表单名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) where = where.And(p => p.name.Contains(name));
//表单类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) where = where.And(p => p.type == type);
//表单排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) where = where.And(p => p.sort == sort);
//表单描述 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description)) where = where.And(p => p.description.Contains(description));
//表头类型 int
var headType = Request.Form["headType"].FirstOrDefault().ObjectToInt(0);
if (headType > 0) where = where.And(p => p.headType == headType);
//表单头值 nvarchar
var headTypeValue = Request.Form["headTypeValue"].FirstOrDefault();
if (!string.IsNullOrEmpty(headTypeValue)) where = where.And(p => p.headTypeValue.Contains(headTypeValue));
//表单视频 nvarchar
var headTypeVideo = Request.Form["headTypeVideo"].FirstOrDefault();
if (!string.IsNullOrEmpty(headTypeVideo)) where = where.And(p => p.headTypeVideo.Contains(headTypeVideo));
//表单提交按钮名称 nvarchar
var buttonName = Request.Form["buttonName"].FirstOrDefault();
if (!string.IsNullOrEmpty(buttonName)) where = where.And(p => p.buttonName.Contains(buttonName));
//表单按钮颜色 nvarchar
var buttonColor = Request.Form["buttonColor"].FirstOrDefault();
if (!string.IsNullOrEmpty(buttonColor)) where = where.And(p => p.buttonColor.Contains(buttonColor));
//是否需要登录 bit
var isLogin = Request.Form["isLogin"].FirstOrDefault();
if (!string.IsNullOrEmpty(isLogin) && isLogin.ToLowerInvariant() == "true")
where = where.And(p => p.isLogin);
else if (!string.IsNullOrEmpty(isLogin) && isLogin.ToLowerInvariant() == "false")
where = where.And(p => p.isLogin == false);
//可提交次数 int
var times = Request.Form["times"].FirstOrDefault().ObjectToInt(0);
if (times > 0) where = where.And(p => p.times == times);
//二维码图片地址 nvarchar
var qrcode = Request.Form["qrcode"].FirstOrDefault();
if (!string.IsNullOrEmpty(qrcode)) where = where.And(p => p.qrcode.Contains(qrcode));
//提交后提示语 nvarchar
var returnMsg = Request.Form["returnMsg"].FirstOrDefault();
if (!string.IsNullOrEmpty(returnMsg)) where = where.And(p => p.returnMsg.Contains(returnMsg));
//结束时间 datetime
var endDateTime = Request.Form["endDateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(endDateTime))
{
if (endDateTime.Contains("到"))
{
var dts = endDateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.endDateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.endDateTime < dtEnd);
}
else
{
var dt = endDateTime.ObjectToDate();
where = where.And(p => p.endDateTime > dt);
}
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsFormServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var formTypes = EnumHelper.EnumToList<GlobalEnumVars.FormTypes>();
jm.data = new
{
formTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var formTypes = EnumHelper.EnumToList<GlobalEnumVars.FormTypes>();
var formHeadTypes = EnumHelper.EnumToList<GlobalEnumVars.FormHeadTypes>();
var formFieldTypes = EnumHelper.EnumToList<GlobalEnumVars.FormFieldTypes>();
var formValidationTypes = EnumHelper.EnumToList<GlobalEnumVars.FormValidationTypes>();
jm.data = new
{
formTypes,
formHeadTypes,
formFieldTypes,
formValidationTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] FMForm entity)
{
var jm = await _coreCmsFormServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsFormServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var formTypes = EnumHelper.EnumToList<GlobalEnumVars.FormTypes>();
var formHeadTypes = EnumHelper.EnumToList<GlobalEnumVars.FormHeadTypes>();
var formFieldTypes = EnumHelper.EnumToList<GlobalEnumVars.FormFieldTypes>();
var formValidationTypes = EnumHelper.EnumToList<GlobalEnumVars.FormValidationTypes>();
var items = await _formItemServices.QueryListByClauseAsync(p => p.formId == model.id, p => p.sort, OrderByType.Asc);
jm.data = new
{
formTypes,
formHeadTypes,
formFieldTypes,
formValidationTypes,
model,
items
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] FMForm entity)
{
var jm = new AdminUiCallBack();
//事物处理过程结束
jm = await _coreCmsFormServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = await _coreCmsFormServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsFormServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
var totalSubmit = await _formSubmitServices.GetCountAsync(p => p.formId == entity.id);
var sumSubmit = await _formSubmitServices.GetSumAsync(p => p.formId == entity.id, p => p.money);
var formData = await _formSubmitServices.GetStatisticsByFormid(entity.id, 7);
jm.data = new
{
model,
formData.data,
formData.day,
totalSubmit,
sumSubmit
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsForm/DoSetisLogin/10
/// <summary>
/// 设置是否需要登录
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否需要登录")]
public async Task<AdminUiCallBack> DoSetisLogin([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsFormServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isLogin = entity.data;
var bl = await _coreCmsFormServices.UpdateAsync(p => new CoreCmsForm() { isLogin = oldModel.isLogin }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? "设置成功" : "设置失败";
return jm;
}
#endregion
}
}
@@ -0,0 +1,841 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户对智能表单的提交记录
///</summary>
[Description("用户对智能表单的提交记录")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsFormSubmitController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsFormSubmitServices _coreCmsFormSubmitServices;
private readonly ICoreCmsFormSubmitDetailServices _formSubmitDetailServices;
private readonly ICoreCmsFormServices _formServices;
private readonly ICoreCmsUserServices _userServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsFormSubmitController(IWebHostEnvironment webHostEnvironment
, ICoreCmsFormSubmitServices coreCmsFormSubmitServices, ICoreCmsFormServices formServices, ICoreCmsFormSubmitDetailServices formSubmitDetailServices, ICoreCmsUserServices userServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsFormSubmitServices = coreCmsFormSubmitServices;
_formServices = formServices;
_formSubmitDetailServices = formSubmitDetailServices;
_userServices = userServices;
}
#region ============================================================
// POST: Api/CoreCmsFormSubmit/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsFormSubmit>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsFormSubmit, object>> orderEx = orderField switch
{
"id" => p => p.id,
"formId" => p => p.formId,
"formName" => p => p.formName,
"userId" => p => p.userId,
"money" => p => p.money,
"payStatus" => p => p.payStatus,
"status" => p => p.status,
"feedback" => p => p.feedback,
"ip" => p => p.ip,
"createTime" => p => p.createTime,
"updateTime" => p => p.updateTime,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//表单id int
var formId = Request.Form["formId"].FirstOrDefault().ObjectToInt(0);
if (formId > 0)
{
where = where.And(p => p.formId == formId);
}
//用户昵称 nvarchar
var userName = Request.Form["userName"].FirstOrDefault();
if (!string.IsNullOrEmpty(userName))
{
where = where.And(p => p.userName.Contains(userName));
}
//是否支付 bit
var payStatus = Request.Form["payStatus"].FirstOrDefault();
if (!string.IsNullOrEmpty(payStatus) && payStatus.ToLowerInvariant() == "true")
{
where = where.And(p => p.payStatus == true);
}
else if (!string.IsNullOrEmpty(payStatus) && payStatus.ToLowerInvariant() == "false")
{
where = where.And(p => p.payStatus == false);
}
//是否处理 bit
var status = Request.Form["status"].FirstOrDefault();
if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "true")
{
where = where.And(p => p.status == true);
}
else if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "false")
{
where = where.And(p => p.status == false);
}
//表单反馈 nvarchar
var feedback = Request.Form["feedback"].FirstOrDefault();
if (!string.IsNullOrEmpty(feedback))
{
where = where.And(p => p.feedback.Contains(feedback));
}
//提交人ip nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip))
{
where = where.And(p => p.ip.Contains(ip));
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsFormSubmitServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var forms = await _formServices.QueryAsync();
jm.data = new
{
forms
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsFormSubmitServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsFormSubmitServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _coreCmsFormSubmitServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsFormSubmitServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var getResult = await _formServices.GetFormInfo(model.formId, "", true);
var formModel = getResult.data as CoreCmsForm;
if (formModel == null)
{
jm.msg = "表单信息获取失败";
jm.data = getResult;
return jm;
}
if (formModel.Items.Any())
{
var ids = formModel.Items.Select(p => p.id).ToArray();
var submitDetail = await _formSubmitDetailServices.QueryListByClauseAsync(p => ids.Contains(p.formItemId) && p.submitId == model.id);
foreach (var item in formModel.Items)
{
var sub = submitDetail.Find(p => p.formItemId == item.id);
if (sub != null)
{
if (item.type == GlobalEnumVars.FormFieldTypes.goods.ToString())
{
item.value = sub.formItemName + " x 数量" + sub.formItemValue;
}
else
{
item.value = sub.formItemValue;
}
}
else
{
item.value = "";
}
}
}
if (model.userId > 0)
{
var user = await _userServices.QueryByClauseAsync(p => p.id == model.userId);
model.userName = user != null ? user.nickName : "";
}
jm.data = new
{
model,
formModel.Items
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _coreCmsFormSubmitServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("表单id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("表单名称");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("会员id");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("总金额");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("是否支付");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("是否处理");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("表单反馈");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("提交人ip");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("创建时间");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
var cell10 = headerRow.CreateCell(10);
cell10.SetCellValue("更新时间");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(10, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].formId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].formName.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].userId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].money.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].payStatus.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].status.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].feedback.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].ip.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].createTime.ToString());
rowTemp9.CellStyle = commonCellStyle;
var rowTemp10 = rowTemp.CreateCell(10);
rowTemp10.SetCellValue(listModel[i].updateTime.ToString());
rowTemp10.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsFormSubmit导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsFormSubmit>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//表单id int
var formId = Request.Form["formId"].FirstOrDefault().ObjectToInt(0);
if (formId > 0)
{
where = where.And(p => p.formId == formId);
}
//表单名称 nvarchar
var formName = Request.Form["formName"].FirstOrDefault();
if (!string.IsNullOrEmpty(formName))
{
where = where.And(p => p.formName.Contains(formName));
}
//会员id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//是否支付 bit
var payStatus = Request.Form["payStatus"].FirstOrDefault();
if (!string.IsNullOrEmpty(payStatus) && payStatus.ToLowerInvariant() == "true")
{
where = where.And(p => p.payStatus == true);
}
else if (!string.IsNullOrEmpty(payStatus) && payStatus.ToLowerInvariant() == "false")
{
where = where.And(p => p.payStatus == false);
}
//是否处理 bit
var status = Request.Form["status"].FirstOrDefault();
if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "true")
{
where = where.And(p => p.status == true);
}
else if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "false")
{
where = where.And(p => p.status == false);
}
//表单反馈 nvarchar
var feedback = Request.Form["feedback"].FirstOrDefault();
if (!string.IsNullOrEmpty(feedback))
{
where = where.And(p => p.feedback.Contains(feedback));
}
//提交人ip nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip))
{
where = where.And(p => p.ip.Contains(ip));
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _coreCmsFormSubmitServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("表单id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("表单名称");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("会员id");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("总金额");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("是否支付");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("是否处理");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("表单反馈");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("提交人ip");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("创建时间");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
var cell10 = headerRow.CreateCell(10);
cell10.SetCellValue("更新时间");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(10, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].formId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].formName.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].userId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].money.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].payStatus.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].status.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].feedback.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].ip.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].createTime.ToString());
rowTemp9.CellStyle = commonCellStyle;
var rowTemp10 = rowTemp.CreateCell(10);
rowTemp10.SetCellValue(listModel[i].updateTime.ToString());
rowTemp10.CellStyle = commonCellStyle;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsFormSubmit导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/DoSetpayStatus/10
/// <summary>
/// 设置是否支付
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否支付")]
public async Task<AdminUiCallBack> DoSetpayStatus([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsFormSubmitServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.payStatus = (bool)entity.data;
//事物处理过程结束
var bl = await _coreCmsFormSubmitServices.UpdateAsync(p => new CoreCmsFormSubmit() { payStatus = oldModel.payStatus }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/DoSetstatus/10
/// <summary>
/// 设置是否处理
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否处理")]
public async Task<AdminUiCallBack> DoSetstatus([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsFormSubmitServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.status = (bool)entity.data;
//事物处理过程结束
var bl = await _coreCmsFormSubmitServices.UpdateAsync(p => new CoreCmsFormSubmit() { status = oldModel.status }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsFormSubmit/DoSetstatus/10
/// <summary>
/// 更新反馈
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("更新反馈")]
public async Task<AdminUiCallBack> DoSetFeedback([FromBody] FMUpdateStringDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsFormSubmitServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.feedback = entity.data.ToString();
//事物处理过程结束
var bl = await _coreCmsFormSubmitServices.UpdateAsync(p => new CoreCmsFormSubmit() { feedback = oldModel.feedback, updateTime = DateTime.Now }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,271 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 消息配置表
/// </summary>
[Description("消息配置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsMessageCenterController : ControllerBase
{
private readonly ICoreCmsMessageCenterServices _coreCmsMessageCenterServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsMessageCenterServices"></param>
public CoreCmsMessageCenterController(IWebHostEnvironment webHostEnvironment
, ICoreCmsMessageCenterServices coreCmsMessageCenterServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsMessageCenterServices = coreCmsMessageCenterServices;
}
#region ============================================================
// POST: Api/CoreCmsMessageCenter/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsMessageCenter>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsMessageCenter, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "code":
orderEx = p => p.code;
break;
case "isSms":
orderEx = p => p.isSms;
break;
case "isMessage":
orderEx = p => p.isMessage;
break;
case "isWxTempletMessage":
orderEx = p => p.isWxTempletMessage;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//启用短信 bit
var isSms = Request.Form["isSms"].FirstOrDefault();
if (!string.IsNullOrEmpty(isSms) && isSms.ToLowerInvariant() == "true")
@where = @where.And(p => p.isSms);
else if (!string.IsNullOrEmpty(isSms) && isSms.ToLowerInvariant() == "false")
@where = @where.And(p => p.isSms == false);
//启用站内消息 bit
var isMessage = Request.Form["isMessage"].FirstOrDefault();
if (!string.IsNullOrEmpty(isMessage) && isMessage.ToLowerInvariant() == "true")
@where = @where.And(p => p.isMessage);
else if (!string.IsNullOrEmpty(isMessage) && isMessage.ToLowerInvariant() == "false")
@where = @where.And(p => p.isMessage == false);
//启用微信模板消息 bit
var isWxTempletMessage = Request.Form["isWxTempletMessage"].FirstOrDefault();
if (!string.IsNullOrEmpty(isWxTempletMessage) && isWxTempletMessage.ToLowerInvariant() == "true")
@where = @where.And(p => p.isWxTempletMessage);
else if (!string.IsNullOrEmpty(isWxTempletMessage) && isWxTempletMessage.ToLowerInvariant() == "false")
@where = @where.And(p => p.isWxTempletMessage == false);
//获取数据
var list = await _coreCmsMessageCenterServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsMessageCenter/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var platformMessageTypes = EnumHelper.EnumToList<GlobalEnumVars.PlatformMessageTypes>();
jm.data = new
{
platformMessageTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsMessageCenter/DoSetisSms/10
/// <summary>
/// 设置启用短信
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置启用短信")]
public async Task<AdminUiCallBack> DoSetisSms([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsMessageCenterServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isSms = entity.data;
var bl = await _coreCmsMessageCenterServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsMessageCenter/DoSetisMessage/10
/// <summary>
/// 设置启用站内消息
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置启用站内消息")]
public async Task<AdminUiCallBack> DoSetisMessage([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsMessageCenterServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isMessage = entity.data;
var bl = await _coreCmsMessageCenterServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsMessageCenter/DoSetisWxTempletMessage/10
/// <summary>
/// 设置启用微信模板消息
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置启用微信模板消息")]
public async Task<AdminUiCallBack> DoSetisWxTempletMessage([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsMessageCenterServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isWxTempletMessage = entity.data;
var bl = await _coreCmsMessageCenterServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,251 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 短信发送日志
/// </summary>
[Description("短信发送日志")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsSmsController : ControllerBase
{
private readonly ICoreCmsSmsServices _coreCmsSmsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsSmsServices"></param>
public CoreCmsSmsController(IWebHostEnvironment webHostEnvironment, ICoreCmsSmsServices coreCmsSmsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsSmsServices = coreCmsSmsServices;
}
#region ============================================================
// POST: Api/CoreCmsSms/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsSms>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsSms, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "mobile":
orderEx = p => p.mobile;
break;
case "code":
orderEx = p => p.code;
break;
case "parameters":
orderEx = p => p.parameters;
break;
case "contentBody":
orderEx = p => p.contentBody;
break;
case "ip":
orderEx = p => p.ip;
break;
case "isUsed":
orderEx = p => p.isUsed;
break;
case "createTime":
orderEx = p => p.createTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//手机号码 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));
//发送编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//参数 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//内容 nvarchar
var contentBody = Request.Form["contentBody"].FirstOrDefault();
if (!string.IsNullOrEmpty(contentBody)) @where = @where.And(p => p.contentBody.Contains(contentBody));
//ip nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip)) @where = @where.And(p => p.ip.Contains(ip));
//是否使用 bit
var isUsed = Request.Form["isUsed"].FirstOrDefault();
if (!string.IsNullOrEmpty(isUsed) && isUsed.ToLowerInvariant() == "true")
@where = @where.And(p => p.isUsed);
else if (!string.IsNullOrEmpty(isUsed) && isUsed.ToLowerInvariant() == "false")
@where = @where.And(p => p.isUsed == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _coreCmsSmsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSms/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var smsMessageTypes = EnumHelper.EnumToList<GlobalEnumVars.SmsMessageTypes>();
var platformMessageTypes = EnumHelper.EnumToList<GlobalEnumVars.PlatformMessageTypes>();
jm.data = new
{
smsMessageTypes,
platformMessageTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSms/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsSmsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsSmsServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSms/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsSmsServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,103 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 短信配置表
///</summary>
[Description("短信配置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsSmsSettingController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsSettingServices _coreCmsSettingServices;
/// <summary>
/// 构造函数
///</summary>
/// <param name="webHostEnvironment"></param>
///<param name="coreCmsSettingServices"></param>
public CoreCmsSmsSettingController(IWebHostEnvironment webHostEnvironment, ICoreCmsSettingServices coreCmsSettingServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsSettingServices = coreCmsSettingServices;
}
#region ============================================================
// POST: Api/CoreCmsSetting/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var configs = await _coreCmsSettingServices.GetConfigDictionaries();
var filesStorageOptionsType = EnumHelper.EnumToList<GlobalEnumVars.FilesStorageOptionsType>();
jm.data = new
{
configs,
filesStorageOptionsType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSetting/DoSave
/// <summary>
/// 保存提交
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Description("保存提交")]
public async Task<AdminUiCallBack> DoSave([FromBody] FMCoreCmsSettingDoSaveModel model)
{
var jm = await _coreCmsSettingServices.UpdateAsync(model);
return jm;
}
#endregion
}
}
@@ -0,0 +1,508 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 售后单
/// </summary>
[Description("售后单")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBillAftersalesController : ControllerBase
{
private readonly ICoreCmsBillAftersalesServices _coreCmsBillAftersalesServices;
private readonly ICoreCmsBillAftersalesImagesServices _imagesServices;
private readonly ICoreCmsBillAftersalesItemServices _itemServices;
private readonly ICoreCmsOrderServices _orderServices;
private readonly ICoreCmsUserServices _userServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsBillAftersalesController(IWebHostEnvironment webHostEnvironment
, ICoreCmsBillAftersalesServices coreCmsBillAftersalesServices
, ICoreCmsUserServices userServices
, ICoreCmsBillAftersalesItemServices itemServices
, ICoreCmsBillAftersalesImagesServices imagesServices
, ICoreCmsOrderServices orderServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBillAftersalesServices = coreCmsBillAftersalesServices;
_userServices = userServices;
_itemServices = itemServices;
_imagesServices = imagesServices;
_orderServices = orderServices;
}
#region ============================================================
// POST: Api/CoreCmsBillAftersales/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBillAftersales>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBillAftersales, object>> orderEx;
switch (orderField)
{
case "aftersalesId":
orderEx = p => p.aftersalesId;
break;
case "orderId":
orderEx = p => p.orderId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "type":
orderEx = p => p.type;
break;
case "refundAmount":
orderEx = p => p.refundAmount;
break;
case "status":
orderEx = p => p.status;
break;
case "reason":
orderEx = p => p.reason;
break;
case "mark":
orderEx = p => p.mark;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.createTime;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//售后单id nvarchar
var aftersalesId = Request.Form["aftersalesId"].FirstOrDefault();
if (!string.IsNullOrEmpty(aftersalesId)) @where = @where.And(p => p.aftersalesId.Contains(aftersalesId));
//订单ID nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//售后类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//退款原因 nvarchar
var reason = Request.Form["reason"].FirstOrDefault();
if (!string.IsNullOrEmpty(reason)) @where = @where.And(p => p.reason.Contains(reason));
//卖家备注,如果审核失败了,会显示到前端 nvarchar
var mark = Request.Form["mark"].FirstOrDefault();
if (!string.IsNullOrEmpty(mark)) @where = @where.And(p => p.mark.Contains(mark));
//提交时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsBillAftersalesServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillAftersales/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillAftersales/GetEdit
/// <summary>
/// 审核数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("审核数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillAftersalesServices.PreAudit(entity.id);
if (!model.status)
{
jm.msg = model.msg;
return jm;
}
jm.code = 0;
jm.data = model.data;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillAftersales/Edit
/// <summary>
/// 审核提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("审核提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] FMBillAftersalesAddPost entity)
{
var jm = new AdminUiCallBack();
if (entity.status == 0)
{
jm.msg = "请选择审核状态";
return jm;
}
var res = await _coreCmsBillAftersalesServices.Audit(entity.aftersalesId, entity.status, entity.type,
entity.refund, entity.mark, entity.items);
jm.code = res.status ? 0 : 1;
jm.msg = res.msg;
jm.data = res.data;
jm.otherData = entity;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillAftersales/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillAftersalesServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var userModel = await _userServices.QueryByClauseAsync(p => p.id == model.userId);
model.userNickName = userModel != null ? userModel.nickName : "";
model.statusName =
EnumHelper.GetEnumDescriptionByValue<GlobalEnumVars.BillAftersalesStatus>(model.status);
model.images = await _imagesServices.QueryListByClauseAsync(p => p.aftersalesId == model.aftersalesId);
model.items = await _itemServices.QueryListByClauseAsync(p => p.aftersalesId == model.aftersalesId);
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillAftersales/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillAftersalesServices.QueryListByClauseAsync(p => entity.id.Contains(p.aftersalesId),
p => p.createTime, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("售后单id");
row1.CreateCell(1).SetCellValue("订单ID");
row1.CreateCell(2).SetCellValue("用户ID");
row1.CreateCell(3).SetCellValue("售后类型");
row1.CreateCell(4).SetCellValue("退款金额");
row1.CreateCell(5).SetCellValue("状态");
row1.CreateCell(6).SetCellValue("退款原因");
row1.CreateCell(7).SetCellValue("卖家备注,如果审核失败了,会显示到前端");
row1.CreateCell(8).SetCellValue("提交时间");
row1.CreateCell(9).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].aftersalesId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].orderId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].refundAmount.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].reason);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].mark);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillAftersales导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillAftersales/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsBillAftersales>();
//查询筛选
//售后单id nvarchar
var aftersalesId = Request.Form["aftersalesId"].FirstOrDefault();
if (!string.IsNullOrEmpty(aftersalesId))
@where = @where.And(p => p.aftersalesId.Contains(aftersalesId));
//订单ID nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//售后类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//退款原因 nvarchar
var reason = Request.Form["reason"].FirstOrDefault();
if (!string.IsNullOrEmpty(reason)) @where = @where.And(p => p.reason.Contains(reason));
//卖家备注,如果审核失败了,会显示到前端 nvarchar
var mark = Request.Form["mark"].FirstOrDefault();
if (!string.IsNullOrEmpty(mark)) @where = @where.And(p => p.mark.Contains(mark));
//提交时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillAftersalesServices.QueryListByClauseAsync(where, p => p.createTime,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("售后单id");
row1.CreateCell(1).SetCellValue("订单ID");
row1.CreateCell(2).SetCellValue("用户ID");
row1.CreateCell(3).SetCellValue("售后类型");
row1.CreateCell(4).SetCellValue("退款金额");
row1.CreateCell(5).SetCellValue("状态");
row1.CreateCell(6).SetCellValue("退款原因");
row1.CreateCell(7).SetCellValue("卖家备注");
row1.CreateCell(8).SetCellValue("提交时间");
row1.CreateCell(9).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].aftersalesId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].orderId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].refundAmount.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].reason);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].mark);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillAftersales导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,638 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 发货单表
/// </summary>
[Description("发货单表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBillDeliveryController : ControllerBase
{
private readonly ICoreCmsAreaServices _areaServices;
private readonly ICoreCmsBillDeliveryServices _coreCmsBillDeliveryServices;
private readonly ICoreCmsBillDeliveryItemServices _itemServices;
private readonly ICoreCmsLogisticsServices _logisticsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsBillDeliveryController(IWebHostEnvironment webHostEnvironment,
ICoreCmsBillDeliveryServices coreCmsBillDeliveryServices, ICoreCmsAreaServices areaServices,
ICoreCmsBillDeliveryItemServices itemServices, ICoreCmsLogisticsServices logisticsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBillDeliveryServices = coreCmsBillDeliveryServices;
_areaServices = areaServices;
_itemServices = itemServices;
_logisticsServices = logisticsServices;
}
#region ============================================================
// POST: Api/CoreCmsBillDelivery/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBillDelivery>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBillDelivery, object>> orderEx;
switch (orderField)
{
case "deliveryId":
orderEx = p => p.deliveryId;
break;
case "logiCode":
orderEx = p => p.logiCode;
break;
case "logiNo":
orderEx = p => p.logiNo;
break;
case "logiInformation":
orderEx = p => p.logiInformation;
break;
case "logiStatus":
orderEx = p => p.logiStatus;
break;
case "shipAreaId":
orderEx = p => p.shipAreaId;
break;
case "shipAddress":
orderEx = p => p.shipAddress;
break;
case "shipName":
orderEx = p => p.shipName;
break;
case "shipMobile":
orderEx = p => p.shipMobile;
break;
case "status":
orderEx = p => p.status;
break;
case "memo":
orderEx = p => p.memo;
break;
case "confirmTime":
orderEx = p => p.confirmTime;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.deliveryId;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//发货单序列 nvarchar
var deliveryId = Request.Form["deliveryId"].FirstOrDefault();
if (!string.IsNullOrEmpty(deliveryId)) @where = @where.And(p => p.deliveryId.Contains(deliveryId));
//物流公司编码 nvarchar
var logiCode = Request.Form["logiCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiCode)) @where = @where.And(p => p.logiCode.Contains(logiCode));
//物流单号 nvarchar
var logiNo = Request.Form["logiNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiNo)) @where = @where.And(p => p.logiNo.Contains(logiNo));
//快递物流信息 nvarchar
var logiInformation = Request.Form["logiInformation"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiInformation))
@where = @where.And(p => p.logiInformation.Contains(logiInformation));
//快递是否不更新 bit
var logiStatus = Request.Form["logiStatus"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiStatus) && logiStatus.ToLowerInvariant() == "true")
@where = @where.And(p => p.logiStatus);
else if (!string.IsNullOrEmpty(logiStatus) && logiStatus.ToLowerInvariant() == "false")
@where = @where.And(p => p.logiStatus == false);
//收货地区ID int
var shipAreaId = Request.Form["shipAreaId"].FirstOrDefault().ObjectToInt(0);
if (shipAreaId > 0) @where = @where.And(p => p.shipAreaId == shipAreaId);
//收货详细地址 nvarchar
var shipAddress = Request.Form["shipAddress"].FirstOrDefault();
if (!string.IsNullOrEmpty(shipAddress)) @where = @where.And(p => p.shipAddress.Contains(shipAddress));
//收货人姓名 nvarchar
var shipName = Request.Form["shipName"].FirstOrDefault();
if (!string.IsNullOrEmpty(shipName)) @where = @where.And(p => p.shipName.Contains(shipName));
//收货电话 nvarchar
var shipMobile = Request.Form["shipMobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(shipMobile)) @where = @where.And(p => p.shipMobile.Contains(shipMobile));
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//备注 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//确认收货时间 datetime
var confirmTime = Request.Form["confirmTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(confirmTime))
{
if (confirmTime.Contains("到"))
{
var dts = confirmTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.confirmTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.confirmTime < dtEnd);
}
else
{
var dt = confirmTime.ObjectToDate();
where = where.And(p => p.confirmTime > dt);
}
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsBillDeliveryServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
if (list.Any())
{
var logist = await _logisticsServices.QueryAsync();
var areaCache =await _areaServices.GetCaChe();
foreach (var item in list)
{
if (item.shipAreaId > 0)
{
var result =await _areaServices.GetAreaFullName(item.shipAreaId, areaCache);
if (result.status) item.shipAddress = result.data + item.shipAddress;
}
if (!string.IsNullOrEmpty(item.logiCode))
{
var logiModel = logist.Find(p => p.logiCode == item.logiCode);
if (logiModel != null) item.logiName = logiModel.logiName;
}
}
}
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillDelivery/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillDelivery/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillDeliveryServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var logistics = await _logisticsServices.QueryListByClauseAsync(p => p.isDelete == false);
jm.code = 0;
jm.data = new
{
model,
logistics
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillDelivery/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsBillDelivery entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsBillDeliveryServices.QueryByIdAsync(entity.deliveryId);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.logiCode = entity.logiCode;
oldModel.logiNo = entity.logiNo;
oldModel.shipAreaId = entity.shipAreaId;
oldModel.shipAddress = entity.shipAddress;
oldModel.shipName = entity.shipName;
oldModel.shipMobile = entity.shipMobile;
oldModel.memo = entity.memo;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsBillDeliveryServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillDelivery/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillDeliveryServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
if (model.shipAreaId > 0)
{
var result =await _areaServices.GetAreaFullName(model.shipAreaId);
if (result.status) model.shipAddress = result.data + model.shipAddress;
}
if (!string.IsNullOrEmpty(model.logiCode))
{
var logiModel = await _logisticsServices.QueryByClauseAsync(p => p.logiCode == model.logiCode);
;
if (logiModel != null) model.logiName = logiModel.logiName;
}
var items = await _itemServices.QueryListByClauseAsync(p => p.deliveryId == model.deliveryId,
p => p.id, OrderByType.Asc);
jm.code = 0;
jm.data = new
{
model,
items
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillDelivery/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillDeliveryServices.QueryListByClauseAsync(p => entity.id.Contains(p.deliveryId),
p => p.deliveryId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("发货单序列");
row1.CreateCell(1).SetCellValue("物流公司编码");
row1.CreateCell(2).SetCellValue("物流单号");
row1.CreateCell(3).SetCellValue("快递物流信息");
row1.CreateCell(4).SetCellValue("快递是否不更新");
row1.CreateCell(5).SetCellValue("收货地区ID");
row1.CreateCell(6).SetCellValue("收货详细地址");
row1.CreateCell(7).SetCellValue("收货人姓名");
row1.CreateCell(8).SetCellValue("收货电话");
row1.CreateCell(9).SetCellValue("状态");
row1.CreateCell(10).SetCellValue("备注");
row1.CreateCell(11).SetCellValue("确认收货时间");
row1.CreateCell(12).SetCellValue("创建时间");
row1.CreateCell(13).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].deliveryId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].logiCode);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].logiNo);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].logiInformation);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].logiStatus.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].shipAreaId.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].shipAddress);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].shipName);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].shipMobile);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(10).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(11).SetCellValue(listmodel[i].confirmTime.ToString());
rowtemp.CreateCell(12).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(13).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillDelivery导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillDelivery/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsBillDelivery>();
//查询筛选
//发货单序列 nvarchar
var deliveryId = Request.Form["deliveryId"].FirstOrDefault();
if (!string.IsNullOrEmpty(deliveryId)) @where = @where.And(p => p.deliveryId.Contains(deliveryId));
//物流公司编码 nvarchar
var logiCode = Request.Form["logiCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiCode)) @where = @where.And(p => p.logiCode.Contains(logiCode));
//物流单号 nvarchar
var logiNo = Request.Form["logiNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiNo)) @where = @where.And(p => p.logiNo.Contains(logiNo));
//快递物流信息 nvarchar
var logiInformation = Request.Form["logiInformation"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiInformation))
@where = @where.And(p => p.logiInformation.Contains(logiInformation));
//快递是否不更新 bit
var logiStatus = Request.Form["logiStatus"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiStatus) && logiStatus.ToLowerInvariant() == "true")
@where = @where.And(p => p.logiStatus);
else if (!string.IsNullOrEmpty(logiStatus) && logiStatus.ToLowerInvariant() == "false")
@where = @where.And(p => p.logiStatus == false);
//收货地区ID int
var shipAreaId = Request.Form["shipAreaId"].FirstOrDefault().ObjectToInt(0);
if (shipAreaId > 0) @where = @where.And(p => p.shipAreaId == shipAreaId);
//收货详细地址 nvarchar
var shipAddress = Request.Form["shipAddress"].FirstOrDefault();
if (!string.IsNullOrEmpty(shipAddress)) @where = @where.And(p => p.shipAddress.Contains(shipAddress));
//收货人姓名 nvarchar
var shipName = Request.Form["shipName"].FirstOrDefault();
if (!string.IsNullOrEmpty(shipName)) @where = @where.And(p => p.shipName.Contains(shipName));
//收货电话 nvarchar
var shipMobile = Request.Form["shipMobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(shipMobile)) @where = @where.And(p => p.shipMobile.Contains(shipMobile));
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//备注 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//确认收货时间 datetime
var confirmTime = Request.Form["confirmTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(confirmTime))
{
var dt = confirmTime.ObjectToDate();
where = where.And(p => p.confirmTime > dt);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillDeliveryServices.QueryListByClauseAsync(where, p => p.deliveryId,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("发货单序列");
row1.CreateCell(1).SetCellValue("物流公司编码");
row1.CreateCell(2).SetCellValue("物流单号");
row1.CreateCell(3).SetCellValue("快递物流信息");
row1.CreateCell(4).SetCellValue("快递是否不更新");
row1.CreateCell(5).SetCellValue("收货地区ID");
row1.CreateCell(6).SetCellValue("收货详细地址");
row1.CreateCell(7).SetCellValue("收货人姓名");
row1.CreateCell(8).SetCellValue("收货电话");
row1.CreateCell(9).SetCellValue("状态");
row1.CreateCell(10).SetCellValue("备注");
row1.CreateCell(11).SetCellValue("确认收货时间");
row1.CreateCell(12).SetCellValue("创建时间");
row1.CreateCell(13).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].deliveryId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].logiCode);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].logiNo);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].logiInformation);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].logiStatus.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].shipAreaId.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].shipAddress);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].shipName);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].shipMobile);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(10).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(11).SetCellValue(listmodel[i].confirmTime.ToString());
rowtemp.CreateCell(12).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(13).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillDelivery导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,601 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 提货单表
/// </summary>
[Description("提货单表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBillLadingController : ControllerBase
{
private readonly ICoreCmsBillLadingServices _coreCmsBillLadingServices;
private readonly ICoreCmsStoreServices _storeServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsBillLadingController(
IWebHostEnvironment webHostEnvironment
, ICoreCmsBillLadingServices coreCmsBillLadingServices
, ICoreCmsStoreServices storeServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBillLadingServices = coreCmsBillLadingServices;
_storeServices = storeServices;
}
#region ============================================================
// POST: Api/CoreCmsBillLading/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBillLading>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBillLading, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "orderId":
orderEx = p => p.orderId;
break;
case "storeId":
orderEx = p => p.storeId;
break;
case "name":
orderEx = p => p.name;
break;
case "mobile":
orderEx = p => p.mobile;
break;
case "clerkId":
orderEx = p => p.clerkId;
break;
case "pickUpTime":
orderEx = p => p.pickUpTime;
break;
case "status":
orderEx = p => p.status;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
case "isDel":
orderEx = p => p.isDel;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//提货单号 nvarchar
var id = Request.Form["id"].FirstOrDefault();
if (!string.IsNullOrEmpty(id)) @where = @where.And(p => p.id.Contains(id));
//订单号 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//提货门店ID int
var storeId = Request.Form["storeId"].FirstOrDefault().ObjectToInt(0);
if (storeId > 0) @where = @where.And(p => p.storeId == storeId);
//提货人姓名 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//提货手机号 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));
//处理店员ID int
var clerkId = Request.Form["clerkId"].FirstOrDefault().ObjectToInt(0);
if (clerkId > 0) @where = @where.And(p => p.clerkId == clerkId);
//提货时间 datetime
var pickUpTime = Request.Form["pickUpTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(pickUpTime))
{
if (pickUpTime.Contains("到"))
{
var dts = pickUpTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.pickUpTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.pickUpTime < dtEnd);
}
else
{
var dt = pickUpTime.ObjectToDate();
where = where.And(p => p.pickUpTime > dt);
}
}
//是否提货 bit
var status = Request.Form["status"].FirstOrDefault();
if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "true")
@where = @where.And(p => p.status);
else if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "false")
@where = @where.And(p => p.status == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//删除时间 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDel);
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDel == false);
//获取数据
var list = await _coreCmsBillLadingServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var stores = await _storeServices.QueryAsync();
jm.data = new
{
stores
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillLadingServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var stores = await _storeServices.QueryAsync();
jm.code = 0;
jm.data = new
{
model,
stores
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsBillLading/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsBillLading entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsBillLadingServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.storeId = entity.storeId;
oldModel.name = entity.name;
oldModel.mobile = entity.mobile;
//事物处理过程结束
var bl = await _coreCmsBillLadingServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillLadingServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsBillLadingServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _coreCmsBillLadingServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("提货单号");
row1.CreateCell(1).SetCellValue("订单号");
row1.CreateCell(2).SetCellValue("提货门店ID");
row1.CreateCell(3).SetCellValue("提货人姓名");
row1.CreateCell(4).SetCellValue("提货手机号");
row1.CreateCell(5).SetCellValue("处理店员ID");
row1.CreateCell(6).SetCellValue("提货时间");
row1.CreateCell(7).SetCellValue("是否提货");
row1.CreateCell(8).SetCellValue("创建时间");
row1.CreateCell(9).SetCellValue("更新时间");
row1.CreateCell(10).SetCellValue("删除时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].orderId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].storeId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].name);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].mobile);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].clerkId.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].pickUpTime.ToString());
rowtemp.CreateCell(7).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
rowtemp.CreateCell(10).SetCellValue(listmodel[i].isDel.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillLading导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsBillLading>();
//查询筛选
//提货单号 nvarchar
var id = Request.Form["id"].FirstOrDefault();
if (!string.IsNullOrEmpty(id)) @where = @where.And(p => p.id.Contains(id));
//订单号 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//提货门店ID int
var storeId = Request.Form["storeId"].FirstOrDefault().ObjectToInt(0);
if (storeId > 0) @where = @where.And(p => p.storeId == storeId);
//提货人姓名 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//提货手机号 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));
//处理店员ID int
var clerkId = Request.Form["clerkId"].FirstOrDefault().ObjectToInt(0);
if (clerkId > 0) @where = @where.And(p => p.clerkId == clerkId);
//提货时间 datetime
var pickUpTime = Request.Form["pickUpTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(pickUpTime))
{
var dt = pickUpTime.ObjectToDate();
where = where.And(p => p.pickUpTime > dt);
}
//是否提货 bit
var status = Request.Form["status"].FirstOrDefault();
if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "true")
@where = @where.And(p => p.status);
else if (!string.IsNullOrEmpty(status) && status.ToLowerInvariant() == "false")
@where = @where.And(p => p.status == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//删除时间 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDel);
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDel == false);
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillLadingServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("提货单号");
row1.CreateCell(1).SetCellValue("订单号");
row1.CreateCell(2).SetCellValue("提货门店ID");
row1.CreateCell(3).SetCellValue("提货人姓名");
row1.CreateCell(4).SetCellValue("提货手机号");
row1.CreateCell(5).SetCellValue("处理店员ID");
row1.CreateCell(6).SetCellValue("提货时间");
row1.CreateCell(7).SetCellValue("是否提货");
row1.CreateCell(8).SetCellValue("创建时间");
row1.CreateCell(9).SetCellValue("更新时间");
row1.CreateCell(10).SetCellValue("删除时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].orderId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].storeId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].name);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].mobile);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].clerkId.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].pickUpTime.ToString());
rowtemp.CreateCell(7).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
rowtemp.CreateCell(10).SetCellValue(listmodel[i].isDel.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillLading导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/LadingOperating/10
/// <summary>
/// 核销数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("核销数据")]
public async Task<AdminUiCallBack> LadingOperating([FromBody] FMStringId entity)
{
var ids = entity.id.Split(",");
var jm = await _coreCmsBillLadingServices.LadingOperating(ids);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillLading/LadingOperating/10
/// <summary>
/// 批量核销数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("核销数据")]
public async Task<AdminUiCallBack> BatchLadingOperating([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
if (entity.id.Length == 0)
{
jm.msg = "请选择需要核销的数据";
return jm;
}
jm = await _coreCmsBillLadingServices.LadingOperating(entity.id);
return jm;
}
#endregion
}
}
@@ -0,0 +1,524 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 退货单表
/// </summary>
[Description("退货单表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsBillReshipController : ControllerBase
{
private readonly ICoreCmsBillReshipServices _coreCmsBillReshipServices;
private readonly ICoreCmsBillReshipItemServices _billReshipItemServices;
private readonly ICoreCmsGoodsServices _goodsServices;
private readonly ICoreCmsStockServices _stockServices;
private readonly ICoreCmsStockLogServices _stockLogServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsBillReshipController(IWebHostEnvironment webHostEnvironment,
ICoreCmsBillReshipServices coreCmsBillReshipServices, ICoreCmsBillReshipItemServices billReshipItemServices, ICoreCmsGoodsServices goodsServices, ICoreCmsStockServices stockServices, ICoreCmsStockLogServices stockLogServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsBillReshipServices = coreCmsBillReshipServices;
_billReshipItemServices = billReshipItemServices;
_goodsServices = goodsServices;
_stockServices = stockServices;
_stockLogServices = stockLogServices;
}
#region ============================================================
// POST: Api/CoreCmsBillReship/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsBillReship>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsBillReship, object>> orderEx;
switch (orderField)
{
case "reshipId":
orderEx = p => p.reshipId;
break;
case "orderId":
orderEx = p => p.orderId;
break;
case "aftersalesId":
orderEx = p => p.aftersalesId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "logiCode":
orderEx = p => p.logiCode;
break;
case "logiNo":
orderEx = p => p.logiNo;
break;
case "status":
orderEx = p => p.status;
break;
case "memo":
orderEx = p => p.memo;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.reshipId;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//退货单号 nvarchar
var reshipId = Request.Form["reshipId"].FirstOrDefault();
if (!string.IsNullOrEmpty(reshipId)) @where = @where.And(p => p.reshipId.Contains(reshipId));
//订单序列 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//售后单序列 nvarchar
var aftersalesId = Request.Form["aftersalesId"].FirstOrDefault();
if (!string.IsNullOrEmpty(aftersalesId)) @where = @where.And(p => p.aftersalesId.Contains(aftersalesId));
//用户ID 关联user.id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//物流公司编码 nvarchar
var logiCode = Request.Form["logiCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiCode)) @where = @where.And(p => p.logiCode.Contains(logiCode));
//物流单号 nvarchar
var logiNo = Request.Form["logiNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiNo)) @where = @where.And(p => p.logiNo.Contains(logiNo));
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//备注 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsBillReshipServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillReship/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var status = EnumHelper.EnumToList<GlobalEnumVars.BillReshipStatus>();
jm.data = new
{
status
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillReship/DoDelete/10
/// <summary>
/// 确认收货
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("确认收货")]
public async Task<AdminUiCallBack> DoAudit([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillReshipServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsBillReshipServices.UpdateAsync(
p => new CoreCmsBillReship
{ status = (int)GlobalEnumVars.BillReshipStatus.退, updateTime = DateTime.Now },
p => p.reshipId == entity.id);
if (bl)
{
//调整库存
var items = await _billReshipItemServices.QueryListByClauseAsync(p => p.reshipId == entity.id);
var stockLogs = new List<CoreCmsStockLog>();
foreach (var item in items)
{
_goodsServices.ChangeStock(item.productId, GlobalEnumVars.OrderChangeStockType.@return.ToString(), item.nums);
var sLog = new CoreCmsStockLog
{
stockId = entity.id,
productId = item.id,
goodsId = item.goodsId,
nums = item.nums,
sn = item.sn,
bn = item.bn,
goodsName = item.name,
spesDesc = item.addon
};
stockLogs.Add(sLog);
}
//库存管理日志
var stock = new CoreCmsStock
{
manager = 0,
id = entity.id,
createTime = DateTime.Now,
type = (int)GlobalEnumVars.StockType.ReturnedGoods,
memo = "退货单退货"
};
await _stockServices.InsertAsync(stock);
await _stockLogServices.InsertAsync(stockLogs);
}
jm.code = bl ? 0 : 1;
jm.msg = bl ? "确认成功" : "确认失败";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillReship/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsBillReshipServices.GetDetails(p => p.reshipId == entity.id, p => p.createTime, OrderByType.Desc);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var status = EnumHelper.EnumToList<GlobalEnumVars.BillReshipStatus>();
jm.code = 0;
jm.data = new
{
status,
model
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillReship/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayStringIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillReshipServices.QueryListByClauseAsync(p => entity.id.Contains(p.reshipId),
p => p.reshipId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("退货单号");
row1.CreateCell(1).SetCellValue("订单序列");
row1.CreateCell(2).SetCellValue("售后单序列");
row1.CreateCell(3).SetCellValue("用户ID 关联user.id");
row1.CreateCell(4).SetCellValue("物流公司编码");
row1.CreateCell(5).SetCellValue("物流单号");
row1.CreateCell(6).SetCellValue("状态");
row1.CreateCell(7).SetCellValue("备注");
row1.CreateCell(8).SetCellValue("创建时间");
row1.CreateCell(9).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].reshipId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].orderId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].aftersalesId);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].logiCode);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].logiNo);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(7).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillReship导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsBillReship/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsBillReship>();
//查询筛选
//退货单号 nvarchar
var reshipId = Request.Form["reshipId"].FirstOrDefault();
if (!string.IsNullOrEmpty(reshipId)) @where = @where.And(p => p.reshipId.Contains(reshipId));
//订单序列 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//售后单序列 nvarchar
var aftersalesId = Request.Form["aftersalesId"].FirstOrDefault();
if (!string.IsNullOrEmpty(aftersalesId))
@where = @where.And(p => p.aftersalesId.Contains(aftersalesId));
//用户ID 关联user.id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//物流公司编码 nvarchar
var logiCode = Request.Form["logiCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiCode)) @where = @where.And(p => p.logiCode.Contains(logiCode));
//物流单号 nvarchar
var logiNo = Request.Form["logiNo"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiNo)) @where = @where.And(p => p.logiNo.Contains(logiNo));
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//备注 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsBillReshipServices.QueryListByClauseAsync(where, p => p.reshipId, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("退货单号");
row1.CreateCell(1).SetCellValue("订单序列");
row1.CreateCell(2).SetCellValue("售后单序列");
row1.CreateCell(3).SetCellValue("用户ID 关联user.id");
row1.CreateCell(4).SetCellValue("物流公司编码");
row1.CreateCell(5).SetCellValue("物流单号");
row1.CreateCell(6).SetCellValue("状态");
row1.CreateCell(7).SetCellValue("备注");
row1.CreateCell(8).SetCellValue("创建时间");
row1.CreateCell(9).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].reshipId);
rowtemp.CreateCell(1).SetCellValue(listmodel[i].orderId);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].aftersalesId);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].logiCode);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].logiNo);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(7).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsBillReship导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,244 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 拼团记录表
/// </summary>
[Description("拼团记录表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsPinTuanRecordController : ControllerBase
{
private readonly ICoreCmsPinTuanRecordServices _coreCmsPinTuanRecordServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsPinTuanRecordServices"></param>
public CoreCmsPinTuanRecordController(IWebHostEnvironment webHostEnvironment,
ICoreCmsPinTuanRecordServices coreCmsPinTuanRecordServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsPinTuanRecordServices = coreCmsPinTuanRecordServices;
}
#region ============================================================
// POST: Api/CoreCmsPinTuanRecord/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsPinTuanRecord>();
where = where.And(p => p.id == p.teamId);
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsPinTuanRecord, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "teamId":
orderEx = p => p.teamId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "ruleId":
orderEx = p => p.ruleId;
break;
case "goodsId":
orderEx = p => p.goodsId;
break;
case "status":
orderEx = p => p.status;
break;
case "orderId":
orderEx = p => p.orderId;
break;
case "parameters":
orderEx = p => p.parameters;
break;
case "closeTime":
orderEx = p => p.closeTime;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//团序列 int
var teamId = Request.Form["teamId"].FirstOrDefault().ObjectToInt(0);
if (teamId > 0) @where = @where.And(p => p.teamId == teamId);
//用户序列 int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//规则表序列 int
var ruleId = Request.Form["ruleId"].FirstOrDefault().ObjectToInt(0);
if (ruleId > 0) @where = @where.And(p => p.ruleId == ruleId);
//商品序列 int
var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
if (goodsId > 0) @where = @where.And(p => p.goodsId == goodsId);
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//订单序列 nvarchar
var orderId = Request.Form["orderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(orderId)) @where = @where.And(p => p.orderId.Contains(orderId));
//拼团人数Json nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//关闭时间 datetime
var closeTime = Request.Form["closeTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(closeTime))
{
if (closeTime.Contains("到"))
{
var dts = closeTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.closeTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.closeTime < dtEnd);
}
else
{
var dt = closeTime.ObjectToDate();
where = where.And(p => p.closeTime > dt);
}
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsPinTuanRecordServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRecord/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var status = EnumHelper.EnumToList<GlobalEnumVars.PinTuanRecordStatus>();
jm.data = new
{
status
};
return jm;
}
#endregion
}
}
@@ -0,0 +1,421 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 拼团规则表
/// </summary>
[Description("拼团规则表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsPinTuanRuleController : ControllerBase
{
private readonly ICoreCmsGoodsServices _coreCmsGoodsServices;
private readonly ICoreCmsPinTuanGoodsServices _coreCmsPinTuanGoodsServices;
private readonly ICoreCmsPinTuanRuleServices _coreCmsPinTuanRuleServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsPinTuanRuleServices"></param>
/// <param name="coreCmsGoodsServices"></param>
/// <param name="coreCmsPinTuanGoodsServices"></param>
public CoreCmsPinTuanRuleController(IWebHostEnvironment webHostEnvironment
, ICoreCmsPinTuanRuleServices coreCmsPinTuanRuleServices
, ICoreCmsGoodsServices coreCmsGoodsServices
, ICoreCmsPinTuanGoodsServices coreCmsPinTuanGoodsServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsPinTuanRuleServices = coreCmsPinTuanRuleServices;
_coreCmsGoodsServices = coreCmsGoodsServices;
_coreCmsPinTuanGoodsServices = coreCmsPinTuanGoodsServices;
}
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsPinTuanRule>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsPinTuanRule, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "startTime":
orderEx = p => p.startTime;
break;
case "endTime":
orderEx = p => p.endTime;
break;
case "peopleNumber":
orderEx = p => p.peopleNumber;
break;
case "significantInterval":
orderEx = p => p.significantInterval;
break;
case "discountAmount":
orderEx = p => p.discountAmount;
break;
case "sort":
orderEx = p => p.sort;
break;
case "isStatusOpen":
orderEx = p => p.isStatusOpen;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//活动名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//开始时间 datetime
var startTime = Request.Form["startTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(startTime))
{
if (startTime.Contains("到"))
{
var dts = startTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.startTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.endTime < dtEnd);
}
else
{
var dt = startTime.ObjectToDate();
where = where.And(p => p.startTime > dt);
}
}
//是否开启 bit
var isStatusOpen = Request.Form["isStatusOpen"].FirstOrDefault();
if (!string.IsNullOrEmpty(isStatusOpen) && isStatusOpen.ToLowerInvariant() == "true")
@where = @where.And(p => p.isStatusOpen);
else if (!string.IsNullOrEmpty(isStatusOpen) && isStatusOpen.ToLowerInvariant() == "false")
@where = @where.And(p => p.isStatusOpen == false);
//获取数据
var list = await _coreCmsPinTuanRuleServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsPinTuanRule entity)
{
var jm = new AdminUiCallBack();
if (entity.peopleNumber < 2 || entity.peopleNumber > 10)
{
jm.msg = "拼团人数只允许2至10人";
return jm;
}
entity.createTime = DateTime.Now;
var id = await _coreCmsPinTuanRuleServices.InsertAsync(entity);
var bl = id > 0;
if (bl && entity.goods.Any())
{
var list = new List<CoreCmsPinTuanGoods>();
foreach (var good in entity.goods)
list.Add(new CoreCmsPinTuanGoods
{
goodsId = good,
ruleId = id
});
await _coreCmsPinTuanGoodsServices.InsertAsync(list);
}
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPinTuanRuleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var pinTuanGoods = await _coreCmsPinTuanGoodsServices.QueryListByClauseAsync(p => p.ruleId == model.id);
var Ids = pinTuanGoods.Select(p => p.goodsId).ToArray();
var goods = await _coreCmsGoodsServices.QueryListByClauseAsync(p => Ids.Contains(p.id));
jm.data = new
{
model,
goods
};
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsPinTuanRule/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsPinTuanRule entity)
{
var jm = new AdminUiCallBack();
if (entity.peopleNumber < 2 || entity.peopleNumber > 10)
{
jm.msg = "拼团人数只允许2至10人";
return jm;
}
var oldModel = await _coreCmsPinTuanRuleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.name = entity.name;
oldModel.startTime = entity.startTime;
oldModel.endTime = entity.endTime;
oldModel.peopleNumber = entity.peopleNumber;
oldModel.significantInterval = entity.significantInterval;
oldModel.discountAmount = entity.discountAmount;
oldModel.sort = entity.sort;
oldModel.isStatusOpen = entity.isStatusOpen;
oldModel.maxGoodsNums = entity.maxGoodsNums;
oldModel.maxNums = entity.maxNums;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsPinTuanRuleServices.UpdateAsync(oldModel);
if (bl && entity.goods.Any())
{
await _coreCmsPinTuanGoodsServices.DeleteAsync(p => p.ruleId == oldModel.id);
var list = new List<CoreCmsPinTuanGoods>();
foreach (var good in entity.goods)
list.Add(new CoreCmsPinTuanGoods
{
goodsId = good,
ruleId = oldModel.id
});
await _coreCmsPinTuanGoodsServices.InsertAsync(list);
}
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPinTuanRuleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsPinTuanRuleServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPinTuanRule/DoSetisStatusOpen/10
/// <summary>
/// 设置是否开启
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否开启")]
public async Task<AdminUiCallBack> DoSetisStatusOpen([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsPinTuanRuleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isStatusOpen = entity.data;
var bl = await _coreCmsPinTuanRuleServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,538 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.Echarts;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using CoreCms.Net.Utility.Extensions;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers.Content
{
/// <summary>
/// 报表统计
///</summary>
[Description("报表统计")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsReportsController : ControllerBase
{
private readonly ICoreCmsReportsServices _reportsServices;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="reportsServices"></param>
public CoreCmsReportsController(ICoreCmsReportsServices reportsServices)
{
_reportsServices = reportsServices;
}
#region
// POST: Api/CoreCmsReports/GetOrder
/// <summary>
/// 订单销量统计
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("订单销量统计")]
public AdminUiCallBack GetOrder([FromBody] FMReports entity)
{
var jm = new AdminUiCallBack();
var dataRes = ReportsHelper.GetDate(entity.date, entity.section);
if (!dataRes.status)
{
jm.msg = dataRes.msg;
return jm;
}
var echartsOption = new EchartsOption();
echartsOption.title.text = "订单统计";
var legend = new List<string>() { "全部", "待付款", "已付款" };
echartsOption.legend.data = legend;
var getDate = dataRes.data as ReportsBackForGetDate;
var xData = ReportsHelper.GetXdata(getDate);
if (!xData.status)
{
jm.msg = dataRes.msg;
return jm;
}
echartsOption.xAxis.data = xData.data as List<string>;
var whereSql = string.Empty;
var data = new List<GetOrdersReportsDbSelectOut>();
var data1 = new List<GetOrdersReportsDbSelectOut>();
var data2 = new List<GetOrdersReportsDbSelectOut>();
var data3 = new List<GetOrdersReportsDbSelectOut>();
foreach (var item in legend)
{
switch (item)
{
case "全部":
whereSql = string.Empty;
whereSql += " and createTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and createTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
data = _reportsServices.GetOrderMark(getDate.num, whereSql, getDate.section, getDate.start, "createTime");
data1 = data;
break;
case "待付款":
whereSql = string.Empty;
whereSql += " and createTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and createTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and payStatus=1 ";
data = _reportsServices.GetOrderMark(getDate.num, whereSql, getDate.section, getDate.start, "createTime");
data2 = data;
break;
case "已付款":
whereSql = string.Empty;
whereSql += " and paymentTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and paymentTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and payStatus>1 ";
data = _reportsServices.GetOrderMark(getDate.num, whereSql, getDate.section, getDate.start, "paymentTime");
data3 = data;
break;
}
if (data != null && data.Any())
{
var vals = data.Select(p => p.val).ToList();
echartsOption.series.Add(new SeriesItem()
{
name = item,
type = "line",
data = vals.ConvertAll<string>(x => x.ToString(CultureInfo.InvariantCulture))
});
}
else
{
echartsOption.series.Add(new SeriesItem()
{
name = item,
type = "line",
data = new List<string>()
});
}
}
//组装数据列表用于table里使用
var tableData = new List<OrderTableItem>();
for (int i = 0; i < getDate.num; i++)
{
var item = new OrderTableItem();
if (echartsOption.xAxis.data != null) item.x = echartsOption.xAxis.data[i];
item.order_all_val = data1[i].val.ToString(CultureInfo.InvariantCulture);
item.order_all_num = data1[i].num;
item.order_nopay_val = data2[i].val.ToString(CultureInfo.InvariantCulture);
item.order_nopay_num = data2[i].num;
item.order_payed_val = data3[i].val.ToString(CultureInfo.InvariantCulture);
item.order_payed_num = data3[i].num;
tableData.Add(item);
}
jm.code = 0;
jm.data = new
{
option = echartsOption,
table = tableData
};
return jm;
}
#endregion
#region
// POST: Api/CoreCmsReports/GetPayments
/// <summary>
/// 财务收款单
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("财务收款单")]
public AdminUiCallBack GetPayments([FromBody] FMReports entity)
{
var jm = new AdminUiCallBack();
var dataRes = ReportsHelper.GetDate(entity.date, entity.section);
if (!dataRes.status)
{
jm.msg = dataRes.msg;
return jm;
}
var echartsOption = new EchartsOption();
echartsOption.title.text = "财务统计";
var legend = new List<string>() { "收款单", "订单收款", "订单退款", "充值", "提现" };
echartsOption.legend.data = legend;
var getDate = dataRes.data as ReportsBackForGetDate;
var xData = ReportsHelper.GetXdata(getDate);
if (!xData.status)
{
jm.msg = dataRes.msg;
return jm;
}
echartsOption.xAxis.data = xData.data as List<string>;
var whereSql = string.Empty;
var data = new List<GetOrdersReportsDbSelectOut>();
var data1 = new List<GetOrdersReportsDbSelectOut>();
var data2 = new List<GetOrdersReportsDbSelectOut>();
var data3 = new List<GetOrdersReportsDbSelectOut>();
var data4 = new List<GetOrdersReportsDbSelectOut>();
var data5 = new List<GetOrdersReportsDbSelectOut>();
foreach (var item in legend)
{
switch (item)
{
case "收款单":
whereSql = string.Empty;
whereSql += " and updateTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and updateTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and status = 2 ";
data = _reportsServices.GetPaymentsMark(getDate.num, whereSql, getDate.section, getDate.start, "updateTime");
data1 = data;
break;
case "订单收款":
whereSql = string.Empty;
whereSql += " and updateTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and updateTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and status = 2 ";
whereSql += " and type = 1 ";
data = _reportsServices.GetPaymentsMark(getDate.num, whereSql, getDate.section, getDate.start, "updateTime");
data2 = data;
break;
case "订单退款":
whereSql = string.Empty;
whereSql += " and updateTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and updateTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and status = 2 ";
whereSql += " and type = 1 ";
data = _reportsServices.GetRefundMark(getDate.num, whereSql, getDate.section, getDate.start, "updateTime");
data3 = data;
break;
case "充值":
whereSql = string.Empty;
whereSql += " and updateTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and updateTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and status = 2 ";
whereSql += " and type = 2 ";
data = _reportsServices.GetPaymentsMark(getDate.num, whereSql, getDate.section, getDate.start, "updateTime");
data4 = data;
break;
case "提现":
whereSql = string.Empty;
whereSql += " and updateTime > '" + getDate.start.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and updateTime < '" + getDate.end.ToString("yyyy-MM-dd HH:mm:ss") + "' ";
whereSql += " and status = 2 ";
data = _reportsServices.GetTocashMark(getDate.num, whereSql, getDate.section, getDate.start, "updateTime");
data5 = data;
break;
}
if (data != null && data.Any())
{
var vals = data.Select(p => p.val).ToList();
echartsOption.series.Add(new SeriesItem()
{
name = item,
type = "line",
data = vals.ConvertAll<string>(x => x.ToString(CultureInfo.InvariantCulture))
});
}
else
{
echartsOption.series.Add(new SeriesItem()
{
name = item,
type = "line",
data = new List<string>()
});
}
}
//组装数据列表用于table里使用
//var legend = new List<string>() { "收款单", "订单收款", "订单退款", "充值", "提现" };
var tableData = new List<PaymentsTableItem>();
for (int i = 0; i < getDate.num; i++)
{
var item = new PaymentsTableItem();
if (echartsOption.xAxis.data != null) item.x = echartsOption.xAxis.data[i];
item.payments_all_val = data1[i].val.ToString(CultureInfo.InvariantCulture);
item.payments_all_num = data1[i].num;
item.payments_order_val = data2[i].val.ToString(CultureInfo.InvariantCulture);
item.payments_order_num = data2[i].num;
item.payments_order_refund_val = data3[i].val.ToString(CultureInfo.InvariantCulture);
item.payments_order_refund_num = data3[i].num;
item.payments_recharge_val = data4[i].val.ToString(CultureInfo.InvariantCulture);
item.payments_recharge_num = data4[i].num;
item.payments_tocash_val = data5[i].val.ToString(CultureInfo.InvariantCulture);
item.payments_tocash_num = data5[i].num;
tableData.Add(item);
}
jm.code = 0;
jm.data = new
{
option = echartsOption,
table = tableData
};
return jm;
}
#endregion
#region
// POST: Api/CoreCmsReports/GetGoods
/// <summary>
/// 商品销量统计
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("商品销量统计")]
public async Task<AdminUiCallBack> GetGoods()
{
var jm = new AdminUiCallBack();
var page = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var limit = Request.Form["limit"].FirstOrDefault().ObjectToInt(5000);
var thesort = Request.Form["thesort"].FirstOrDefault();
if (string.IsNullOrEmpty(thesort))
{
thesort = "desc";
}
var filter = Request.Form["filter"].FirstOrDefault();
if (string.IsNullOrEmpty(filter))
{
filter = "nums";
}
var filter_sed = filter == "nums" ? "amount" : "nums";
var dt = DateTime.Now;
var start = "";
var end = "";
var date = Request.Form["date"].FirstOrDefault();
if (!string.IsNullOrEmpty(date))
{
var dts = date.Split("到");
if (dts.Length == 2)
{
var startDt = dts[0].Trim().ObjectToDate();
start = startDt.ToString("yyyy-MM-dd 00:00:00");
var endDt = dts[1].Trim().ObjectToDate();
end = endDt.ToString("yyyy-MM-dd 23:59:59");
}
else
{
jm.msg = "时间段格式不正确";
return jm;
}
}
else
{
//默认今天
start = dt.ToString("yyyy-MM-dd 00:00:00");
end = dt.ToString("yyyy-MM-dd 23:59:59");
}
var list = await _reportsServices.GetGoodsSalesVolumes(start, end, filter, filter_sed, thesort, page, limit);
jm.code = 0;
jm.data = list;
jm.count = list.TotalCount;
return jm;
}
#endregion
#region
// POST: Api/CoreCmsReports/GetGoodsCollection
/// <summary>
/// 商品收藏统计
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("商品收藏统计")]
public async Task<AdminUiCallBack> GetGoodsCollection()
{
var jm = new AdminUiCallBack();
var page = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var limit = Request.Form["limit"].FirstOrDefault().ObjectToInt(5000);
var thesort = Request.Form["thesort"].FirstOrDefault();
if (string.IsNullOrEmpty(thesort))
{
thesort = "desc";
}
var dt = DateTime.Now;
var start = "";
var end = "";
var date = Request.Form["date"].FirstOrDefault();
if (!string.IsNullOrEmpty(date))
{
var dts = date.Split("到");
if (dts.Length == 2)
{
var startDt = dts[0].Trim().ObjectToDate();
start = startDt.ToString("yyyy-MM-dd 00:00:00");
var endDt = dts[1].Trim().ObjectToDate();
end = endDt.ToString("yyyy-MM-dd 23:59:59");
}
else
{
jm.msg = "时间段格式不正确";
return jm;
}
}
else
{
//默认今天
start = dt.ToString("yyyy-MM-dd 00:00:00");
end = dt.ToString("yyyy-MM-dd 23:59:59");
}
var list = await _reportsServices.GetGoodsCollections(start, end, thesort, page, limit);
jm.code = 0;
jm.data = list;
jm.count = list.TotalCount;
return jm;
}
#endregion
#region
//换算前台时间按钮
// POST: Api/CoreCmsReports/GetDateType
/// <summary>
/// 换算前台时间按钮
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("换算前台时间按钮")]
public AdminUiCallBack GetDateType([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
if (entity.id <= 0)
{
jm.msg = "请选择合法的时间段";
return jm;
}
DateTime dt = DateTime.Now; //当前时间
var start = "";
var end = "";
switch (entity.id)
{
case 1: //当天
start = dt.ToString("yyyy-MM-dd");
end = start;
break;
case 2: //昨天
start = dt.AddDays(-1).ToString("yyyy-MM-dd");
end = start;
break;
case 3: //本周
var startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一
var endWeek = startWeek.AddDays(6); //本周周日
start = startWeek.ToString("yyyy-MM-dd");
end = endWeek.ToString("yyyy-MM-dd");
break;
case 4: //上周
var lastWeekStart = dt.AddDays(Convert.ToInt32(1 - Convert.ToInt32(dt.DayOfWeek)) - 7);
var lastWeekEnd = dt.AddDays(Convert.ToInt32(1 - Convert.ToInt32(dt.DayOfWeek)) - 7).AddDays(6); //上周末(星期日)
start = lastWeekStart.ToString("yyyy-MM-dd");
end = lastWeekEnd.ToString("yyyy-MM-dd");
break;
case 5: //本月
var startMonth = dt.AddDays(1 - dt.Day); //本月月初
var endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末
start = startMonth.ToString("yyyy-MM-dd");
end = endMonth.ToString("yyyy-MM-dd");
break;
case 6: //上月
start = DateTime.Parse(dt.ToString("yyyy-MM-01")).AddMonths(-1).ToString("yyyy-MM-dd");
end = DateTime.Parse(dt.ToString("yyyy-MM-01")).AddDays(-1).ToString("yyyy-MM-dd");
break;
case 7: //最近7天
start = dt.AddDays(-7).ToString("yyyy-MM-dd");
end = dt.Date.ToString("yyyy-MM-dd");
break;
case 8: //最近一月
start = dt.AddMonths(-1).AddDays(1).ToString("yyyy-MM-dd");
end = dt.Date.ToString("yyyy-MM-dd");
break;
case 9: //最近3月
start = dt.AddMonths(-3).AddDays(1).ToString("yyyy-MM-dd");
end = dt.Date.ToString("yyyy-MM-dd");
break;
case 10: //最近6个月
start = dt.AddMonths(-6).AddDays(1).ToString("yyyy-MM-dd");
end = dt.Date.ToString("yyyy-MM-dd");
break;
case 11: //最近一年
start = dt.AddMonths(-12).AddDays(1).ToString("yyyy-MM-dd");
end = dt.Date.ToString("yyyy-MM-dd");
break;
case 12: //本年度
start = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToString("yyyy-MM-dd");
end = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToString("yyyy-MM-dd");
break;
case 13: //上年度
start = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToString("yyyy-MM-dd");
end = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToString("yyyy-MM-dd");
break;
default:
jm.msg = "没有此时间维度";
break;
}
jm.code = 0;
jm.data = new
{
start,
end
};
return jm;
}
#endregion
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,844 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 服务购买表
///</summary>
[Description("服务购买表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserServicesOrderController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsUserServicesOrderServices _CoreCmsUserServicesOrderServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsUserServicesOrderController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserServicesOrderServices CoreCmsUserServicesOrderServices
)
{
_webHostEnvironment = webHostEnvironment;
_CoreCmsUserServicesOrderServices = CoreCmsUserServicesOrderServices;
}
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserServicesOrder>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserServicesOrder, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "serviceOrderId":
orderEx = p => p.serviceOrderId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "servicesId":
orderEx = p => p.servicesId;
break;
case "isPay":
orderEx = p => p.isPay;
break;
case "payTime":
orderEx = p => p.payTime;
break;
case "paymentId":
orderEx = p => p.paymentId;
break;
case "status":
orderEx = p => p.status;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "servicesEndTime":
orderEx = p => p.servicesEndTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//服务订单编号 nvarchar
var serviceOrderId = Request.Form["serviceOrderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(serviceOrderId))
{
where = where.And(p => p.serviceOrderId.Contains(serviceOrderId));
}
//关联用户 int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//关联服务 int
var servicesId = Request.Form["servicesId"].FirstOrDefault().ObjectToInt(0);
if (servicesId > 0)
{
where = where.And(p => p.servicesId == servicesId);
}
//是否支付 bit
var isPay = Request.Form["isPay"].FirstOrDefault();
if (!string.IsNullOrEmpty(isPay) && isPay.ToLowerInvariant() == "true")
{
where = where.And(p => p.isPay == true);
}
else if (!string.IsNullOrEmpty(isPay) && isPay.ToLowerInvariant() == "false")
{
where = where.And(p => p.isPay == false);
}
//支付时间 datetime
var payTime = Request.Form["payTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(payTime))
{
if (payTime.Contains("到"))
{
var dts = payTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.payTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.payTime < dtEnd);
}
else
{
var dt = payTime.ObjectToDate();
where = where.And(p => p.payTime > dt);
}
}
//支付单号 nvarchar
var paymentId = Request.Form["paymentId"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentId))
{
where = where.And(p => p.paymentId.Contains(paymentId));
}
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0)
{
where = where.And(p => p.status == status);
}
//订单创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//截止服务时间 datetime
var servicesEndTime = Request.Form["servicesEndTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(servicesEndTime))
{
if (servicesEndTime.Contains("到"))
{
var dts = servicesEndTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.servicesEndTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.servicesEndTime < dtEnd);
}
else
{
var dt = servicesEndTime.ObjectToDate();
where = where.And(p => p.servicesEndTime > dt);
}
}
//获取数据
var list = await _CoreCmsUserServicesOrderServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsUserServicesOrder entity)
{
var jm = new AdminUiCallBack();
var bl = await _CoreCmsUserServicesOrderServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesOrderServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsUserServicesOrder entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _CoreCmsUserServicesOrderServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.serviceOrderId = entity.serviceOrderId;
oldModel.userId = entity.userId;
oldModel.servicesId = entity.servicesId;
oldModel.isPay = entity.isPay;
oldModel.payTime = entity.payTime;
oldModel.paymentId = entity.paymentId;
oldModel.status = entity.status;
oldModel.createTime = entity.createTime;
oldModel.servicesEndTime = entity.servicesEndTime;
//事物处理过程结束
var bl = await _CoreCmsUserServicesOrderServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesOrderServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _CoreCmsUserServicesOrderServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _CoreCmsUserServicesOrderServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesOrderServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _CoreCmsUserServicesOrderServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("服务订单编号");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("关联用户");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("关联服务");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("是否支付");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("支付时间");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("支付单号");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("状态");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("订单创建时间");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("截止服务时间");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].serviceOrderId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].userId.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].servicesId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].isPay.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].payTime.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].paymentId.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].status.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].createTime.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].servicesEndTime.ToString());
rowTemp9.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserServicesOrder导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsUserServicesOrder>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//服务订单编号 nvarchar
var serviceOrderId = Request.Form["serviceOrderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(serviceOrderId))
{
where = where.And(p => p.serviceOrderId.Contains(serviceOrderId));
}
//关联用户 int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//关联服务 int
var servicesId = Request.Form["servicesId"].FirstOrDefault().ObjectToInt(0);
if (servicesId > 0)
{
where = where.And(p => p.servicesId == servicesId);
}
//是否支付 bit
var isPay = Request.Form["isPay"].FirstOrDefault();
if (!string.IsNullOrEmpty(isPay) && isPay.ToLowerInvariant() == "true")
{
where = where.And(p => p.isPay == true);
}
else if (!string.IsNullOrEmpty(isPay) && isPay.ToLowerInvariant() == "false")
{
where = where.And(p => p.isPay == false);
}
//支付时间 datetime
var payTime = Request.Form["payTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(payTime))
{
var dt = payTime.ObjectToDate();
where = where.And(p => p.payTime > dt);
}
//支付单号 nvarchar
var paymentId = Request.Form["paymentId"].FirstOrDefault();
if (!string.IsNullOrEmpty(paymentId))
{
where = where.And(p => p.paymentId.Contains(paymentId));
}
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0)
{
where = where.And(p => p.status == status);
}
//订单创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//截止服务时间 datetime
var servicesEndTime = Request.Form["servicesEndTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(servicesEndTime))
{
var dt = servicesEndTime.ObjectToDate();
where = where.And(p => p.servicesEndTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _CoreCmsUserServicesOrderServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("服务订单编号");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("关联用户");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("关联服务");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("是否支付");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("支付时间");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("支付单号");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("状态");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("订单创建时间");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("截止服务时间");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].serviceOrderId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].userId.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].servicesId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].isPay.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].payTime.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].paymentId.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].status.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].createTime.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].servicesEndTime.ToString());
rowTemp9.CellStyle = commonCellStyle;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserServicesOrder导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesOrder/DoSetisPay/10
/// <summary>
/// 设置是否支付
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否支付")]
public async Task<AdminUiCallBack> DoSetisPay([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _CoreCmsUserServicesOrderServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isPay = (bool)entity.data;
var bl = await _CoreCmsUserServicesOrderServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
}
}
@@ -0,0 +1,948 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 服务消费券
///</summary>
[Description("服务消费券")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserServicesTicketController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsUserServicesTicketServices _CoreCmsUserServicesTicketServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsUserServicesTicketController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserServicesTicketServices CoreCmsUserServicesTicketServices
)
{
_webHostEnvironment = webHostEnvironment;
_CoreCmsUserServicesTicketServices = CoreCmsUserServicesTicketServices;
}
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserServicesTicket>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserServicesTicket, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "serviceOrderId":
orderEx = p => p.serviceOrderId;
break;
case "securityCode":
orderEx = p => p.securityCode;
break;
case "redeemCode":
orderEx = p => p.redeemCode;
break;
case "serviceId":
orderEx = p => p.serviceId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "status":
orderEx = p => p.status;
break;
case "validityType":
orderEx = p => p.validityType;
break;
case "validityStartTime":
orderEx = p => p.validityStartTime;
break;
case "validityEndTime":
orderEx = p => p.validityEndTime;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "isVerification":
orderEx = p => p.isVerification;
break;
case "verificationTime":
orderEx = p => p.verificationTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//关联购买订单 nvarchar
var serviceOrderId = Request.Form["serviceOrderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(serviceOrderId))
{
where = where.And(p => p.serviceOrderId.Contains(serviceOrderId));
}
//兑换码 nvarchar
var redeemCode = Request.Form["redeemCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(redeemCode))
{
where = where.And(p => p.redeemCode.Contains(redeemCode));
}
//关联服务项目id int
var serviceId = Request.Form["serviceId"].FirstOrDefault().ObjectToInt(0);
if (serviceId > 0)
{
where = where.And(p => p.serviceId == serviceId);
}
//关联用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0)
{
where = where.And(p => p.status == status);
}
//核销有效期类型 int
var validityType = Request.Form["validityType"].FirstOrDefault().ObjectToInt(0);
if (validityType > 0)
{
where = where.And(p => p.validityType == validityType);
}
//核销开始时间 datetime
var validityStartTime = Request.Form["validityStartTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(validityStartTime))
{
if (validityStartTime.Contains("到"))
{
var dts = validityStartTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.validityStartTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.validityStartTime < dtEnd);
}
else
{
var dt = validityStartTime.ObjectToDate();
where = where.And(p => p.validityStartTime > dt);
}
}
//核销结束时间 datetime
var validityEndTime = Request.Form["validityEndTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(validityEndTime))
{
if (validityEndTime.Contains("到"))
{
var dts = validityEndTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.validityEndTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.validityEndTime < dtEnd);
}
else
{
var dt = validityEndTime.ObjectToDate();
where = where.And(p => p.validityEndTime > dt);
}
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//是否核销 bit
var isVerification = Request.Form["isVerification"].FirstOrDefault();
if (!string.IsNullOrEmpty(isVerification) && isVerification.ToLowerInvariant() == "true")
{
where = where.And(p => p.isVerification == true);
}
else if (!string.IsNullOrEmpty(isVerification) && isVerification.ToLowerInvariant() == "false")
{
where = where.And(p => p.isVerification == false);
}
//核销时间 datetime
var verificationTime = Request.Form["verificationTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(verificationTime))
{
if (verificationTime.Contains("到"))
{
var dts = verificationTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.verificationTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.verificationTime < dtEnd);
}
else
{
var dt = verificationTime.ObjectToDate();
where = where.And(p => p.verificationTime > dt);
}
}
//获取数据
var list = await _CoreCmsUserServicesTicketServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsUserServicesTicket entity)
{
var jm = new AdminUiCallBack();
var bl = await _CoreCmsUserServicesTicketServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesTicketServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsUserServicesTicket entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _CoreCmsUserServicesTicketServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.serviceOrderId = entity.serviceOrderId;
oldModel.securityCode = entity.securityCode;
oldModel.redeemCode = entity.redeemCode;
oldModel.serviceId = entity.serviceId;
oldModel.userId = entity.userId;
oldModel.status = entity.status;
oldModel.validityType = entity.validityType;
oldModel.validityStartTime = entity.validityStartTime;
oldModel.validityEndTime = entity.validityEndTime;
oldModel.createTime = entity.createTime;
oldModel.isVerification = entity.isVerification;
oldModel.verificationTime = entity.verificationTime;
//事物处理过程结束
var bl = await _CoreCmsUserServicesTicketServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesTicketServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _CoreCmsUserServicesTicketServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _CoreCmsUserServicesTicketServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesTicketServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _CoreCmsUserServicesTicketServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("关联购买订单");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("安全码");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("兑换码");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("关联服务项目id");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("关联用户id");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("状态");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("核销有效期类型");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("核销开始时间");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("核销结束时间");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
var cell10 = headerRow.CreateCell(10);
cell10.SetCellValue("创建时间");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(10, 10 * 256);
var cell11 = headerRow.CreateCell(11);
cell11.SetCellValue("是否核销");
cell11.CellStyle = headerStyle;
mySheet.SetColumnWidth(11, 10 * 256);
var cell12 = headerRow.CreateCell(12);
cell12.SetCellValue("核销时间");
cell12.CellStyle = headerStyle;
mySheet.SetColumnWidth(12, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].serviceOrderId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].securityCode.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].redeemCode.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].serviceId.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].userId.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].status.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].validityType.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].validityStartTime.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].validityEndTime.ToString());
rowTemp9.CellStyle = commonCellStyle;
var rowTemp10 = rowTemp.CreateCell(10);
rowTemp10.SetCellValue(listModel[i].createTime.ToString());
rowTemp10.CellStyle = commonCellStyle;
var rowTemp11 = rowTemp.CreateCell(11);
rowTemp11.SetCellValue(listModel[i].isVerification.ToString());
rowTemp11.CellStyle = commonCellStyle;
var rowTemp12 = rowTemp.CreateCell(12);
rowTemp12.SetCellValue(listModel[i].verificationTime.ToString());
rowTemp12.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserServicesTicket导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsUserServicesTicket>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//关联购买订单 nvarchar
var serviceOrderId = Request.Form["serviceOrderId"].FirstOrDefault();
if (!string.IsNullOrEmpty(serviceOrderId))
{
where = where.And(p => p.serviceOrderId.Contains(serviceOrderId));
}
//兑换码 nvarchar
var redeemCode = Request.Form["redeemCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(redeemCode))
{
where = where.And(p => p.redeemCode.Contains(redeemCode));
}
//关联服务项目id int
var serviceId = Request.Form["serviceId"].FirstOrDefault().ObjectToInt(0);
if (serviceId > 0)
{
where = where.And(p => p.serviceId == serviceId);
}
//关联用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0)
{
where = where.And(p => p.status == status);
}
//核销有效期类型 int
var validityType = Request.Form["validityType"].FirstOrDefault().ObjectToInt(0);
if (validityType > 0)
{
where = where.And(p => p.validityType == validityType);
}
//核销开始时间 datetime
var validityStartTime = Request.Form["validityStartTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(validityStartTime))
{
var dt = validityStartTime.ObjectToDate();
where = where.And(p => p.validityStartTime > dt);
}
//核销结束时间 datetime
var validityEndTime = Request.Form["validityEndTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(validityEndTime))
{
var dt = validityEndTime.ObjectToDate();
where = where.And(p => p.validityEndTime > dt);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//是否核销 bit
var isVerification = Request.Form["isVerification"].FirstOrDefault();
if (!string.IsNullOrEmpty(isVerification) && isVerification.ToLowerInvariant() == "true")
{
where = where.And(p => p.isVerification == true);
}
else if (!string.IsNullOrEmpty(isVerification) && isVerification.ToLowerInvariant() == "false")
{
where = where.And(p => p.isVerification == false);
}
//核销时间 datetime
var verificationTime = Request.Form["verificationTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(verificationTime))
{
var dt = verificationTime.ObjectToDate();
where = where.And(p => p.verificationTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _CoreCmsUserServicesTicketServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("关联购买订单");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("安全码");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("兑换码");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("关联服务项目id");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("关联用户id");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("状态");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("核销有效期类型");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("核销开始时间");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("核销结束时间");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
var cell10 = headerRow.CreateCell(10);
cell10.SetCellValue("创建时间");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(10, 10 * 256);
var cell11 = headerRow.CreateCell(11);
cell11.SetCellValue("是否核销");
cell11.CellStyle = headerStyle;
mySheet.SetColumnWidth(11, 10 * 256);
var cell12 = headerRow.CreateCell(12);
cell12.SetCellValue("核销时间");
cell12.CellStyle = headerStyle;
mySheet.SetColumnWidth(12, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].serviceOrderId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].securityCode.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].redeemCode.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].serviceId.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].userId.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].status.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].validityType.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].validityStartTime.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].validityEndTime.ToString());
rowTemp9.CellStyle = commonCellStyle;
var rowTemp10 = rowTemp.CreateCell(10);
rowTemp10.SetCellValue(listModel[i].createTime.ToString());
rowTemp10.CellStyle = commonCellStyle;
var rowTemp11 = rowTemp.CreateCell(11);
rowTemp11.SetCellValue(listModel[i].isVerification.ToString());
rowTemp11.CellStyle = commonCellStyle;
var rowTemp12 = rowTemp.CreateCell(12);
rowTemp12.SetCellValue(listModel[i].verificationTime.ToString());
rowTemp12.CellStyle = commonCellStyle;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserServicesTicket导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserServicesTicket/DoSetisVerification/10
/// <summary>
/// 设置是否核销
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否核销")]
public async Task<AdminUiCallBack> DoSetisVerification([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _CoreCmsUserServicesTicketServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isVerification = (bool)entity.data;
var bl = await _CoreCmsUserServicesTicketServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion ============================================================
}
}
@@ -0,0 +1,631 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 服务券核验日志
///</summary>
[Description("服务券核验日志")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserServicesTicketVerificationLogController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsUserServicesTicketVerificationLogServices _CoreCmsUserServicesTicketVerificationLogServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsUserServicesTicketVerificationLogController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserServicesTicketVerificationLogServices CoreCmsUserServicesTicketVerificationLogServices
)
{
_webHostEnvironment = webHostEnvironment;
_CoreCmsUserServicesTicketVerificationLogServices = CoreCmsUserServicesTicketVerificationLogServices;
}
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserServicesTicketVerificationLog>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserServicesTicketVerificationLog, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "storeId":
orderEx = p => p.storeId;
break;
case "verificationUserId":
orderEx = p => p.verificationUserId;
break;
case "ticketId":
orderEx = p => p.ticketId;
break;
case "ticketRedeemCode":
orderEx = p => p.ticketRedeemCode;
break;
case "verificationTime":
orderEx = p => p.verificationTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//核销门店id int
var storeId = Request.Form["storeId"].FirstOrDefault().ObjectToInt(0);
if (storeId > 0)
{
where = where.And(p => p.storeId == storeId);
}
//核验人 int
var verificationUserId = Request.Form["verificationUserId"].FirstOrDefault().ObjectToInt(0);
if (verificationUserId > 0)
{
where = where.And(p => p.verificationUserId == verificationUserId);
}
//服务券序列 int
var ticketId = Request.Form["ticketId"].FirstOrDefault().ObjectToInt(0);
if (ticketId > 0)
{
where = where.And(p => p.ticketId == ticketId);
}
//核验码 nvarchar
var ticketRedeemCode = Request.Form["ticketRedeemCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(ticketRedeemCode))
{
where = where.And(p => p.ticketRedeemCode.Contains(ticketRedeemCode));
}
//核验时间 datetime
var verificationTime = Request.Form["verificationTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(verificationTime))
{
if (verificationTime.Contains("到"))
{
var dts = verificationTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.verificationTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.verificationTime < dtEnd);
}
else
{
var dt = verificationTime.ObjectToDate();
where = where.And(p => p.verificationTime > dt);
}
}
//获取数据
var list = await _CoreCmsUserServicesTicketVerificationLogServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsUserServicesTicketVerificationLog entity)
{
var jm = new AdminUiCallBack();
var bl = await _CoreCmsUserServicesTicketVerificationLogServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesTicketVerificationLogServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsUserServicesTicketVerificationLog entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _CoreCmsUserServicesTicketVerificationLogServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.storeId = entity.storeId;
oldModel.verificationUserId = entity.verificationUserId;
oldModel.ticketId = entity.ticketId;
oldModel.ticketRedeemCode = entity.ticketRedeemCode;
oldModel.verificationTime = entity.verificationTime;
//事物处理过程结束
var bl = await _CoreCmsUserServicesTicketVerificationLogServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesTicketVerificationLogServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _CoreCmsUserServicesTicketVerificationLogServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _CoreCmsUserServicesTicketVerificationLogServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _CoreCmsUserServicesTicketVerificationLogServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _CoreCmsUserServicesTicketVerificationLogServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("核销门店id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("核验人");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("服务券序列");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("核验码");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("核验时间");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].storeId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].verificationUserId.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].ticketId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].ticketRedeemCode.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].verificationTime.ToString());
rowTemp5.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserServicesTicketVerificationLog导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserServicesTicketVerificationLog/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsUserServicesTicketVerificationLog>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//核销门店id int
var storeId = Request.Form["storeId"].FirstOrDefault().ObjectToInt(0);
if (storeId > 0)
{
where = where.And(p => p.storeId == storeId);
}
//核验人 int
var verificationUserId = Request.Form["verificationUserId"].FirstOrDefault().ObjectToInt(0);
if (verificationUserId > 0)
{
where = where.And(p => p.verificationUserId == verificationUserId);
}
//服务券序列 int
var ticketId = Request.Form["ticketId"].FirstOrDefault().ObjectToInt(0);
if (ticketId > 0)
{
where = where.And(p => p.ticketId == ticketId);
}
//核验码 nvarchar
var ticketRedeemCode = Request.Form["ticketRedeemCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(ticketRedeemCode))
{
where = where.And(p => p.ticketRedeemCode.Contains(ticketRedeemCode));
}
//核验时间 datetime
var verificationTime = Request.Form["verificationTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(verificationTime))
{
var dt = verificationTime.ObjectToDate();
where = where.And(p => p.verificationTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _CoreCmsUserServicesTicketVerificationLogServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("核销门店id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("核验人");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("服务券序列");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("核验码");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("核验时间");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].storeId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].verificationUserId.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].ticketId.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].ticketRedeemCode.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].verificationTime.ToString());
rowTemp5.CellStyle = commonCellStyle;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserServicesTicketVerificationLog导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,301 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 地区表
/// </summary>
[Description("地区表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsAreaController : ControllerBase
{
private readonly ICoreCmsAreaServices _coreCmsAreaServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsAreaServices"></param>
public CoreCmsAreaController(IWebHostEnvironment webHostEnvironment, ICoreCmsAreaServices coreCmsAreaServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsAreaServices = coreCmsAreaServices;
}
#region ============================================================
// POST: Api/CoreCmsArea/GetAllList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetAllList()
{
var jm = new AdminUiCallBack();
//获取数据
var list = await _coreCmsAreaServices.GetCaChe();
//返回数据
jm.data = list;
jm.code = 0;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArea/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsArea>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsArea, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "parentId":
orderEx = p => p.parentId;
break;
case "depth":
orderEx = p => p.depth;
break;
case "name":
orderEx = p => p.name;
break;
case "postalCode":
orderEx = p => p.postalCode;
break;
case "sort":
orderEx = p => p.sort;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//地区ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//父级ID int
var parentId = Request.Form["parentId"].FirstOrDefault().ObjectToInt(0);
if (parentId > 0) @where = @where.And(p => p.parentId == parentId);
//地区深度 int
var depth = Request.Form["depth"].FirstOrDefault().ObjectToInt(0);
if (depth > 0) @where = @where.And(p => p.depth == depth);
//地区名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//邮编 nvarchar
var postalCode = Request.Form["postalCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(postalCode)) @where = @where.And(p => p.postalCode.Contains(postalCode));
//地区排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//获取数据
var list = await _coreCmsAreaServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArea/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArea/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate([FromBody] FMIntId entity)
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var parentModel = await _coreCmsAreaServices.QueryByClauseAsync(p => p.id == entity.id);
jm.data = parentModel;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArea/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsArea entity)
{
var jm = await _coreCmsAreaServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArea/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsAreaServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsArea/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsArea entity)
{
var jm = await _coreCmsAreaServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsArea/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsAreaServices.ExistsAsync(p => p.parentId == entity.id);
if (bl)
{
jm.msg = GlobalConstVars.DeleteIsHaveChildren;
return jm;
}
jm = await _coreCmsAreaServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
}
}
@@ -0,0 +1,205 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 物流公司表
/// </summary>
[Description("物流公司表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsLogisticsController : ControllerBase
{
private readonly ICoreCmsLogisticsServices _coreCmsLogisticsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsLogisticsServices"></param>
public CoreCmsLogisticsController(IWebHostEnvironment webHostEnvironment,
ICoreCmsLogisticsServices coreCmsLogisticsServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsLogisticsServices = coreCmsLogisticsServices;
}
#region ============================================================
// POST: Api/CoreCmsLogistics/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsLogistics>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsLogistics, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "logiName":
orderEx = p => p.logiName;
break;
case "logiCode":
orderEx = p => p.logiCode;
break;
case "sort":
orderEx = p => p.sort;
break;
case "isDelete":
orderEx = p => p.isDelete;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//物流公司名称 nvarchar
var logiName = Request.Form["logiName"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiName)) @where = @where.And(p => p.logiName.Contains(logiName));
//物流公司编码 nvarchar
var logiCode = Request.Form["logiCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiCode)) @where = @where.And(p => p.logiCode.Contains(logiCode));
//排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//是否删除 bit
var isDelete = Request.Form["isDelete"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDelete);
else if (!string.IsNullOrEmpty(isDelete) && isDelete.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDelete == false);
//获取数据
var list = await _coreCmsLogisticsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsLogistics/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsLogistics/DoSetisDelete/10
/// <summary>
/// 设置是否删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否删除")]
public async Task<AdminUiCallBack> DoSetisDelete([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsLogisticsServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDelete = entity.data;
var bl = await _coreCmsLogisticsServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsLogistics/DoDelete/10
/// <summary>
/// 拉取数据更新
/// </summary>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoUpdateCompany()
{
var jm = await _coreCmsLogisticsServices.DoUpdateCompany();
return jm;
}
#endregion
}
}
@@ -0,0 +1,383 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 公告表
/// </summary>
[Description("公告表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsNoticeController : ControllerBase
{
private readonly ICoreCmsNoticeServices _coreCmsNoticeServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsNoticeServices"></param>
public CoreCmsNoticeController(IWebHostEnvironment webHostEnvironment,
ICoreCmsNoticeServices coreCmsNoticeServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsNoticeServices = coreCmsNoticeServices;
}
#region ============================================================
// POST: Api/CoreCmsNotice/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsNotice>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsNotice, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "title":
orderEx = p => p.title;
break;
case "contentBody":
orderEx = p => p.contentBody;
break;
case "type":
orderEx = p => p.type;
break;
case "sort":
orderEx = p => p.sort;
break;
case "isDel":
orderEx = p => p.isDel;
break;
case "createTime":
orderEx = p => p.createTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//公告标题 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title)) @where = @where.And(p => p.title.Contains(title));
//公告内容 nvarchar
var contentBody = Request.Form["contentBody"].FirstOrDefault();
if (!string.IsNullOrEmpty(contentBody)) @where = @where.And(p => p.contentBody.Contains(contentBody));
//公告类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//软删除位 有时间代表已删除 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDel == true);
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDel == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _coreCmsNoticeServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsNotice entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
entity.isDel = false;
var bl = await _coreCmsNoticeServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsNoticeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsNotice/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsNotice entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsNoticeServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.title = entity.title;
oldModel.contentBody = entity.contentBody;
oldModel.type = entity.type;
oldModel.sort = entity.sort;
oldModel.isDel = entity.isDel;
oldModel.createTime = DateTime.Now;
//事物处理过程结束
var bl = await _coreCmsNoticeServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsNoticeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsNoticeServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsNoticeServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsNotice/DoSetisDel/10
/// <summary>
/// 设置软删除位 有时间代表已删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置软删除位 有时间代表已删除")]
public async Task<AdminUiCallBack> DoSetisDel([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsNoticeServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDel = entity.data;
var bl = await _coreCmsNoticeServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,452 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 页面设计
/// </summary>
[Description("页面设计")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsPagesController : ControllerBase
{
private readonly ICoreCmsArticleTypeServices _articleTypeServices;
private readonly ICoreCmsBrandServices _brandServices;
private readonly ICoreCmsPagesServices _coreCmsPagesServices;
private readonly ICoreCmsGoodsCategoryServices _goodsCategoryServices;
private readonly ICoreCmsGoodsServices _goodsServices;
private readonly ICoreCmsPagesItemsServices _pagesItemsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsPagesServices"></param>
/// <param name="brandServices"></param>
/// <param name="goodsServices"></param>
/// <param name="pagesItemsServices"></param>
/// <param name="goodsCategoryServices"></param>
/// <param name="articleTypeServices"></param>
public CoreCmsPagesController(IWebHostEnvironment webHostEnvironment
, ICoreCmsPagesServices coreCmsPagesServices
, ICoreCmsBrandServices brandServices
, ICoreCmsGoodsServices goodsServices
, ICoreCmsPagesItemsServices pagesItemsServices
, ICoreCmsGoodsCategoryServices goodsCategoryServices
, ICoreCmsArticleTypeServices articleTypeServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsPagesServices = coreCmsPagesServices;
_brandServices = brandServices;
_goodsServices = goodsServices;
_pagesItemsServices = pagesItemsServices;
_goodsCategoryServices = goodsCategoryServices;
_articleTypeServices = articleTypeServices;
}
#region ============================================================
// POST: Api/CoreCmsPages/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsPages>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsPages, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "code":
orderEx = p => p.code;
break;
case "name":
orderEx = p => p.name;
break;
case "description":
orderEx = p => p.description;
break;
case "layout":
orderEx = p => p.layout;
break;
case "type":
orderEx = p => p.type;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
// int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//可视化区域编码 nvarchar
var code = Request.Form["code"].FirstOrDefault();
if (!string.IsNullOrEmpty(code)) @where = @where.And(p => p.code.Contains(code));
//可编辑区域名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//描述 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description)) @where = @where.And(p => p.description.Contains(description));
//布局样式编码,1,手机端 int
var layout = Request.Form["layout"].FirstOrDefault().ObjectToInt(0);
if (layout > 0) @where = @where.And(p => p.layout == layout);
//1手机端,2PC端 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//获取数据
var list = await _coreCmsPagesServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var pagesLayout = EnumHelper.EnumToList<GlobalEnumVars.PagesLayout>();
jm.data = new
{
pagesLayout,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsPages entity)
{
var jm = await _coreCmsPagesServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var pagesLayout = EnumHelper.EnumToList<GlobalEnumVars.PagesLayout>();
jm.data = new
{
model,
pagesLayout,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsPages entity)
{
var jm = await _coreCmsPagesServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = await _coreCmsPagesServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/Copy/10
/// <summary>
/// 复制数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("复制数据")]
public async Task<AdminUiCallBack> DoCopy([FromBody] FMIntId entity)
{
var jm = await _coreCmsPagesServices.CopyByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPages/GetEdit
/// <summary>
/// 版面设计
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("版面设计")]
public async Task<AdminUiCallBack> GetDesign([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
//获取品牌数据
var brandsData = await _brandServices.QueryAsync();
var brands = brandsData.Select(p => new { p.id, p.name }).ToList();
//获取分类数据
var categories = await _goodsCategoryServices.QueryListByClauseAsync(p => p.isShow, p => p.sort,
OrderByType.Asc);
//获取文章分类数据
var articleTypes = await _articleTypeServices.QueryAsync();
jm.data = new
{
model,
pageCode = model.code,
brandList = brands,
categories = GoodsHelper.GetTree(categories),
articleTypes
};
return jm;
}
#endregion
#region
// POST: Api/CoreCmsPages/Edit
/// <summary>
/// 版面设计提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("版面设计提交")]
public async Task<AdminUiCallBack> DoDesign([FromBody] FmPagesUpdate entity)
{
var jm = await _coreCmsPagesServices.UpdateDesignAsync(entity);
return jm;
}
#endregion
#region
// POST: Api/CoreCmsPages/GetPageData
/// <summary>
/// 获取已存储数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("获取已存储数据")]
public async Task<AdminUiCallBack> GetPageData([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var pageItems = await _pagesItemsServices.QueryListByClauseAsync(p => p.pageCode == model.code, p => p.sort, OrderByType.Asc);
var noObjArr = new string[] { "textarea" };
var pageConfig = pageItems.Select(p => new
{
type = p.widgetCode,
value = noObjArr.Contains(p.widgetCode) ? p.parameters : new JsonSerializer().Deserialize(new JsonTextReader(new StringReader(p.parameters)))
}).ToList();
jm.data = new
{
pageConfig
};
return jm;
}
#endregion
#region
// POST: Api/CoreCmsPages/GetArticleTypes
/// <summary>
/// 获取文章类别
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("获取文章类别")]
public async Task<AdminUiCallBack> GetArticleTypes([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
//获取文章分类数据
var articleTypes = await _articleTypeServices.QueryAsync();
jm.data = new
{
articleTypes
};
return jm;
}
#endregion
}
}
@@ -0,0 +1,497 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 单页内容
/// </summary>
[Description("单页内容")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsPagesItemsController : ControllerBase
{
private readonly ICoreCmsPagesItemsServices _coreCmsPagesItemsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsPagesItemsServices"></param>
public CoreCmsPagesItemsController(IWebHostEnvironment webHostEnvironment
, ICoreCmsPagesItemsServices coreCmsPagesItemsServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsPagesItemsServices = coreCmsPagesItemsServices;
}
#region ============================================================
// POST: Api/CoreCmsPagesItems/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsPagesItems>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsPagesItems, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "widgetCode":
orderEx = p => p.widgetCode;
break;
case "pageCode":
orderEx = p => p.pageCode;
break;
case "positionId":
orderEx = p => p.positionId;
break;
case "sort":
orderEx = p => p.sort;
break;
case "parameters":
orderEx = p => p.parameters;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
// int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//组件编码 nvarchar
var widgetCode = Request.Form["widgetCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(widgetCode)) @where = @where.And(p => p.widgetCode.Contains(widgetCode));
//页面编码 nvarchar
var pageCode = Request.Form["pageCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(pageCode)) @where = @where.And(p => p.pageCode.Contains(pageCode));
//布局位置 int
var positionId = Request.Form["positionId"].FirstOrDefault().ObjectToInt(0);
if (positionId > 0) @where = @where.And(p => p.positionId == positionId);
//排序,越小越靠前 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//组件配置内容 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//获取数据
var list = await _coreCmsPagesItemsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsPagesItems entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsPagesItemsServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesItemsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsPagesItems entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsPagesItemsServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.widgetCode = entity.widgetCode;
oldModel.pageCode = entity.pageCode;
oldModel.positionId = entity.positionId;
oldModel.sort = entity.sort;
oldModel.parameters = entity.parameters;
//事物处理过程结束
var bl = await _coreCmsPagesItemsServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesItemsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsPagesItemsServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsPagesItemsServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsPagesItemsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _coreCmsPagesItemsServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("");
row1.CreateCell(1).SetCellValue("组件编码");
row1.CreateCell(2).SetCellValue("页面编码");
row1.CreateCell(3).SetCellValue("布局位置");
row1.CreateCell(4).SetCellValue("排序,越小越靠前");
row1.CreateCell(5).SetCellValue("组件配置内容");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].widgetCode);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].pageCode);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].positionId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].sort.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].parameters);
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsPagesItems导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsPagesItems/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsPagesItems>();
//查询筛选
// int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//组件编码 nvarchar
var widgetCode = Request.Form["widgetCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(widgetCode)) @where = @where.And(p => p.widgetCode.Contains(widgetCode));
//页面编码 nvarchar
var pageCode = Request.Form["pageCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(pageCode)) @where = @where.And(p => p.pageCode.Contains(pageCode));
//布局位置 int
var positionId = Request.Form["positionId"].FirstOrDefault().ObjectToInt(0);
if (positionId > 0) @where = @where.And(p => p.positionId == positionId);
//排序,越小越靠前 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//组件配置内容 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsPagesItemsServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("");
row1.CreateCell(1).SetCellValue("组件编码");
row1.CreateCell(2).SetCellValue("页面编码");
row1.CreateCell(3).SetCellValue("布局位置");
row1.CreateCell(4).SetCellValue("排序,越小越靠前");
row1.CreateCell(5).SetCellValue("组件配置内容");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].widgetCode);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].pageCode);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].positionId.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].sort.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].parameters);
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsPagesItems导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,349 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 商城服务说明
///</summary>
[Description("商城服务说明")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsServiceDescriptionController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsServiceDescriptionServices _coreCmsServiceDescriptionServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsServiceDescriptionController(IWebHostEnvironment webHostEnvironment
, ICoreCmsServiceDescriptionServices coreCmsServiceDescriptionServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsServiceDescriptionServices = coreCmsServiceDescriptionServices;
}
#region ============================================================
// POST: Api/CoreCmsServiceDescription/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsServiceDescription>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsServiceDescription, object>> orderEx = orderField switch
{
"id" => p => p.id,
"title" => p => p.title,
"type" => p => p.type,
"description" => p => p.description,
"isShow" => p => p.isShow,
"sortId" => p => p.sortId,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//名称 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title))
{
where = where.And(p => p.title.Contains(title));
}
//类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0)
{
where = where.And(p => p.type == type);
}
//描述 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description))
{
where = where.And(p => p.description.Contains(description));
}
//是否展示 bit
var isShow = Request.Form["isShow"].FirstOrDefault();
if (!string.IsNullOrEmpty(isShow) && isShow.ToLowerInvariant() == "true")
{
where = where.And(p => p.isShow == true);
}
else if (!string.IsNullOrEmpty(isShow) && isShow.ToLowerInvariant() == "false")
{
where = where.And(p => p.isShow == false);
}
//排序 int
var sortId = Request.Form["sortId"].FirstOrDefault().ObjectToInt(0);
if (sortId > 0)
{
where = where.And(p => p.sortId == sortId);
}
//获取数据
var list = await _coreCmsServiceDescriptionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var serviceNoteType = EnumHelper.EnumToList<GlobalEnumVars.ShopServiceNoteType>();
jm.data = new
{
serviceNoteType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var serviceNoteType = EnumHelper.EnumToList<GlobalEnumVars.ShopServiceNoteType>();
jm.data = new
{
serviceNoteType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsServiceDescription entity)
{
var jm = await _coreCmsServiceDescriptionServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsServiceDescriptionServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var serviceNoteType = EnumHelper.EnumToList<GlobalEnumVars.ShopServiceNoteType>();
jm.data = new
{
model,
serviceNoteType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsServiceDescription entity)
{
var jm = await _coreCmsServiceDescriptionServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsServiceDescriptionServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _coreCmsServiceDescriptionServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsServiceDescriptionServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var serviceNoteType = EnumHelper.EnumToList<GlobalEnumVars.ShopServiceNoteType>();
jm.data = new
{
model,
serviceNoteType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsServiceDescription/DoSetisShow/10
/// <summary>
/// 设置是否展示
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否展示")]
public async Task<AdminUiCallBack> DoSetisShow([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsServiceDescriptionServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isShow = (bool)entity.data;
jm = await _coreCmsServiceDescriptionServices.UpdateAsync(oldModel);
return jm;
}
#endregion
}
}
@@ -0,0 +1,103 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 平台设置表
///</summary>
[Description("平台设置表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsSettingController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsSettingServices _coreCmsSettingServices;
/// <summary>
/// 构造函数
///</summary>
/// <param name="webHostEnvironment"></param>
///<param name="CoreCmsSettingServices"></param>
public CoreCmsSettingController(IWebHostEnvironment webHostEnvironment, ICoreCmsSettingServices CoreCmsSettingServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsSettingServices = CoreCmsSettingServices;
}
#region ============================================================
// POST: Api/CoreCmsSetting/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var configs = await _coreCmsSettingServices.GetConfigDictionaries();
var filesStorageOptionsType = EnumHelper.EnumToList<GlobalEnumVars.FilesStorageOptionsType>();
jm.data = new
{
configs,
filesStorageOptionsType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsSetting/DoSave
/// <summary>
/// 保存提交
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[Description("保存提交")]
public async Task<AdminUiCallBack> DoSave([FromBody] FMCoreCmsSettingDoSaveModel model)
{
var jm = await _coreCmsSettingServices.UpdateAsync(model);
return jm;
}
#endregion
}
}
@@ -0,0 +1,485 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 配送方式表
/// </summary>
[Description("配送方式表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsShipController : ControllerBase
{
private readonly ICoreCmsShipServices _coreCmsShipServices;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsLogisticsServices _logisticsServices;
private readonly ICoreCmsAreaServices _areaServices;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsShipController(IWebHostEnvironment webHostEnvironment
, ICoreCmsShipServices coreCmsShipServices
, ICoreCmsLogisticsServices logisticsServices, ICoreCmsAreaServices areaServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsShipServices = coreCmsShipServices;
_logisticsServices = logisticsServices;
_areaServices = areaServices;
}
#region ============================================================
// POST: Api/CoreCmsShip/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsShip>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsShip, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "isCashOnDelivery":
orderEx = p => p.isCashOnDelivery;
break;
case "firstUnit":
orderEx = p => p.firstUnit;
break;
case "continueUnit":
orderEx = p => p.continueUnit;
break;
case "isdefaultAreaFee":
orderEx = p => p.isdefaultAreaFee;
break;
case "areaType":
orderEx = p => p.areaType;
break;
case "firstunitPrice":
orderEx = p => p.firstunitPrice;
break;
case "continueunitPrice":
orderEx = p => p.continueunitPrice;
break;
case "exp":
orderEx = p => p.exp;
break;
case "logiName":
orderEx = p => p.logiName;
break;
case "logiCode":
orderEx = p => p.logiCode;
break;
case "isDefault":
orderEx = p => p.isDefault;
break;
case "sort":
orderEx = p => p.sort;
break;
case "status":
orderEx = p => p.status;
break;
case "isfreePostage":
orderEx = p => p.isfreePostage;
break;
case "areaFee":
orderEx = p => p.areaFee;
break;
case "goodsMoney":
orderEx = p => p.goodsMoney;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
// int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//配送方式名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//是否货到付款 bit
var isCashOnDelivery = Request.Form["isCashOnDelivery"].FirstOrDefault();
if (!string.IsNullOrEmpty(isCashOnDelivery) && isCashOnDelivery.ToLowerInvariant() == "true")
@where = @where.And(p => p.isCashOnDelivery);
else if (!string.IsNullOrEmpty(isCashOnDelivery) && isCashOnDelivery.ToLowerInvariant() == "false")
@where = @where.And(p => p.isCashOnDelivery == false);
//首重 int
var firstUnit = Request.Form["firstUnit"].FirstOrDefault().ObjectToInt(0);
if (firstUnit > 0) @where = @where.And(p => p.firstUnit == firstUnit);
//续重 int
var continueUnit = Request.Form["continueUnit"].FirstOrDefault().ObjectToInt(0);
if (continueUnit > 0) @where = @where.And(p => p.continueUnit == continueUnit);
//是否按地区设置配送费用是否启用默认配送费用 bit
var isdefaultAreaFee = Request.Form["isdefaultAreaFee"].FirstOrDefault();
if (!string.IsNullOrEmpty(isdefaultAreaFee) && isdefaultAreaFee.ToLowerInvariant() == "true")
@where = @where.And(p => p.isdefaultAreaFee);
else if (!string.IsNullOrEmpty(isdefaultAreaFee) && isdefaultAreaFee.ToLowerInvariant() == "false")
@where = @where.And(p => p.isdefaultAreaFee == false);
//地区类型 int
var areaType = Request.Form["areaType"].FirstOrDefault().ObjectToInt(0);
if (areaType > 0) @where = @where.And(p => p.areaType == areaType);
//配送费用计算表达式 nvarchar
var exp = Request.Form["exp"].FirstOrDefault();
if (!string.IsNullOrEmpty(exp)) @where = @where.And(p => p.exp.Contains(exp));
//物流公司名称 nvarchar
var logiName = Request.Form["logiName"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiName)) @where = @where.And(p => p.logiName.Contains(logiName));
//物流公司编码 nvarchar
var logiCode = Request.Form["logiCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(logiCode)) @where = @where.And(p => p.logiCode.Contains(logiCode));
//是否默认 bit
var isDefault = Request.Form["isDefault"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDefault);
else if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDefault == false);
//配送方式排序 越小越靠前 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0) @where = @where.And(p => p.sort == sort);
//状态 1=正常 2=停用 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//是否包邮 bit
var isfreePostage = Request.Form["isfreePostage"].FirstOrDefault();
if (!string.IsNullOrEmpty(isfreePostage) && isfreePostage.ToLowerInvariant() == "true")
@where = @where.And(p => p.isfreePostage);
else if (!string.IsNullOrEmpty(isfreePostage) && isfreePostage.ToLowerInvariant() == "false")
@where = @where.And(p => p.isfreePostage == false);
//地区配送费用 nvarchar
var areaFee = Request.Form["areaFee"].FirstOrDefault();
if (!string.IsNullOrEmpty(areaFee)) @where = @where.And(p => p.areaFee.Contains(areaFee));
//获取数据
var list = await _coreCmsShipServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var shipUnit = EnumHelper.EnumToList<GlobalEnumVars.ShipUnit>();
var logistics = await _logisticsServices.QueryListByClauseAsync(p => 1 == 1, p => p.sort, OrderByType.Asc);
jm.data = new
{
shipUnit,
logistics,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsShip entity)
{
var jm = await _coreCmsShipServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsShipServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
var shipUnit = EnumHelper.EnumToList<GlobalEnumVars.ShipUnit>();
var logistics = await _logisticsServices.QueryListByClauseAsync(p => true, p => p.sort, OrderByType.Asc);
if (!string.IsNullOrEmpty(model.areaFee))
{
model.areaFeeObj = JsonConvert.DeserializeObject(model.areaFee);
}
jm.data = new
{
shipUnit,
logistics,
model
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsShip entity)
{
var jm = await _coreCmsShipServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsShipServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _coreCmsShipServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/DoSetisCashOnDelivery/10
/// <summary>
/// 设置是否货到付款
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否货到付款")]
public async Task<AdminUiCallBack> DoSetisCashOnDelivery([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsShipServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isCashOnDelivery = (bool)entity.data;
jm = await _coreCmsShipServices.UpdateAsync(oldModel);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/DoSetisdefaultAreaFee/10
/// <summary>
/// 设置是否按地区设置配送费用
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否按地区设置配送费用")]
public async Task<AdminUiCallBack> DoSetisdefaultAreaFee([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsShipServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isdefaultAreaFee = (bool)entity.data;
jm = await _coreCmsShipServices.UpdateAsync(oldModel);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/DoSetisDefault/10
/// <summary>
/// 设置是否默认
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否默认")]
public async Task<AdminUiCallBack> DoSetisDefault([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsShipServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDefault = (bool)entity.data;
jm = await _coreCmsShipServices.UpdateAsync(oldModel);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsShip/DoSetisfreePostage/10
/// <summary>
/// 设置是否包邮
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否包邮")]
public async Task<AdminUiCallBack> DoSetisfreePostage([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsShipServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isfreePostage = (bool)entity.data;
jm = await _coreCmsShipServices.UpdateAsync(oldModel);
return jm;
}
#endregion
}
}
@@ -0,0 +1,762 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 门店表
/// </summary>
[Description("门店表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsStoreController : ControllerBase
{
private readonly ICoreCmsClerkServices _coreCmsClerkServices;
private readonly ICoreCmsStoreServices _coreCmsStoreServices;
private readonly ICoreCmsUserServices _coreCmsUserServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsStoreController(IWebHostEnvironment webHostEnvironment,
ICoreCmsStoreServices coreCmsStoreServices, ICoreCmsClerkServices coreCmsClerkServices,
ICoreCmsUserServices coreCmsUserServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsStoreServices = coreCmsStoreServices;
_coreCmsClerkServices = coreCmsClerkServices;
_coreCmsUserServices = coreCmsUserServices;
}
#region ============================================================
// POST: Api/CoreCmsStore/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsStore>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsStore, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "storeName":
orderEx = p => p.storeName;
break;
case "mobile":
orderEx = p => p.mobile;
break;
case "linkMan":
orderEx = p => p.linkMan;
break;
case "logoImage":
orderEx = p => p.logoImage;
break;
case "areaId":
orderEx = p => p.areaId;
break;
case "address":
orderEx = p => p.address;
break;
case "coordinate":
orderEx = p => p.coordinate;
break;
case "latitude":
orderEx = p => p.latitude;
break;
case "longitude":
orderEx = p => p.longitude;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.isDefault;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//门店名称 nvarchar
var storeName = Request.Form["storeName"].FirstOrDefault();
if (!string.IsNullOrEmpty(storeName)) @where = @where.And(p => p.storeName.Contains(storeName));
//门店电话/手机号 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));
//门店联系人 nvarchar
var linkMan = Request.Form["linkMan"].FirstOrDefault();
if (!string.IsNullOrEmpty(linkMan)) @where = @where.And(p => p.linkMan.Contains(linkMan));
//门店logo nvarchar
var logoImage = Request.Form["logoImage"].FirstOrDefault();
if (!string.IsNullOrEmpty(logoImage)) @where = @where.And(p => p.logoImage.Contains(logoImage));
//门店地区id int
var areaId = Request.Form["areaId"].FirstOrDefault().ObjectToInt(0);
if (areaId > 0) @where = @where.And(p => p.areaId == areaId);
//门店详细地址 nvarchar
var address = Request.Form["address"].FirstOrDefault();
if (!string.IsNullOrEmpty(address)) @where = @where.And(p => p.address.Contains(address));
//坐标位置 nvarchar
var coordinate = Request.Form["coordinate"].FirstOrDefault();
if (!string.IsNullOrEmpty(coordinate)) @where = @where.And(p => p.coordinate.Contains(coordinate));
//纬度 nvarchar
var latitude = Request.Form["latitude"].FirstOrDefault();
if (!string.IsNullOrEmpty(latitude)) @where = @where.And(p => p.latitude.Contains(latitude));
//经度 nvarchar
var longitude = Request.Form["longitude"].FirstOrDefault();
if (!string.IsNullOrEmpty(longitude)) @where = @where.And(p => p.longitude.Contains(longitude));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsStoreServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsStore entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
jm = await _coreCmsStoreServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsStoreServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsStore/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsStore entity)
{
var jm = new AdminUiCallBack();
entity.updateTime = DateTime.Now;
jm = await _coreCmsStoreServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsStoreServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsStoreServices.DeleteByIdAsync(entity.id);
if (bl)
{
await _coreCmsClerkServices.DeleteAsync(p => p.storeId == model.id);
}
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoSetisDefault/10
/// <summary>
/// 设置是否默认
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否默认")]
public async Task<AdminUiCallBack> DoSetisDefault([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsStoreServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDefault = entity.data;
oldModel.updateTime = DateTime.Now;
jm = await _coreCmsStoreServices.UpdateAsync(oldModel);
return jm;
}
#endregion
//店员设置
#region ============================================================
// POST: Api/CoreCmsStore/GetClerkPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetClerkPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<StoreClerkDto>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<StoreClerkDto, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "storeId":
orderEx = p => p.storeId;
break;
case "userId":
orderEx = p => p.userId;
break;
case "isDel":
orderEx = p => p.isDel;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//店铺ID int
var storeId = Request.Form["storeId"].FirstOrDefault().ObjectToInt(0);
if (storeId > 0) @where = @where.And(p => p.storeId == storeId);
//用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//是否删除 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDel);
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDel == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//删除时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsClerkServices.QueryStoreClerkDtoPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/GetClerkIndex
/// <summary>
/// 店员首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("店员首页数据")]
public AdminUiCallBack GetClerkIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/GetClerkCreate
/// <summary>
/// 创建店员数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建店员数据")]
public AdminUiCallBack GetClerkCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoClerkCreate
/// <summary>
/// 创建店员提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建店员提交")]
public async Task<AdminUiCallBack> DoClerkCreate([FromBody] FMStoreClerkCURDPost entity)
{
var jm = new AdminUiCallBack();
if (string.IsNullOrEmpty(entity.phone))
{
jm.msg = "请输入合法的手机号码";
return jm;
}
if (entity.storeId == 0)
{
jm.msg = "请选择要添加的门店";
return jm;
}
var haveStore = await _coreCmsStoreServices.ExistsAsync(p => p.id == entity.storeId);
if (!haveStore)
{
jm.msg = "门店信息不存在";
return jm;
}
//判断是否存在当前的门店内
var user = await _coreCmsUserServices.QueryByClauseAsync(p => p.mobile == entity.phone);
if (user == null)
{
jm.msg = "不存在此手机注册用户";
return jm;
}
var haveClerk =
await _coreCmsClerkServices.ExistsAsync(p => p.userId == user.id && p.storeId == entity.storeId);
if (haveClerk)
{
jm.msg = "用户已经是当前门店店员";
return jm;
}
var model = new CoreCmsClerk
{
storeId = entity.storeId,
userId = user.id,
isDel = false,
createTime = DateTime.Now
};
var bl = await _coreCmsClerkServices.InsertAsync(model) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/GetClerkEdit
/// <summary>
/// 编辑店员数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑店员数据")]
public async Task<AdminUiCallBack> GetClerkEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsClerkServices.QueryStoreClerkDtoByClauseAsync(p => p.id == entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoClerkEdit
/// <summary>
/// 编辑店员提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑店员提交")]
public async Task<AdminUiCallBack> DoClerkEdit([FromBody] FMStoreClerkCURDPost entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsClerkServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
if (string.IsNullOrEmpty(entity.phone))
{
jm.msg = "请输入合法的手机号码";
return jm;
}
if (entity.storeId == 0)
{
jm.msg = "请选择要编辑的门店";
return jm;
}
var haveStore = await _coreCmsStoreServices.ExistsAsync(p => p.id == entity.storeId);
if (!haveStore)
{
jm.msg = "门店信息不存在";
return jm;
}
//判断是否存在当前的门店内
var user = await _coreCmsUserServices.QueryByClauseAsync(p => p.mobile == entity.phone);
if (user == null)
{
jm.msg = "不存在此手机注册用户";
return jm;
}
var haveClerk =
await _coreCmsClerkServices.ExistsAsync(p => p.userId == user.id && p.storeId == entity.storeId);
if (haveClerk)
{
jm.msg = "用户已经是当前门店店员";
return jm;
}
//事物处理过程开始
oldModel.storeId = entity.storeId;
oldModel.userId = user.id;
//事物处理过程结束
var bl = await _coreCmsClerkServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoClerkDelete/10
/// <summary>
/// 单选删除店员
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除店员")]
public async Task<AdminUiCallBack> DoClerkDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsClerkServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsClerkServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStore/DoClerkBatchDelete/10,11,20
/// <summary>
/// 批量删除店员
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除店员")]
public async Task<AdminUiCallBack> DoClerkBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsClerkServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,274 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Auth.HttpContextUser;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 库存操作表
///</summary>
[Description("库存操作表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsStockController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsStockServices _stockServices;
private readonly ICoreCmsProductsServices _productsServices;
private readonly ICoreCmsStockLogServices _stockLogServices;
private readonly ISysUserServices _sysUserServices;
private readonly IHttpContextUser _user;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsStockController(IWebHostEnvironment webHostEnvironment
, ICoreCmsStockServices stockServices, ICoreCmsProductsServices productsServices, IHttpContextUser user, ICoreCmsStockLogServices stockLogServices, ISysUserServices sysUserServices)
{
_webHostEnvironment = webHostEnvironment;
_stockServices = stockServices;
_productsServices = productsServices;
_user = user;
_stockLogServices = stockLogServices;
_sysUserServices = sysUserServices;
}
#region ============================================================
// POST: Api/CoreCmsStock/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsStock>();
where = where.And(p => p.type == (int)GlobalEnumVars.StockType.In || p.type == (int)GlobalEnumVars.StockType.Out);
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsStock, object>> orderEx = orderField switch
{
"id" => p => p.id,
"type" => p => p.type,
"manager" => p => p.manager,
"memo" => p => p.memo,
"createTime" => p => p.createTime,
_ => p => p.createTime
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 nvarchar
var id = Request.Form["id"].FirstOrDefault();
if (!string.IsNullOrEmpty(id))
{
where = where.And(p => p.id.Contains(id));
}
//操作类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0)
{
where = where.And(p => p.type == type);
}
//操作员 int
var manager = Request.Form["manager"].FirstOrDefault().ObjectToInt(0);
if (manager > 0)
{
where = where.And(p => p.manager == manager);
}
//备注 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo))
{
where = where.And(p => p.memo.Contains(memo));
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _stockServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStock/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var stockType = EnumHelper.EnumToList<GlobalEnumVars.StockType>();
stockType = stockType.Where(p => p.value < 3).ToList();
jm.data = new
{
stockType,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStock/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var stockType = EnumHelper.EnumToList<GlobalEnumVars.StockType>();
stockType = stockType.Where(p => p.value < 3).ToList();
var products = await _productsServices.GetProducts();
jm.data = new
{
stockType,
products,
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStock/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] FMCreateStock entity)
{
if (_user != null)
{
entity.model.manager = _user.ID;
}
else
{
entity.model.manager = 0;
}
var jm = await _stockServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStock/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMStringId entity)
{
var jm = new AdminUiCallBack();
var model = await _stockServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var manager = await _sysUserServices.QueryByClauseAsync(p => p.id == model.manager);
var logs = await _stockLogServices.QueryListByClauseAsync(p => p.stockId == model.id, p => p.id, OrderByType.Desc);
jm.code = 0;
jm.data = new
{
model,
logs,
manager
};
return jm;
}
#endregion
}
}
@@ -0,0 +1,231 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 库存操作详情表
///</summary>
[Description("库存操作详情表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsStockLogController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsStockLogServices _coreCmsStockLogServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsStockLogController(IWebHostEnvironment webHostEnvironment
, ICoreCmsStockLogServices coreCmsStockLogServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsStockLogServices = coreCmsStockLogServices;
}
#region ============================================================
// POST: Api/CoreCmsStockLog/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsStockLog>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsStockLog, object>> orderEx = orderField switch
{
"id" => p => p.id,
"stockId" => p => p.stockId,
"productId" => p => p.productId,
"goodsId" => p => p.goodsId,
"nums" => p => p.nums,
"sn" => p => p.sn,
"bn" => p => p.bn,
"goodsName" => p => p.goodsName,
"spesDesc" => p => p.spesDesc,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//库存单号 nvarchar
var stockId = Request.Form["stockId"].FirstOrDefault();
if (!string.IsNullOrEmpty(stockId))
{
where = where.And(p => p.stockId.Contains(stockId));
}
//货品序列 int
var productId = Request.Form["productId"].FirstOrDefault().ObjectToInt(0);
if (productId > 0)
{
where = where.And(p => p.productId == productId);
}
//商品序列 int
var goodsId = Request.Form["goodsId"].FirstOrDefault().ObjectToInt(0);
if (goodsId > 0)
{
where = where.And(p => p.goodsId == goodsId);
}
//数量 int
var nums = Request.Form["nums"].FirstOrDefault().ObjectToInt(0);
if (nums > 0)
{
where = where.And(p => p.nums == nums);
}
//货品编码 nvarchar
var sn = Request.Form["sn"].FirstOrDefault();
if (!string.IsNullOrEmpty(sn))
{
where = where.And(p => p.sn.Contains(sn));
}
//商品编码 nvarchar
var bn = Request.Form["bn"].FirstOrDefault();
if (!string.IsNullOrEmpty(bn))
{
where = where.And(p => p.bn.Contains(bn));
}
//商品名称 nvarchar
var goodsName = Request.Form["goodsName"].FirstOrDefault();
if (!string.IsNullOrEmpty(goodsName))
{
where = where.And(p => p.goodsName.Contains(goodsName));
}
//货品明细序列号存储 nvarchar
var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
if (!string.IsNullOrEmpty(spesDesc))
{
where = where.And(p => p.spesDesc.Contains(spesDesc));
}
//操作类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0)
{
where = where.And(p => p.type == type);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _coreCmsStockLogServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStockLog/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var stockType = EnumHelper.EnumToList<GlobalEnumVars.StockType>();
jm.data = new
{
stockType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsStockLog/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
}
}
@@ -0,0 +1,208 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
using CoreCms.Net.Configuration;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 代码生成器
/// </summary>
[Description("代码生成器")]
[Route("api/[controller]/[action]")]
[ApiController]
//[Authorize(Permissions.Name)]
public class CodeGeneratorController : ControllerBase
{
private readonly ICodeGeneratorServices _codeGeneratorServices;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IMapper _mapper;
/// <summary>
/// 构造函数
/// </summary>
public CodeGeneratorController(ICodeGeneratorServices codeGeneratorServices, IMapper mapper, IWebHostEnvironment webHostEnvironment)
{
_codeGeneratorServices = codeGeneratorServices;
_mapper = mapper;
_webHostEnvironment = webHostEnvironment;
}
/// <summary>
/// 获取数据表格列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取数据表格列表")]
public AdminUiCallBack GetTables()
{
var tables = _codeGeneratorServices.GetDbTables();
var fristDb = new SqlSugar.DbTableInfo { Name = "AllTable", Description = "所有数据表含视图" };
tables.Insert(0, fristDb);
var jm = new AdminUiCallBack
{
code = 0,
data = _mapper
.Map<List<SqlSugar.DbTableInfo>, List<CoreCms.Net.Model.ViewModels.Basics.DbTableInfoTree>>(tables)
};
return jm;
}
/// <summary>
/// 生成代码
/// </summary>
/// <param name="tableName"></param>
/// <param name="fileType"></param>
/// <returns></returns>
[HttpPost]
[Description("生成代码")]
public ActionResult CodeGenDown([FromQuery] string tableName, [FromQuery] string fileType)
{
var jm = new AdminUiCallBack();
if (string.IsNullOrEmpty(tableName))
{
jm.msg = "请选择数据库";
return new JsonResult(jm);
}
if (string.IsNullOrEmpty(fileType))
{
jm.msg = "请选择要导出的文件类型";
return new JsonResult(jm);
}
if (tableName == "AllTable")
{
var data = _codeGeneratorServices.CodeGenByAll(fileType);
if (data != null)
{
return File(data, System.Net.Mime.MediaTypeNames.Application.Zip, tableName + "-" + fileType + ".zip");
}
else
{
jm.msg = tableName + "获取数据库字段失败";
return new JsonResult(jm);
}
}
else
{
var data = _codeGeneratorServices.CodeGen(tableName, fileType);
if (data != null)
{
return File(data, System.Net.Mime.MediaTypeNames.Application.Zip, tableName + "-" + fileType + ".zip");
}
else
{
jm.msg = tableName + "获取数据库字段失败";
return new JsonResult(jm);
}
}
}
#region excel
/// <summary>
/// 获取所有表和表名并生成excel
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取所有表和表名并生成excel")]
public AdminUiCallBack GetDataBaseTablesToExcel()
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = _codeGeneratorServices.GetDbTables();
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var cell0 = headerRow.CreateCell(0); cell0.SetCellValue("序列"); cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1); cell1.SetCellValue("表名"); cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 50 * 256);
var cell2 = headerRow.CreateCell(2); cell2.SetCellValue("描述"); cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 50 * 256);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = mySheet.CreateRow(i + 1);
var rowtemp01 = rowtemp.CreateCell(0);
rowtemp01.SetCellValue(i);
rowtemp01.CellStyle = commonCellStyle;
var rowtemp02 = rowtemp.CreateCell(1);
rowtemp02.SetCellValue(listmodel[i].Name);
rowtemp02.CellStyle = commonCellStyle;
var rowtemp03 = rowtemp.CreateCell(2);
rowtemp03.SetCellValue(listmodel[i].Description);
rowtemp03.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-数据库表导出.xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,353 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 数据字典表
/// </summary>
[Description("数据字典表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysDictionaryController : ControllerBase
{
private readonly ISysDictionaryDataServices _sysDictionaryDataServices;
private readonly ISysDictionaryServices _sysDictionaryServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysDictionaryController(IWebHostEnvironment webHostEnvironment
, ISysDictionaryServices sysDictionaryServices
, ISysDictionaryDataServices sysDictionaryDataServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysDictionaryServices = sysDictionaryServices;
_sysDictionaryDataServices = sysDictionaryDataServices;
}
#region ============================================================
// POST: Api/SysDictionary/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysDictionary>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysDictionary, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "dictCode":
orderEx = p => p.dictCode;
break;
case "dictName":
orderEx = p => p.dictName;
break;
case "comments":
orderEx = p => p.comments;
break;
case "sortNumber":
orderEx = p => p.sortNumber;
break;
case "deleted":
orderEx = p => p.deleted;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//字典id int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//字典标识 nvarchar
var dictCode = Request.Form["dictCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(dictCode)) @where = @where.And(p => p.dictCode.Contains(dictCode));
//字典名称 nvarchar
var dictName = Request.Form["dictName"].FirstOrDefault();
if (!string.IsNullOrEmpty(dictName)) @where = @where.And(p => p.dictName.Contains(dictName));
//备注 nvarchar
var comments = Request.Form["comments"].FirstOrDefault();
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
//排序号 int
var sortNumber = Request.Form["sortNumber"].FirstOrDefault().ObjectToInt(0);
if (sortNumber > 0) @where = @where.And(p => p.sortNumber == sortNumber);
//是否删除,0否,1是 bit
var deleted = Request.Form["deleted"].FirstOrDefault();
if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "true")
@where = @where.And(p => p.deleted);
else if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "false")
@where = @where.And(p => p.deleted == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysDictionaryServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionary/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionary/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionary/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysDictionary entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var bl = await _sysDictionaryServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionary/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysDictionaryServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionary/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysDictionary entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysDictionaryServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.dictCode = entity.dictCode;
oldModel.dictName = entity.dictName;
oldModel.comments = entity.comments;
oldModel.sortNumber = entity.sortNumber;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _sysDictionaryServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionary/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysDictionaryServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
if (await _sysDictionaryDataServices.ExistsAsync(p => p.dictId == model.id))
{
jm.msg = GlobalConstVars.DeleteIsHaveChildren;
return jm;
}
var bl = await _sysDictionaryServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,374 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 数据字典项表
/// </summary>
[Description("数据字典项表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysDictionaryDataController : ControllerBase
{
private readonly ISysDictionaryDataServices _sysDictionaryDataServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysDictionaryDataController(IWebHostEnvironment webHostEnvironment
, ISysDictionaryDataServices sysDictionaryDataServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysDictionaryDataServices = sysDictionaryDataServices;
}
#region ============================================================
// POST: Api/SysDictionaryData/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysDictionaryData>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysDictionaryData, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "dictId":
orderEx = p => p.dictId;
break;
case "dictDataCode":
orderEx = p => p.dictDataCode;
break;
case "dictDataName":
orderEx = p => p.dictDataName;
break;
case "comments":
orderEx = p => p.comments;
break;
case "sortNumber":
orderEx = p => p.sortNumber;
break;
case "deleted":
orderEx = p => p.deleted;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.sortNumber;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//字典项id int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//字典id int
var dictId = Request.Form["dictId"].FirstOrDefault().ObjectToInt(0);
if (dictId > 0) @where = @where.And(p => p.dictId == dictId);
//字典项标识 nvarchar
var dictDataCode = Request.Form["dictDataCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(dictDataCode)) @where = @where.And(p => p.dictDataCode.Contains(dictDataCode));
//字典项名称 nvarchar
var dictDataName = Request.Form["dictDataName"].FirstOrDefault();
if (!string.IsNullOrEmpty(dictDataName)) @where = @where.And(p => p.dictDataName.Contains(dictDataName));
//备注 nvarchar
var comments = Request.Form["comments"].FirstOrDefault();
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
//排序号 int
var sortNumber = Request.Form["sortNumber"].FirstOrDefault().ObjectToInt(0);
if (sortNumber > 0) @where = @where.And(p => p.sortNumber == sortNumber);
//是否删除,0否,1是 bit
var deleted = Request.Form["deleted"].FirstOrDefault();
if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "true")
@where = @where.And(p => p.deleted);
else if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "false")
@where = @where.And(p => p.deleted == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysDictionaryDataServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysDictionaryData entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var bl = await _sysDictionaryDataServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysDictionaryDataServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysDictionaryData entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysDictionaryDataServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.dictId = entity.dictId;
oldModel.dictDataCode = entity.dictDataCode;
oldModel.dictDataName = entity.dictDataName;
oldModel.comments = entity.comments;
oldModel.sortNumber = entity.sortNumber;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _sysDictionaryDataServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysDictionaryDataServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysDictionaryDataServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysDictionaryData/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysDictionaryDataServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,480 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 登录日志表
/// </summary>
[Description("登录日志表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysLoginRecordController : ControllerBase
{
private readonly ISysLoginRecordServices _sysLoginRecordServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysLoginRecordController(IWebHostEnvironment webHostEnvironment
, ISysLoginRecordServices sysLoginRecordServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysLoginRecordServices = sysLoginRecordServices;
}
#region ============================================================
// POST: Api/SysLoginRecord/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysLoginRecord>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysLoginRecord, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "username":
orderEx = p => p.username;
break;
case "os":
orderEx = p => p.os;
break;
case "device":
orderEx = p => p.device;
break;
case "browser":
orderEx = p => p.browser;
break;
case "ip":
orderEx = p => p.ip;
break;
case "operType":
orderEx = p => p.operType;
break;
case "comments":
orderEx = p => p.comments;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户账号 nvarchar
var username = Request.Form["username"].FirstOrDefault();
if (!string.IsNullOrEmpty(username)) @where = @where.And(p => p.username.Contains(username));
//操作系统 nvarchar
var os = Request.Form["os"].FirstOrDefault();
if (!string.IsNullOrEmpty(os)) @where = @where.And(p => p.os.Contains(os));
//设备名 nvarchar
var device = Request.Form["device"].FirstOrDefault();
if (!string.IsNullOrEmpty(device)) @where = @where.And(p => p.device.Contains(device));
//浏览器类型 nvarchar
var browser = Request.Form["browser"].FirstOrDefault();
if (!string.IsNullOrEmpty(browser)) @where = @where.And(p => p.browser.Contains(browser));
//ip地址 nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip)) @where = @where.And(p => p.ip.Contains(ip));
//操作类型,0登录成功,1登录失败,2退出登录,3刷新token int
var operType = Request.Form["operType"].FirstOrDefault().ObjectToInt(0);
if (operType > 0) @where = @where.And(p => p.operType == operType);
//备注 nvarchar
var comments = Request.Form["comments"].FirstOrDefault();
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
//登录时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysLoginRecordServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysLoginRecord/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var logType = EnumHelper.EnumToList<GlobalEnumVars.LoginRecordType>();
jm.data = new
{
logType
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysLoginRecord/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysLoginRecordServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysLoginRecord/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _sysLoginRecordServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("主键");
row1.CreateCell(1).SetCellValue("用户账号");
row1.CreateCell(2).SetCellValue("操作系统");
row1.CreateCell(3).SetCellValue("设备名");
row1.CreateCell(4).SetCellValue("浏览器类型");
row1.CreateCell(5).SetCellValue("ip地址");
row1.CreateCell(6).SetCellValue("操作类型,0登录成功,1登录失败,2退出登录,3刷新token");
row1.CreateCell(7).SetCellValue("备注");
row1.CreateCell(8).SetCellValue("登录时间");
row1.CreateCell(9).SetCellValue("修改时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].username);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].os);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].device);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].browser);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].ip);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].operType.ToString());
rowtemp.CreateCell(7).SetCellValue(listmodel[i].comments);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysLoginRecord导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysLoginRecord/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysLoginRecord>();
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户账号 nvarchar
var username = Request.Form["username"].FirstOrDefault();
if (!string.IsNullOrEmpty(username)) @where = @where.And(p => p.username.Contains(username));
//操作系统 nvarchar
var os = Request.Form["os"].FirstOrDefault();
if (!string.IsNullOrEmpty(os)) @where = @where.And(p => p.os.Contains(os));
//设备名 nvarchar
var device = Request.Form["device"].FirstOrDefault();
if (!string.IsNullOrEmpty(device)) @where = @where.And(p => p.device.Contains(device));
//浏览器类型 nvarchar
var browser = Request.Form["browser"].FirstOrDefault();
if (!string.IsNullOrEmpty(browser)) @where = @where.And(p => p.browser.Contains(browser));
//ip地址 nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip)) @where = @where.And(p => p.ip.Contains(ip));
//操作类型,0登录成功,1登录失败,2退出登录,3刷新token int
var operType = Request.Form["operType"].FirstOrDefault().ObjectToInt(0);
if (operType > 0) @where = @where.And(p => p.operType == operType);
//备注 nvarchar
var comments = Request.Form["comments"].FirstOrDefault();
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
//登录时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _sysLoginRecordServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("主键");
row1.CreateCell(1).SetCellValue("用户账号");
row1.CreateCell(2).SetCellValue("操作系统");
row1.CreateCell(3).SetCellValue("设备名");
row1.CreateCell(4).SetCellValue("浏览器类型");
row1.CreateCell(5).SetCellValue("ip地址");
row1.CreateCell(6).SetCellValue("操作类型,0登录成功,1登录失败,2退出登录,3刷新token");
row1.CreateCell(7).SetCellValue("备注");
row1.CreateCell(8).SetCellValue("登录时间");
row1.CreateCell(9).SetCellValue("修改时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].username);
rowtemp.CreateCell(2).SetCellValue(listmodel[i].os);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].device);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].browser);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].ip);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].operType.ToString());
rowtemp.CreateCell(7).SetCellValue(listmodel[i].comments);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysLoginRecord导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysLoginRecordServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
/// <summary>
/// 清空数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("清空数据")]
public async Task<AdminUiCallBack> DoWipeData()
{
var jm = new AdminUiCallBack();
var bl = await _sysLoginRecordServices.DeleteAsync(p => p.id > 0);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,281 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 菜单表
///</summary>
[Description("菜单表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysMenuController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ISysMenuServices _sysMenuServices;
/// <summary>
/// 构造函数
///</summary>
public SysMenuController(IWebHostEnvironment webHostEnvironment
, ISysMenuServices sysMenuServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysMenuServices = sysMenuServices;
}
#region ============================================================
// POST: Api/SysMenu/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysMenu>();
where = where.And(p => p.deleted == false);
//查询筛选
////菜单名称 nvarchar
//var menuName = Request.Form["menuName"].FirstOrDefault();
//if (!string.IsNullOrEmpty(menuName))
//{
// where = where.And(p => p.menuName.Contains(menuName));
//}
////菜单组件地址 nvarchar
//var component = Request.Form["component"].FirstOrDefault();
//if (!string.IsNullOrEmpty(component))
//{
// where = where.And(p => p.component.Contains(component));
//}
////权限标识 nvarchar
//var authority = Request.Form["authority"].FirstOrDefault();
//if (!string.IsNullOrEmpty(authority))
//{
// where = where.And(p => p.authority.Contains(authority));
//}
//获取数据
var list = await _sysMenuServices.QueryListByClauseAsync(where, p => p.sortNumber, OrderByType.Asc);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.Count;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysMenu/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysMenu/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysMenu/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysMenu entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now; ;
jm = await _sysMenuServices.InsertAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysMenu/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysMenuServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysMenu/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysMenu entity)
{
var jm = await _sysMenuServices.UpdateAsync(entity);
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysMenu/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
jm = await _sysMenuServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region Action============================================================
// POST: Api/SysMenu/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> ImportButtons([FromBody] FMSysMenuToImportButton entity)
{
var jm = new AdminUiCallBack();
if (entity.data.Count <= 0)
{
jm.msg = "请选择要导入的按钮";
return jm;
}
//清空旗下按钮
await _sysMenuServices.DeleteAsync(p => p.parentId == entity.data[0].menuId && p.menuType == 1);
var list = new List<SysMenu>();
for (var index = 0; index < entity.data.Count; index++)
{
var p = entity.data[index];
list.Add(new SysMenu()
{
parentId = p.menuId,
identificationCode = p.actionName,
menuName = p.description,
component = "/Api/" + p.controllerName + "/" + p.actionName,
menuType = 1,
sortNumber = index,
authority = p.controllerName + ":" + p.actionName,
hide = false,
deleted = false,
createTime = DateTime.Now
});
}
var bl = await _sysMenuServices.InsertAsync(list) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
if (bl)
{
await _sysMenuServices.UpdateCaChe();
}
return jm;
}
#endregion
}
}
@@ -0,0 +1,545 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// Nlog记录表
/// </summary>
[Description("Nlog记录表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysNLogRecordsController : ControllerBase
{
private readonly ISysNLogRecordsServices _sysNLogRecordsServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysNLogRecordsController(IWebHostEnvironment webHostEnvironment
, ISysNLogRecordsServices sysNLogRecordsServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysNLogRecordsServices = sysNLogRecordsServices;
}
#region ============================================================
// POST: Api/SysNLogRecords/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysNLogRecords>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysNLogRecords, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "LogDate":
orderEx = p => p.LogDate;
break;
case "LogLevel":
orderEx = p => p.LogLevel;
break;
case "LogType":
orderEx = p => p.LogType;
break;
case "Logger":
orderEx = p => p.Logger;
break;
case "Message":
orderEx = p => p.Message;
break;
case "MachineName":
orderEx = p => p.MachineName;
break;
case "MachineIp":
orderEx = p => p.MachineIp;
break;
case "NetRequestMethod":
orderEx = p => p.NetRequestMethod;
break;
case "NetRequestUrl":
orderEx = p => p.NetRequestUrl;
break;
case "NetUserIsauthenticated":
orderEx = p => p.NetUserIsauthenticated;
break;
case "NetUserAuthtype":
orderEx = p => p.NetUserAuthtype;
break;
case "NetUserIdentity":
orderEx = p => p.NetUserIdentity;
break;
case "Exception":
orderEx = p => p.Exception;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//时间 datetime
var LogDate = Request.Form["LogDate"].FirstOrDefault();
if (!string.IsNullOrEmpty(LogDate))
{
if (LogDate.Contains("到"))
{
var dts = LogDate.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.LogDate > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.LogDate < dtEnd);
}
else
{
var dt = LogDate.ObjectToDate();
where = where.And(p => p.LogDate > dt);
}
}
//级别 nvarchar
var LogLevel = Request.Form["LogLevel"].FirstOrDefault();
if (!string.IsNullOrEmpty(LogLevel)) @where = @where.And(p => p.LogLevel.Contains(LogLevel));
//事件日志上下文 nvarchar
var LogType = Request.Form["LogType"].FirstOrDefault();
if (!string.IsNullOrEmpty(LogType)) @where = @where.And(p => p.LogType.Contains(LogType));
//记录器名字 nvarchar
var Logger = Request.Form["Logger"].FirstOrDefault();
if (!string.IsNullOrEmpty(Logger)) @where = @where.And(p => p.Logger.Contains(Logger));
//消息 nvarchar
var Message = Request.Form["Message"].FirstOrDefault();
if (!string.IsNullOrEmpty(Message)) @where = @where.And(p => p.Message.Contains(Message));
//名称 nvarchar
var MachineName = Request.Form["MachineName"].FirstOrDefault();
if (!string.IsNullOrEmpty(MachineName)) @where = @where.And(p => p.MachineName.Contains(MachineName));
//ip nvarchar
var MachineIp = Request.Form["MachineIp"].FirstOrDefault();
if (!string.IsNullOrEmpty(MachineIp)) @where = @where.And(p => p.MachineIp.Contains(MachineIp));
//请求方式 nvarchar
var NetRequestMethod = Request.Form["NetRequestMethod"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetRequestMethod))
@where = @where.And(p => p.NetRequestMethod.Contains(NetRequestMethod));
//请求地址 nvarchar
var NetRequestUrl = Request.Form["NetRequestUrl"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetRequestUrl)) @where = @where.And(p => p.NetRequestUrl.Contains(NetRequestUrl));
//是否授权 nvarchar
var NetUserIsauthenticated = Request.Form["NetUserIsauthenticated"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetUserIsauthenticated))
@where = @where.And(p => p.NetUserIsauthenticated.Contains(NetUserIsauthenticated));
//授权类型 nvarchar
var NetUserAuthtype = Request.Form["NetUserAuthtype"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetUserAuthtype))
@where = @where.And(p => p.NetUserAuthtype.Contains(NetUserAuthtype));
//身份认证 nvarchar
var NetUserIdentity = Request.Form["NetUserIdentity"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetUserIdentity))
@where = @where.And(p => p.NetUserIdentity.Contains(NetUserIdentity));
//异常信息 nvarchar
var Exception = Request.Form["Exception"].FirstOrDefault();
if (!string.IsNullOrEmpty(Exception)) @where = @where.And(p => p.Exception.Contains(Exception));
//获取数据
var list = await _sysNLogRecordsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysNLogRecordsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysNLogRecordsServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysNLogRecordsServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysNLogRecordsServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _sysNLogRecordsServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("时间");
row1.CreateCell(2).SetCellValue("级别");
row1.CreateCell(3).SetCellValue("事件日志上下文");
row1.CreateCell(4).SetCellValue("记录器名字");
row1.CreateCell(5).SetCellValue("消息");
row1.CreateCell(6).SetCellValue("名称");
row1.CreateCell(7).SetCellValue("ip");
row1.CreateCell(8).SetCellValue("请求方式");
row1.CreateCell(9).SetCellValue("请求地址");
row1.CreateCell(10).SetCellValue("是否授权");
row1.CreateCell(11).SetCellValue("授权类型");
row1.CreateCell(12).SetCellValue("身份认证");
row1.CreateCell(13).SetCellValue("异常信息");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].LogDate.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].LogLevel);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].LogType);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].Logger);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].Message);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].MachineName);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].MachineIp);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].NetRequestMethod);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].NetRequestUrl);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].NetUserIsauthenticated);
rowtemp.CreateCell(11).SetCellValue(listmodel[i].NetUserAuthtype);
rowtemp.CreateCell(12).SetCellValue(listmodel[i].NetUserIdentity);
rowtemp.CreateCell(13).SetCellValue(listmodel[i].Exception);
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysNLogRecords导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysNLogRecords>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//时间 datetime
var LogDate = Request.Form["LogDate"].FirstOrDefault();
if (!string.IsNullOrEmpty(LogDate))
{
var dt = LogDate.ObjectToDate();
where = where.And(p => p.LogDate > dt);
}
//级别 nvarchar
var LogLevel = Request.Form["LogLevel"].FirstOrDefault();
if (!string.IsNullOrEmpty(LogLevel)) @where = @where.And(p => p.LogLevel.Contains(LogLevel));
//事件日志上下文 nvarchar
var LogType = Request.Form["LogType"].FirstOrDefault();
if (!string.IsNullOrEmpty(LogType)) @where = @where.And(p => p.LogType.Contains(LogType));
//记录器名字 nvarchar
var Logger = Request.Form["Logger"].FirstOrDefault();
if (!string.IsNullOrEmpty(Logger)) @where = @where.And(p => p.Logger.Contains(Logger));
//消息 nvarchar
var Message = Request.Form["Message"].FirstOrDefault();
if (!string.IsNullOrEmpty(Message)) @where = @where.And(p => p.Message.Contains(Message));
//名称 nvarchar
var MachineName = Request.Form["MachineName"].FirstOrDefault();
if (!string.IsNullOrEmpty(MachineName)) @where = @where.And(p => p.MachineName.Contains(MachineName));
//ip nvarchar
var MachineIp = Request.Form["MachineIp"].FirstOrDefault();
if (!string.IsNullOrEmpty(MachineIp)) @where = @where.And(p => p.MachineIp.Contains(MachineIp));
//请求方式 nvarchar
var NetRequestMethod = Request.Form["NetRequestMethod"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetRequestMethod))
@where = @where.And(p => p.NetRequestMethod.Contains(NetRequestMethod));
//请求地址 nvarchar
var NetRequestUrl = Request.Form["NetRequestUrl"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetRequestUrl))
@where = @where.And(p => p.NetRequestUrl.Contains(NetRequestUrl));
//是否授权 nvarchar
var NetUserIsauthenticated = Request.Form["NetUserIsauthenticated"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetUserIsauthenticated))
@where = @where.And(p => p.NetUserIsauthenticated.Contains(NetUserIsauthenticated));
//授权类型 nvarchar
var NetUserAuthtype = Request.Form["NetUserAuthtype"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetUserAuthtype))
@where = @where.And(p => p.NetUserAuthtype.Contains(NetUserAuthtype));
//身份认证 nvarchar
var NetUserIdentity = Request.Form["NetUserIdentity"].FirstOrDefault();
if (!string.IsNullOrEmpty(NetUserIdentity))
@where = @where.And(p => p.NetUserIdentity.Contains(NetUserIdentity));
//异常信息 nvarchar
var Exception = Request.Form["Exception"].FirstOrDefault();
if (!string.IsNullOrEmpty(Exception)) @where = @where.And(p => p.Exception.Contains(Exception));
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _sysNLogRecordsServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("时间");
row1.CreateCell(2).SetCellValue("级别");
row1.CreateCell(3).SetCellValue("事件日志上下文");
row1.CreateCell(4).SetCellValue("记录器名字");
row1.CreateCell(5).SetCellValue("消息");
row1.CreateCell(6).SetCellValue("名称");
row1.CreateCell(7).SetCellValue("ip");
row1.CreateCell(8).SetCellValue("请求方式");
row1.CreateCell(9).SetCellValue("请求地址");
row1.CreateCell(10).SetCellValue("是否授权");
row1.CreateCell(11).SetCellValue("授权类型");
row1.CreateCell(12).SetCellValue("身份认证");
row1.CreateCell(13).SetCellValue("异常信息");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].LogDate.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].LogLevel);
rowtemp.CreateCell(3).SetCellValue(listmodel[i].LogType);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].Logger);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].Message);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].MachineName);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].MachineIp);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].NetRequestMethod);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].NetRequestUrl);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].NetUserIsauthenticated);
rowtemp.CreateCell(11).SetCellValue(listmodel[i].NetUserAuthtype);
rowtemp.CreateCell(12).SetCellValue(listmodel[i].NetUserIdentity);
rowtemp.CreateCell(13).SetCellValue(listmodel[i].Exception);
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysNLogRecords导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
/// <summary>
/// 清空数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("清空数据")]
public async Task<AdminUiCallBack> DoWipeData()
{
var jm = new AdminUiCallBack();
var bl = await _sysNLogRecordsServices.DeleteAsync(p => p.id > 0);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,737 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 操作日志表
///</summary>
[Description("操作日志表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysOperRecordController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ISysOperRecordServices _sysOperRecordServices;
/// <summary>
/// 构造函数
///</summary>
public SysOperRecordController(IWebHostEnvironment webHostEnvironment
,ISysOperRecordServices sysOperRecordServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysOperRecordServices = sysOperRecordServices;
}
#region ============================================================
// POST: Api/SysOperRecord/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysOperRecord>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysOperRecord, object>> orderEx = orderField switch
{
"id" => p => p.id,"userId" => p => p.userId,"userName" => p => p.userName,"model" => p => p.model,"description" => p => p.description,"url" => p => p.url,"requestMethod" => p => p.requestMethod,"operMethod" => p => p.operMethod,"param" => p => p.param,"result" => p => p.result,"ip" => p => p.ip,"spendTime" => p => p.spendTime,"state" => p => p.state,"createTime" => p => p.createTime,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//用户名 nvarchar
var userName = Request.Form["userName"].FirstOrDefault();
if (!string.IsNullOrEmpty(userName))
{
where = where.And(p => p.userName.Contains(userName));
}
//操作模块 nvarchar
var model = Request.Form["model"].FirstOrDefault();
if (!string.IsNullOrEmpty(model))
{
where = where.And(p => p.model.Contains(model));
}
//操作方法 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description))
{
where = where.And(p => p.description.Contains(description));
}
//请求地址 nvarchar
var url = Request.Form["url"].FirstOrDefault();
if (!string.IsNullOrEmpty(url))
{
where = where.And(p => p.url.Contains(url));
}
//请求方式 nvarchar
var requestMethod = Request.Form["requestMethod"].FirstOrDefault();
if (!string.IsNullOrEmpty(requestMethod))
{
where = where.And(p => p.requestMethod.Contains(requestMethod));
}
//调用方法 nvarchar
var operMethod = Request.Form["operMethod"].FirstOrDefault();
if (!string.IsNullOrEmpty(operMethod))
{
where = where.And(p => p.operMethod.Contains(operMethod));
}
//请求参数 nvarchar
var param = Request.Form["param"].FirstOrDefault();
if (!string.IsNullOrEmpty(param))
{
where = where.And(p => p.param.Contains(param));
}
//返回结果 nvarchar
var result = Request.Form["result"].FirstOrDefault();
if (!string.IsNullOrEmpty(result))
{
where = where.And(p => p.result.Contains(result));
}
//ip地址 nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip))
{
where = where.And(p => p.ip.Contains(ip));
}
//请求耗时,单位毫秒 nvarchar
var spendTime = Request.Form["spendTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(spendTime))
{
where = where.And(p => p.spendTime.Contains(spendTime));
}
//状态,0成功,1异常 int
var state = Request.Form["state"].FirstOrDefault().ObjectToInt(0);
if (state > 0)
{
where = where.And(p => p.state == state);
}
//登录时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _sysOperRecordServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOperRecord/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOperRecord/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOperRecord/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody]FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysOperRecordServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOperRecord/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody]FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _sysOperRecordServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("主键");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("用户id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("用户名");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("操作模块");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("操作方法");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("请求地址");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("请求方式");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("调用方法");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("请求参数");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("返回结果");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
var cell10 = headerRow.CreateCell(10);
cell10.SetCellValue("ip地址");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(10, 10 * 256);
var cell11 = headerRow.CreateCell(11);
cell11.SetCellValue("请求耗时,单位毫秒");
cell11.CellStyle = headerStyle;
mySheet.SetColumnWidth(11, 10 * 256);
var cell12 = headerRow.CreateCell(12);
cell12.SetCellValue("状态,0成功,1异常");
cell12.CellStyle = headerStyle;
mySheet.SetColumnWidth(12, 10 * 256);
var cell13 = headerRow.CreateCell(13);
cell13.SetCellValue("登录时间");
cell13.CellStyle = headerStyle;
mySheet.SetColumnWidth(13, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].userId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].userName.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].model.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].description.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].url.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].requestMethod.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].operMethod.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].param.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].result.ToString());
rowTemp9.CellStyle = commonCellStyle;
var rowTemp10 = rowTemp.CreateCell(10);
rowTemp10.SetCellValue(listModel[i].ip.ToString());
rowTemp10.CellStyle = commonCellStyle;
var rowTemp11 = rowTemp.CreateCell(11);
rowTemp11.SetCellValue(listModel[i].spendTime.ToString());
rowTemp11.CellStyle = commonCellStyle;
var rowTemp12 = rowTemp.CreateCell(12);
rowTemp12.SetCellValue(listModel[i].state.ToString());
rowTemp12.CellStyle = commonCellStyle;
var rowTemp13 = rowTemp.CreateCell(13);
rowTemp13.SetCellValue(listModel[i].createTime.ToString());
rowTemp13.CellStyle = commonCellStyle;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysOperRecord导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOperRecord/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysOperRecord>();
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0)
{
where = where.And(p => p.userId == userId);
}
//用户名 nvarchar
var userName = Request.Form["userName"].FirstOrDefault();
if (!string.IsNullOrEmpty(userName))
{
where = where.And(p => p.userName.Contains(userName));
}
//操作模块 nvarchar
var model = Request.Form["model"].FirstOrDefault();
if (!string.IsNullOrEmpty(model))
{
where = where.And(p => p.model.Contains(model));
}
//操作方法 nvarchar
var description = Request.Form["description"].FirstOrDefault();
if (!string.IsNullOrEmpty(description))
{
where = where.And(p => p.description.Contains(description));
}
//请求地址 nvarchar
var url = Request.Form["url"].FirstOrDefault();
if (!string.IsNullOrEmpty(url))
{
where = where.And(p => p.url.Contains(url));
}
//请求方式 nvarchar
var requestMethod = Request.Form["requestMethod"].FirstOrDefault();
if (!string.IsNullOrEmpty(requestMethod))
{
where = where.And(p => p.requestMethod.Contains(requestMethod));
}
//调用方法 nvarchar
var operMethod = Request.Form["operMethod"].FirstOrDefault();
if (!string.IsNullOrEmpty(operMethod))
{
where = where.And(p => p.operMethod.Contains(operMethod));
}
//请求参数 nvarchar
var param = Request.Form["param"].FirstOrDefault();
if (!string.IsNullOrEmpty(param))
{
where = where.And(p => p.param.Contains(param));
}
//返回结果 nvarchar
var result = Request.Form["result"].FirstOrDefault();
if (!string.IsNullOrEmpty(result))
{
where = where.And(p => p.result.Contains(result));
}
//ip地址 nvarchar
var ip = Request.Form["ip"].FirstOrDefault();
if (!string.IsNullOrEmpty(ip))
{
where = where.And(p => p.ip.Contains(ip));
}
//请求耗时,单位毫秒 nvarchar
var spendTime = Request.Form["spendTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(spendTime))
{
where = where.And(p => p.spendTime.Contains(spendTime));
}
//状态,0成功,1异常 int
var state = Request.Form["state"].FirstOrDefault().ObjectToInt(0);
if (state > 0)
{
where = where.And(p => p.state == state);
}
//登录时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _sysOperRecordServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("主键");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("用户id");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("用户名");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("操作模块");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("操作方法");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
var cell5 = headerRow.CreateCell(5);
cell5.SetCellValue("请求地址");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(5, 10 * 256);
var cell6 = headerRow.CreateCell(6);
cell6.SetCellValue("请求方式");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(6, 10 * 256);
var cell7 = headerRow.CreateCell(7);
cell7.SetCellValue("调用方法");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(7, 10 * 256);
var cell8 = headerRow.CreateCell(8);
cell8.SetCellValue("请求参数");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(8, 10 * 256);
var cell9 = headerRow.CreateCell(9);
cell9.SetCellValue("返回结果");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(9, 10 * 256);
var cell10 = headerRow.CreateCell(10);
cell10.SetCellValue("ip地址");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(10, 10 * 256);
var cell11 = headerRow.CreateCell(11);
cell11.SetCellValue("请求耗时,单位毫秒");
cell11.CellStyle = headerStyle;
mySheet.SetColumnWidth(11, 10 * 256);
var cell12 = headerRow.CreateCell(12);
cell12.SetCellValue("状态,0成功,1异常");
cell12.CellStyle = headerStyle;
mySheet.SetColumnWidth(12, 10 * 256);
var cell13 = headerRow.CreateCell(13);
cell13.SetCellValue("登录时间");
cell13.CellStyle = headerStyle;
mySheet.SetColumnWidth(13, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].userId.ToString());
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].userName.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].model.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].description.ToString());
rowTemp4.CellStyle = commonCellStyle;
var rowTemp5 = rowTemp.CreateCell(5);
rowTemp5.SetCellValue(listModel[i].url.ToString());
rowTemp5.CellStyle = commonCellStyle;
var rowTemp6 = rowTemp.CreateCell(6);
rowTemp6.SetCellValue(listModel[i].requestMethod.ToString());
rowTemp6.CellStyle = commonCellStyle;
var rowTemp7 = rowTemp.CreateCell(7);
rowTemp7.SetCellValue(listModel[i].operMethod.ToString());
rowTemp7.CellStyle = commonCellStyle;
var rowTemp8 = rowTemp.CreateCell(8);
rowTemp8.SetCellValue(listModel[i].param.ToString());
rowTemp8.CellStyle = commonCellStyle;
var rowTemp9 = rowTemp.CreateCell(9);
rowTemp9.SetCellValue(listModel[i].result.ToString());
rowTemp9.CellStyle = commonCellStyle;
var rowTemp10 = rowTemp.CreateCell(10);
rowTemp10.SetCellValue(listModel[i].ip.ToString());
rowTemp10.CellStyle = commonCellStyle;
var rowTemp11 = rowTemp.CreateCell(11);
rowTemp11.SetCellValue(listModel[i].spendTime.ToString());
rowTemp11.CellStyle = commonCellStyle;
var rowTemp12 = rowTemp.CreateCell(12);
rowTemp12.SetCellValue(listModel[i].state.ToString());
rowTemp12.CellStyle = commonCellStyle;
var rowTemp13 = rowTemp.CreateCell(13);
rowTemp13.SetCellValue(listModel[i].createTime.ToString());
rowTemp13.CellStyle = commonCellStyle;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysOperRecord导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,292 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 组织机构表
///</summary>
[Description("组织机构表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysOrganizationController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ISysOrganizationServices _sysOrganizationServices;
private readonly ISysDictionaryServices _sysDictionaryServices;
private readonly ISysDictionaryDataServices _sysDictionaryDataServices;
/// <summary>
/// 构造函数
///</summary>
public SysOrganizationController(IWebHostEnvironment webHostEnvironment
, ISysOrganizationServices sysOrganizationServices
, ISysDictionaryServices sysDictionaryServices
, ISysDictionaryDataServices sysDictionaryDataServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysOrganizationServices = sysOrganizationServices;
_sysDictionaryServices = sysDictionaryServices;
_sysDictionaryDataServices = sysDictionaryDataServices;
}
#region ============================================================
// POST: Api/SysOrganization/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
//获取数据
var list = await _sysOrganizationServices.QueryAsync();
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.Count;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOrganization/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOrganization/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var dict = await _sysDictionaryServices.QueryByClauseAsync(p => p.dictCode == "organization_type");
var dictData = new List<SysDictionaryData>();
if (dict != null)
{
dictData = await _sysDictionaryDataServices.QueryListByClauseAsync(p => p.dictId == dict.id);
}
jm.data = new
{
dictData
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOrganization/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysOrganization entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysOrganizationServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOrganization/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysOrganizationServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var dict = await _sysDictionaryServices.QueryByClauseAsync(p => p.dictCode == "organization_type");
var dictData = new List<SysDictionaryData>();
if (dict != null)
{
dictData = await _sysDictionaryDataServices.QueryListByClauseAsync(p => p.dictId == dict.id);
}
jm.code = 0;
jm.data = new
{
model,
dictData
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOrganization/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysOrganization entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysOrganizationServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
//oldModel.id = entity.id;
oldModel.parentId = entity.parentId;
oldModel.organizationName = entity.organizationName;
oldModel.organizationFullName = entity.organizationFullName;
oldModel.organizationType = entity.organizationType;
//oldModel.leaderId = entity.leaderId;
oldModel.sortNumber = entity.sortNumber;
oldModel.comments = entity.comments;
oldModel.deleted = entity.deleted;
//oldModel.createTime = entity.createTime;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _sysOrganizationServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysOrganization/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysOrganizationServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysOrganizationServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
//用户数据==============================================================================
#region leader============================================================
// POST: Api/SysOrganization/DoSetSysOrganizationLeader/10
/// <summary>
/// 设置leader
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置leader")]
public async Task<AdminUiCallBack> DoSetSysOrganizationLeader([FromBody] FMDoSetSysOrganizationLeaderPost entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysOrganizationServices.QueryByIdAsync(entity.organizationId);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.leaderId = entity.leaderId;
var bl = await _sysOrganizationServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.SetDataSuccess : GlobalConstVars.SetDataFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,504 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Model.ViewModels.DTO;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 角色表
/// </summary>
[Description("角色表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysRoleController : ControllerBase
{
private readonly ISysMenuServices _sysMenuServices;
private readonly ISysRoleMenuServices _sysRoleMenuServices;
private readonly ISysRoleServices _sysRoleServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysRoleController(IWebHostEnvironment webHostEnvironment
, ISysRoleServices sysRoleServices
, ISysMenuServices sysMenuServices
, ISysRoleMenuServices sysRoleMenuServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysRoleServices = sysRoleServices;
_sysMenuServices = sysMenuServices;
_sysRoleMenuServices = sysRoleMenuServices;
}
#region ============================================================
// POST: Api/SysRole/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysRole>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysRole, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "roleName":
orderEx = p => p.roleName;
break;
case "roleCode":
orderEx = p => p.roleCode;
break;
case "comments":
orderEx = p => p.comments;
break;
case "deleted":
orderEx = p => p.deleted;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//角色id int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//角色名称 nvarchar
var roleName = Request.Form["roleName"].FirstOrDefault();
if (!string.IsNullOrEmpty(roleName)) @where = @where.And(p => p.roleName.Contains(roleName));
//角色标识 nvarchar
var roleCode = Request.Form["roleCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(roleCode)) @where = @where.And(p => p.roleCode.Contains(roleCode));
//备注 nvarchar
var comments = Request.Form["comments"].FirstOrDefault();
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
//是否删除,0否,1是 bit
var deleted = Request.Form["deleted"].FirstOrDefault();
if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "true")
@where = @where.And(p => p.deleted);
else if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "false")
@where = @where.And(p => p.deleted == false);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysRoleServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysRole entity)
{
var jm = new AdminUiCallBack();
entity.createTime = DateTime.Now;
var bl = await _sysRoleServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysRoleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysRole entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysRoleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.roleName = entity.roleName;
oldModel.roleCode = entity.roleCode;
oldModel.comments = entity.comments;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _sysRoleServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysRoleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysRoleServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysRoleServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRole/GetRoleSet
/// <summary>
/// 获取权限设置
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("获取权限设置")]
public async Task<AdminUiCallBack> GetRoleSet([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysRoleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region =====================================================================
// POST: Api/SysRole/GetSysMenu
/// <summary>
/// 获取菜单
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("获取菜单")]
public async Task<AdminUiCallBack> GetSysMenu([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysMenuServices.QueryListByClauseAsync(p => p.deleted == false && p.hide == false,
p => p.sortNumber, OrderByType.Asc);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var roleMenus = await _sysRoleMenuServices.QueryListByClauseAsync(p => p.roleId == entity.id);
var list = new List<SysMenuTreeDto>();
if (model.Any())
model.ForEach(p =>
{
list.Add(new SysMenuTreeDto
{
authority = p.authority,
@checked = roleMenus.Exists(m => m.menuId == p.id),
children = null,
component = p.component,
createTime = p.createTime,
deleted = p.deleted,
hide = p.hide,
iconColor = p.iconColor,
menuName = p.menuName,
menuIcon = p.menuIcon,
menuType = p.menuType,
id = p.id,
open = true,
parentId = p.parentId,
parentName = "",
path = p.path,
sortNumber = p.sortNumber,
target = p.target,
updateTime = p.updateTime
});
});
jm.code = 0;
jm.data = list;
jm.otherData = new
{
entity,
roleMenus
};
return jm;
}
#endregion
#region =====================================================================
// POST: Api/SysRole/DoSetSysMenu
/// <summary>
/// 设置权限
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置权限")]
public async Task<AdminUiCallBack> DoSetSysMenu([FromBody] FMIntIdByListIntData entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysRoleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
await _sysRoleMenuServices.DeleteAsync(p => p.roleId == oldModel.id);
if (entity.data.Any())
{
var list = new List<SysRoleMenu>();
entity.data.ForEach(p =>
{
list.Add(new SysRoleMenu
{
createTime = DateTime.Now,
menuId = p,
roleId = oldModel.id
});
});
await _sysRoleMenuServices.InsertAsync(list);
}
jm.code = 0;
jm.msg = "权限设置成功";
return jm;
}
#endregion
}
}
@@ -0,0 +1,525 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 角色菜单关联表
/// </summary>
[Description("角色菜单关联表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysRoleMenuController : ControllerBase
{
private readonly ISysRoleMenuServices _sysRoleMenuServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysRoleMenuController(IWebHostEnvironment webHostEnvironment
, ISysRoleMenuServices SysRoleMenuServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysRoleMenuServices = SysRoleMenuServices;
}
#region ============================================================
// POST: Api/SysRoleMenu/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysRoleMenu>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysRoleMenu, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "roleId":
orderEx = p => p.roleId;
break;
case "menuId":
orderEx = p => p.menuId;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//角色id int
var roleId = Request.Form["roleId"].FirstOrDefault().ObjectToInt(0);
if (roleId > 0) @where = @where.And(p => p.roleId == roleId);
//菜单id int
var menuId = Request.Form["menuId"].FirstOrDefault().ObjectToInt(0);
if (menuId > 0) @where = @where.And(p => p.menuId == menuId);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysRoleMenuServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysRoleMenu entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysRoleMenuServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysRoleMenuServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysRoleMenu entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysRoleMenuServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.roleId = entity.roleId;
oldModel.menuId = entity.menuId;
oldModel.createTime = entity.createTime;
oldModel.updateTime = entity.updateTime;
//事物处理过程结束
var bl = await _sysRoleMenuServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysRoleMenuServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysRoleMenuServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysRoleMenuServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysRoleMenuServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _sysRoleMenuServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("主键");
row1.CreateCell(1).SetCellValue("角色id");
row1.CreateCell(2).SetCellValue("菜单id");
row1.CreateCell(3).SetCellValue("创建时间");
row1.CreateCell(4).SetCellValue("修改时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].roleId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].menuId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysRoleMenu导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysRoleMenu/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysRoleMenu>();
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//角色id int
var roleId = Request.Form["roleId"].FirstOrDefault().ObjectToInt(0);
if (roleId > 0) @where = @where.And(p => p.roleId == roleId);
//菜单id int
var menuId = Request.Form["menuId"].FirstOrDefault().ObjectToInt(0);
if (menuId > 0) @where = @where.And(p => p.menuId == menuId);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _sysRoleMenuServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("主键");
row1.CreateCell(1).SetCellValue("角色id");
row1.CreateCell(2).SetCellValue("菜单id");
row1.CreateCell(3).SetCellValue("创建时间");
row1.CreateCell(4).SetCellValue("修改时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].roleId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].menuId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysRoleMenu导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,540 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 定时任务日志
/// </summary>
[Description("定时任务日志")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysTaskLogController : ControllerBase
{
private readonly ISysTaskLogServices _sysTaskLogServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysTaskLogController(IWebHostEnvironment webHostEnvironment
, ISysTaskLogServices sysTaskLogServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysTaskLogServices = sysTaskLogServices;
}
#region ============================================================
// POST: Api/SysTaskLog/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysTaskLog>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysTaskLog, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "name":
orderEx = p => p.name;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "isSuccess":
orderEx = p => p.isSuccess;
break;
case "parameters":
orderEx = p => p.parameters;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//任务名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//完成时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//是否完成 bit
var isSuccess = Request.Form["isSuccess"].FirstOrDefault();
if (!string.IsNullOrEmpty(isSuccess) && isSuccess.ToLowerInvariant() == "true")
@where = @where.And(p => p.isSuccess);
else if (!string.IsNullOrEmpty(isSuccess) && isSuccess.ToLowerInvariant() == "false")
@where = @where.And(p => p.isSuccess == false);
//其他数据 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//获取数据
var list = await _sysTaskLogServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysTaskLogServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysTaskLogServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysTaskLogServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysTaskLogServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel =
await _sysTaskLogServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("任务名称");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("完成时间");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("是否完成");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("其他数据");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].name);
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].createTime.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].isSuccess.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].parameters);
rowTemp4.CellStyle = commonCellStyle;
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysTaskLog导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysTaskLog>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//任务名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name)) @where = @where.And(p => p.name.Contains(name));
//完成时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//是否完成 bit
var isSuccess = Request.Form["isSuccess"].FirstOrDefault();
if (!string.IsNullOrEmpty(isSuccess) && isSuccess.ToLowerInvariant() == "true")
@where = @where.And(p => p.isSuccess);
else if (!string.IsNullOrEmpty(isSuccess) && isSuccess.ToLowerInvariant() == "false")
@where = @where.And(p => p.isSuccess == false);
//其他数据 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters)) @where = @where.And(p => p.parameters.Contains(parameters));
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _sysTaskLogServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cell0 = headerRow.CreateCell(0);
cell0.SetCellValue("序列");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(0, 10 * 256);
var cell1 = headerRow.CreateCell(1);
cell1.SetCellValue("任务名称");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(1, 10 * 256);
var cell2 = headerRow.CreateCell(2);
cell2.SetCellValue("完成时间");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(2, 10 * 256);
var cell3 = headerRow.CreateCell(3);
cell3.SetCellValue("是否完成");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(3, 10 * 256);
var cell4 = headerRow.CreateCell(4);
cell4.SetCellValue("其他数据");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(4, 10 * 256);
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var rowTemp0 = rowTemp.CreateCell(0);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
var rowTemp1 = rowTemp.CreateCell(1);
rowTemp1.SetCellValue(listModel[i].name);
rowTemp1.CellStyle = commonCellStyle;
var rowTemp2 = rowTemp.CreateCell(2);
rowTemp2.SetCellValue(listModel[i].createTime.ToString());
rowTemp2.CellStyle = commonCellStyle;
var rowTemp3 = rowTemp.CreateCell(3);
rowTemp3.SetCellValue(listModel[i].isSuccess.ToString());
rowTemp3.CellStyle = commonCellStyle;
var rowTemp4 = rowTemp.CreateCell(4);
rowTemp4.SetCellValue(listModel[i].parameters);
rowTemp4.CellStyle = commonCellStyle;
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysTaskLog导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/DoSetisSuccess/10
/// <summary>
/// 设置是否完成
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否完成")]
public async Task<AdminUiCallBack> DoSetisSuccess([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysTaskLogServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isSuccess = entity.data;
var bl = await _sysTaskLogServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysTaskLog/DoBatchDelete/10,11,20
/// <summary>
/// 清空数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("清空数据")]
public async Task<AdminUiCallBack> DoWipeData()
{
var jm = new AdminUiCallBack();
var bl = await _sysTaskLogServices.DeleteAsync(p => p.id > 0);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,565 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户表
/// </summary>
[Description("用户表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysUserController : ControllerBase
{
private readonly ISysOrganizationServices _sysOrganizationServices;
private readonly ISysRoleServices _sysRoleServices;
private readonly ISysUserRoleServices _sysUserRoleServices;
private readonly ISysUserServices _sysUserServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysUserController(IWebHostEnvironment webHostEnvironment
, ISysUserServices sysUserServices
, ISysRoleServices sysRoleServices
, ISysUserRoleServices sysUserRoleServices
, ISysOrganizationServices sysOrganizationServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysUserServices = sysUserServices;
_sysRoleServices = sysRoleServices;
_sysUserRoleServices = sysUserRoleServices;
_sysOrganizationServices = sysOrganizationServices;
}
#region ============================================================
// POST: Api/SysUser/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysUser>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysUser, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "userName":
orderEx = p => p.userName;
break;
case "passWord":
orderEx = p => p.passWord;
break;
case "nickName":
orderEx = p => p.nickName;
break;
case "avatar":
orderEx = p => p.avatar;
break;
case "sex":
orderEx = p => p.sex;
break;
case "phone":
orderEx = p => p.phone;
break;
case "email":
orderEx = p => p.email;
break;
case "emailVerified":
orderEx = p => p.emailVerified;
break;
case "trueName":
orderEx = p => p.trueName;
break;
case "idCard":
orderEx = p => p.idCard;
break;
case "birthday":
orderEx = p => p.birthday;
break;
case "introduction":
orderEx = p => p.introduction;
break;
case "organizationId":
orderEx = p => p.organizationId;
break;
case "state":
orderEx = p => p.state;
break;
case "deleted":
orderEx = p => p.deleted;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//用户id int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//账号 nvarchar
var userName = Request.Form["userName"].FirstOrDefault();
if (!string.IsNullOrEmpty(userName)) @where = @where.And(p => p.userName.Contains(userName));
//密码 nvarchar
var passWord = Request.Form["passWord"].FirstOrDefault();
if (!string.IsNullOrEmpty(passWord)) @where = @where.And(p => p.passWord.Contains(passWord));
//昵称 nvarchar
var nickName = Request.Form["nickName"].FirstOrDefault();
if (!string.IsNullOrEmpty(nickName)) @where = @where.And(p => p.nickName.Contains(nickName));
//头像 nvarchar
var avatar = Request.Form["avatar"].FirstOrDefault();
if (!string.IsNullOrEmpty(avatar)) @where = @where.And(p => p.avatar.Contains(avatar));
//性别 int
var sex = Request.Form["sex"].FirstOrDefault().ObjectToInt(0);
if (sex > 0) @where = @where.And(p => p.sex == sex);
//手机号 nvarchar
var phone = Request.Form["phone"].FirstOrDefault();
if (!string.IsNullOrEmpty(phone)) @where = @where.And(p => p.phone.Contains(phone));
//邮箱 nvarchar
var email = Request.Form["email"].FirstOrDefault();
if (!string.IsNullOrEmpty(email)) @where = @where.And(p => p.email.Contains(email));
//邮箱是否验证 bit
var emailVerified = Request.Form["emailVerified"].FirstOrDefault();
if (!string.IsNullOrEmpty(emailVerified) && emailVerified.ToLowerInvariant() == "true")
@where = @where.And(p => p.emailVerified);
else if (!string.IsNullOrEmpty(emailVerified) && emailVerified.ToLowerInvariant() == "false")
@where = @where.And(p => p.emailVerified == false);
//真实姓名 nvarchar
var trueName = Request.Form["trueName"].FirstOrDefault();
if (!string.IsNullOrEmpty(trueName)) @where = @where.And(p => p.trueName.Contains(trueName));
//身份证号 nvarchar
var idCard = Request.Form["idCard"].FirstOrDefault();
if (!string.IsNullOrEmpty(idCard)) @where = @where.And(p => p.idCard.Contains(idCard));
//个人简介 nvarchar
var introduction = Request.Form["introduction"].FirstOrDefault();
if (!string.IsNullOrEmpty(introduction)) @where = @where.And(p => p.introduction.Contains(introduction));
//机构id int
var organizationId = Request.Form["organizationId"].FirstOrDefault().ObjectToInt(0);
if (organizationId > 0)
{
//where = where.And(p => p.organizationId == organizationId);
var o = await _sysOrganizationServices.QueryAsync();
var ids = new List<int>();
SysOrganizationHelper.GetOrganizeChildIds(o, organizationId, ref ids);
if (ids.Any())
{
jm.otherData = ids;
where = where.And(p => ids.Contains((int)p.organizationId));
}
}
//状态,0正常,1冻结 int
var state = Request.Form["state"].FirstOrDefault().ObjectToInt(0);
if (state > 0) @where = @where.And(p => p.state == state);
//是否删除,0否,1是 bit
var deleted = Request.Form["deleted"].FirstOrDefault();
if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "true")
@where = @where.And(p => p.deleted);
else if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "false")
@where = @where.And(p => p.deleted == false);
//注册时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysUserServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
if (list.Any())
{
var sysRoles = await _sysRoleServices.QueryAsync();
var sysUserRoles = await _sysUserRoleServices.QueryAsync();
foreach (var user in list)
{
var roleIds = sysUserRoles.Where(p => p.userId == user.id).Select(p => p.roleId).ToList();
if (roleIds.Any()) user.roles = sysRoles.Where(p => roleIds.Contains(p.id)).ToList();
}
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public async Task<AdminUiCallBack> GetCreate()
{
//返回数据
var userSexTypes = EnumHelper.EnumToList<GlobalEnumVars.UserSexTypes>();
var roles = await _sysRoleServices.QueryListByClauseAsync(p => p.deleted == false);
var jm = new AdminUiCallBack { code = 0 };
jm.data = new { userSexTypes, roles };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysUser entity)
{
var jm = new AdminUiCallBack();
var haveName = await _sysUserServices.ExistsAsync(p => p.userName == entity.userName);
if (haveName)
{
jm.msg = "账号已经存在";
return jm;
}
entity.createTime = DateTime.Now;
entity.passWord = CommonHelper.Md5For32(entity.passWord);
var id = await _sysUserServices.InsertAsync(entity);
if (id > 0 && !string.IsNullOrEmpty(entity.roleIds))
{
var strIds = entity.roleIds.Split(",");
var ids = CommonHelper.StringArrAyToIntArray(strIds);
if (ids.Any())
{
var userRoles = new List<SysUserRole>();
foreach (var itemRoleId in ids)
userRoles.Add(new SysUserRole
{
createTime = DateTime.Now,
roleId = itemRoleId,
userId = id
});
if (userRoles.Any()) await _sysUserRoleServices.InsertAsync(userRoles);
}
}
jm.otherData = entity;
var bl = id > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysUserServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
var userSexTypes = EnumHelper.EnumToList<GlobalEnumVars.UserSexTypes>();
var userRoles = await _sysUserRoleServices.QueryListByClauseAsync(p => p.userId == model.id);
var roleIds = userRoles.Select(p => p.roleId).ToList();
var roles = await _sysRoleServices.QueryListByClauseAsync(p => p.deleted == false);
jm.code = 0;
jm.data = new
{
model,
userSexTypes,
roles,
roleIds
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysUser entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysUserServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
if (oldModel.userName != entity.userName)
{
var haveName = await _sysUserServices.ExistsAsync(p => p.userName == entity.userName);
if (haveName)
{
jm.msg = "账号已经存在";
return jm;
}
}
//事物处理过程开始
oldModel.userName = entity.userName;
if (!string.IsNullOrEmpty(entity.passWord))
{
var md5Str = CommonHelper.Md5For32(entity.passWord);
oldModel.passWord = md5Str;
}
oldModel.organizationId = entity.organizationId > 0 ? entity.organizationId : 0;
oldModel.nickName = entity.nickName;
oldModel.sex = entity.sex;
oldModel.phone = entity.phone;
oldModel.updateTime = DateTime.Now;
//事物处理过程结束
var bl = await _sysUserServices.UpdateAsync(oldModel);
if (bl)
{
await _sysUserRoleServices.DeleteAsync(p => p.userId == oldModel.id);
if (!string.IsNullOrEmpty(entity.roleIds))
{
var strIds = entity.roleIds.Split(",");
var ids = CommonHelper.StringArrAyToIntArray(strIds);
if (ids.Any())
{
var userRoles = new List<SysUserRole>();
foreach (var itemRoleId in ids)
userRoles.Add(new SysUserRole
{
createTime = DateTime.Now,
roleId = itemRoleId,
userId = oldModel.id
});
if (userRoles.Any()) await _sysUserRoleServices.InsertAsync(userRoles);
}
}
}
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysUserServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
if (model.id == 1)
{
jm.msg = "初始管理员账户禁止删除";
return jm;
}
var bl = await _sysUserServices.DeleteByIdAsync(entity.id);
if (bl) await _sysUserRoleServices.DeleteAsync(p => p.userId == model.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUser/DoSetdeleted/10
/// <summary>
/// 设置是否锁定,0否,1是
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否锁定,0否,1是")]
public async Task<AdminUiCallBack> DoSetState([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysUserServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.state = entity.data ? 0 : 1;
var bl = await _sysUserServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}
@@ -0,0 +1,526 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户角色关联表
/// </summary>
[Description("用户角色关联表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class SysUserRoleController : ControllerBase
{
private readonly ISysUserRoleServices _sysUserRoleServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public SysUserRoleController(IWebHostEnvironment webHostEnvironment
, ISysUserRoleServices sysUserRoleServices
)
{
_webHostEnvironment = webHostEnvironment;
_sysUserRoleServices = sysUserRoleServices;
}
#region ============================================================
// POST: Api/SysUserRole/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<SysUserRole>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<SysUserRole, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "userId":
orderEx = p => p.userId;
break;
case "roleId":
orderEx = p => p.roleId;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//角色id int
var roleId = Request.Form["roleId"].FirstOrDefault().ObjectToInt(0);
if (roleId > 0) @where = @where.And(p => p.roleId == roleId);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _sysUserRoleServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] SysUserRole entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysUserRoleServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysUserRoleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] SysUserRole entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _sysUserRoleServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.userId = entity.userId;
oldModel.roleId = entity.roleId;
oldModel.createTime = entity.createTime;
oldModel.updateTime = entity.updateTime;
//事物处理过程结束
var bl = await _sysUserRoleServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysUserRoleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _sysUserRoleServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _sysUserRoleServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _sysUserRoleServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _sysUserRoleServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("主键");
row1.CreateCell(1).SetCellValue("用户id");
row1.CreateCell(2).SetCellValue("角色id");
row1.CreateCell(3).SetCellValue("创建时间");
row1.CreateCell(4).SetCellValue("修改时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].roleId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysUserRole导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/SysUserRole/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<SysUserRole>();
//查询筛选
//主键 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//角色id int
var roleId = Request.Form["roleId"].FirstOrDefault().ObjectToInt(0);
if (roleId > 0) @where = @where.And(p => p.roleId == roleId);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//修改时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _sysUserRoleServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("主键");
row1.CreateCell(1).SetCellValue("用户id");
row1.CreateCell(2).SetCellValue("角色id");
row1.CreateCell(3).SetCellValue("创建时间");
row1.CreateCell(4).SetCellValue("修改时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].roleId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysUserRole导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,385 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户余额表
/// </summary>
[Description("用户余额表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserBalanceController : ControllerBase
{
private readonly ICoreCmsUserBalanceServices _coreCmsUserBalanceServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsUserBalanceServices"></param>
public CoreCmsUserBalanceController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserBalanceServices coreCmsUserBalanceServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsUserBalanceServices = coreCmsUserBalanceServices;
}
#region ============================================================
// POST: Api/CoreCmsUserBalance/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserBalance>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserBalance, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "userId":
orderEx = p => p.userId;
break;
case "type":
orderEx = p => p.type;
break;
case "money":
orderEx = p => p.money;
break;
case "balance":
orderEx = p => p.balance;
break;
case "sourceId":
orderEx = p => p.sourceId;
break;
case "memo":
orderEx = p => p.memo;
break;
case "createTime":
orderEx = p => p.createTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//资源id nvarchar
var sourceId = Request.Form["sourceId"].FirstOrDefault();
if (!string.IsNullOrEmpty(sourceId)) @where = @where.And(p => p.sourceId.Contains(sourceId));
//描述 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//获取数据
var list = await _coreCmsUserBalanceServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserBalance/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var userBalanceSourceTypes = EnumHelper.EnumToList<GlobalEnumVars.UserBalanceSourceTypes>();
jm.data = new
{
userBalanceSourceTypes
};
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserBalance/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserBalanceServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserBalance/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsUserBalanceServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id,
OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("用户id");
row1.CreateCell(2).SetCellValue("类型");
row1.CreateCell(3).SetCellValue("金额");
row1.CreateCell(4).SetCellValue("余额");
row1.CreateCell(5).SetCellValue("资源id");
row1.CreateCell(6).SetCellValue("描述");
row1.CreateCell(7).SetCellValue("创建时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].balance.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].sourceId);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].createTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserBalance导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion ============================================================
#region ============================================================
// POST: Api/CoreCmsUserBalance/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsUserBalance>();
//查询筛选
//序列 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户id int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//资源id nvarchar
var sourceId = Request.Form["sourceId"].FirstOrDefault();
if (!string.IsNullOrEmpty(sourceId)) @where = @where.And(p => p.sourceId.Contains(sourceId));
//描述 nvarchar
var memo = Request.Form["memo"].FirstOrDefault();
if (!string.IsNullOrEmpty(memo)) @where = @where.And(p => p.memo.Contains(memo));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsUserBalanceServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("序列");
row1.CreateCell(1).SetCellValue("用户id");
row1.CreateCell(2).SetCellValue("类型");
row1.CreateCell(3).SetCellValue("金额");
row1.CreateCell(4).SetCellValue("余额");
row1.CreateCell(5).SetCellValue("资源id");
row1.CreateCell(6).SetCellValue("描述");
row1.CreateCell(7).SetCellValue("创建时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(4).SetCellValue(listmodel[i].balance.ToString());
rowtemp.CreateCell(5).SetCellValue(listmodel[i].sourceId);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].memo);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].createTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserBalance导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion ============================================================
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,402 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户等级表
/// </summary>
[Description("用户等级表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserGradeController : ControllerBase
{
private readonly ICoreCmsUserGradeServices _coreCmsUserGradeServices;
private readonly ICoreCmsUserServices _userServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
public CoreCmsUserGradeController(IWebHostEnvironment webHostEnvironment,
ICoreCmsUserGradeServices coreCmsUserGradeServices, ICoreCmsUserServices userServices)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsUserGradeServices = coreCmsUserGradeServices;
_userServices = userServices;
}
#region ============================================================
// POST: Api/CoreCmsUserGrade/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserGrade>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserGrade, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "title":
orderEx = p => p.title;
break;
case "isDefault":
orderEx = p => p.isDefault;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//id int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//标题 nvarchar
var title = Request.Form["title"].FirstOrDefault();
if (!string.IsNullOrEmpty(title)) @where = @where.And(p => p.title.Contains(title));
//是否默认 bit
var isDefault = Request.Form["isDefault"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "true")
@where = @where.And(p => p.isDefault);
else if (!string.IsNullOrEmpty(isDefault) && isDefault.ToLowerInvariant() == "false")
@where = @where.And(p => p.isDefault == false);
//获取数据
var list = await _coreCmsUserGradeServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack
{
code = 0
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack
{
code = 0
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsUserGrade entity)
{
var jm = new AdminUiCallBack();
var id = await _coreCmsUserGradeServices.InsertAsync(entity);
var bl = id > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
//其他处理
if (bl && entity.isDefault)
{
Expression<Func<CoreCmsUserGrade, bool>> predicate = p => p.id != id;
await _coreCmsUserGradeServices.UpdateAsync(it => new CoreCmsUserGrade { isDefault = false },
predicate);
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserGradeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Admins/CoreCmsUserGrade/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsUserGrade entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsUserGradeServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
var oldDf = oldModel.isDefault;
if (oldDf && entity.isDefault == false)
{
jm.msg = "请保留一个为默认等级";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.title = entity.title;
oldModel.isDefault = entity.isDefault;
//事物处理过程结束
var bl = await _coreCmsUserGradeServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
//其他处理
if (bl && entity.isDefault)
{
Expression<Func<CoreCmsUserGrade, bool>> predicate = p => p.id != entity.id;
await _coreCmsUserGradeServices.UpdateAsync(it => new CoreCmsUserGrade { isDefault = false },
predicate);
}
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserGradeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var isHave = await _userServices.ExistsAsync(p => p.grade == model.id);
if (isHave)
{
jm.msg = "存在下级关联数据,禁止删除";
return jm;
}
var isDefault = await _coreCmsUserGradeServices.ExistsAsync(p => p.isDefault && p.id != entity.id);
if (isDefault == false)
{
jm.msg = "请先设置其他选项为默认";
return jm;
}
var bl = await _coreCmsUserGradeServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserGradeServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserGrade/DoSetisDefault/10
/// <summary>
/// 设置是否默认
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置是否默认")]
public async Task<AdminUiCallBack> DoSetisDefault([FromBody] FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsUserGradeServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDefault = entity.data;
if (entity.data == false)
{
var isHave = await _coreCmsUserGradeServices.ExistsAsync(p => p.isDefault && p.id != entity.id);
if (isHave == false)
{
jm.msg = "请保持一个默认设置";
return jm;
}
}
var bl = await _coreCmsUserGradeServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
//其他处理
if (bl && oldModel.isDefault)
{
Expression<Func<CoreCmsUserGrade, bool>> predicate = p => p.id != entity.id;
await _coreCmsUserGradeServices.UpdateAsync(it => new CoreCmsUserGrade { isDefault = false },
predicate);
}
return jm;
}
#endregion
}
}
@@ -0,0 +1,469 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户提现记录表
/// </summary>
[Description("用户提现记录表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserTocashController : ControllerBase
{
private readonly ICoreCmsUserTocashServices _coreCmsUserTocashServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsUserTocashServices"></param>
public CoreCmsUserTocashController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserTocashServices coreCmsUserTocashServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsUserTocashServices = coreCmsUserTocashServices;
}
#region ============================================================
// POST: Api/CoreCmsUserTocash/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserTocash>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserTocash, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "userId":
orderEx = p => p.userId;
break;
case "money":
orderEx = p => p.money;
break;
case "bankName":
orderEx = p => p.bankName;
break;
case "bankCode":
orderEx = p => p.bankCode;
break;
case "bankAreaId":
orderEx = p => p.bankAreaId;
break;
case "accountBank":
orderEx = p => p.accountBank;
break;
case "accountName":
orderEx = p => p.accountName;
break;
case "cardNumber":
orderEx = p => p.cardNumber;
break;
case "withdrawals":
orderEx = p => p.withdrawals;
break;
case "status":
orderEx = p => p.status;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//ID号 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//银行名称 nvarchar
var bankName = Request.Form["bankName"].FirstOrDefault();
if (!string.IsNullOrEmpty(bankName)) @where = @where.And(p => p.bankName.Contains(bankName));
//银行缩写 nvarchar
var bankCode = Request.Form["bankCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(bankCode)) @where = @where.And(p => p.bankCode.Contains(bankCode));
//账号地区ID int
var bankAreaId = Request.Form["bankAreaId"].FirstOrDefault().ObjectToInt(0);
if (bankAreaId > 0) @where = @where.And(p => p.bankAreaId == bankAreaId);
//开户行 nvarchar
var accountBank = Request.Form["accountBank"].FirstOrDefault();
if (!string.IsNullOrEmpty(accountBank)) @where = @where.And(p => p.accountBank.Contains(accountBank));
//账户名 nvarchar
var accountName = Request.Form["accountName"].FirstOrDefault();
if (!string.IsNullOrEmpty(accountName)) @where = @where.And(p => p.accountName.Contains(accountName));
//卡号 nvarchar
var cardNumber = Request.Form["cardNumber"].FirstOrDefault();
if (!string.IsNullOrEmpty(cardNumber)) @where = @where.And(p => p.cardNumber.Contains(cardNumber));
//提现状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsUserTocashServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserTocash/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var userTocashTypes = EnumHelper.EnumToList<GlobalEnumVars.UserTocashTypes>();
jm.data = new
{
userTocashTypes
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUser/DoSetisDelete/10
/// <summary>
/// 设置状态
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("设置状态")]
public async Task<AdminUiCallBack> SetStatus([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsUserTocashServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
var res = await _coreCmsUserTocashServices.Examine(entity.id, entity.data.ObjectToInt(0));
jm.code = res.status ? 0 : 1;
jm.data = res.data;
jm.msg = res.status ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserTocash/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel = await _coreCmsUserTocashServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("ID号");
row1.CreateCell(1).SetCellValue("用户ID");
row1.CreateCell(2).SetCellValue("提现金额");
row1.CreateCell(3).SetCellValue("银行名称");
row1.CreateCell(4).SetCellValue("银行缩写");
row1.CreateCell(5).SetCellValue("账号地区ID");
row1.CreateCell(6).SetCellValue("开户行");
row1.CreateCell(7).SetCellValue("账户名");
row1.CreateCell(8).SetCellValue("卡号");
row1.CreateCell(9).SetCellValue("提现服务费");
row1.CreateCell(10).SetCellValue("提现状态");
row1.CreateCell(11).SetCellValue("创建时间");
row1.CreateCell(12).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].bankName);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].bankCode);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].bankAreaId.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].accountBank);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].accountName);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].cardNumber);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].withdrawals.ToString());
rowtemp.CreateCell(10).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(12).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserTocash导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserTocash/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsUserTocash>();
//查询筛选
//ID号 int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//用户ID int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//银行名称 nvarchar
var bankName = Request.Form["bankName"].FirstOrDefault();
if (!string.IsNullOrEmpty(bankName)) @where = @where.And(p => p.bankName.Contains(bankName));
//银行缩写 nvarchar
var bankCode = Request.Form["bankCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(bankCode)) @where = @where.And(p => p.bankCode.Contains(bankCode));
//账号地区ID int
var bankAreaId = Request.Form["bankAreaId"].FirstOrDefault().ObjectToInt(0);
if (bankAreaId > 0) @where = @where.And(p => p.bankAreaId == bankAreaId);
//开户行 nvarchar
var accountBank = Request.Form["accountBank"].FirstOrDefault();
if (!string.IsNullOrEmpty(accountBank)) @where = @where.And(p => p.accountBank.Contains(accountBank));
//账户名 nvarchar
var accountName = Request.Form["accountName"].FirstOrDefault();
if (!string.IsNullOrEmpty(accountName)) @where = @where.And(p => p.accountName.Contains(accountName));
//卡号 nvarchar
var cardNumber = Request.Form["cardNumber"].FirstOrDefault();
if (!string.IsNullOrEmpty(cardNumber)) @where = @where.And(p => p.cardNumber.Contains(cardNumber));
//提现状态 int
var status = Request.Form["status"].FirstOrDefault().ObjectToInt(0);
if (status > 0) @where = @where.And(p => p.status == status);
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsUserTocashServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("ID号");
row1.CreateCell(1).SetCellValue("用户ID");
row1.CreateCell(2).SetCellValue("提现金额");
row1.CreateCell(3).SetCellValue("银行名称");
row1.CreateCell(4).SetCellValue("银行缩写");
row1.CreateCell(5).SetCellValue("账号地区ID");
row1.CreateCell(6).SetCellValue("开户行");
row1.CreateCell(7).SetCellValue("账户名");
row1.CreateCell(8).SetCellValue("卡号");
row1.CreateCell(9).SetCellValue("提现服务费");
row1.CreateCell(10).SetCellValue("提现状态");
row1.CreateCell(11).SetCellValue("创建时间");
row1.CreateCell(12).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].money.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].bankName);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].bankCode);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].bankAreaId.ToString());
rowtemp.CreateCell(6).SetCellValue(listmodel[i].accountBank);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].accountName);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].cardNumber);
rowtemp.CreateCell(9).SetCellValue(listmodel[i].withdrawals.ToString());
rowtemp.CreateCell(10).SetCellValue(listmodel[i].status.ToString());
rowtemp.CreateCell(11).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(12).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserTocash导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,696 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
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.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 用户表
/// </summary>
[Description("用户表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserWeChatInfoController : ControllerBase
{
private readonly ICoreCmsUserWeChatInfoServices _coreCmsUserWeChatInfoServices;
private readonly IWebHostEnvironment _webHostEnvironment;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="webHostEnvironment"></param>
/// <param name="coreCmsUserWeChatInfoServices"></param>
public CoreCmsUserWeChatInfoController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserWeChatInfoServices coreCmsUserWeChatInfoServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsUserWeChatInfoServices = coreCmsUserWeChatInfoServices;
}
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetPageList
/// <summary>
/// 获取列表
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("获取列表")]
public async Task<AdminUiCallBack> GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True<CoreCmsUserWeChatInfo>();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression<Func<CoreCmsUserWeChatInfo, object>> orderEx;
switch (orderField)
{
case "id":
orderEx = p => p.id;
break;
case "type":
orderEx = p => p.type;
break;
case "userId":
orderEx = p => p.userId;
break;
case "openid":
orderEx = p => p.openid;
break;
case "sessionKey":
orderEx = p => p.sessionKey;
break;
case "unionId":
orderEx = p => p.unionId;
break;
case "avatar":
orderEx = p => p.avatar;
break;
case "nickName":
orderEx = p => p.nickName;
break;
case "gender":
orderEx = p => p.gender;
break;
case "language":
orderEx = p => p.language;
break;
case "city":
orderEx = p => p.city;
break;
case "province":
orderEx = p => p.province;
break;
case "country":
orderEx = p => p.country;
break;
case "countryCode":
orderEx = p => p.countryCode;
break;
case "mobile":
orderEx = p => p.mobile;
break;
case "createTime":
orderEx = p => p.createTime;
break;
case "updateTime":
orderEx = p => p.updateTime;
break;
default:
orderEx = p => p.id;
break;
}
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//用户ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//第三方登录类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//关联用户表 int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//openId nvarchar
var openid = Request.Form["openid"].FirstOrDefault();
if (!string.IsNullOrEmpty(openid)) @where = @where.And(p => p.openid.Contains(openid));
//缓存key nvarchar
var sessionKey = Request.Form["sessionKey"].FirstOrDefault();
if (!string.IsNullOrEmpty(sessionKey)) @where = @where.And(p => p.sessionKey.Contains(sessionKey));
//unionid nvarchar
var unionId = Request.Form["unionId"].FirstOrDefault();
if (!string.IsNullOrEmpty(unionId)) @where = @where.And(p => p.unionId.Contains(unionId));
//头像 nvarchar
var avatar = Request.Form["avatar"].FirstOrDefault();
if (!string.IsNullOrEmpty(avatar)) @where = @where.And(p => p.avatar.Contains(avatar));
//昵称 nvarchar
var nickName = Request.Form["nickName"].FirstOrDefault();
if (!string.IsNullOrEmpty(nickName)) @where = @where.And(p => p.nickName.Contains(nickName));
//性别 int
var gender = Request.Form["gender"].FirstOrDefault().ObjectToInt(0);
if (gender > 0) @where = @where.And(p => p.gender == gender);
//语言 nvarchar
var language = Request.Form["language"].FirstOrDefault();
if (!string.IsNullOrEmpty(language)) @where = @where.And(p => p.language.Contains(language));
//城市 nvarchar
var city = Request.Form["city"].FirstOrDefault();
if (!string.IsNullOrEmpty(city)) @where = @where.And(p => p.city.Contains(city));
//省 nvarchar
var province = Request.Form["province"].FirstOrDefault();
if (!string.IsNullOrEmpty(province)) @where = @where.And(p => p.province.Contains(province));
//国家 nvarchar
var country = Request.Form["country"].FirstOrDefault();
if (!string.IsNullOrEmpty(country)) @where = @where.And(p => p.country.Contains(country));
//手机号码国家编码 nvarchar
var countryCode = Request.Form["countryCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(countryCode)) @where = @where.And(p => p.countryCode.Contains(countryCode));
//手机号码 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//获取数据
var list = await _coreCmsUserWeChatInfoServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent,
pageSize);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public AdminUiCallBack GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetCreate
/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/DoCreate
/// <summary>
/// 创建提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("创建提交")]
public async Task<AdminUiCallBack> DoCreate([FromBody] CoreCmsUserWeChatInfo entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsUserWeChatInfoServices.InsertAsync(entity) > 0;
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserWeChatInfoServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] CoreCmsUserWeChatInfo entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _coreCmsUserWeChatInfoServices.QueryByIdAsync(entity.id);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
//事物处理过程开始
oldModel.id = entity.id;
oldModel.type = entity.type;
oldModel.userId = entity.userId;
oldModel.openid = entity.openid;
oldModel.sessionKey = entity.sessionKey;
oldModel.unionId = entity.unionId;
oldModel.avatar = entity.avatar;
oldModel.nickName = entity.nickName;
oldModel.gender = entity.gender;
oldModel.language = entity.language;
oldModel.city = entity.city;
oldModel.province = entity.province;
oldModel.country = entity.country;
oldModel.countryCode = entity.countryCode;
oldModel.mobile = entity.mobile;
oldModel.createTime = entity.createTime;
oldModel.updateTime = entity.updateTime;
//事物处理过程结束
var bl = await _coreCmsUserWeChatInfoServices.UpdateAsync(oldModel);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/DoDelete/10
/// <summary>
/// 单选删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("单选删除")]
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserWeChatInfoServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
var bl = await _coreCmsUserWeChatInfoServices.DeleteByIdAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/DoBatchDelete/10,11,20
/// <summary>
/// 批量删除
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("批量删除")]
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
var bl = await _coreCmsUserWeChatInfoServices.DeleteByIdsAsync(entity.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/GetDetails/10
/// <summary>
/// 预览数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("预览数据")]
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserWeChatInfoServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/SelectExportExcel/10
/// <summary>
/// 选择导出
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("选择导出")]
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsUserWeChatInfoServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("用户ID");
row1.CreateCell(1).SetCellValue("第三方登录类型");
row1.CreateCell(2).SetCellValue("关联用户表");
row1.CreateCell(3).SetCellValue("openId");
row1.CreateCell(4).SetCellValue("缓存key");
row1.CreateCell(5).SetCellValue("unionid");
row1.CreateCell(6).SetCellValue("头像");
row1.CreateCell(7).SetCellValue("昵称");
row1.CreateCell(8).SetCellValue("性别");
row1.CreateCell(9).SetCellValue("语言");
row1.CreateCell(10).SetCellValue("城市");
row1.CreateCell(11).SetCellValue("省");
row1.CreateCell(12).SetCellValue("国家");
row1.CreateCell(13).SetCellValue("手机号码国家编码");
row1.CreateCell(14).SetCellValue("手机号码");
row1.CreateCell(15).SetCellValue("创建时间");
row1.CreateCell(16).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].openid);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].sessionKey);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].unionId);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].avatar);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].nickName);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].gender.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].language);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].city);
rowtemp.CreateCell(11).SetCellValue(listmodel[i].province);
rowtemp.CreateCell(12).SetCellValue(listmodel[i].country);
rowtemp.CreateCell(13).SetCellValue(listmodel[i].countryCode);
rowtemp.CreateCell(14).SetCellValue(listmodel[i].mobile);
rowtemp.CreateCell(15).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(16).SetCellValue(listmodel[i].updateTime.ToString());
}
// 导出excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserWeChatInfo导出(选择结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatInfo/QueryExportExcel/10
/// <summary>
/// 查询导出
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("查询导出")]
public async Task<AdminUiCallBack> QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True<CoreCmsUserWeChatInfo>();
//查询筛选
//用户ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0) @where = @where.And(p => p.id == id);
//第三方登录类型 int
var type = Request.Form["type"].FirstOrDefault().ObjectToInt(0);
if (type > 0) @where = @where.And(p => p.type == type);
//关联用户表 int
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
if (userId > 0) @where = @where.And(p => p.userId == userId);
//openId nvarchar
var openid = Request.Form["openid"].FirstOrDefault();
if (!string.IsNullOrEmpty(openid)) @where = @where.And(p => p.openid.Contains(openid));
//缓存key nvarchar
var sessionKey = Request.Form["sessionKey"].FirstOrDefault();
if (!string.IsNullOrEmpty(sessionKey)) @where = @where.And(p => p.sessionKey.Contains(sessionKey));
//unionid nvarchar
var unionId = Request.Form["unionId"].FirstOrDefault();
if (!string.IsNullOrEmpty(unionId)) @where = @where.And(p => p.unionId.Contains(unionId));
//头像 nvarchar
var avatar = Request.Form["avatar"].FirstOrDefault();
if (!string.IsNullOrEmpty(avatar)) @where = @where.And(p => p.avatar.Contains(avatar));
//昵称 nvarchar
var nickName = Request.Form["nickName"].FirstOrDefault();
if (!string.IsNullOrEmpty(nickName)) @where = @where.And(p => p.nickName.Contains(nickName));
//性别 int
var gender = Request.Form["gender"].FirstOrDefault().ObjectToInt(0);
if (gender > 0) @where = @where.And(p => p.gender == gender);
//语言 nvarchar
var language = Request.Form["language"].FirstOrDefault();
if (!string.IsNullOrEmpty(language)) @where = @where.And(p => p.language.Contains(language));
//城市 nvarchar
var city = Request.Form["city"].FirstOrDefault();
if (!string.IsNullOrEmpty(city)) @where = @where.And(p => p.city.Contains(city));
//省 nvarchar
var province = Request.Form["province"].FirstOrDefault();
if (!string.IsNullOrEmpty(province)) @where = @where.And(p => p.province.Contains(province));
//国家 nvarchar
var country = Request.Form["country"].FirstOrDefault();
if (!string.IsNullOrEmpty(country)) @where = @where.And(p => p.country.Contains(country));
//手机号码国家编码 nvarchar
var countryCode = Request.Form["countryCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(countryCode)) @where = @where.And(p => p.countryCode.Contains(countryCode));
//手机号码 nvarchar
var mobile = Request.Form["mobile"].FirstOrDefault();
if (!string.IsNullOrEmpty(mobile)) @where = @where.And(p => p.mobile.Contains(mobile));
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var sheet1 = book.CreateSheet("Sheet1");
//获取list数据
var listmodel =
await _coreCmsUserWeChatInfoServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
//给sheet1添加第一行的头部标题
var row1 = sheet1.CreateRow(0);
row1.CreateCell(0).SetCellValue("用户ID");
row1.CreateCell(1).SetCellValue("第三方登录类型");
row1.CreateCell(2).SetCellValue("关联用户表");
row1.CreateCell(3).SetCellValue("openId");
row1.CreateCell(4).SetCellValue("缓存key");
row1.CreateCell(5).SetCellValue("unionid");
row1.CreateCell(6).SetCellValue("头像");
row1.CreateCell(7).SetCellValue("昵称");
row1.CreateCell(8).SetCellValue("性别");
row1.CreateCell(9).SetCellValue("语言");
row1.CreateCell(10).SetCellValue("城市");
row1.CreateCell(11).SetCellValue("省");
row1.CreateCell(12).SetCellValue("国家");
row1.CreateCell(13).SetCellValue("手机号码国家编码");
row1.CreateCell(14).SetCellValue("手机号码");
row1.CreateCell(15).SetCellValue("创建时间");
row1.CreateCell(16).SetCellValue("更新时间");
//将数据逐步写入sheet1各个行
for (var i = 0; i < listmodel.Count; i++)
{
var rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
rowtemp.CreateCell(1).SetCellValue(listmodel[i].type.ToString());
rowtemp.CreateCell(2).SetCellValue(listmodel[i].userId.ToString());
rowtemp.CreateCell(3).SetCellValue(listmodel[i].openid);
rowtemp.CreateCell(4).SetCellValue(listmodel[i].sessionKey);
rowtemp.CreateCell(5).SetCellValue(listmodel[i].unionId);
rowtemp.CreateCell(6).SetCellValue(listmodel[i].avatar);
rowtemp.CreateCell(7).SetCellValue(listmodel[i].nickName);
rowtemp.CreateCell(8).SetCellValue(listmodel[i].gender.ToString());
rowtemp.CreateCell(9).SetCellValue(listmodel[i].language);
rowtemp.CreateCell(10).SetCellValue(listmodel[i].city);
rowtemp.CreateCell(11).SetCellValue(listmodel[i].province);
rowtemp.CreateCell(12).SetCellValue(listmodel[i].country);
rowtemp.CreateCell(13).SetCellValue(listmodel[i].countryCode);
rowtemp.CreateCell(14).SetCellValue(listmodel[i].mobile);
rowtemp.CreateCell(15).SetCellValue(listmodel[i].createTime.ToString());
rowtemp.CreateCell(16).SetCellValue(listmodel[i].updateTime.ToString());
}
// 写入到excel
var webRootPath = _webHostEnvironment.WebRootPath;
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsUserWeChatInfo导出(查询结果).xls";
var filePath = webRootPath + tpath;
var di = new DirectoryInfo(filePath);
if (!di.Exists) di.Create();
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
}
}
@@ -0,0 +1,165 @@
/***********************************************************************
* Project: CoreCms
* ProjectName: 核心内容管理系统
* Web: https://www.corecms.net
* Author: 大灰灰
* Email: jianweie@163.com
* CreateTime: 2021/1/31 21:45:10
* Description: 暂无
***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
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.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
namespace CoreCms.Net.Web.Admin.Controllers
{
/// <summary>
/// 微信小程序消息模板
///</summary>
[Description("微信小程序消息模板")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class CoreCmsUserWeChatMsgTemplateController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly ICoreCmsUserWeChatMsgTemplateServices _coreCmsUserWeChatMsgTemplateServices;
/// <summary>
/// 构造函数
///</summary>
public CoreCmsUserWeChatMsgTemplateController(IWebHostEnvironment webHostEnvironment
, ICoreCmsUserWeChatMsgTemplateServices coreCmsUserWeChatMsgTemplateServices
)
{
_webHostEnvironment = webHostEnvironment;
_coreCmsUserWeChatMsgTemplateServices = coreCmsUserWeChatMsgTemplateServices;
}
#region ============================================================
// POST: Api/CoreCmsUserWeChatMsgTemplate/GetIndex
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
[HttpPost]
[Description("首页数据")]
public async Task<AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
var data = await _coreCmsUserWeChatMsgTemplateServices.QueryAsync();
var order = data.Find(p => p.templateTitle == GlobalEnumVars.WeChatMsgTemplateType.order.ToString());
var cancel = data.Find(p => p.templateTitle == GlobalEnumVars.WeChatMsgTemplateType.cancel.ToString());
var pay = data.Find(p => p.templateTitle == GlobalEnumVars.WeChatMsgTemplateType.pay.ToString());
var ship = data.Find(p => p.templateTitle == GlobalEnumVars.WeChatMsgTemplateType.ship.ToString());
var aftersale = data.Find(p => p.templateTitle == GlobalEnumVars.WeChatMsgTemplateType.aftersale.ToString());
var refund = data.Find(p => p.templateTitle == GlobalEnumVars.WeChatMsgTemplateType.refund.ToString());
jm.data = new
{
order,
cancel,
pay,
ship,
aftersale,
refund
};
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatMsgTemplate/GetEdit
/// <summary>
/// 编辑数据
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑数据")]
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _coreCmsUserWeChatMsgTemplateServices.QueryByIdAsync(entity.id);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region ============================================================
// POST: Api/CoreCmsUserWeChatMsgTemplate/Edit
/// <summary>
/// 编辑提交
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost]
[Description("编辑提交")]
public async Task<AdminUiCallBack> DoEdit([FromBody] FMWeChatMsgTemplateEdit entity)
{
var jm = new AdminUiCallBack();
if (entity.list == null || entity.list.Count < 0)
{
jm.msg = "未传输讯息";
return jm;
}
//事物处理过程开始
var data = await _coreCmsUserWeChatMsgTemplateServices.QueryAsync();
foreach (var item in data)
{
var o = entity.list.Find(p => p.templateTitle == item.templateTitle);
if (o != null)
{
item.templateId = o.templateId.Trim();
item.data01 = o.data01.Trim();
item.data02 = o.data02.Trim();
item.data03 = o.data03.Trim();
item.data04 = o.data04.Trim();
item.data05 = o.data05.Trim();
}
}
var bl = await _coreCmsUserWeChatMsgTemplateServices.UpdateAsync(data);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
jm.otherData = entity;
return jm;
}
#endregion
}
}