using APT.BaseData.Domain.Entities; 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; using System.Linq.Expressions; 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; }); } /// /// 根据主键删除数据 /// /// 主键ID /// [HttpGet, Route("SKDelete")] public JsonActionResult SKDelete(string id) { return SafeExecute(() => { if (string.IsNullOrEmpty(id)) this.ThrowError("060010"); var area = this.GetEntity(id); var areas = new List(); if (area != null) { area.IS_DELETED = true; areas.Add(area); } UnifiedCommit(() => { if (area != null) this.BantchUpdateEntity_noneBase(areas); }); return true; }); } } }