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