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;
 | 
						|
			});
 | 
						|
		}
 | 
						|
 | 
						|
 | 
						|
	}
 | 
						|
}
 |