using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.BD;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices.BD;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace APT.BD.WebApi.Controllers.Api
{
///
/// 国标行业信息
///
[Route("api/BD/Picture")]
public partial class PictuerController : AuthorizeApiController
{
///
/// 更新
///
///
///
[HttpPost, Route("FullUpdate")]
public JsonActionResult FullUpdate([FromBody] T_BD_PICTURE entity)
{
return SafeExecute(() =>
{
var files = entity.Nav_PictureFiles;
entity.Nav_PictureFiles = null;
var after = this.GetEntity(x => x.ID == entity.ID, "Nav_PictureFiles");
if (after == null)
{
this.AddEntity(entity);
if (files != null && files.Any())
this.BantchAddEntity(files);
}
else
{
UpdateEntity(entity);
if (after.Nav_PictureFiles != null)
BantchDeleteEntity(after.Nav_PictureFiles.Select(x => x.ID).ToList());
if (files != null && files.Any())
BantchAddEntity(files);
}
return true;
});
}
///
/// 文件更新
///
///
///
[HttpPost, Route("FileFullUpdate")]
public JsonActionResult FileFullUpdate([FromBody] T_BD_PICTURE entity)
{
return SafeExecute(() =>
{
entity.DATA_TYPE = (int)FMFileType.文件;
var files = entity.Nav_PictureFiles;
entity.Nav_PictureFiles = null;
var after = this.GetEntity(x => x.ID == entity.ID, "Nav_PictureFiles");
if (after == null)
{
this.AddEntity(entity);
if (files != null && files.Any())
this.BantchAddEntity(files);
}
else
{
UpdateEntity(entity);
if (after.Nav_PictureFiles != null)
BantchDeleteEntity(after.Nav_PictureFiles.Select(x => x.ID).ToList());
BantchAddEntity(files);
}
return true;
});
}
///
/// 更新
///
///
///
[HttpPost, Route("UpdateAndSendFolw")]
public JsonActionResult UpdateAndSendFolw([FromBody] T_BD_PICTURE entity)
{
return SafeExecute(() =>
{
var files = entity.Nav_PictureFiles;
entity.Nav_PictureFiles = null;
var after = this.GetEntity(x => x.ID == entity.ID, "Nav_PictureFiles");
var flowService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService();
//图片审批
flowService.SendFlowAndCommit(entity, (int)PFCodeRuleType.审批流编码, "1592907699376", () =>
{
if (after == null)
{
this.AddEntityNoCommit(entity);
if (files != null && files.Any())
this.BantchAddEntityNoCommit(files);
}
else
{
UpdateEntityNoCommit(entity);
if (after.Nav_PictureFiles != null)
BantchDeleteEntityNoCommit(after.Nav_PictureFiles.Select(x => x.ID).ToList());
if (files != null && files.Any())
BantchAddEntityNoCommit(files);
}
});
return true;
});
}
///
/// 批量删除数据
///
/// id字符串(id用逗号分隔)
///
[HttpGet, Route("FullBatchDelete")]
public JsonActionResult FullBatchDelete(string ids)
{
return SafeExecute(() =>
{
var arrIds = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(i => new Guid(i));
var filter = new BaseFilter
{
IgnoreOrgRule = true,
SelectField = new string[] {"ID", "Nav_PictureFiles.ID",
"Nav_PictureFiles.Nav_ImgFile.ID",
"Nav_PictureFiles.Nav_ImgFile.Nav_Details.ID",
"Nav_PictureFiles.Nav_ImgFile.Nav_Details.Nav_File.ID",
"Nav_PictureFiles.Nav_ImgFile.Nav_File.ID"}
};
var pictures = this.GetEntities(i => arrIds.Contains(i.ID), filter,
"Nav_PictureFiles.Nav_ImgFile.Nav_Details.Nav_File");
var pictureIds = pictures.Select(i => i.ID).ToList();
var pictureFileId = pictures.SelectMany(i => i.Nav_PictureFiles.Select(i => i.ID)).ToList();
var imgFileId = pictures.SelectMany(i => i.Nav_PictureFiles.Select(i => i.Nav_ImgFile.ID)).ToList();
//var pfFileId= pictures.SelectMany(i => i.Nav_PictureFiles.Select(i => i.Nav_ImgFile.Nav_File.ID)).ToList();
var detailId = pictures.SelectMany(i => i.Nav_PictureFiles.SelectMany(i => i.Nav_ImgFile.Nav_Details.Select(x => x.ID))).ToList();
var fileId = pictures.SelectMany(i => i.Nav_PictureFiles.SelectMany(i => i.Nav_ImgFile.Nav_Details.Select(x => x.Nav_File.ID))).ToList();
this.BantchDeleteEntity(detailId);
this.BantchDeleteEntity(pictureFileId);
this.BantchDeleteEntity(imgFileId);
this.BantchDeleteEntity(fileId);
this.BantchDeleteEntity(pictureIds);
return true;
});
}
///
/// 批量删除数据
///
/// id字符串(id用逗号分隔)
///
[HttpGet, Route("FullDelete")]
public JsonActionResult FullDelete(string id)
{
return this.FullBatchDelete(id);
}
}
}