using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.IServices; using APT.Infrastructure.Core; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using APT.Utility; using APT.Infrastructure.Api; using APT.Migrations; using APT.BaseData.Domain.Entities.OP; using APT.BaseData.Domain.Enums.OP; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.IServices.OP; using Microsoft.Data.SqlClient; namespace APT.PF.WebApiControllers.Api.PF { /// /// /// [Route("api/PF/PFBivideoimg")] public class PFBivideoimgController : AuthorizeApiController { IOPTenantDBConnService OPTenantDBConnService { get; set; } /// /// /// /// public PFBivideoimgController(IOPTenantDBConnService opTenantDBConnService) { OPTenantDBConnService = opTenantDBConnService; } /// /// 更新或新增数据 /// /// 对象实体 /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_PF_BIVIDEOIMG entity) { return SafeExecute(() => { T_PF_BIVIDEOIMG check = null; var Nav_Files = entity.Nav_Files; entity.Nav_Files = null; var Nav_FilesImg = entity.Nav_FilesImg; entity.Nav_FilesImg = null; if (string.IsNullOrEmpty(entity.TITLE)) { throw new Exception("请输入标题后再操作!"); } if ((Nav_Files == null || Nav_Files.Count() < 1) && (Nav_FilesImg == null || Nav_FilesImg.Count() < 1)) { throw new Exception("请上传" + (entity.TYPE == FILETYPEEnum.VIDEO ? "视频" : "图片") + "后再操作!"); } if (entity.TYPE == FILETYPEEnum.VIDEO && Nav_Files.Where(e => !e.IS_DELETED).Count() > 1) { throw new Exception("只能上传一个视频!"); } if (Nav_Files != null && Nav_Files.Count() > 0) { foreach (var item in Nav_Files) { item.TYPE = entity.TYPE; } } if (Nav_FilesImg != null && Nav_FilesImg.Count() > 0) { foreach (var item in Nav_FilesImg) { item.TYPE = entity.TYPE; } } if (entity.STATUS == STATEEnum.release) { check = GetEntity(e => e.STATUS == STATEEnum.release); if (check != null) { if (check.ID == entity.ID) { } else { throw new Exception("只能有一条已发布的标语!如需发布本本条,请撤回已发布的标语!"); } } } else if (entity.STATUS == STATEEnum.Delete) { entity.IS_DELETED = true; } else if (entity.STATUS == STATEEnum.Draft) { check = GetEntity(entity.ID); if (check != null && (check.STATUS == STATEEnum.release)) { throw new Exception("请先撤回后再修改!"); } } if (entity.USER_ID_CREATER == Guid.Empty) { entity.USER_ID_CREATER = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; } entity.MODIFY_TIME = DateTime.Now; this.UnifiedCommit(() => { UpdateEntityNoCommit(entity); if (Nav_Files != null && Nav_Files.Count() > 0) BantchSaveEntityNoCommit(Nav_Files); if (Nav_FilesImg != null && Nav_FilesImg.Count() > 0) BantchSaveEntityNoCommit(Nav_FilesImg); }); return true; }); } /// /// 获得单条实体数据 /// /// 过滤实体 /// [HttpPost, Route("GetSuit")] public JsonActionResult GetSuit([FromBody] KeywordFilter filter) { return SafeExecute(() => { var Include = filter.Include; if (Include != null && Include.Count() > 0) { foreach (var item in Include) { if (item.StartsWith("Nav_FilesImg")) { filter.Include.Remove(item); break; } } } var model = GetEntity(null, filter, null); if (model.TYPE == FILETYPEEnum.IMG) { model.Nav_FilesImg = model.Nav_Files; model.Nav_Files = null; } return model; }); } /// /// 更新或新增数据 /// /// 对象实体 /// [HttpPost, Route("UpdatePlaySet")] public JsonActionResult UpdatePlaySet([FromBody] T_PF_BIPLAY_SET entity) { return SafeExecute(() => { if (entity.V_ISAUTO && !entity.V_ISSILENT) { throw new Exception("自动播放必须静音!"); } if (!entity.V_ISSHOWCONTROL && !entity.V_ISAUTO) { throw new Exception("不自动播放必须显示控制器!"); } bool result = UpdateEntity(entity); return result; }); } } }