mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-03-27 17:27:20 +08:00
添加项目文件。
This commit is contained in:
@@ -0,0 +1,208 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using AutoMapper;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NPOI.HSSF.UserModel;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 代码生成器
|
||||
/// </summary>
|
||||
[Description("代码生成器")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
//[Authorize(Permissions.Name)]
|
||||
public class CodeGeneratorController : ControllerBase
|
||||
{
|
||||
private readonly ICodeGeneratorServices _codeGeneratorServices;
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
|
||||
private readonly IMapper _mapper;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
public CodeGeneratorController(ICodeGeneratorServices codeGeneratorServices, IMapper mapper, IWebHostEnvironment webHostEnvironment)
|
||||
{
|
||||
_codeGeneratorServices = codeGeneratorServices;
|
||||
_mapper = mapper;
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据表格列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取数据表格列表")]
|
||||
public AdminUiCallBack GetTables()
|
||||
{
|
||||
var tables = _codeGeneratorServices.GetDbTables();
|
||||
|
||||
var fristDb = new SqlSugar.DbTableInfo { Name = "AllTable", Description = "所有数据表含视图" };
|
||||
|
||||
tables.Insert(0, fristDb);
|
||||
|
||||
var jm = new AdminUiCallBack
|
||||
{
|
||||
code = 0,
|
||||
data = _mapper
|
||||
.Map<List<SqlSugar.DbTableInfo>, List<CoreCms.Net.Model.ViewModels.Basics.DbTableInfoTree>>(tables)
|
||||
};
|
||||
return jm;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成代码
|
||||
/// </summary>
|
||||
/// <param name="tableName"></param>
|
||||
/// <param name="fileType"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("生成代码")]
|
||||
public ActionResult CodeGenDown([FromQuery] string tableName, [FromQuery] string fileType)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
if (string.IsNullOrEmpty(tableName))
|
||||
{
|
||||
jm.msg = "请选择数据库";
|
||||
return new JsonResult(jm);
|
||||
}
|
||||
if (string.IsNullOrEmpty(fileType))
|
||||
{
|
||||
jm.msg = "请选择要导出的文件类型";
|
||||
return new JsonResult(jm);
|
||||
}
|
||||
|
||||
if (tableName == "AllTable")
|
||||
{
|
||||
var data = _codeGeneratorServices.CodeGenByAll(fileType);
|
||||
if (data != null)
|
||||
{
|
||||
return File(data, System.Net.Mime.MediaTypeNames.Application.Zip, tableName + "-" + fileType + ".zip");
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.msg = tableName + "获取数据库字段失败";
|
||||
return new JsonResult(jm);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var data = _codeGeneratorServices.CodeGen(tableName, fileType);
|
||||
if (data != null)
|
||||
{
|
||||
return File(data, System.Net.Mime.MediaTypeNames.Application.Zip, tableName + "-" + fileType + ".zip");
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.msg = tableName + "获取数据库字段失败";
|
||||
return new JsonResult(jm);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#region 获取所有表和表名并生成excel
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有表和表名并生成excel
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取所有表和表名并生成excel")]
|
||||
public AdminUiCallBack GetDataBaseTablesToExcel()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var mySheet = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listmodel = _codeGeneratorServices.GetDbTables();
|
||||
|
||||
var headerStyle = ExcelHelper.GetHeaderStyle(book);
|
||||
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
|
||||
|
||||
|
||||
//给sheet1添加第一行的头部标题
|
||||
var headerRow = mySheet.CreateRow(0);
|
||||
|
||||
var cell0 = headerRow.CreateCell(0); cell0.SetCellValue("序列"); cell0.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(0, 10 * 256);
|
||||
|
||||
var cell1 = headerRow.CreateCell(1); cell1.SetCellValue("表名"); cell1.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(1, 50 * 256);
|
||||
|
||||
var cell2 = headerRow.CreateCell(2); cell2.SetCellValue("描述"); cell2.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(2, 50 * 256);
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listmodel.Count; i++)
|
||||
{
|
||||
var rowtemp = mySheet.CreateRow(i + 1);
|
||||
|
||||
var rowtemp01 = rowtemp.CreateCell(0);
|
||||
rowtemp01.SetCellValue(i);
|
||||
rowtemp01.CellStyle = commonCellStyle;
|
||||
|
||||
var rowtemp02 = rowtemp.CreateCell(1);
|
||||
rowtemp02.SetCellValue(listmodel[i].Name);
|
||||
rowtemp02.CellStyle = commonCellStyle;
|
||||
|
||||
var rowtemp03 = rowtemp.CreateCell(2);
|
||||
rowtemp03.SetCellValue(listmodel[i].Description);
|
||||
rowtemp03.CellStyle = commonCellStyle;
|
||||
}
|
||||
// 导出excel
|
||||
string webRootPath = _webHostEnvironment.WebRootPath;
|
||||
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-数据库表导出.xls";
|
||||
string filePath = webRootPath + tpath;
|
||||
DirectoryInfo di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists)
|
||||
{
|
||||
di.Create();
|
||||
}
|
||||
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,353 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.Filter;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据字典表
|
||||
/// </summary>
|
||||
[Description("数据字典表")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[RequiredErrorForAdmin]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class SysDictionaryController : ControllerBase
|
||||
{
|
||||
private readonly ISysDictionaryDataServices _sysDictionaryDataServices;
|
||||
private readonly ISysDictionaryServices _sysDictionaryServices;
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
public SysDictionaryController(IWebHostEnvironment webHostEnvironment
|
||||
, ISysDictionaryServices sysDictionaryServices
|
||||
, ISysDictionaryDataServices sysDictionaryDataServices
|
||||
)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_sysDictionaryServices = sysDictionaryServices;
|
||||
_sysDictionaryDataServices = sysDictionaryDataServices;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
|
||||
// POST: Api/SysDictionary/GetPageList
|
||||
/// <summary>
|
||||
/// 获取列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取列表")]
|
||||
public async Task<AdminUiCallBack> GetPageList()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
|
||||
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
|
||||
var where = PredicateBuilder.True<SysDictionary>();
|
||||
//获取排序字段
|
||||
var orderField = Request.Form["orderField"].FirstOrDefault();
|
||||
Expression<Func<SysDictionary, object>> orderEx;
|
||||
switch (orderField)
|
||||
{
|
||||
case "id":
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
case "dictCode":
|
||||
orderEx = p => p.dictCode;
|
||||
break;
|
||||
case "dictName":
|
||||
orderEx = p => p.dictName;
|
||||
break;
|
||||
case "comments":
|
||||
orderEx = p => p.comments;
|
||||
break;
|
||||
case "sortNumber":
|
||||
orderEx = p => p.sortNumber;
|
||||
break;
|
||||
case "deleted":
|
||||
orderEx = p => p.deleted;
|
||||
break;
|
||||
case "createTime":
|
||||
orderEx = p => p.createTime;
|
||||
break;
|
||||
case "updateTime":
|
||||
orderEx = p => p.updateTime;
|
||||
break;
|
||||
default:
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
}
|
||||
|
||||
//设置排序方式
|
||||
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
|
||||
var orderBy = orderDirection switch
|
||||
{
|
||||
"asc" => OrderByType.Asc,
|
||||
"desc" => OrderByType.Desc,
|
||||
_ => OrderByType.Desc
|
||||
};
|
||||
//查询筛选
|
||||
|
||||
//字典id int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0) @where = @where.And(p => p.id == id);
|
||||
//字典标识 nvarchar
|
||||
var dictCode = Request.Form["dictCode"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(dictCode)) @where = @where.And(p => p.dictCode.Contains(dictCode));
|
||||
//字典名称 nvarchar
|
||||
var dictName = Request.Form["dictName"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(dictName)) @where = @where.And(p => p.dictName.Contains(dictName));
|
||||
//备注 nvarchar
|
||||
var comments = Request.Form["comments"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
|
||||
//排序号 int
|
||||
var sortNumber = Request.Form["sortNumber"].FirstOrDefault().ObjectToInt(0);
|
||||
if (sortNumber > 0) @where = @where.And(p => p.sortNumber == sortNumber);
|
||||
//是否删除,0否,1是 bit
|
||||
var deleted = Request.Form["deleted"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "true")
|
||||
@where = @where.And(p => p.deleted);
|
||||
else if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "false")
|
||||
@where = @where.And(p => p.deleted == false);
|
||||
//创建时间 datetime
|
||||
var createTime = Request.Form["createTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(createTime))
|
||||
{
|
||||
if (createTime.Contains("到"))
|
||||
{
|
||||
var dts = createTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = createTime.ObjectToDate();
|
||||
where = where.And(p => p.createTime > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//修改时间 datetime
|
||||
var updateTime = Request.Form["updateTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(updateTime))
|
||||
{
|
||||
if (updateTime.Contains("到"))
|
||||
{
|
||||
var dts = updateTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.updateTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = updateTime.ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//获取数据
|
||||
var list = await _sysDictionaryServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
jm.count = list.TotalCount;
|
||||
jm.msg = "数据调用成功!";
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 首页数据============================================================
|
||||
|
||||
// POST: Api/SysDictionary/GetIndex
|
||||
/// <summary>
|
||||
/// 首页数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("首页数据")]
|
||||
public AdminUiCallBack GetIndex()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 创建数据============================================================
|
||||
|
||||
// POST: Api/SysDictionary/GetCreate
|
||||
/// <summary>
|
||||
/// 创建数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建数据")]
|
||||
public AdminUiCallBack GetCreate()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 创建提交============================================================
|
||||
|
||||
// POST: Api/SysDictionary/DoCreate
|
||||
/// <summary>
|
||||
/// 创建提交
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建提交")]
|
||||
public async Task<AdminUiCallBack> DoCreate([FromBody] SysDictionary entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
entity.createTime = DateTime.Now;
|
||||
|
||||
var bl = await _sysDictionaryServices.InsertAsync(entity) > 0;
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 编辑数据============================================================
|
||||
|
||||
// POST: Api/SysDictionary/GetEdit
|
||||
/// <summary>
|
||||
/// 编辑数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("编辑数据")]
|
||||
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysDictionaryServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
jm.code = 0;
|
||||
jm.data = model;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 编辑提交============================================================
|
||||
|
||||
// POST: Api/SysDictionary/Edit
|
||||
/// <summary>
|
||||
/// 编辑提交
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("编辑提交")]
|
||||
public async Task<AdminUiCallBack> DoEdit([FromBody] SysDictionary entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var oldModel = await _sysDictionaryServices.QueryByIdAsync(entity.id);
|
||||
if (oldModel == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
//事物处理过程开始
|
||||
oldModel.dictCode = entity.dictCode;
|
||||
oldModel.dictName = entity.dictName;
|
||||
oldModel.comments = entity.comments;
|
||||
oldModel.sortNumber = entity.sortNumber;
|
||||
oldModel.updateTime = DateTime.Now;
|
||||
|
||||
//事物处理过程结束
|
||||
var bl = await _sysDictionaryServices.UpdateAsync(oldModel);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 删除数据============================================================
|
||||
|
||||
// POST: Api/SysDictionary/DoDelete/10
|
||||
/// <summary>
|
||||
/// 单选删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("单选删除")]
|
||||
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysDictionaryServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = GlobalConstVars.DataisNo;
|
||||
return jm;
|
||||
}
|
||||
|
||||
if (await _sysDictionaryDataServices.ExistsAsync(p => p.dictId == model.id))
|
||||
{
|
||||
jm.msg = GlobalConstVars.DeleteIsHaveChildren;
|
||||
return jm;
|
||||
}
|
||||
|
||||
var bl = await _sysDictionaryServices.DeleteByIdAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
return jm;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,374 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.Filter;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据字典项表
|
||||
/// </summary>
|
||||
[Description("数据字典项表")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[RequiredErrorForAdmin]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class SysDictionaryDataController : ControllerBase
|
||||
{
|
||||
private readonly ISysDictionaryDataServices _sysDictionaryDataServices;
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
public SysDictionaryDataController(IWebHostEnvironment webHostEnvironment
|
||||
, ISysDictionaryDataServices sysDictionaryDataServices
|
||||
)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_sysDictionaryDataServices = sysDictionaryDataServices;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/GetPageList
|
||||
/// <summary>
|
||||
/// 获取列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取列表")]
|
||||
public async Task<AdminUiCallBack> GetPageList()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
|
||||
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
|
||||
var where = PredicateBuilder.True<SysDictionaryData>();
|
||||
//获取排序字段
|
||||
var orderField = Request.Form["orderField"].FirstOrDefault();
|
||||
Expression<Func<SysDictionaryData, object>> orderEx;
|
||||
switch (orderField)
|
||||
{
|
||||
case "id":
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
case "dictId":
|
||||
orderEx = p => p.dictId;
|
||||
break;
|
||||
case "dictDataCode":
|
||||
orderEx = p => p.dictDataCode;
|
||||
break;
|
||||
case "dictDataName":
|
||||
orderEx = p => p.dictDataName;
|
||||
break;
|
||||
case "comments":
|
||||
orderEx = p => p.comments;
|
||||
break;
|
||||
case "sortNumber":
|
||||
orderEx = p => p.sortNumber;
|
||||
break;
|
||||
case "deleted":
|
||||
orderEx = p => p.deleted;
|
||||
break;
|
||||
case "createTime":
|
||||
orderEx = p => p.createTime;
|
||||
break;
|
||||
case "updateTime":
|
||||
orderEx = p => p.updateTime;
|
||||
break;
|
||||
default:
|
||||
orderEx = p => p.sortNumber;
|
||||
break;
|
||||
}
|
||||
|
||||
//设置排序方式
|
||||
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
|
||||
var orderBy = orderDirection switch
|
||||
{
|
||||
"asc" => OrderByType.Asc,
|
||||
"desc" => OrderByType.Desc,
|
||||
_ => OrderByType.Desc
|
||||
};
|
||||
//查询筛选
|
||||
|
||||
//字典项id int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0) @where = @where.And(p => p.id == id);
|
||||
//字典id int
|
||||
var dictId = Request.Form["dictId"].FirstOrDefault().ObjectToInt(0);
|
||||
if (dictId > 0) @where = @where.And(p => p.dictId == dictId);
|
||||
//字典项标识 nvarchar
|
||||
var dictDataCode = Request.Form["dictDataCode"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(dictDataCode)) @where = @where.And(p => p.dictDataCode.Contains(dictDataCode));
|
||||
//字典项名称 nvarchar
|
||||
var dictDataName = Request.Form["dictDataName"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(dictDataName)) @where = @where.And(p => p.dictDataName.Contains(dictDataName));
|
||||
//备注 nvarchar
|
||||
var comments = Request.Form["comments"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
|
||||
//排序号 int
|
||||
var sortNumber = Request.Form["sortNumber"].FirstOrDefault().ObjectToInt(0);
|
||||
if (sortNumber > 0) @where = @where.And(p => p.sortNumber == sortNumber);
|
||||
//是否删除,0否,1是 bit
|
||||
var deleted = Request.Form["deleted"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "true")
|
||||
@where = @where.And(p => p.deleted);
|
||||
else if (!string.IsNullOrEmpty(deleted) && deleted.ToLowerInvariant() == "false")
|
||||
@where = @where.And(p => p.deleted == false);
|
||||
//创建时间 datetime
|
||||
var createTime = Request.Form["createTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(createTime))
|
||||
{
|
||||
if (createTime.Contains("到"))
|
||||
{
|
||||
var dts = createTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = createTime.ObjectToDate();
|
||||
where = where.And(p => p.createTime > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//修改时间 datetime
|
||||
var updateTime = Request.Form["updateTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(updateTime))
|
||||
{
|
||||
if (updateTime.Contains("到"))
|
||||
{
|
||||
var dts = updateTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.updateTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = updateTime.ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//获取数据
|
||||
var list = await _sysDictionaryDataServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
jm.count = list.TotalCount;
|
||||
jm.msg = "数据调用成功!";
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 首页数据============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/GetIndex
|
||||
/// <summary>
|
||||
/// 首页数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("首页数据")]
|
||||
public AdminUiCallBack GetIndex()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 创建数据============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/GetCreate
|
||||
/// <summary>
|
||||
/// 创建数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建数据")]
|
||||
public AdminUiCallBack GetCreate()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 创建提交============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/DoCreate
|
||||
/// <summary>
|
||||
/// 创建提交
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建提交")]
|
||||
public async Task<AdminUiCallBack> DoCreate([FromBody] SysDictionaryData entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
entity.createTime = DateTime.Now;
|
||||
|
||||
var bl = await _sysDictionaryDataServices.InsertAsync(entity) > 0;
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 编辑数据============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/GetEdit
|
||||
/// <summary>
|
||||
/// 编辑数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("编辑数据")]
|
||||
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysDictionaryDataServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
jm.code = 0;
|
||||
jm.data = model;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 编辑提交============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/Edit
|
||||
/// <summary>
|
||||
/// 编辑提交
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("编辑提交")]
|
||||
public async Task<AdminUiCallBack> DoEdit([FromBody] SysDictionaryData entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var oldModel = await _sysDictionaryDataServices.QueryByIdAsync(entity.id);
|
||||
if (oldModel == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
//事物处理过程开始
|
||||
oldModel.dictId = entity.dictId;
|
||||
oldModel.dictDataCode = entity.dictDataCode;
|
||||
oldModel.dictDataName = entity.dictDataName;
|
||||
oldModel.comments = entity.comments;
|
||||
oldModel.sortNumber = entity.sortNumber;
|
||||
oldModel.updateTime = DateTime.Now;
|
||||
|
||||
//事物处理过程结束
|
||||
var bl = await _sysDictionaryDataServices.UpdateAsync(oldModel);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 删除数据============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/DoDelete/10
|
||||
/// <summary>
|
||||
/// 单选删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("单选删除")]
|
||||
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysDictionaryDataServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = GlobalConstVars.DataisNo;
|
||||
return jm;
|
||||
}
|
||||
|
||||
var bl = await _sysDictionaryDataServices.DeleteByIdAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 批量删除============================================================
|
||||
|
||||
// POST: Api/SysDictionaryData/DoBatchDelete/10,11,20
|
||||
/// <summary>
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("批量删除")]
|
||||
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _sysDictionaryDataServices.DeleteByIdsAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,480 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.Filter;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录日志表
|
||||
/// </summary>
|
||||
[Description("登录日志表")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[RequiredErrorForAdmin]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class SysLoginRecordController : ControllerBase
|
||||
{
|
||||
private readonly ISysLoginRecordServices _sysLoginRecordServices;
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
public SysLoginRecordController(IWebHostEnvironment webHostEnvironment
|
||||
, ISysLoginRecordServices sysLoginRecordServices
|
||||
)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_sysLoginRecordServices = sysLoginRecordServices;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
|
||||
// POST: Api/SysLoginRecord/GetPageList
|
||||
/// <summary>
|
||||
/// 获取列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取列表")]
|
||||
public async Task<AdminUiCallBack> GetPageList()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
|
||||
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
|
||||
var where = PredicateBuilder.True<SysLoginRecord>();
|
||||
//获取排序字段
|
||||
var orderField = Request.Form["orderField"].FirstOrDefault();
|
||||
Expression<Func<SysLoginRecord, object>> orderEx;
|
||||
switch (orderField)
|
||||
{
|
||||
case "id":
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
case "username":
|
||||
orderEx = p => p.username;
|
||||
break;
|
||||
case "os":
|
||||
orderEx = p => p.os;
|
||||
break;
|
||||
case "device":
|
||||
orderEx = p => p.device;
|
||||
break;
|
||||
case "browser":
|
||||
orderEx = p => p.browser;
|
||||
break;
|
||||
case "ip":
|
||||
orderEx = p => p.ip;
|
||||
break;
|
||||
case "operType":
|
||||
orderEx = p => p.operType;
|
||||
break;
|
||||
case "comments":
|
||||
orderEx = p => p.comments;
|
||||
break;
|
||||
case "createTime":
|
||||
orderEx = p => p.createTime;
|
||||
break;
|
||||
case "updateTime":
|
||||
orderEx = p => p.updateTime;
|
||||
break;
|
||||
default:
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
}
|
||||
|
||||
//设置排序方式
|
||||
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
|
||||
var orderBy = orderDirection switch
|
||||
{
|
||||
"asc" => OrderByType.Asc,
|
||||
"desc" => OrderByType.Desc,
|
||||
_ => OrderByType.Desc
|
||||
};
|
||||
//查询筛选
|
||||
|
||||
//主键 int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0) @where = @where.And(p => p.id == id);
|
||||
//用户账号 nvarchar
|
||||
var username = Request.Form["username"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(username)) @where = @where.And(p => p.username.Contains(username));
|
||||
//操作系统 nvarchar
|
||||
var os = Request.Form["os"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(os)) @where = @where.And(p => p.os.Contains(os));
|
||||
//设备名 nvarchar
|
||||
var device = Request.Form["device"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(device)) @where = @where.And(p => p.device.Contains(device));
|
||||
//浏览器类型 nvarchar
|
||||
var browser = Request.Form["browser"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(browser)) @where = @where.And(p => p.browser.Contains(browser));
|
||||
//ip地址 nvarchar
|
||||
var ip = Request.Form["ip"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(ip)) @where = @where.And(p => p.ip.Contains(ip));
|
||||
//操作类型,0登录成功,1登录失败,2退出登录,3刷新token int
|
||||
var operType = Request.Form["operType"].FirstOrDefault().ObjectToInt(0);
|
||||
if (operType > 0) @where = @where.And(p => p.operType == operType);
|
||||
//备注 nvarchar
|
||||
var comments = Request.Form["comments"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
|
||||
//登录时间 datetime
|
||||
var createTime = Request.Form["createTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(createTime))
|
||||
{
|
||||
if (createTime.Contains("到"))
|
||||
{
|
||||
var dts = createTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = createTime.ObjectToDate();
|
||||
where = where.And(p => p.createTime > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//修改时间 datetime
|
||||
var updateTime = Request.Form["updateTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(updateTime))
|
||||
{
|
||||
if (updateTime.Contains("到"))
|
||||
{
|
||||
var dts = updateTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.updateTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = updateTime.ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//获取数据
|
||||
var list = await _sysLoginRecordServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
jm.count = list.TotalCount;
|
||||
jm.msg = "数据调用成功!";
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 首页数据============================================================
|
||||
|
||||
// POST: Api/SysLoginRecord/GetIndex
|
||||
/// <summary>
|
||||
/// 首页数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("首页数据")]
|
||||
public AdminUiCallBack GetIndex()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
|
||||
var logType = EnumHelper.EnumToList<GlobalEnumVars.LoginRecordType>();
|
||||
jm.data = new
|
||||
{
|
||||
logType
|
||||
};
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 预览数据============================================================
|
||||
|
||||
// POST: Api/SysLoginRecord/GetDetails/10
|
||||
/// <summary>
|
||||
/// 预览数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("预览数据")]
|
||||
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysLoginRecordServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
jm.code = 0;
|
||||
jm.data = model;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 选择导出============================================================
|
||||
|
||||
// POST: Api/SysLoginRecord/SelectExportExcel/10
|
||||
/// <summary>
|
||||
/// 选择导出
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("选择导出")]
|
||||
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var sheet1 = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listmodel = await _sysLoginRecordServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
|
||||
p => p.id, OrderByType.Asc);
|
||||
//给sheet1添加第一行的头部标题
|
||||
var row1 = sheet1.CreateRow(0);
|
||||
row1.CreateCell(0).SetCellValue("主键");
|
||||
row1.CreateCell(1).SetCellValue("用户账号");
|
||||
row1.CreateCell(2).SetCellValue("操作系统");
|
||||
row1.CreateCell(3).SetCellValue("设备名");
|
||||
row1.CreateCell(4).SetCellValue("浏览器类型");
|
||||
row1.CreateCell(5).SetCellValue("ip地址");
|
||||
row1.CreateCell(6).SetCellValue("操作类型,0登录成功,1登录失败,2退出登录,3刷新token");
|
||||
row1.CreateCell(7).SetCellValue("备注");
|
||||
row1.CreateCell(8).SetCellValue("登录时间");
|
||||
row1.CreateCell(9).SetCellValue("修改时间");
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listmodel.Count; i++)
|
||||
{
|
||||
var rowtemp = sheet1.CreateRow(i + 1);
|
||||
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
|
||||
rowtemp.CreateCell(1).SetCellValue(listmodel[i].username);
|
||||
rowtemp.CreateCell(2).SetCellValue(listmodel[i].os);
|
||||
rowtemp.CreateCell(3).SetCellValue(listmodel[i].device);
|
||||
rowtemp.CreateCell(4).SetCellValue(listmodel[i].browser);
|
||||
rowtemp.CreateCell(5).SetCellValue(listmodel[i].ip);
|
||||
rowtemp.CreateCell(6).SetCellValue(listmodel[i].operType.ToString());
|
||||
rowtemp.CreateCell(7).SetCellValue(listmodel[i].comments);
|
||||
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
|
||||
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
|
||||
}
|
||||
|
||||
// 导出excel
|
||||
var webRootPath = _webHostEnvironment.WebRootPath;
|
||||
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysLoginRecord导出(选择结果).xls";
|
||||
var filePath = webRootPath + tpath;
|
||||
var di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists) di.Create();
|
||||
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 查询导出============================================================
|
||||
|
||||
// POST: Api/SysLoginRecord/QueryExportExcel/10
|
||||
/// <summary>
|
||||
/// 查询导出
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("查询导出")]
|
||||
public async Task<AdminUiCallBack> QueryExportExcel()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var where = PredicateBuilder.True<SysLoginRecord>();
|
||||
//查询筛选
|
||||
|
||||
//主键 int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0) @where = @where.And(p => p.id == id);
|
||||
//用户账号 nvarchar
|
||||
var username = Request.Form["username"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(username)) @where = @where.And(p => p.username.Contains(username));
|
||||
//操作系统 nvarchar
|
||||
var os = Request.Form["os"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(os)) @where = @where.And(p => p.os.Contains(os));
|
||||
//设备名 nvarchar
|
||||
var device = Request.Form["device"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(device)) @where = @where.And(p => p.device.Contains(device));
|
||||
//浏览器类型 nvarchar
|
||||
var browser = Request.Form["browser"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(browser)) @where = @where.And(p => p.browser.Contains(browser));
|
||||
//ip地址 nvarchar
|
||||
var ip = Request.Form["ip"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(ip)) @where = @where.And(p => p.ip.Contains(ip));
|
||||
//操作类型,0登录成功,1登录失败,2退出登录,3刷新token int
|
||||
var operType = Request.Form["operType"].FirstOrDefault().ObjectToInt(0);
|
||||
if (operType > 0) @where = @where.And(p => p.operType == operType);
|
||||
//备注 nvarchar
|
||||
var comments = Request.Form["comments"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(comments)) @where = @where.And(p => p.comments.Contains(comments));
|
||||
//登录时间 datetime
|
||||
var createTime = Request.Form["createTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(createTime))
|
||||
{
|
||||
var dt = createTime.ObjectToDate();
|
||||
where = where.And(p => p.createTime > dt);
|
||||
}
|
||||
|
||||
//修改时间 datetime
|
||||
var updateTime = Request.Form["updateTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(updateTime))
|
||||
{
|
||||
var dt = updateTime.ObjectToDate();
|
||||
where = where.And(p => p.updateTime > dt);
|
||||
}
|
||||
|
||||
//获取数据
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var sheet1 = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listmodel = await _sysLoginRecordServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
|
||||
//给sheet1添加第一行的头部标题
|
||||
var row1 = sheet1.CreateRow(0);
|
||||
row1.CreateCell(0).SetCellValue("主键");
|
||||
row1.CreateCell(1).SetCellValue("用户账号");
|
||||
row1.CreateCell(2).SetCellValue("操作系统");
|
||||
row1.CreateCell(3).SetCellValue("设备名");
|
||||
row1.CreateCell(4).SetCellValue("浏览器类型");
|
||||
row1.CreateCell(5).SetCellValue("ip地址");
|
||||
row1.CreateCell(6).SetCellValue("操作类型,0登录成功,1登录失败,2退出登录,3刷新token");
|
||||
row1.CreateCell(7).SetCellValue("备注");
|
||||
row1.CreateCell(8).SetCellValue("登录时间");
|
||||
row1.CreateCell(9).SetCellValue("修改时间");
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listmodel.Count; i++)
|
||||
{
|
||||
var rowtemp = sheet1.CreateRow(i + 1);
|
||||
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
|
||||
rowtemp.CreateCell(1).SetCellValue(listmodel[i].username);
|
||||
rowtemp.CreateCell(2).SetCellValue(listmodel[i].os);
|
||||
rowtemp.CreateCell(3).SetCellValue(listmodel[i].device);
|
||||
rowtemp.CreateCell(4).SetCellValue(listmodel[i].browser);
|
||||
rowtemp.CreateCell(5).SetCellValue(listmodel[i].ip);
|
||||
rowtemp.CreateCell(6).SetCellValue(listmodel[i].operType.ToString());
|
||||
rowtemp.CreateCell(7).SetCellValue(listmodel[i].comments);
|
||||
rowtemp.CreateCell(8).SetCellValue(listmodel[i].createTime.ToString());
|
||||
rowtemp.CreateCell(9).SetCellValue(listmodel[i].updateTime.ToString());
|
||||
}
|
||||
|
||||
// 写入到excel
|
||||
var webRootPath = _webHostEnvironment.WebRootPath;
|
||||
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysLoginRecord导出(查询结果).xls";
|
||||
var filePath = webRootPath + tpath;
|
||||
var di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists) di.Create();
|
||||
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 批量删除============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
|
||||
/// <summary>
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("批量删除")]
|
||||
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _sysLoginRecordServices.DeleteByIdsAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 清空数据============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
|
||||
/// <summary>
|
||||
/// 清空数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("清空数据")]
|
||||
public async Task<AdminUiCallBack> DoWipeData()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _sysLoginRecordServices.DeleteAsync(p => p.id > 0);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
281
CoreCms.Net.Web.Admin/Controllers/System/SysMenuController.cs
Normal file
281
CoreCms.Net.Web.Admin/Controllers/System/SysMenuController.cs
Normal 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
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,545 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.Filter;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// Nlog记录表
|
||||
/// </summary>
|
||||
[Description("Nlog记录表")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[RequiredErrorForAdmin]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class SysNLogRecordsController : ControllerBase
|
||||
{
|
||||
private readonly ISysNLogRecordsServices _sysNLogRecordsServices;
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
public SysNLogRecordsController(IWebHostEnvironment webHostEnvironment
|
||||
, ISysNLogRecordsServices sysNLogRecordsServices
|
||||
)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_sysNLogRecordsServices = sysNLogRecordsServices;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/GetPageList
|
||||
/// <summary>
|
||||
/// 获取列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取列表")]
|
||||
public async Task<AdminUiCallBack> GetPageList()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
|
||||
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
|
||||
var where = PredicateBuilder.True<SysNLogRecords>();
|
||||
//获取排序字段
|
||||
var orderField = Request.Form["orderField"].FirstOrDefault();
|
||||
Expression<Func<SysNLogRecords, object>> orderEx;
|
||||
switch (orderField)
|
||||
{
|
||||
case "id":
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
case "LogDate":
|
||||
orderEx = p => p.LogDate;
|
||||
break;
|
||||
case "LogLevel":
|
||||
orderEx = p => p.LogLevel;
|
||||
break;
|
||||
case "LogType":
|
||||
orderEx = p => p.LogType;
|
||||
break;
|
||||
case "Logger":
|
||||
orderEx = p => p.Logger;
|
||||
break;
|
||||
case "Message":
|
||||
orderEx = p => p.Message;
|
||||
break;
|
||||
case "MachineName":
|
||||
orderEx = p => p.MachineName;
|
||||
break;
|
||||
case "MachineIp":
|
||||
orderEx = p => p.MachineIp;
|
||||
break;
|
||||
case "NetRequestMethod":
|
||||
orderEx = p => p.NetRequestMethod;
|
||||
break;
|
||||
case "NetRequestUrl":
|
||||
orderEx = p => p.NetRequestUrl;
|
||||
break;
|
||||
case "NetUserIsauthenticated":
|
||||
orderEx = p => p.NetUserIsauthenticated;
|
||||
break;
|
||||
case "NetUserAuthtype":
|
||||
orderEx = p => p.NetUserAuthtype;
|
||||
break;
|
||||
case "NetUserIdentity":
|
||||
orderEx = p => p.NetUserIdentity;
|
||||
break;
|
||||
case "Exception":
|
||||
orderEx = p => p.Exception;
|
||||
break;
|
||||
default:
|
||||
orderEx = p => p.id;
|
||||
break;
|
||||
}
|
||||
|
||||
//设置排序方式
|
||||
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
|
||||
var orderBy = orderDirection switch
|
||||
{
|
||||
"asc" => OrderByType.Asc,
|
||||
"desc" => OrderByType.Desc,
|
||||
_ => OrderByType.Desc
|
||||
};
|
||||
//查询筛选
|
||||
|
||||
//序列 int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0) @where = @where.And(p => p.id == id);
|
||||
//时间 datetime
|
||||
var LogDate = Request.Form["LogDate"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(LogDate))
|
||||
{
|
||||
if (LogDate.Contains("到"))
|
||||
{
|
||||
var dts = LogDate.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.LogDate > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.LogDate < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = LogDate.ObjectToDate();
|
||||
where = where.And(p => p.LogDate > dt);
|
||||
}
|
||||
}
|
||||
|
||||
//级别 nvarchar
|
||||
var LogLevel = Request.Form["LogLevel"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(LogLevel)) @where = @where.And(p => p.LogLevel.Contains(LogLevel));
|
||||
//事件日志上下文 nvarchar
|
||||
var LogType = Request.Form["LogType"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(LogType)) @where = @where.And(p => p.LogType.Contains(LogType));
|
||||
//记录器名字 nvarchar
|
||||
var Logger = Request.Form["Logger"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(Logger)) @where = @where.And(p => p.Logger.Contains(Logger));
|
||||
//消息 nvarchar
|
||||
var Message = Request.Form["Message"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(Message)) @where = @where.And(p => p.Message.Contains(Message));
|
||||
//名称 nvarchar
|
||||
var MachineName = Request.Form["MachineName"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(MachineName)) @where = @where.And(p => p.MachineName.Contains(MachineName));
|
||||
//ip nvarchar
|
||||
var MachineIp = Request.Form["MachineIp"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(MachineIp)) @where = @where.And(p => p.MachineIp.Contains(MachineIp));
|
||||
//请求方式 nvarchar
|
||||
var NetRequestMethod = Request.Form["NetRequestMethod"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetRequestMethod))
|
||||
@where = @where.And(p => p.NetRequestMethod.Contains(NetRequestMethod));
|
||||
//请求地址 nvarchar
|
||||
var NetRequestUrl = Request.Form["NetRequestUrl"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetRequestUrl)) @where = @where.And(p => p.NetRequestUrl.Contains(NetRequestUrl));
|
||||
//是否授权 nvarchar
|
||||
var NetUserIsauthenticated = Request.Form["NetUserIsauthenticated"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetUserIsauthenticated))
|
||||
@where = @where.And(p => p.NetUserIsauthenticated.Contains(NetUserIsauthenticated));
|
||||
//授权类型 nvarchar
|
||||
var NetUserAuthtype = Request.Form["NetUserAuthtype"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetUserAuthtype))
|
||||
@where = @where.And(p => p.NetUserAuthtype.Contains(NetUserAuthtype));
|
||||
//身份认证 nvarchar
|
||||
var NetUserIdentity = Request.Form["NetUserIdentity"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetUserIdentity))
|
||||
@where = @where.And(p => p.NetUserIdentity.Contains(NetUserIdentity));
|
||||
//异常信息 nvarchar
|
||||
var Exception = Request.Form["Exception"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(Exception)) @where = @where.And(p => p.Exception.Contains(Exception));
|
||||
//获取数据
|
||||
var list = await _sysNLogRecordsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
jm.count = list.TotalCount;
|
||||
jm.msg = "数据调用成功!";
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 首页数据============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/GetIndex
|
||||
/// <summary>
|
||||
/// 首页数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("首页数据")]
|
||||
public AdminUiCallBack GetIndex()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 删除数据============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/DoDelete/10
|
||||
/// <summary>
|
||||
/// 单选删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("单选删除")]
|
||||
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysNLogRecordsServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = GlobalConstVars.DataisNo;
|
||||
return jm;
|
||||
}
|
||||
|
||||
var bl = await _sysNLogRecordsServices.DeleteByIdAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
return jm;
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 批量删除============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
|
||||
/// <summary>
|
||||
/// 批量删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("批量删除")]
|
||||
public async Task<AdminUiCallBack> DoBatchDelete([FromBody] FMArrayIntIds entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _sysNLogRecordsServices.DeleteByIdsAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 预览数据============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/GetDetails/10
|
||||
/// <summary>
|
||||
/// 预览数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("预览数据")]
|
||||
public async Task<AdminUiCallBack> GetDetails([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysNLogRecordsServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
jm.code = 0;
|
||||
jm.data = model;
|
||||
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 选择导出============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/SelectExportExcel/10
|
||||
/// <summary>
|
||||
/// 选择导出
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("选择导出")]
|
||||
public async Task<AdminUiCallBack> SelectExportExcel([FromBody] FMArrayIntIds entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var sheet1 = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listmodel = await _sysNLogRecordsServices.QueryListByClauseAsync(p => entity.id.Contains(p.id),
|
||||
p => p.id, OrderByType.Asc);
|
||||
//给sheet1添加第一行的头部标题
|
||||
var row1 = sheet1.CreateRow(0);
|
||||
row1.CreateCell(0).SetCellValue("序列");
|
||||
row1.CreateCell(1).SetCellValue("时间");
|
||||
row1.CreateCell(2).SetCellValue("级别");
|
||||
row1.CreateCell(3).SetCellValue("事件日志上下文");
|
||||
row1.CreateCell(4).SetCellValue("记录器名字");
|
||||
row1.CreateCell(5).SetCellValue("消息");
|
||||
row1.CreateCell(6).SetCellValue("名称");
|
||||
row1.CreateCell(7).SetCellValue("ip");
|
||||
row1.CreateCell(8).SetCellValue("请求方式");
|
||||
row1.CreateCell(9).SetCellValue("请求地址");
|
||||
row1.CreateCell(10).SetCellValue("是否授权");
|
||||
row1.CreateCell(11).SetCellValue("授权类型");
|
||||
row1.CreateCell(12).SetCellValue("身份认证");
|
||||
row1.CreateCell(13).SetCellValue("异常信息");
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listmodel.Count; i++)
|
||||
{
|
||||
var rowtemp = sheet1.CreateRow(i + 1);
|
||||
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
|
||||
rowtemp.CreateCell(1).SetCellValue(listmodel[i].LogDate.ToString());
|
||||
rowtemp.CreateCell(2).SetCellValue(listmodel[i].LogLevel);
|
||||
rowtemp.CreateCell(3).SetCellValue(listmodel[i].LogType);
|
||||
rowtemp.CreateCell(4).SetCellValue(listmodel[i].Logger);
|
||||
rowtemp.CreateCell(5).SetCellValue(listmodel[i].Message);
|
||||
rowtemp.CreateCell(6).SetCellValue(listmodel[i].MachineName);
|
||||
rowtemp.CreateCell(7).SetCellValue(listmodel[i].MachineIp);
|
||||
rowtemp.CreateCell(8).SetCellValue(listmodel[i].NetRequestMethod);
|
||||
rowtemp.CreateCell(9).SetCellValue(listmodel[i].NetRequestUrl);
|
||||
rowtemp.CreateCell(10).SetCellValue(listmodel[i].NetUserIsauthenticated);
|
||||
rowtemp.CreateCell(11).SetCellValue(listmodel[i].NetUserAuthtype);
|
||||
rowtemp.CreateCell(12).SetCellValue(listmodel[i].NetUserIdentity);
|
||||
rowtemp.CreateCell(13).SetCellValue(listmodel[i].Exception);
|
||||
}
|
||||
|
||||
// 导出excel
|
||||
var webRootPath = _webHostEnvironment.WebRootPath;
|
||||
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysNLogRecords导出(选择结果).xls";
|
||||
var filePath = webRootPath + tpath;
|
||||
var di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists) di.Create();
|
||||
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 查询导出============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/QueryExportExcel/10
|
||||
/// <summary>
|
||||
/// 查询导出
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("查询导出")]
|
||||
public async Task<AdminUiCallBack> QueryExportExcel()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var where = PredicateBuilder.True<SysNLogRecords>();
|
||||
//查询筛选
|
||||
|
||||
//序列 int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0) @where = @where.And(p => p.id == id);
|
||||
//时间 datetime
|
||||
var LogDate = Request.Form["LogDate"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(LogDate))
|
||||
{
|
||||
var dt = LogDate.ObjectToDate();
|
||||
where = where.And(p => p.LogDate > dt);
|
||||
}
|
||||
|
||||
//级别 nvarchar
|
||||
var LogLevel = Request.Form["LogLevel"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(LogLevel)) @where = @where.And(p => p.LogLevel.Contains(LogLevel));
|
||||
//事件日志上下文 nvarchar
|
||||
var LogType = Request.Form["LogType"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(LogType)) @where = @where.And(p => p.LogType.Contains(LogType));
|
||||
//记录器名字 nvarchar
|
||||
var Logger = Request.Form["Logger"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(Logger)) @where = @where.And(p => p.Logger.Contains(Logger));
|
||||
//消息 nvarchar
|
||||
var Message = Request.Form["Message"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(Message)) @where = @where.And(p => p.Message.Contains(Message));
|
||||
//名称 nvarchar
|
||||
var MachineName = Request.Form["MachineName"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(MachineName)) @where = @where.And(p => p.MachineName.Contains(MachineName));
|
||||
//ip nvarchar
|
||||
var MachineIp = Request.Form["MachineIp"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(MachineIp)) @where = @where.And(p => p.MachineIp.Contains(MachineIp));
|
||||
//请求方式 nvarchar
|
||||
var NetRequestMethod = Request.Form["NetRequestMethod"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetRequestMethod))
|
||||
@where = @where.And(p => p.NetRequestMethod.Contains(NetRequestMethod));
|
||||
//请求地址 nvarchar
|
||||
var NetRequestUrl = Request.Form["NetRequestUrl"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetRequestUrl))
|
||||
@where = @where.And(p => p.NetRequestUrl.Contains(NetRequestUrl));
|
||||
//是否授权 nvarchar
|
||||
var NetUserIsauthenticated = Request.Form["NetUserIsauthenticated"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetUserIsauthenticated))
|
||||
@where = @where.And(p => p.NetUserIsauthenticated.Contains(NetUserIsauthenticated));
|
||||
//授权类型 nvarchar
|
||||
var NetUserAuthtype = Request.Form["NetUserAuthtype"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetUserAuthtype))
|
||||
@where = @where.And(p => p.NetUserAuthtype.Contains(NetUserAuthtype));
|
||||
//身份认证 nvarchar
|
||||
var NetUserIdentity = Request.Form["NetUserIdentity"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(NetUserIdentity))
|
||||
@where = @where.And(p => p.NetUserIdentity.Contains(NetUserIdentity));
|
||||
//异常信息 nvarchar
|
||||
var Exception = Request.Form["Exception"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(Exception)) @where = @where.And(p => p.Exception.Contains(Exception));
|
||||
//获取数据
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var sheet1 = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listmodel = await _sysNLogRecordsServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc);
|
||||
//给sheet1添加第一行的头部标题
|
||||
var row1 = sheet1.CreateRow(0);
|
||||
row1.CreateCell(0).SetCellValue("序列");
|
||||
row1.CreateCell(1).SetCellValue("时间");
|
||||
row1.CreateCell(2).SetCellValue("级别");
|
||||
row1.CreateCell(3).SetCellValue("事件日志上下文");
|
||||
row1.CreateCell(4).SetCellValue("记录器名字");
|
||||
row1.CreateCell(5).SetCellValue("消息");
|
||||
row1.CreateCell(6).SetCellValue("名称");
|
||||
row1.CreateCell(7).SetCellValue("ip");
|
||||
row1.CreateCell(8).SetCellValue("请求方式");
|
||||
row1.CreateCell(9).SetCellValue("请求地址");
|
||||
row1.CreateCell(10).SetCellValue("是否授权");
|
||||
row1.CreateCell(11).SetCellValue("授权类型");
|
||||
row1.CreateCell(12).SetCellValue("身份认证");
|
||||
row1.CreateCell(13).SetCellValue("异常信息");
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listmodel.Count; i++)
|
||||
{
|
||||
var rowtemp = sheet1.CreateRow(i + 1);
|
||||
rowtemp.CreateCell(0).SetCellValue(listmodel[i].id.ToString());
|
||||
rowtemp.CreateCell(1).SetCellValue(listmodel[i].LogDate.ToString());
|
||||
rowtemp.CreateCell(2).SetCellValue(listmodel[i].LogLevel);
|
||||
rowtemp.CreateCell(3).SetCellValue(listmodel[i].LogType);
|
||||
rowtemp.CreateCell(4).SetCellValue(listmodel[i].Logger);
|
||||
rowtemp.CreateCell(5).SetCellValue(listmodel[i].Message);
|
||||
rowtemp.CreateCell(6).SetCellValue(listmodel[i].MachineName);
|
||||
rowtemp.CreateCell(7).SetCellValue(listmodel[i].MachineIp);
|
||||
rowtemp.CreateCell(8).SetCellValue(listmodel[i].NetRequestMethod);
|
||||
rowtemp.CreateCell(9).SetCellValue(listmodel[i].NetRequestUrl);
|
||||
rowtemp.CreateCell(10).SetCellValue(listmodel[i].NetUserIsauthenticated);
|
||||
rowtemp.CreateCell(11).SetCellValue(listmodel[i].NetUserAuthtype);
|
||||
rowtemp.CreateCell(12).SetCellValue(listmodel[i].NetUserIdentity);
|
||||
rowtemp.CreateCell(13).SetCellValue(listmodel[i].Exception);
|
||||
}
|
||||
|
||||
// 写入到excel
|
||||
var webRootPath = _webHostEnvironment.WebRootPath;
|
||||
var tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
var fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysNLogRecords导出(查询结果).xls";
|
||||
var filePath = webRootPath + tpath;
|
||||
var di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists) di.Create();
|
||||
var fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 清空数据============================================================
|
||||
|
||||
// POST: Api/SysNLogRecords/DoBatchDelete/10,11,20
|
||||
/// <summary>
|
||||
/// 清空数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("清空数据")]
|
||||
public async Task<AdminUiCallBack> DoWipeData()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _sysNLogRecordsServices.DeleteAsync(p => p.id > 0);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,737 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Filter;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 操作日志表
|
||||
///</summary>
|
||||
[Description("操作日志表")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[RequiredErrorForAdmin]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class SysOperRecordController : ControllerBase
|
||||
{
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
private readonly ISysOperRecordServices _sysOperRecordServices;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
///</summary>
|
||||
public SysOperRecordController(IWebHostEnvironment webHostEnvironment
|
||||
,ISysOperRecordServices sysOperRecordServices
|
||||
)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_sysOperRecordServices = sysOperRecordServices;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
// POST: Api/SysOperRecord/GetPageList
|
||||
/// <summary>
|
||||
/// 获取列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取列表")]
|
||||
public async Task<AdminUiCallBack> GetPageList()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
|
||||
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
|
||||
var where = PredicateBuilder.True<SysOperRecord>();
|
||||
//获取排序字段
|
||||
var orderField = Request.Form["orderField"].FirstOrDefault();
|
||||
|
||||
Expression<Func<SysOperRecord, object>> orderEx = orderField switch
|
||||
{
|
||||
"id" => p => p.id,"userId" => p => p.userId,"userName" => p => p.userName,"model" => p => p.model,"description" => p => p.description,"url" => p => p.url,"requestMethod" => p => p.requestMethod,"operMethod" => p => p.operMethod,"param" => p => p.param,"result" => p => p.result,"ip" => p => p.ip,"spendTime" => p => p.spendTime,"state" => p => p.state,"createTime" => p => p.createTime,
|
||||
_ => p => p.id
|
||||
};
|
||||
|
||||
//设置排序方式
|
||||
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
|
||||
var orderBy = orderDirection switch
|
||||
{
|
||||
"asc" => OrderByType.Asc,
|
||||
"desc" => OrderByType.Desc,
|
||||
_ => OrderByType.Desc
|
||||
};
|
||||
//查询筛选
|
||||
|
||||
//主键 int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0)
|
||||
{
|
||||
where = where.And(p => p.id == id);
|
||||
}
|
||||
//用户id int
|
||||
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
|
||||
if (userId > 0)
|
||||
{
|
||||
where = where.And(p => p.userId == userId);
|
||||
}
|
||||
//用户名 nvarchar
|
||||
var userName = Request.Form["userName"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(userName))
|
||||
{
|
||||
where = where.And(p => p.userName.Contains(userName));
|
||||
}
|
||||
//操作模块 nvarchar
|
||||
var model = Request.Form["model"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(model))
|
||||
{
|
||||
where = where.And(p => p.model.Contains(model));
|
||||
}
|
||||
//操作方法 nvarchar
|
||||
var description = Request.Form["description"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(description))
|
||||
{
|
||||
where = where.And(p => p.description.Contains(description));
|
||||
}
|
||||
//请求地址 nvarchar
|
||||
var url = Request.Form["url"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
where = where.And(p => p.url.Contains(url));
|
||||
}
|
||||
//请求方式 nvarchar
|
||||
var requestMethod = Request.Form["requestMethod"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(requestMethod))
|
||||
{
|
||||
where = where.And(p => p.requestMethod.Contains(requestMethod));
|
||||
}
|
||||
//调用方法 nvarchar
|
||||
var operMethod = Request.Form["operMethod"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(operMethod))
|
||||
{
|
||||
where = where.And(p => p.operMethod.Contains(operMethod));
|
||||
}
|
||||
//请求参数 nvarchar
|
||||
var param = Request.Form["param"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(param))
|
||||
{
|
||||
where = where.And(p => p.param.Contains(param));
|
||||
}
|
||||
//返回结果 nvarchar
|
||||
var result = Request.Form["result"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(result))
|
||||
{
|
||||
where = where.And(p => p.result.Contains(result));
|
||||
}
|
||||
//ip地址 nvarchar
|
||||
var ip = Request.Form["ip"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(ip))
|
||||
{
|
||||
where = where.And(p => p.ip.Contains(ip));
|
||||
}
|
||||
//请求耗时,单位毫秒 nvarchar
|
||||
var spendTime = Request.Form["spendTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(spendTime))
|
||||
{
|
||||
where = where.And(p => p.spendTime.Contains(spendTime));
|
||||
}
|
||||
//状态,0成功,1异常 int
|
||||
var state = Request.Form["state"].FirstOrDefault().ObjectToInt(0);
|
||||
if (state > 0)
|
||||
{
|
||||
where = where.And(p => p.state == state);
|
||||
}
|
||||
//登录时间 datetime
|
||||
var createTime = Request.Form["createTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(createTime))
|
||||
{
|
||||
if (createTime.Contains("到"))
|
||||
{
|
||||
var dts = createTime.Split("到");
|
||||
var dtStart = dts[0].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime > dtStart);
|
||||
var dtEnd = dts[1].Trim().ObjectToDate();
|
||||
where = where.And(p => p.createTime < dtEnd);
|
||||
}
|
||||
else
|
||||
{
|
||||
var dt = createTime.ObjectToDate();
|
||||
where = where.And(p => p.createTime > dt);
|
||||
}
|
||||
}
|
||||
//获取数据
|
||||
var list = await _sysOperRecordServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
jm.count = list.TotalCount;
|
||||
jm.msg = "数据调用成功!";
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 首页数据============================================================
|
||||
// POST: Api/SysOperRecord/GetIndex
|
||||
/// <summary>
|
||||
/// 首页数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("首页数据")]
|
||||
public AdminUiCallBack GetIndex()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 创建数据============================================================
|
||||
// POST: Api/SysOperRecord/GetCreate
|
||||
/// <summary>
|
||||
/// 创建数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建数据")]
|
||||
public AdminUiCallBack GetCreate()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 预览数据============================================================
|
||||
// POST: Api/SysOperRecord/GetDetails/10
|
||||
/// <summary>
|
||||
/// 预览数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("预览数据")]
|
||||
public async Task<AdminUiCallBack> GetDetails([FromBody]FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysOperRecordServices.QueryByIdAsync(entity.id, false);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
jm.code = 0;
|
||||
jm.data = model;
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 选择导出============================================================
|
||||
// POST: Api/SysOperRecord/SelectExportExcel/10
|
||||
/// <summary>
|
||||
/// 选择导出
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("选择导出")]
|
||||
public async Task<AdminUiCallBack> SelectExportExcel([FromBody]FMArrayIntIds entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var mySheet = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listModel = await _sysOperRecordServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc, true);
|
||||
//给sheet1添加第一行的头部标题
|
||||
var headerRow = mySheet.CreateRow(0);
|
||||
var headerStyle = ExcelHelper.GetHeaderStyle(book);
|
||||
|
||||
var cell0 = headerRow.CreateCell(0);
|
||||
cell0.SetCellValue("主键");
|
||||
cell0.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(0, 10 * 256);
|
||||
|
||||
var cell1 = headerRow.CreateCell(1);
|
||||
cell1.SetCellValue("用户id");
|
||||
cell1.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(1, 10 * 256);
|
||||
|
||||
var cell2 = headerRow.CreateCell(2);
|
||||
cell2.SetCellValue("用户名");
|
||||
cell2.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(2, 10 * 256);
|
||||
|
||||
var cell3 = headerRow.CreateCell(3);
|
||||
cell3.SetCellValue("操作模块");
|
||||
cell3.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(3, 10 * 256);
|
||||
|
||||
var cell4 = headerRow.CreateCell(4);
|
||||
cell4.SetCellValue("操作方法");
|
||||
cell4.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(4, 10 * 256);
|
||||
|
||||
var cell5 = headerRow.CreateCell(5);
|
||||
cell5.SetCellValue("请求地址");
|
||||
cell5.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(5, 10 * 256);
|
||||
|
||||
var cell6 = headerRow.CreateCell(6);
|
||||
cell6.SetCellValue("请求方式");
|
||||
cell6.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(6, 10 * 256);
|
||||
|
||||
var cell7 = headerRow.CreateCell(7);
|
||||
cell7.SetCellValue("调用方法");
|
||||
cell7.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(7, 10 * 256);
|
||||
|
||||
var cell8 = headerRow.CreateCell(8);
|
||||
cell8.SetCellValue("请求参数");
|
||||
cell8.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(8, 10 * 256);
|
||||
|
||||
var cell9 = headerRow.CreateCell(9);
|
||||
cell9.SetCellValue("返回结果");
|
||||
cell9.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(9, 10 * 256);
|
||||
|
||||
var cell10 = headerRow.CreateCell(10);
|
||||
cell10.SetCellValue("ip地址");
|
||||
cell10.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(10, 10 * 256);
|
||||
|
||||
var cell11 = headerRow.CreateCell(11);
|
||||
cell11.SetCellValue("请求耗时,单位毫秒");
|
||||
cell11.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(11, 10 * 256);
|
||||
|
||||
var cell12 = headerRow.CreateCell(12);
|
||||
cell12.SetCellValue("状态,0成功,1异常");
|
||||
cell12.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(12, 10 * 256);
|
||||
|
||||
var cell13 = headerRow.CreateCell(13);
|
||||
cell13.SetCellValue("登录时间");
|
||||
cell13.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(13, 10 * 256);
|
||||
|
||||
headerRow.Height = 30 * 20;
|
||||
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listModel.Count; i++)
|
||||
{
|
||||
var rowTemp = mySheet.CreateRow(i + 1);
|
||||
|
||||
var rowTemp0 = rowTemp.CreateCell(0);
|
||||
rowTemp0.SetCellValue(listModel[i].id.ToString());
|
||||
rowTemp0.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp1 = rowTemp.CreateCell(1);
|
||||
rowTemp1.SetCellValue(listModel[i].userId.ToString());
|
||||
rowTemp1.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp2 = rowTemp.CreateCell(2);
|
||||
rowTemp2.SetCellValue(listModel[i].userName.ToString());
|
||||
rowTemp2.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp3 = rowTemp.CreateCell(3);
|
||||
rowTemp3.SetCellValue(listModel[i].model.ToString());
|
||||
rowTemp3.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp4 = rowTemp.CreateCell(4);
|
||||
rowTemp4.SetCellValue(listModel[i].description.ToString());
|
||||
rowTemp4.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp5 = rowTemp.CreateCell(5);
|
||||
rowTemp5.SetCellValue(listModel[i].url.ToString());
|
||||
rowTemp5.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp6 = rowTemp.CreateCell(6);
|
||||
rowTemp6.SetCellValue(listModel[i].requestMethod.ToString());
|
||||
rowTemp6.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp7 = rowTemp.CreateCell(7);
|
||||
rowTemp7.SetCellValue(listModel[i].operMethod.ToString());
|
||||
rowTemp7.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp8 = rowTemp.CreateCell(8);
|
||||
rowTemp8.SetCellValue(listModel[i].param.ToString());
|
||||
rowTemp8.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp9 = rowTemp.CreateCell(9);
|
||||
rowTemp9.SetCellValue(listModel[i].result.ToString());
|
||||
rowTemp9.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp10 = rowTemp.CreateCell(10);
|
||||
rowTemp10.SetCellValue(listModel[i].ip.ToString());
|
||||
rowTemp10.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp11 = rowTemp.CreateCell(11);
|
||||
rowTemp11.SetCellValue(listModel[i].spendTime.ToString());
|
||||
rowTemp11.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp12 = rowTemp.CreateCell(12);
|
||||
rowTemp12.SetCellValue(listModel[i].state.ToString());
|
||||
rowTemp12.CellStyle = commonCellStyle;
|
||||
|
||||
var rowTemp13 = rowTemp.CreateCell(13);
|
||||
rowTemp13.SetCellValue(listModel[i].createTime.ToString());
|
||||
rowTemp13.CellStyle = commonCellStyle;
|
||||
|
||||
}
|
||||
// 导出excel
|
||||
string webRootPath = _webHostEnvironment.WebRootPath;
|
||||
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysOperRecord导出(选择结果).xls";
|
||||
string filePath = webRootPath + tpath;
|
||||
DirectoryInfo di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists)
|
||||
{
|
||||
di.Create();
|
||||
}
|
||||
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 查询导出============================================================
|
||||
// POST: Api/SysOperRecord/QueryExportExcel/10
|
||||
/// <summary>
|
||||
/// 查询导出
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("查询导出")]
|
||||
public async Task<AdminUiCallBack> QueryExportExcel()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var where = PredicateBuilder.True<SysOperRecord>();
|
||||
//查询筛选
|
||||
|
||||
//主键 int
|
||||
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
|
||||
if (id > 0)
|
||||
{
|
||||
where = where.And(p => p.id == id);
|
||||
}
|
||||
//用户id int
|
||||
var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
|
||||
if (userId > 0)
|
||||
{
|
||||
where = where.And(p => p.userId == userId);
|
||||
}
|
||||
//用户名 nvarchar
|
||||
var userName = Request.Form["userName"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(userName))
|
||||
{
|
||||
where = where.And(p => p.userName.Contains(userName));
|
||||
}
|
||||
//操作模块 nvarchar
|
||||
var model = Request.Form["model"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(model))
|
||||
{
|
||||
where = where.And(p => p.model.Contains(model));
|
||||
}
|
||||
//操作方法 nvarchar
|
||||
var description = Request.Form["description"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(description))
|
||||
{
|
||||
where = where.And(p => p.description.Contains(description));
|
||||
}
|
||||
//请求地址 nvarchar
|
||||
var url = Request.Form["url"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
where = where.And(p => p.url.Contains(url));
|
||||
}
|
||||
//请求方式 nvarchar
|
||||
var requestMethod = Request.Form["requestMethod"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(requestMethod))
|
||||
{
|
||||
where = where.And(p => p.requestMethod.Contains(requestMethod));
|
||||
}
|
||||
//调用方法 nvarchar
|
||||
var operMethod = Request.Form["operMethod"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(operMethod))
|
||||
{
|
||||
where = where.And(p => p.operMethod.Contains(operMethod));
|
||||
}
|
||||
//请求参数 nvarchar
|
||||
var param = Request.Form["param"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(param))
|
||||
{
|
||||
where = where.And(p => p.param.Contains(param));
|
||||
}
|
||||
//返回结果 nvarchar
|
||||
var result = Request.Form["result"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(result))
|
||||
{
|
||||
where = where.And(p => p.result.Contains(result));
|
||||
}
|
||||
//ip地址 nvarchar
|
||||
var ip = Request.Form["ip"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(ip))
|
||||
{
|
||||
where = where.And(p => p.ip.Contains(ip));
|
||||
}
|
||||
//请求耗时,单位毫秒 nvarchar
|
||||
var spendTime = Request.Form["spendTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(spendTime))
|
||||
{
|
||||
where = where.And(p => p.spendTime.Contains(spendTime));
|
||||
}
|
||||
//状态,0成功,1异常 int
|
||||
var state = Request.Form["state"].FirstOrDefault().ObjectToInt(0);
|
||||
if (state > 0)
|
||||
{
|
||||
where = where.And(p => p.state == state);
|
||||
}
|
||||
//登录时间 datetime
|
||||
var createTime = Request.Form["createTime"].FirstOrDefault();
|
||||
if (!string.IsNullOrEmpty(createTime))
|
||||
{
|
||||
var dt = createTime.ObjectToDate();
|
||||
where = where.And(p => p.createTime > dt);
|
||||
}
|
||||
//获取数据
|
||||
//创建Excel文件的对象
|
||||
var book = new HSSFWorkbook();
|
||||
//添加一个sheet
|
||||
var mySheet = book.CreateSheet("Sheet1");
|
||||
//获取list数据
|
||||
var listModel = await _sysOperRecordServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc, true);
|
||||
//给sheet1添加第一行的头部标题
|
||||
var headerRow = mySheet.CreateRow(0);
|
||||
var headerStyle = ExcelHelper.GetHeaderStyle(book);
|
||||
|
||||
var cell0 = headerRow.CreateCell(0);
|
||||
cell0.SetCellValue("主键");
|
||||
cell0.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(0, 10 * 256);
|
||||
|
||||
var cell1 = headerRow.CreateCell(1);
|
||||
cell1.SetCellValue("用户id");
|
||||
cell1.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(1, 10 * 256);
|
||||
|
||||
var cell2 = headerRow.CreateCell(2);
|
||||
cell2.SetCellValue("用户名");
|
||||
cell2.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(2, 10 * 256);
|
||||
|
||||
var cell3 = headerRow.CreateCell(3);
|
||||
cell3.SetCellValue("操作模块");
|
||||
cell3.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(3, 10 * 256);
|
||||
|
||||
var cell4 = headerRow.CreateCell(4);
|
||||
cell4.SetCellValue("操作方法");
|
||||
cell4.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(4, 10 * 256);
|
||||
|
||||
var cell5 = headerRow.CreateCell(5);
|
||||
cell5.SetCellValue("请求地址");
|
||||
cell5.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(5, 10 * 256);
|
||||
|
||||
var cell6 = headerRow.CreateCell(6);
|
||||
cell6.SetCellValue("请求方式");
|
||||
cell6.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(6, 10 * 256);
|
||||
|
||||
var cell7 = headerRow.CreateCell(7);
|
||||
cell7.SetCellValue("调用方法");
|
||||
cell7.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(7, 10 * 256);
|
||||
|
||||
var cell8 = headerRow.CreateCell(8);
|
||||
cell8.SetCellValue("请求参数");
|
||||
cell8.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(8, 10 * 256);
|
||||
|
||||
var cell9 = headerRow.CreateCell(9);
|
||||
cell9.SetCellValue("返回结果");
|
||||
cell9.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(9, 10 * 256);
|
||||
|
||||
var cell10 = headerRow.CreateCell(10);
|
||||
cell10.SetCellValue("ip地址");
|
||||
cell10.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(10, 10 * 256);
|
||||
|
||||
var cell11 = headerRow.CreateCell(11);
|
||||
cell11.SetCellValue("请求耗时,单位毫秒");
|
||||
cell11.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(11, 10 * 256);
|
||||
|
||||
var cell12 = headerRow.CreateCell(12);
|
||||
cell12.SetCellValue("状态,0成功,1异常");
|
||||
cell12.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(12, 10 * 256);
|
||||
|
||||
var cell13 = headerRow.CreateCell(13);
|
||||
cell13.SetCellValue("登录时间");
|
||||
cell13.CellStyle = headerStyle;
|
||||
mySheet.SetColumnWidth(13, 10 * 256);
|
||||
|
||||
|
||||
headerRow.Height = 30 * 20;
|
||||
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
|
||||
|
||||
//将数据逐步写入sheet1各个行
|
||||
for (var i = 0; i < listModel.Count; i++)
|
||||
{
|
||||
var rowTemp = mySheet.CreateRow(i + 1);
|
||||
|
||||
|
||||
var rowTemp0 = rowTemp.CreateCell(0);
|
||||
rowTemp0.SetCellValue(listModel[i].id.ToString());
|
||||
rowTemp0.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp1 = rowTemp.CreateCell(1);
|
||||
rowTemp1.SetCellValue(listModel[i].userId.ToString());
|
||||
rowTemp1.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp2 = rowTemp.CreateCell(2);
|
||||
rowTemp2.SetCellValue(listModel[i].userName.ToString());
|
||||
rowTemp2.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp3 = rowTemp.CreateCell(3);
|
||||
rowTemp3.SetCellValue(listModel[i].model.ToString());
|
||||
rowTemp3.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp4 = rowTemp.CreateCell(4);
|
||||
rowTemp4.SetCellValue(listModel[i].description.ToString());
|
||||
rowTemp4.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp5 = rowTemp.CreateCell(5);
|
||||
rowTemp5.SetCellValue(listModel[i].url.ToString());
|
||||
rowTemp5.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp6 = rowTemp.CreateCell(6);
|
||||
rowTemp6.SetCellValue(listModel[i].requestMethod.ToString());
|
||||
rowTemp6.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp7 = rowTemp.CreateCell(7);
|
||||
rowTemp7.SetCellValue(listModel[i].operMethod.ToString());
|
||||
rowTemp7.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp8 = rowTemp.CreateCell(8);
|
||||
rowTemp8.SetCellValue(listModel[i].param.ToString());
|
||||
rowTemp8.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp9 = rowTemp.CreateCell(9);
|
||||
rowTemp9.SetCellValue(listModel[i].result.ToString());
|
||||
rowTemp9.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp10 = rowTemp.CreateCell(10);
|
||||
rowTemp10.SetCellValue(listModel[i].ip.ToString());
|
||||
rowTemp10.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp11 = rowTemp.CreateCell(11);
|
||||
rowTemp11.SetCellValue(listModel[i].spendTime.ToString());
|
||||
rowTemp11.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp12 = rowTemp.CreateCell(12);
|
||||
rowTemp12.SetCellValue(listModel[i].state.ToString());
|
||||
rowTemp12.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
|
||||
var rowTemp13 = rowTemp.CreateCell(13);
|
||||
rowTemp13.SetCellValue(listModel[i].createTime.ToString());
|
||||
rowTemp13.CellStyle = commonCellStyle;
|
||||
|
||||
|
||||
}
|
||||
// 写入到excel
|
||||
string webRootPath = _webHostEnvironment.WebRootPath;
|
||||
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
|
||||
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-SysOperRecord导出(查询结果).xls";
|
||||
string filePath = webRootPath + tpath;
|
||||
DirectoryInfo di = new DirectoryInfo(filePath);
|
||||
if (!di.Exists)
|
||||
{
|
||||
di.Create();
|
||||
}
|
||||
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
|
||||
book.Write(fileHssf);
|
||||
fileHssf.Close();
|
||||
|
||||
jm.code = 0;
|
||||
jm.msg = GlobalConstVars.ExcelExportSuccess;
|
||||
jm.data = tpath + fileName;
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,292 @@
|
||||
/***********************************************************************
|
||||
* Project: CoreCms
|
||||
* ProjectName: 核心内容管理系统
|
||||
* Web: https://www.corecms.net
|
||||
* Author: 大灰灰
|
||||
* Email: jianweie@163.com
|
||||
* CreateTime: 2021/1/31 21:45:10
|
||||
* Description: 暂无
|
||||
***********************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Threading.Tasks;
|
||||
using CoreCms.Net.Configuration;
|
||||
using CoreCms.Net.Model.Entities;
|
||||
using CoreCms.Net.Model.Entities.Expression;
|
||||
using CoreCms.Net.Model.FromBody;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Filter;
|
||||
using CoreCms.Net.Loging;
|
||||
using CoreCms.Net.IServices;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using SqlSugar;
|
||||
|
||||
namespace CoreCms.Net.Web.Admin.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织机构表
|
||||
///</summary>
|
||||
[Description("组织机构表")]
|
||||
[Route("api/[controller]/[action]")]
|
||||
[ApiController]
|
||||
[RequiredErrorForAdmin]
|
||||
[Authorize(Permissions.Name)]
|
||||
public class SysOrganizationController : ControllerBase
|
||||
{
|
||||
private readonly IWebHostEnvironment _webHostEnvironment;
|
||||
private readonly ISysOrganizationServices _sysOrganizationServices;
|
||||
private readonly ISysDictionaryServices _sysDictionaryServices;
|
||||
private readonly ISysDictionaryDataServices _sysDictionaryDataServices;
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
///</summary>
|
||||
public SysOrganizationController(IWebHostEnvironment webHostEnvironment
|
||||
, ISysOrganizationServices sysOrganizationServices
|
||||
, ISysDictionaryServices sysDictionaryServices
|
||||
, ISysDictionaryDataServices sysDictionaryDataServices
|
||||
)
|
||||
{
|
||||
_webHostEnvironment = webHostEnvironment;
|
||||
_sysOrganizationServices = sysOrganizationServices;
|
||||
_sysDictionaryServices = sysDictionaryServices;
|
||||
_sysDictionaryDataServices = sysDictionaryDataServices;
|
||||
}
|
||||
|
||||
#region 获取列表============================================================
|
||||
// POST: Api/SysOrganization/GetPageList
|
||||
/// <summary>
|
||||
/// 获取列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("获取列表")]
|
||||
public async Task<AdminUiCallBack> GetPageList()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
//获取数据
|
||||
var list = await _sysOrganizationServices.QueryAsync();
|
||||
//返回数据
|
||||
jm.data = list;
|
||||
jm.code = 0;
|
||||
jm.count = list.Count;
|
||||
jm.msg = "数据调用成功!";
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 首页数据============================================================
|
||||
// POST: Api/SysOrganization/GetIndex
|
||||
/// <summary>
|
||||
/// 首页数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("首页数据")]
|
||||
public AdminUiCallBack GetIndex()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 创建数据============================================================
|
||||
// POST: Api/SysOrganization/GetCreate
|
||||
/// <summary>
|
||||
/// 创建数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建数据")]
|
||||
public async Task<AdminUiCallBack> GetCreate()
|
||||
{
|
||||
//返回数据
|
||||
var jm = new AdminUiCallBack { code = 0 };
|
||||
|
||||
var dict = await _sysDictionaryServices.QueryByClauseAsync(p => p.dictCode == "organization_type");
|
||||
var dictData = new List<SysDictionaryData>();
|
||||
if (dict != null)
|
||||
{
|
||||
dictData = await _sysDictionaryDataServices.QueryListByClauseAsync(p => p.dictId == dict.id);
|
||||
}
|
||||
jm.data = new
|
||||
{
|
||||
dictData
|
||||
};
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 创建提交============================================================
|
||||
// POST: Api/SysOrganization/DoCreate
|
||||
/// <summary>
|
||||
/// 创建提交
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("创建提交")]
|
||||
public async Task<AdminUiCallBack> DoCreate([FromBody] SysOrganization entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var bl = await _sysOrganizationServices.InsertAsync(entity) > 0;
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure);
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 编辑数据============================================================
|
||||
// POST: Api/SysOrganization/GetEdit
|
||||
/// <summary>
|
||||
/// 编辑数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("编辑数据")]
|
||||
public async Task<AdminUiCallBack> GetEdit([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysOrganizationServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
|
||||
var dict = await _sysDictionaryServices.QueryByClauseAsync(p => p.dictCode == "organization_type");
|
||||
var dictData = new List<SysDictionaryData>();
|
||||
if (dict != null)
|
||||
{
|
||||
dictData = await _sysDictionaryDataServices.QueryListByClauseAsync(p => p.dictId == dict.id);
|
||||
}
|
||||
jm.code = 0;
|
||||
jm.data = new
|
||||
{
|
||||
model,
|
||||
dictData
|
||||
};
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 编辑提交============================================================
|
||||
// POST: Api/SysOrganization/Edit
|
||||
/// <summary>
|
||||
/// 编辑提交
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("编辑提交")]
|
||||
public async Task<AdminUiCallBack> DoEdit([FromBody] SysOrganization entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var oldModel = await _sysOrganizationServices.QueryByIdAsync(entity.id);
|
||||
if (oldModel == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
//事物处理过程开始
|
||||
//oldModel.id = entity.id;
|
||||
oldModel.parentId = entity.parentId;
|
||||
oldModel.organizationName = entity.organizationName;
|
||||
oldModel.organizationFullName = entity.organizationFullName;
|
||||
oldModel.organizationType = entity.organizationType;
|
||||
//oldModel.leaderId = entity.leaderId;
|
||||
oldModel.sortNumber = entity.sortNumber;
|
||||
oldModel.comments = entity.comments;
|
||||
oldModel.deleted = entity.deleted;
|
||||
//oldModel.createTime = entity.createTime;
|
||||
oldModel.updateTime = DateTime.Now;
|
||||
|
||||
//事物处理过程结束
|
||||
var bl = await _sysOrganizationServices.UpdateAsync(oldModel);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 删除数据============================================================
|
||||
// POST: Api/SysOrganization/DoDelete/10
|
||||
/// <summary>
|
||||
/// 单选删除
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("单选删除")]
|
||||
public async Task<AdminUiCallBack> DoDelete([FromBody] FMIntId entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var model = await _sysOrganizationServices.QueryByIdAsync(entity.id);
|
||||
if (model == null)
|
||||
{
|
||||
jm.msg = GlobalConstVars.DataisNo;
|
||||
return jm;
|
||||
}
|
||||
var bl = await _sysOrganizationServices.DeleteByIdAsync(entity.id);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure;
|
||||
return jm;
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
//用户数据==============================================================================
|
||||
|
||||
|
||||
#region 设置leader============================================================
|
||||
// POST: Api/SysOrganization/DoSetSysOrganizationLeader/10
|
||||
/// <summary>
|
||||
/// 设置leader
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Description("设置leader")]
|
||||
public async Task<AdminUiCallBack> DoSetSysOrganizationLeader([FromBody] FMDoSetSysOrganizationLeaderPost entity)
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var oldModel = await _sysOrganizationServices.QueryByIdAsync(entity.organizationId);
|
||||
if (oldModel == null)
|
||||
{
|
||||
jm.msg = "不存在此信息";
|
||||
return jm;
|
||||
}
|
||||
oldModel.leaderId = entity.leaderId;
|
||||
var bl = await _sysOrganizationServices.UpdateAsync(oldModel);
|
||||
jm.code = bl ? 0 : 1;
|
||||
jm.msg = bl ? GlobalConstVars.SetDataSuccess : GlobalConstVars.SetDataFailure;
|
||||
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
504
CoreCms.Net.Web.Admin/Controllers/System/SysRoleController.cs
Normal file
504
CoreCms.Net.Web.Admin/Controllers/System/SysRoleController.cs
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
540
CoreCms.Net.Web.Admin/Controllers/System/SysTaskLogController.cs
Normal file
540
CoreCms.Net.Web.Admin/Controllers/System/SysTaskLogController.cs
Normal 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
|
||||
}
|
||||
}
|
||||
565
CoreCms.Net.Web.Admin/Controllers/System/SysUserController.cs
Normal file
565
CoreCms.Net.Web.Admin/Controllers/System/SysUserController.cs
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user