using Admin.Core.Model; using Admin.Core.Common.Resource; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using System.Linq; using Admin.Core.Common; using Admin.Core.IService.ISys; using Admin.Core.Model.Sys; namespace Admin.Core.Api { /// <summary> /// SysConfigController /// </summary> [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] public class SysConfigController : BaseApiUserController { /// <summary> /// _sysConfigService /// </summary> private readonly ISysConfigService _sysConfigService; private const int i=0; /// <summary> /// 构造方法 /// </summary> /// <param name="SysConfigService"></param> /// <param name="sysUserService"></param> public SysConfigController(ISysConfigService SysConfigService, ISysUserService sysUserService) : base(sysUserService) { _sysConfigService = SysConfigService; _sysUserService = sysUserService; } /// <summary> /// 分页查询 /// </summary> /// <param name="pageQuery"></param> /// <returns></returns> [HttpPost] [Action("参数设置", ActionType.QUERY)] public async Task<MessageModel<PageModel<SysConfig>>> GetByPage([FromBody] PageQuery<SysConfig> pageQuery) { Expression<Func<SysConfig, bool>> whereExpression = x => true; if (pageQuery.Query.ConfigName.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.ConfigName.Contains(pageQuery.Query.ConfigName)); } if (pageQuery.Query.ConfigKey.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.ConfigKey.Contains(pageQuery.Query.ConfigKey)); } if (pageQuery.Query.CreateBy.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.CreateBy.Contains(pageQuery.Query.CreateBy)); } if (pageQuery.Query.ConfigType.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.ConfigType == pageQuery.Query.ConfigType); } var data = await _sysConfigService.QueryPageAsync(whereExpression, pageQuery.Page, pageQuery.PageSize, "ConfigID asc"); return Success(data); } /// <summary> /// 根据ID查询 /// </summary> /// <param name="id">主键</param> /// <returns></returns> [HttpGet] public async Task<MessageModel<SysConfig>> GetByID(int id) { return new MessageModel<SysConfig>() { msg = Resource_SysBase.OprateSuccess, success = true, data = await _sysConfigService.QueryByIdAsync(id) }; } /// <summary> /// 新增一条数据 /// </summary> /// <param name="request">SysConfig</param> /// <returns></returns> [HttpPost] public async Task<MessageModel<int>> Add([FromBody] SysConfig request) { var data = new MessageModel<int>(); if (await _sysConfigService.CheckConfigKeyUnique(request)) { data.success = false; data.msg = "参数键名已存在"; return data; } request.CreateTime = DateTime.Now; request.UpdateTime = DateTime.Now; request.CreateBy = CurrentUser.LoginName; request.UpdateBy = CurrentUser.LoginName; data.data = await _sysConfigService.AddAsync(request); if (data.data > 0) { data.success = true; data.msg = Resource_SysBase.OprateSuccess; } else { data.success = false; data.msg = Resource_SysBase.OprateFail; } return data; } /// <summary> /// 更新一条数据 /// </summary> /// <param name="request">SysConfig</param> /// <returns></returns> [HttpPost] public async Task<MessageModel<bool>> Update([FromBody] SysConfig request) { var data = new MessageModel<bool>(); if (await _sysConfigService.CheckConfigKeyUnique(request)) { data.success = false; data.msg = "参数键名已存在"; return data; } request.UpdateTime = DateTime.Now; request.UpdateBy = CurrentUser.LoginName; data.success = await _sysConfigService.UpdateAsync(request); if (data.success) { data.msg = Resource_SysBase.OprateSuccess; } else { data.msg = Resource_SysBase.OprateFail; } return data; } /// <summary> /// 删除一条数据 /// </summary> /// <param name="ids">主键</param> /// <returns></returns> [HttpPost] public async Task<MessageModel<bool>> Del(List<int> ids) { var data = new MessageModel<bool>(); data.success = await _sysConfigService.DeleteByIdAsync(ids); if (data.success) { data.msg = Resource_SysBase.OprateSuccess; } else { data.msg = Resource_SysBase.OprateFail; } return data; } /// <summary> /// 根据参数键名查询参数值 /// </summary> /// <param name="configKey"></param> /// <returns></returns> [HttpGet] [AllowAnonymous] public async Task<MessageModel<string>> GetConfigKey(string configKey) { var config = await _sysConfigService.QueryAsync(x => x.ConfigKey == configKey); return Success<string>(config.FirstOrDefault().ConfigValue); } } }