添加项目文件。

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

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}