90 lines
3.2 KiB
C#
90 lines
3.2 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 辨识区域
|
|
/// </summary>
|
|
[Route("api/SK/SKRiskArea")]
|
|
public partial class RiskAreaController : AuthorizeTreeApiController<T_SK_RISK_AREA>
|
|
{
|
|
/// <summary>
|
|
/// 更新或新增数据
|
|
/// </summary>
|
|
/// <param name="entity">对象实体</param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("FullUpdate")]
|
|
public JsonActionResult<bool> 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;
|
|
});
|
|
}
|
|
|
|
/// <summary>
|
|
/// 区域最小单元
|
|
/// </summary>
|
|
/// <param name="pageFilter"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("GetAreaList")]
|
|
public PagedActionResult<T_SK_RISK_AREA> GetAreaList([FromBody] KeywordPageFilter pageFilter)
|
|
{
|
|
return SafeGetPagedData<T_SK_RISK_AREA>((result) =>
|
|
{
|
|
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.ToString();
|
|
List<Guid> ids = new List<Guid>();
|
|
Expression<Func<T_SK_RISK_AREA, bool>> expression = e => !e.IS_DELETED;
|
|
var areas = this.GetEntities<T_SK_RISK_AREA>(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<Func<T_SK_RISK_AREA, bool>> expressionArea = e => !e.IS_DELETED;
|
|
if (ids != null && ids.Any())
|
|
{
|
|
expressionArea = expressionArea.And(t => ids.Contains(t.ID));
|
|
}
|
|
var info = this.GetOrderPageEntities<T_SK_RISK_AREA>(expressionArea, pageFilter, null);
|
|
result.TotalCount = info.TotalCount;
|
|
result.Data = info.Data;
|
|
result.IsSuccessful = info.IsSuccessful;
|
|
});
|
|
}
|
|
}
|
|
} |