185 lines
5.6 KiB
C#
185 lines
5.6 KiB
C#
|
|
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
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 用户自定义配置
|
|||
|
|
/// </summary>
|
|||
|
|
[Route("api/FM/UserCustomConfigHTab")]
|
|||
|
|
[APT.Infrastructure.Api.RootOrg]
|
|||
|
|
public class UserCustomConfigHTabController : AuthorizeApiController<T_FM_USER_CUSTOM_CONFIG_H_TAB>
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("Entities")]
|
|||
|
|
public JsonActionResult<IEnumerable<T_FM_USER_CUSTOM_CONFIG_H_TAB>> Entities([FromBody]KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return WitEntities(null, filter);
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
///
|
|||
|
|
|
|||
|
|
[HttpPost, Route("OrderEntities")]
|
|||
|
|
public JsonActionResult<IEnumerable<T_FM_USER_CUSTOM_CONFIG_H_TAB>> OrderEntities([FromBody]KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return WitOrderEntities(null, filter);
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageFilter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("Paged")]
|
|||
|
|
public PagedActionResult<T_FM_USER_CUSTOM_CONFIG_H_TAB> Paged([FromBody]KeywordPageFilter pageFilter)
|
|||
|
|
{
|
|||
|
|
return WitPaged(null, pageFilter);
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 查询
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="pageFilter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("OrderPaged")]
|
|||
|
|
public PagedActionResult<T_FM_USER_CUSTOM_CONFIG_H_TAB> OrderPaged([FromBody]KeywordPageFilter pageFilter)
|
|||
|
|
{
|
|||
|
|
return WitOrderPaged(null, pageFilter);
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="id"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpGet, Route("Delete")]
|
|||
|
|
public JsonActionResult<bool> Delete(string id)
|
|||
|
|
{
|
|||
|
|
return WitDelete(id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更新
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="id"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("Update")]
|
|||
|
|
public JsonActionResult<bool> Update([FromBody]T_FM_USER_CUSTOM_CONFIG_H_TAB entity)
|
|||
|
|
{
|
|||
|
|
return WitUpdate(entity);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 批量删除
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="ids"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpGet, Route("BatchDelete")]
|
|||
|
|
public JsonActionResult<bool> BatchDelete(string ids)
|
|||
|
|
{
|
|||
|
|
return WitBatchDelete(ids);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获得单条实体数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("Get")]
|
|||
|
|
public JsonActionResult<T_FM_USER_CUSTOM_CONFIG_H_TAB> Get([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return WitEntity(null, filter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 保存用户自定义配置
|
|||
|
|
/// filter.Keyword:用户ID, filter.Parameter1:表ID,filter.Parameter2:隐藏列ID 多个用逗号隔开
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="filter"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost, Route("SaveHiddenTableConfig")]
|
|||
|
|
public JsonActionResult<bool> SaveHiddenTableConfig([FromBody] KeywordFilter filter)
|
|||
|
|
{
|
|||
|
|
return SafeExecute<bool>(() =>
|
|||
|
|
{
|
|||
|
|
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_FM_USER_CUSTOM_CONFIG>(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_FM_USER_CUSTOM_CONFIG_H_TAB>(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<Guid> deleteIds = new List<Guid>();
|
|||
|
|
List<T_FM_USER_CUSTOM_CONFIG_H_COL> addHCols = new List<T_FM_USER_CUSTOM_CONFIG_H_COL>();
|
|||
|
|
//数据库已有数据
|
|||
|
|
var dbHCols = this.GetEntities<T_FM_USER_CUSTOM_CONFIG_H_COL>(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_FM_USER_CUSTOM_CONFIG_H_COL>(t => deleteIds.Contains(t.ID));
|
|||
|
|
if (addHCols.Any())
|
|||
|
|
this.BantchAddEntity(addHCols);
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|