174 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
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/UserGroup")]
 | 
						|
	public class UserGroupController : AuthorizeApiController<T_FM_USER_GROUP>
 | 
						|
	{
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// 查询
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="filter"></param>
 | 
						|
		/// <returns></returns>
 | 
						|
		[HttpPost, Route("Entities")]
 | 
						|
		public JsonActionResult<IEnumerable<T_FM_USER_GROUP>> 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_GROUP>> OrderEntities([FromBody]KeywordFilter filter)
 | 
						|
		{
 | 
						|
			return WitOrderEntities(null, filter);
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// 查询
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="pageFilter"></param>
 | 
						|
		/// <returns></returns>
 | 
						|
		[HttpPost, Route("Paged")]
 | 
						|
		public PagedActionResult<T_FM_USER_GROUP> Paged([FromBody]KeywordPageFilter pageFilter)
 | 
						|
		{
 | 
						|
			return WitPaged(null, pageFilter);
 | 
						|
		}
 | 
						|
		/// <summary>
 | 
						|
		/// 查询
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="pageFilter"></param>
 | 
						|
		/// <returns></returns>
 | 
						|
		[HttpPost, Route("OrderPaged")]
 | 
						|
		public PagedActionResult<T_FM_USER_GROUP> 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 WitRealDelete(id);
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// 更新
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="id"></param>
 | 
						|
		/// <returns></returns>
 | 
						|
		[HttpPost, Route("Update")]
 | 
						|
		public JsonActionResult<bool> Update([FromBody]T_FM_USER_GROUP entity)
 | 
						|
		{
 | 
						|
			return SafeExecute<bool>(() =>
 | 
						|
			{
 | 
						|
				var belongRoleGroups = entity.Nav_BelongRoleGroups;
 | 
						|
				var belongRoles = entity.Nav_BelongRoles;
 | 
						|
				var belongUserGroups = entity.Nav_BelongUserGroups;
 | 
						|
				entity.Nav_BelongRoleGroups = null;
 | 
						|
				entity.Nav_BelongRoles = null;
 | 
						|
				entity.Nav_BelongUserGroups = null;
 | 
						|
 | 
						|
				if (belongUserGroups != null && belongUserGroups.Any())
 | 
						|
					belongUserGroups.ForEach(t => t.USER_GROUP_ID = entity.ID);
 | 
						|
				if (belongRoleGroups != null && belongRoleGroups.Any())
 | 
						|
					belongRoleGroups.ForEach(t => t.USER_GROUP_ID = entity.ID);
 | 
						|
				if (belongRoles != null && belongRoles.Any())
 | 
						|
					belongRoles.ForEach(t => t.USER_GROUP_ID = entity.ID);
 | 
						|
 | 
						|
				List<Guid> deleteBelongRoleIds = new List<Guid>();
 | 
						|
				List<Guid> deleteBelongRoleGroupIds = new List<Guid>();
 | 
						|
				List<Guid> deleteBelongUserGroupsIds = new List<Guid>();
 | 
						|
 | 
						|
				var dbEntity = this.GetEntity<T_FM_USER_GROUP>(entity.ID.ToString(), new string[] { "Nav_BelongRoleGroups", "Nav_BelongRoles", "Nav_BelongUserGroups" });
 | 
						|
				if (dbEntity != null)
 | 
						|
				{
 | 
						|
					if (dbEntity.Nav_BelongRoleGroups != null)
 | 
						|
					{
 | 
						|
						dbEntity.Nav_BelongRoleGroups.ForEach(item =>
 | 
						|
						{
 | 
						|
							if (belongRoleGroups==null||!belongRoleGroups.Any(i => i.ID == item.ID))
 | 
						|
								deleteBelongRoleGroupIds.Add(item.ID);
 | 
						|
						});
 | 
						|
					}
 | 
						|
					if (dbEntity.Nav_BelongRoles != null)
 | 
						|
					{
 | 
						|
						dbEntity.Nav_BelongRoles.ForEach(item =>
 | 
						|
						{
 | 
						|
							if (belongRoles == null||!belongRoles.Any(i => i.ID == item.ID))
 | 
						|
								deleteBelongRoleIds.Add(item.ID);
 | 
						|
						});
 | 
						|
					}
 | 
						|
					if (dbEntity.Nav_BelongUserGroups != null)
 | 
						|
					{
 | 
						|
						dbEntity.Nav_BelongUserGroups.ForEach(item =>
 | 
						|
						{
 | 
						|
							if (belongUserGroups==null||!belongUserGroups.Any(i => i.ID == item.ID))
 | 
						|
								deleteBelongUserGroupsIds.Add(item.ID);
 | 
						|
						});
 | 
						|
					}
 | 
						|
				}
 | 
						|
 | 
						|
				UnifiedCommit(() =>
 | 
						|
				{
 | 
						|
					this.UpdateEntityNoCommit(entity);
 | 
						|
					if (belongRoleGroups != null && belongRoleGroups.Any())
 | 
						|
						this.BantchSaveEntityNoCommit(belongRoleGroups);
 | 
						|
					if (belongRoles != null && belongRoles.Any())
 | 
						|
						this.BantchSaveEntityNoCommit(belongRoles);
 | 
						|
					if (belongUserGroups != null && belongUserGroups.Any())
 | 
						|
						this.BantchSaveEntityNoCommit(belongUserGroups);
 | 
						|
 | 
						|
					if (deleteBelongRoleIds.Any())
 | 
						|
						this.DeleteEntityNoCommit<T_FM_USER_GROUP_BELONG_ROLE>(t => deleteBelongRoleIds.Contains(t.ID));
 | 
						|
					if (deleteBelongRoleGroupIds.Any())
 | 
						|
						this.DeleteEntityNoCommit<T_FM_USER_GROUP_BELONG_R_G>(t => deleteBelongRoleGroupIds.Contains(t.ID));
 | 
						|
					if (deleteBelongUserGroupsIds.Any())
 | 
						|
						this.DeleteEntityNoCommit<T_FM_USER_GROUP_BELONG_U_G>(t => deleteBelongUserGroupsIds.Contains(t.ID));
 | 
						|
 | 
						|
				});
 | 
						|
				return true;
 | 
						|
			});
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// 批量删除
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="ids"></param>
 | 
						|
		/// <returns></returns>
 | 
						|
		[HttpGet, Route("BatchDelete")]
 | 
						|
		public JsonActionResult<bool> BatchDelete(string ids)
 | 
						|
		{
 | 
						|
			return WitRealBatchDelete(ids);
 | 
						|
		}
 | 
						|
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// 获得单条实体数据
 | 
						|
		/// </summary>
 | 
						|
		/// <param name="filter"></param>
 | 
						|
		/// <returns></returns>
 | 
						|
		[HttpPost, Route("Get")]
 | 
						|
		public JsonActionResult<T_FM_USER_GROUP> Get([FromBody] KeywordFilter filter)
 | 
						|
		{
 | 
						|
			return WitEntity(null, filter);
 | 
						|
		}
 | 
						|
 | 
						|
	}
 | 
						|
}
 |