using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Threading.Tasks; using SqlSugar; using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; using {ModelsNamespace}.Dto; using {ModelsNamespace}.Models; using {ServicesNamespace}.Business; using {ApiControllerNamespace}.Extensions; using {ApiControllerNamespace}.Filters; using ZR.Common; using Infrastructure.Extensions; using System.Linq; namespace {ApiControllerNamespace}.Controllers { /// /// {FunctionName}Controller /// /// @author {Author} /// @date {DateTime} /// [Verify] [Route("{ModuleName}/{ModelName}")] public class {ModelName}Controller: BaseController { /// /// {FunctionName}接口 /// private readonly I{ModelName}Service _{ModelName}Service; public {ModelName}Controller(I{ModelName}Service {ModelName}Service) { _{ModelName}Service = {ModelName}Service; } /// /// 查询{FunctionName}列表 /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "{Permission}:list")] public IActionResult Query{ModelName}([FromQuery] {ModelName}QueryDto parm) { //开始拼装查询条件 var predicate = Expressionable.Create<{ModelName}>(); //TODO 自己实现搜索条件查询语法参考Sqlsugar,默认查询所有 //predicate = predicate.And(m => m.Name.Contains(parm.Name)); {QueryCondition} var response = _{ModelName}Service.GetPages(predicate.ToExpression(), parm); return SUCCESS(response); } /// /// 查询{FunctionName}详情 /// /// /// [HttpGet("{{PrimaryKey}}")] [ActionPermissionFilter(Permission = "{Permission}:query")] public IActionResult Get{ModelName}({PKCsharpType} {PrimaryKey}) { var response = _{ModelName}Service.GetFirst(x => x.{PrimaryKey} == {PrimaryKey}); return SUCCESS(response); } /// /// 添加{FunctionName} /// /// [HttpPost] [ActionPermissionFilter(Permission = "{Permission}:add")] [Log(Title = "{FunctionName}", BusinessType = BusinessType.INSERT)] public IActionResult Add{ModelName}([FromBody] {ModelName}Dto parm) { if (parm == null) { throw new CustomException("请求参数错误"); } //从 Dto 映射到 实体 var model = parm.Adapt<{ModelName}>().ToCreate(HttpContext); return SUCCESS(_{ModelName}Service.Insert(model, it => new { {InsertColumn} })); } /// /// 更新{FunctionName} /// /// [HttpPut] [ActionPermissionFilter(Permission = "{Permission}:update")] [Log(Title = "{FunctionName}", BusinessType = BusinessType.UPDATE)] public IActionResult Update{ModelName}([FromBody] {ModelName}Dto parm) { if (parm == null) { throw new CustomException("请求实体不能为空"); } //从 Dto 映射到 实体 var model = parm.Adapt<{ModelName}>().ToUpdate(HttpContext); var response = _{ModelName}Service.Update(w => w.{PrimaryKey} == model.{PrimaryKey}, it => new {ModelName}() { //Update 字段映射 {UpdateColumn} }); return SUCCESS(response); } /// /// 删除{FunctionName} /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "{Permission}:delete")] [Log(Title = "{FunctionName}", BusinessType = BusinessType.DELETE)] public IActionResult Delete{ModelName}(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _{ModelName}Service.Delete(idsArr); return SUCCESS(response); } /// /// {FunctionName}导出 /// /// [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "{FunctionName}")] [HttpGet("export")] [ActionPermissionFilter(Permission = "{Permission}:export")] public IActionResult Export() { var list = _{ModelName}Service.GetAll(); string sFileName = ExportExcel(list, "{ModelName}", "{FunctionName}"); return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); } } }