using APT.Infrastructure.Core; using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Linq; namespace APT.SK.WebApi.Controllers.Api { /// /// 辨识区域 /// [Route("api/SK/SKRiskArea")] public partial class RiskAreaController : AuthorizeTreeApiController { /// /// 更新或新增数据 /// /// 对象实体 /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_SK_RISK_AREA entity) { //return WitUpdate(entity); return SafeExecute(() => { var videos = entity.Nav_Videos; entity.Nav_Videos = null; if (videos.Count > 0) { foreach (var item in videos) { item.Nav_Viedo = null; item.Nav_Area = null; } } this.UnifiedCommit(() => { if (videos != null && videos.Count > 0) { BantchSaveEntityNoCommit(videos); } TreeUpdateEntity(entity); }); return true; }); } /// /// 区域最小单元 /// /// /// [HttpPost, Route("GetAreaList")] public PagedActionResult GetAreaList([FromBody] KeywordPageFilter pageFilter) { return SafeGetPagedData((result) => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.ToString(); List ids = new List(); Expression> expression = e => !e.IS_DELETED; var areas = this.GetEntities(expression, new BaseFilter(pageFilter.OrgId)).ToList(); if (areas != null & areas.Any()) { var parentIds = areas.Where(m => m.PARENT_ID != null).Select(t => t.PARENT_ID).ToList(); foreach (var item in areas) { if (!parentIds.Contains(item.ID)) { ids.Add(item.ID); } } } Expression> expressionArea = e => !e.IS_DELETED; if (ids != null && ids.Any()) { expressionArea = expressionArea.And(t => ids.Contains(t.ID)); } var info = this.GetOrderPageEntities(expressionArea, pageFilter, null); result.TotalCount = info.TotalCount; result.Data = info.Data; result.IsSuccessful = info.IsSuccessful; }); } } }