using AutoMapper; using Cksoft.Data; using Cksoft.Data.Repository; using Cksoft.Unity; using Cksoft.Unity.Log4NetConfig; using DllEapCommon.NPOI; using DllEapDal; using DllEapEntity; using DllEapEntity.Dtos; using DllEapEntity.ExportDtos; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; namespace DllEapBll.Controllers { /// /// 机型 /// [Authorize] [ApiController] [Route("eap/api/[controller]/[action]")] public class MacModelController : ControllerBase { private IMapper _mapper; public MacModelController(IMapper mapper) { _mapper = mapper; } /// /// 机型列表 /// /// /// /// /// /// /// [HttpGet] public LayuiModel Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "ID", string sortOrder = "ascend") { if (sortOrder == "descend") { sortOrder = "desc"; } else { sortOrder = "asc"; } int start, end; start = (pageIndex - 1) * pageSize + 1; end = start + pageSize; using (IDatabase db = DbFactory.Base("eapslave")) { db.BeginTrans(); var dal = new MacModelDal(db); var total = dal.GetCount(filter); string errorinfo = string.Empty; var roles = dal.Get(start, pageSize, sortOrder, sortField, filter, errorinfo); return new LayuiModel { code = 1, count = total, data = roles, msg = "" }; } } /// /// 详情 /// /// /// [HttpGet] public MacModel GetSingle(int id) { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MacModelDal(db); return dal.Get(id); } } /// /// 新增/修改 /// /// /// [HttpPost] public EapResponse Add([FromBody] MacModel programMst) { string usercode = Request.Headers["usercode"]; using (IDatabase db = DbFactory.Base("eap")) { db.BeginTrans(); var dal = new MacModelDal(db); string errorinfo = string.Empty; var response = new EapResponse() { Code = 1, Msg = string.Empty }; int id = -1; if (programMst.ID == 0) { id = dal.Add(programMst, usercode, ref errorinfo); } else { id = dal.Update(programMst, usercode, ref errorinfo); } if (id < 0) { db.Rollback(); response.Code = -1; response.Msg = errorinfo; } else { db.Commit(); if (programMst.ID == 0) { LogHelper.LogFatal("新增MacModel-->" + Json.ToJson(programMst), "用户操作", programMst.RecCode); } else LogHelper.LogFatal("修改MacModel-->" + Json.ToJson(programMst), "用户操作", programMst.RecCode); } response.Id = id; return response; } } /// /// 删除 /// /// /// [HttpPost] public EapResponse Delete([FromBody] int id) { IDatabase db = null; string errormsg = string.Empty; try { db = DbFactory.Base("eap"); var dal = new MacModelDal(db); db.BeginTrans(); var model = dal.Get(id); var res = dal.Delete(id, ref errormsg); if (res < 0) { db.Rollback(); return new EapResponse() { Code = -1, Msg = errormsg }; } db.Commit(); LogHelper.LogFatal("删除MacModel-->:" + Json.ToJson(model), "用户操作", Request.Headers["usercode"]); return new EapResponse() { Code = 1, Msg = "" }; } catch (Exception e) { errormsg = e.Message; return new EapResponse { Code = -1, Msg = errormsg }; } finally { if (db != null) db.Close(); } } /// /// 获取机型 /// /// [HttpGet] public IEnumerable GetMacModels() { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MacModelDal(db); var entities = dal.Get(1, 1000, "asc", "a.id", "", "").OrderBy(c => c.ID).Select(c => new { Label = c.FCode, Value = c.ID }); return entities; } } /// /// 获取机型下拉框 /// /// [HttpGet] public IEnumerable> GetMacModelSelect() { using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MacModelDal(db); string errorinfo = string.Empty; var roles = dal.GetAllMacmodels(string.Empty, ref errorinfo); if (roles != null && roles.Count() > 0) { var selects = roles.Select(c => new SelectDto { Label = c.FCode, Value = c.ID }).ToList(); selects.Insert(0, new SelectDto { Label = "全部", Value = null, }); return selects; } return null; } } /// /// 导出 /// /// /// [HttpPost] public async Task Export([FromBody] dynamic filterInfo) { string errorinfo = string.Empty; using (IDatabase db = DbFactory.Base("eapslave")) { var dal = new MacModelDal(db, _mapper); var filter = Convert.ToString(filterInfo.filter); var models = await dal.GetExportData(filter); var book = DataExportHelper.EntityToExcel(models); MemoryStream ms = new MemoryStream(); ms.Position = 0; book.Write(ms); ms.Dispose(); ms.Close(); return File(ms.ToArray(), "application/octet-stream"); } } } }