using System; using System.Collections.Generic; using System.Common; using System.IRepositories; using System.Linq; using System.Model; using System.Security.Claims; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; using TVShoppingCallCenter_ZLJ.Models.Inputs; namespace TVShoppingCallCenter_ZLJ.Controllers.System { [Authorize] [Produces("application/json")] [Route("api/[controller]")] public class SysConfigController : BaseController { private readonly ISys_SystemConfigRepository _sys_sysconfigRepository; public SysConfigController(ISys_SystemConfigRepository sys_sysconfigRepository) { _sys_sysconfigRepository = sys_sysconfigRepository; } /// /// 获取基础数据列表 /// /// /// [HttpGet("getlistbypage")] public async Task GetListsByPage(string key, int pageindex = 1, int pagesize = 20) { List conModels = new List(); #region 条件筛选 conModels.Add(new ConditionalModel() { FieldName = "F_State", ConditionalType = ConditionalType.Equal, FieldValue = ((int)EnumDelState.Enabled).ToString() }); if (!string.IsNullOrEmpty(key)) { conModels.Add(new ConditionalCollections() { ConditionalList = new List>() { new KeyValuePair(WhereType.And, new ConditionalModel() { FieldName = "F_ParamCode", ConditionalType = ConditionalType.Like, FieldValue = key }), new KeyValuePair( WhereType.Or , new ConditionalModel() { FieldName = "F_ParamValue", ConditionalType = ConditionalType.Like, FieldValue = key }), new KeyValuePair( WhereType.Or, new ConditionalModel() { FieldName = "F_ParamDes", ConditionalType = ConditionalType.Like, FieldValue = key }) } }); } #endregion int recordCount = 0; var list = await _sys_sysconfigRepository.GetListByPage(conModels, new MyPageModel() { PageIndex = pageindex, PageSize = pagesize, PageCount = recordCount }, "F_CreateOn desc"); return Success("成功", list); } /// /// 获取实体 /// [HttpGet("getdetails")] public async Task GetDetails(int id) { if (id > 0) { var dModel = await _sys_sysconfigRepository.GetSingle(x => x.F_ParamId == id && x.F_State == (int)EnumDelState.Enabled); if (dModel != null) { return Success("获取基础数据成功", dModel); } else { return Error("获取基础数据失败"); } } else { return Error("获取参数失败"); } } /// /// 添加基础数据 /// [HttpPost("add")] public async Task Add(SysConfigInput input) { #region 验证 if (string.IsNullOrWhiteSpace(input.code)) { return Error("编号不能为空"); } if (string.IsNullOrWhiteSpace(input.value)) { return Error("参数值不能为空"); } if (await GetExistByCodeAsync(input.code, input.id)) return Error("基础数据编号必须唯一,请重新输入!"); #endregion T_Sys_SystemConfig clmodel = new T_Sys_SystemConfig(); clmodel.F_ParamCode = input.code.Trim(); clmodel.F_ParamValue = input.value.Trim(); clmodel.F_ParamDes = input.des; clmodel.F_CreateBy = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; //"8000"; clmodel.F_CreateOn = DateTime.Now; clmodel.F_State = (int)EnumDelState.Enabled; var res = await _sys_sysconfigRepository.Add(clmodel); if (res > 0) return Success("基础数据保存成功"); else { return Error("基础数据保存失败"); } } /// /// 修改基础数据 /// [HttpPost("update")] public async Task Edit(SysConfigInput input) { #region if (input.id <= 0) return Error("请选择要编辑的数据"); if (string.IsNullOrWhiteSpace(input.code)) { return Error("编号不能为空"); } if (string.IsNullOrWhiteSpace(input.value)) { return Error("参数值不能为空"); } if (await GetExistByCodeAsync(input.code, input.id)) return Error("基础数据编号必须唯一,请重新输入!"); #endregion var clmodel = await _sys_sysconfigRepository.GetSingle(x => x.F_ParamId == input.id && x.F_State == (int)EnumDelState.Enabled); if (clmodel == null) return Error("信息获取失败"); clmodel.F_ParamCode = input.code.Trim(); clmodel.F_ParamValue = input.value.Trim(); clmodel.F_ParamDes = input.des; clmodel.F_LastModifyBy = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; clmodel.F_LastModifyOn = DateTime.Now; var res = await _sys_sysconfigRepository.Update(clmodel); if (res) return Success("基础数据保存成功"); else { return Error("基础数据保存失败"); } } [HttpPost("delete")] public async Task Remove(int[] ids) { //使用逻辑删除 //物理删除的数据无法恢复 var res = 0; if (ids != null && ids.Length > 0) { foreach (var item in ids) { var ml = await _sys_sysconfigRepository.GetSingle(x => x.F_ParamId == item); ml.F_State = (int)EnumDelState.Delete; ml.F_DeleteBy = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; ml.F_DeleteOn = DateTime.Now; if (await _sys_sysconfigRepository.Update(ml)) res += 1; } if (res == ids.Length) return Success("删除成功"); else if (res > 0 && res < ids.Length) return Error("部分删除失败,请查看后重新操作"); else return Error("删除失败,请查看后重新操作"); } else return Error("请选择要删除的记录"); } #region 私有方法 /// /// 根据基础数据编号查询是否存在此基础数据编号 /// /// /// private async Task GetExistByCodeAsync(string code, int id) { long c = 0; if (id > 0) c = await _sys_sysconfigRepository.GetCount(x => x.F_ParamCode.Equals(code) && x.F_ParamId != id && x.F_State == (int)EnumDelState.Enabled); else c = await _sys_sysconfigRepository.GetCount(x => x.F_ParamCode.Equals(code) && x.F_State == (int)EnumDelState.Enabled); return c > 0; } #endregion } }