using APT.BaseData.Domain.Msg; using APT.Infrastructure.Core; using APT.BaseData.Domain.Entities.FM; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using APT.Utility;namespace APT.FM.WebApi.Controllers.Api.FM { /// /// 用户自定义配置 /// [Route("api/FM/UserCustomConfigHTab")] [APT.Infrastructure.Api.RootOrg] public class UserCustomConfigHTabController : AuthorizeApiController { /// /// 查询 /// /// /// [HttpPost, Route("Entities")] public JsonActionResult> Entities([FromBody]KeywordFilter filter) { return WitEntities(null, filter); } /// /// 查询 /// /// /// /// [HttpPost, Route("OrderEntities")] public JsonActionResult> OrderEntities([FromBody]KeywordFilter filter) { return WitOrderEntities(null, filter); } /// /// 查询 /// /// /// [HttpPost, Route("Paged")] public PagedActionResult Paged([FromBody]KeywordPageFilter pageFilter) { return WitPaged(null, pageFilter); } /// /// 查询 /// /// /// [HttpPost, Route("OrderPaged")] public PagedActionResult OrderPaged([FromBody]KeywordPageFilter pageFilter) { return WitOrderPaged(null, pageFilter); } /// /// 删除 /// /// /// [HttpGet, Route("Delete")] public JsonActionResult Delete(string id) { return WitDelete(id); } /// /// 更新 /// /// /// [HttpPost, Route("Update")] public JsonActionResult Update([FromBody]T_FM_USER_CUSTOM_CONFIG_H_TAB entity) { return WitUpdate(entity); } /// /// 批量删除 /// /// /// [HttpGet, Route("BatchDelete")] public JsonActionResult BatchDelete(string ids) { return WitBatchDelete(ids); } /// /// 获得单条实体数据 /// /// /// [HttpPost, Route("Get")] public JsonActionResult Get([FromBody] KeywordFilter filter) { return WitEntity(null, filter); } /// /// 保存用户自定义配置 /// filter.Keyword:用户ID, filter.Parameter1:表ID,filter.Parameter2:隐藏列ID 多个用逗号隔开 /// /// /// [HttpPost, Route("SaveHiddenTableConfig")] public JsonActionResult SaveHiddenTableConfig([FromBody] KeywordFilter filter) { return SafeExecute(() => { string userId = filter.Keyword;//用户ID string pageTableId = filter.Parameter1;//表ID string hiddenCols = filter.Parameter2;//隐藏列ID 多个用逗号隔开 if (string.IsNullOrEmpty(userId)) throw new Exception(ErrMsg.FM_NO_USER_ID); if (string.IsNullOrEmpty(pageTableId)) throw new Exception(ErrMsg.FM_NO_PAGE_TABLE_ID); //不存在新增用户配置表 var customConfig = this.GetEntity(t => t.USER_ID == new Guid(userId)); if (customConfig == null) { customConfig = new T_FM_USER_CUSTOM_CONFIG(); customConfig.ORG_ID = filter.OrgId; customConfig.USER_ID = new Guid(userId); this.AddEntity(customConfig); } //不存在新增隐藏表 var customConfigHTab = this.GetEntity(t => t.USER_CUSTOM_CONFIG_ID== customConfig.ID&& t.PAGE_TABLE_ID == new Guid(pageTableId)); if (customConfigHTab == null) { customConfigHTab = new T_FM_USER_CUSTOM_CONFIG_H_TAB(); customConfigHTab.ORG_ID = filter.OrgId; customConfigHTab.PAGE_TABLE_ID = new Guid(pageTableId); customConfigHTab.USER_CUSTOM_CONFIG_ID = customConfig.ID; this.AddEntity(customConfigHTab); } List deleteIds = new List(); List addHCols = new List(); //数据库已有数据 var dbHCols = this.GetEntities(t => t.USER_CUSTOM_CONFIG_H_TAB_ID == customConfigHTab.ID, new BaseFilter()).ToList(); var hCols = string.IsNullOrEmpty(hiddenCols) ? null : hiddenCols.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //删除 if (dbHCols != null && dbHCols.Any()) { foreach (var item in dbHCols) { if (hCols == null || !hCols.Contains(item.COLUMN_ID.ToString())) deleteIds.Add(item.ID); } } //新增 if(hCols!=null&& hCols.Length > 0) { foreach(var item in hCols) { if (dbHCols == null || !dbHCols.Any(t => t.COLUMN_ID.ToString() == item)) { T_FM_USER_CUSTOM_CONFIG_H_COL hCol = new T_FM_USER_CUSTOM_CONFIG_H_COL(); hCol.ORG_ID = filter.OrgId; hCol.USER_CUSTOM_CONFIG_H_TAB_ID = customConfigHTab.ID; hCol.COLUMN_ID = new Guid(item); addHCols.Add(hCol); } } } if (deleteIds.Any()) this.DeleteEntity(t => deleteIds.Contains(t.ID)); if (addHCols.Any()) this.BantchAddEntity(addHCols); return true; }); } } }