using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Threading.Tasks; using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; using ZR.Model.Dto; using ZR.Model.Models; using ZR.Service.Business.IBusinessService; using ZR.Admin.WebApi.Extensions; using ZR.Admin.WebApi.Filters; using ZR.Common; using Infrastructure.Extensions; using System.Linq; namespace ZR.Admin.WebApi.Controllers { /// /// 演示Controller /// /// @author zz /// @date 2022-03-31 /// [Verify] [Route("business/GenDemo")] public class GenDemoController : BaseController { /// /// 演示接口 /// private readonly IGenDemoService _GenDemoService; public GenDemoController(IGenDemoService GenDemoService) { _GenDemoService = GenDemoService; } /// /// 查询演示列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "business:gendemo:list")] public IActionResult QueryGenDemo([FromQuery] GenDemoQueryDto parm) { var response = _GenDemoService.GetList(parm); return SUCCESS(response); } /// /// 查询演示详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "business:gendemo:query")] public IActionResult GetGenDemo(int Id) { var response = _GenDemoService.GetFirst(x => x.Id == Id); return SUCCESS(response); } /// /// 添加演示 /// /// [HttpPost] [ActionPermissionFilter(Permission = "business:gendemo:add")] [Log(Title = "演示", BusinessType = BusinessType.INSERT)] public IActionResult AddGenDemo([FromBody] GenDemoDto parm) { if (parm == null) { throw new CustomException("请求参数错误"); } //从 Dto 映射到 实体 var modal = parm.Adapt().ToCreate(HttpContext); var response = _GenDemoService.Insert(modal, it => new { it.Name, it.Icon, it.ShowStatus, it.Sex, it.Sort, it.Remark, it.BeginTime, it.EndTime, it.Feature, }); return ToResponse(response); } /// /// 更新演示 /// /// [HttpPut] [ActionPermissionFilter(Permission = "business:gendemo:edit")] [Log(Title = "演示", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateGenDemo([FromBody] GenDemoDto parm) { if (parm == null) { throw new CustomException("请求实体不能为空"); } //从 Dto 映射到 实体 var modal = parm.Adapt().ToUpdate(HttpContext); var response = _GenDemoService.Update(w => w.Id == modal.Id, it => new GenDemo() { //Update 字段映射 Name = modal.Name, Icon = modal.Icon, ShowStatus = modal.ShowStatus, Sex = modal.Sex, Sort = modal.Sort, Remark = modal.Remark, BeginTime = modal.BeginTime, EndTime = modal.EndTime, Feature = modal.Feature, }); return ToResponse(response); } /// /// 删除演示 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "business:gendemo:delete")] [Log(Title = "演示", BusinessType = BusinessType.DELETE)] public IActionResult DeleteGenDemo(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _GenDemoService.Delete(idsArr); return ToResponse(response); } /// /// 导出演示 /// /// [Log(Title = "演示", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)] [HttpGet("export")] [ActionPermissionFilter(Permission = "business:gendemo:export")] public IActionResult Export([FromQuery] GenDemoQueryDto parm) { parm.PageSize = 10000; var list = _GenDemoService.GetList(parm).Result; string sFileName = ExportExcel(list, "GenDemo", "演示"); return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); } } }