:recycle:代码重构

This commit is contained in:
不做码农
2023-09-02 17:55:34 +08:00
parent c65952202a
commit be515339fe
176 changed files with 372 additions and 245 deletions
@@ -1,204 +0,0 @@
using Microsoft.AspNetCore.Mvc;
using MiniExcelLibs;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System.Web;
using Io = System.IO;
namespace ZR.Admin.WebApi.Controllers
{
public class BaseController : ControllerBase
{
public static string TIME_FORMAT_FULL = "yyyy-MM-dd HH:mm:ss";
/// <summary>
/// 返回成功封装
/// </summary>
/// <param name="data"></param>
/// <param name="timeFormatStr"></param>
/// <returns></returns>
protected IActionResult SUCCESS(object data, string timeFormatStr = "yyyy-MM-dd HH:mm:ss")
{
string jsonStr = GetJsonStr(GetApiResult(data != null ? ResultCode.SUCCESS : ResultCode.NO_DATA, data), timeFormatStr);
return Content(jsonStr, "application/json");
}
/// <summary>
/// json输出带时间格式的
/// </summary>
/// <param name="apiResult"></param>
/// <returns></returns>
protected IActionResult ToResponse(ApiResult apiResult)
{
string jsonStr = GetJsonStr(apiResult, TIME_FORMAT_FULL);
return Content(jsonStr, "application/json");
}
protected IActionResult ToResponse(long rows, string timeFormatStr = "yyyy-MM-dd HH:mm:ss")
{
string jsonStr = GetJsonStr(ToJson(rows), timeFormatStr);
return Content(jsonStr, "application/json");
}
protected IActionResult ToResponse(ResultCode resultCode, string msg = "")
{
return ToResponse(new ApiResult((int)resultCode, msg));
}
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="path">完整文件路径</param>
/// <param name="fileName">带扩展文件名</param>
/// <returns></returns>
protected IActionResult ExportExcel(string path, string fileName)
{
//var webHostEnvironment = App.WebHostEnvironment;
if (!Path.Exists(path))
{
throw new CustomException(fileName + "文件不存在");
}
var stream = Io.File.OpenRead(path); //创建文件流
Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", HttpUtility.UrlEncode(fileName));
}
#region 方法
/// <summary>
/// 响应返回结果
/// </summary>
/// <param name="rows">受影响行数</param>
/// <param name="data"></param>
/// <returns></returns>
protected ApiResult ToJson(long rows, object? data = null)
{
return rows > 0 ? ApiResult.Success("success", data) : GetApiResult(ResultCode.FAIL);
}
/// <summary>
/// 全局Code使用
/// </summary>
/// <param name="resultCode"></param>
/// <param name="data"></param>
/// <returns></returns>
protected ApiResult GetApiResult(ResultCode resultCode, object? data = null)
{
var msg = resultCode.GetDescription();
return new ApiResult((int)resultCode, msg, data);
}
/// <summary>
///
/// </summary>
/// <param name="apiResult"></param>
/// <param name="timeFormatStr"></param>
/// <returns></returns>
private static string GetJsonStr(ApiResult apiResult, string timeFormatStr)
{
if (string.IsNullOrEmpty(timeFormatStr))
{
timeFormatStr = TIME_FORMAT_FULL;
}
var serializerSettings = new JsonSerializerSettings
{
// 设置为驼峰命名
ContractResolver = new CamelCasePropertyNamesContractResolver(),
DateFormatString = timeFormatStr
};
return JsonConvert.SerializeObject(apiResult, Formatting.Indented, serializerSettings);
}
#endregion
/// <summary>
/// 导出Excel
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="sheetName"></param>
/// <param name="fileName"></param>
protected string ExportExcel<T>(List<T> list, string sheetName, string fileName)
{
return ExportExcelMini(list, sheetName, fileName).Item1;
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="sheetName"></param>
/// <param name="fileName"></param>
/// <returns></returns>
protected (string, string) ExportExcelMini<T>(List<T> list, string sheetName, string fileName)
{
IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
string sFileName = $"{fileName}{DateTime.Now:MM-dd-HHmmss}.xlsx";
string fullPath = Path.Combine(webHostEnvironment.WebRootPath, "export", sFileName);
Directory.CreateDirectory(Path.GetDirectoryName(fullPath));
MiniExcel.SaveAs(fullPath, list, sheetName: sheetName);
return (sFileName, fullPath);
}
/// <summary>
/// 导出多个工作表(Sheet)
/// </summary>
/// <param name="sheets"></param>
/// <param name="fileName"></param>
/// <returns></returns>
protected (string, string) ExportExcelMini(Dictionary<string, object> sheets, string fileName)
{
IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
string sFileName = $"{fileName}{DateTime.Now:MM-dd-HHmmss}.xlsx";
string fullPath = Path.Combine(webHostEnvironment.WebRootPath, "export", sFileName);
Directory.CreateDirectory(Path.GetDirectoryName(fullPath));
MiniExcel.SaveAs(fullPath, sheets);
return (sFileName, fullPath);
}
/// <summary>
/// 下载导入模板
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="list">空数据类型集合</param>
/// <param name="fileName">下载文件名</param>
/// <returns></returns>
protected (string, string) DownloadImportTemplate<T>(List<T> list, string fileName)
{
IWebHostEnvironment webHostEnvironment = App.WebHostEnvironment;
string sFileName = $"{fileName}.xlsx";
string fullPath = Path.Combine(webHostEnvironment.WebRootPath, "ImportTemplate", sFileName);
//不存在模板创建模板
if (!Directory.Exists(fullPath))
{
Directory.CreateDirectory(Path.GetDirectoryName(fullPath));
MiniExcel.SaveAs(fullPath, list, overwriteFile: true);
}
return (sFileName, fullPath);
}
/// <summary>
/// 下载指定文件模板
/// </summary>
/// <param name="fileName">下载文件名</param>
/// <returns></returns>
protected (string, string) DownloadImportTemplate(string fileName)
{
IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
string sFileName = $"{fileName}.xlsx";
string fullPath = Path.Combine(webHostEnvironment.WebRootPath, "ImportTemplate", sFileName);
return (sFileName, fullPath);
}
}
}
@@ -1,10 +1,9 @@
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.System;
using ZR.Service.IService;
using ZR.Service.System;
using ZR.Service.System.IService;
@@ -14,7 +13,6 @@ namespace ZR.Admin.WebApi.Controllers
/// 公共模块
/// </summary>
[Route("[controller]/[action]")]
[Tags("公共模块Common")]
[ApiExplorerSettings(GroupName = "sys")]
public class CommonController : BaseController
{
@@ -23,18 +21,22 @@ namespace ZR.Admin.WebApi.Controllers
private IWebHostEnvironment WebHostEnvironment;
private ISysFileService SysFileService;
private IHelloService HelloService;
public CommonController(
IOptions<OptionsSetting> options,
IWebHostEnvironment webHostEnvironment,
ISysFileService fileService)
ISysFileService fileService,
IHelloService helloService)
{
WebHostEnvironment = webHostEnvironment;
SysFileService = fileService;
OptionsSetting = options.Value;
HelloService = helloService;
}
/// <summary>
/// hello
/// home
/// </summary>
/// <returns></returns>
[Route("/")]
@@ -45,6 +47,18 @@ namespace ZR.Admin.WebApi.Controllers
"如果觉得项目有用,打赏作者喝杯咖啡作为奖励\n☛☛http://www.izhaorui.cn/doc/support.html\n");
}
/// <summary>
/// hello
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
[Route("/hello")]
[HttpGet]
public IActionResult Hello(string name)
{
return Ok(HelloService.SayHello(name));
}
/// <summary>
/// 企业消息测试
/// </summary>
@@ -11,7 +11,6 @@ namespace ZR.Admin.WebApi.Controllers
/// 文章目录Controller
/// </summary>
[Route("article/ArticleCategory")]
[Tags("文章目录")]
[ApiExplorerSettings(GroupName = "article")]
public class ArticleCategoryController : BaseController
{
@@ -13,7 +13,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("article")]
[Tags("文章管理")]
[ApiExplorerSettings(GroupName = "article")]
public class ArticleController : BaseController
{
@@ -89,7 +88,7 @@ namespace ZR.Admin.WebApi.Controllers
var model = response.Adapt<ArticleDto>();
if (model.IsPublic == 0 && userId != model.UserId)
{
return ToResponse(Infrastructure.ResultCode.CUSTOM_ERROR, "访问失败");
return ToResponse(ResultCode.CUSTOM_ERROR, "访问失败");
}
if (model != null)
{
@@ -1,5 +1,4 @@
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
@@ -18,7 +17,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("tool/gen")]
[Tags("代码生成CodeGenerator")]
[ApiExplorerSettings(GroupName = "sys")]
public class CodeGeneratorController : BaseController
{
@@ -14,7 +14,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("system/CommonLang")]
[Tags("多语言配置CommonLang")]
[ApiExplorerSettings(GroupName = "sys")]
public class CommonLangController : BaseController
{
@@ -14,7 +14,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("system/config")]
[Tags("系统配置SysConfig")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysConfigController : BaseController
{
@@ -1,6 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using System.Collections;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.System;
using ZR.Model.System.Dto;
@@ -13,7 +12,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/dept")]
[Tags("部门管理SysDept")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysDeptController : BaseController
{
@@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model;
using ZR.Model.System;
@@ -13,7 +12,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/dict/data")]
[Tags("字典数据SysDictData")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysDictDataController : BaseController
{
@@ -13,7 +13,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/dict/type")]
[Tags("字典数据类型SysDictType")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysDictTypeController : BaseController
{
@@ -12,7 +12,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("tool/file")]
[Tags(" 文件存储SysFile")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysFileController : BaseController
{
@@ -12,7 +12,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <summary>
/// 登录
/// </summary>
[Tags("登录SysLogin")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysLoginController : BaseController
{
@@ -160,7 +159,7 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <returns></returns>
[HttpPost("/register")]
[AllowAnonymous]
[Log(Title = "注册", BusinessType = Infrastructure.Enums.BusinessType.INSERT)]
[Log(Title = "注册", BusinessType = BusinessType.INSERT)]
public IActionResult Register([FromBody] RegisterDto dto)
{
SysConfig config = sysConfigService.GetSysConfigByKey("sys.account.register");
@@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.System;
using ZR.Model.System.Dto;
@@ -12,7 +11,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("/system/menu")]
[Tags("菜单管理SysMenu")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysMenuController : BaseController
{
@@ -1,8 +1,6 @@
using Infrastructure.Constant;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.SignalR;
using SqlSugar;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Admin.WebApi.Hubs;
using ZR.Model;
@@ -17,7 +15,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/notice")]
[Tags("系统通知SysNotice")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysNoticeController : BaseController
{
@@ -1,7 +1,5 @@
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model;
using ZR.Model.System;
@@ -14,7 +12,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/post")]
[Tags("岗位管理SysPost")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysPostController : BaseController
{
@@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.System;
using ZR.Model.System.Dto;
@@ -12,7 +11,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/user/profile")]
[Tags("个人中心SysProfile")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysProfileController : BaseController
{
@@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model;
using ZR.Model.System;
@@ -13,7 +12,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/role")]
[Tags("角色管理SysRole")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysRoleController : BaseController
{
@@ -14,7 +14,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/user")]
[Tags("用户管理SysUser")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysUserController : BaseController
{
@@ -10,7 +10,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("system/userRole")]
[Tags("用户角色管理SysUserRole")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysUserRoleController : BaseController
{
@@ -45,7 +44,7 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <returns></returns>
[HttpPost("create")]
[ActionPermissionFilter(Permission = "system:roleusers:add")]
[Log(Title = "添加角色用户", BusinessType = Infrastructure.Enums.BusinessType.INSERT)]
[Log(Title = "添加角色用户", BusinessType = BusinessType.INSERT)]
public IActionResult Create([FromBody] RoleUsersCreateDto roleUsersCreateDto)
{
var response = SysUserRoleService.InsertRoleUser(roleUsersCreateDto);
@@ -60,7 +59,7 @@ namespace ZR.Admin.WebApi.Controllers.System
/// <returns></returns>
[HttpPost("delete")]
[ActionPermissionFilter(Permission = "system:roleusers:remove")]
[Log(Title = "删除角色用户", BusinessType = Infrastructure.Enums.BusinessType.DELETE)]
[Log(Title = "删除角色用户", BusinessType = BusinessType.DELETE)]
public IActionResult Delete([FromBody] RoleUsersCreateDto roleUsersCreateDto)
{
return SUCCESS(SysUserRoleService.DeleteRoleUserByUserIds(roleUsersCreateDto.RoleId, roleUsersCreateDto.UserIds));
@@ -1,8 +1,6 @@
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using Quartz;
using SqlSugar;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.System;
using ZR.Model.System.Dto;
@@ -16,7 +14,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("system/Tasks")]
[Tags("计划Tasks")]
[ApiExplorerSettings(GroupName = "sys")]
public class TasksController : BaseController
{
@@ -1,5 +1,4 @@
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using ZR.Admin.WebApi.Filters;
using ZR.Model;
@@ -14,7 +13,6 @@ namespace ZR.Admin.WebApi.Controllers.System
/// </summary>
[Verify]
[Route("/monitor/jobLog")]
[Tags("任务日志TasksLog")]
[ApiExplorerSettings(GroupName = "sys")]
public class TasksLogController : BaseController
{
@@ -9,7 +9,6 @@ namespace ZR.Admin.WebApi.Controllers.monitor
/// <summary>
/// 系统监控
/// </summary>
[Tags("系统监控Monitor")]
[ApiExplorerSettings(GroupName = "sys")]
public class MonitorController : BaseController
{
@@ -11,7 +11,6 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
[Verify]
[Route("monitor/SqlDiffLog")]
[Tags("差异日志SqlDiffLog")]
[ApiExplorerSettings(GroupName = "sys")]
public class SqlDiffLogController : BaseController
{
@@ -13,7 +13,6 @@ namespace ZR.Admin.WebApi.Controllers.monitor
/// </summary>
[Verify]
[Route("/monitor/logininfor")]
[Tags("登录日志SysLogininfor")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysLogininforController : BaseController
{
@@ -11,7 +11,6 @@ namespace ZR.Admin.WebApi.Controllers.monitor
/// </summary>
[Verify]
[Route("/monitor/operlog")]
[Tags("操作日志SysOperlog")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysOperlogController : BaseController
{
@@ -67,7 +66,7 @@ namespace ZR.Admin.WebApi.Controllers.monitor
{
if (!HttpContextExtension.IsAdmin(HttpContext))
{
return ToResponse(Infrastructure.ResultCode.CUSTOM_ERROR,"操作失败");
return ToResponse(ResultCode.CUSTOM_ERROR,"操作失败");
}
sysOperLogService.CleanOperLog();
@@ -7,9 +7,11 @@ using ZR.Model.System.Dto;
namespace ZR.Admin.WebApi.Controllers.monitor
{
/// <summary>
/// 在线用户
/// </summary>
[Verify]
[Route("monitor/online")]
[Tags("在线用户SysUserOnline")]
[ApiExplorerSettings(GroupName = "sys")]
public class SysUserOnlineController : BaseController
{
@@ -1,5 +1,4 @@
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using System.Web;
namespace ZR.Admin.WebApi.Controllers
@@ -11,9 +10,6 @@ namespace ZR.Admin.WebApi.Controllers
[AllowAnonymous]
public class WxOpenController : BaseController
{
private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
public WxOpenController() { }
/// <summary>
/// 获取签名
/// </summary>