using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.IServices; using APT.Infrastructure.Core; using APT.MS.Domain.ApiModel; using APT.BaseData.Domain.IServices.EX; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using APT.Infrastructure.Api; using APT.Utility; using APT.BaseData.Domain.ApiModel; namespace APT.PF.WebApiControllers.Api.PF { [Route("api/PF/Query")] [APT.Infrastructure.Api.RootOrg] public class QueryController : AuthorizeApiController { /// /// 查询 /// /// /// [HttpPost, Route("Entities")] public JsonActionResult> Entities([FromBody] KeywordFilter filter) { return WitEntities(null, filter); } /// /// 查询 /// /// /// [HttpPost, Route("OrderEntities")] public JsonActionResult> OrderEntities([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var data = this.GetOrderEntities(null, filter); return data; }); } /// /// 查询 /// /// /// [HttpPost, Route("Paged")] public PagedActionResult Paged([FromBody] KeywordPageFilter pageFilter) { return WitPaged(null, pageFilter); } /// /// 查询 /// /// /// [HttpPost, Route("OrderPaged")] public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { return WitOrderPaged(null, pageFilter); } [HttpPost, Route("Update")] public JsonActionResult Update([FromBody] T_PF_QUERY entity) { return SafeExecute(() => { this.UpdateEntity(entity); var formService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); formService.CreateFormConfigVersion(PFFormConfigVersionEnum.Query, entity.ID.ToString()); return true; }); } /// /// 删除 /// /// /// [HttpGet, Route("Delete")] public JsonActionResult Delete(string id) { return SafeExecute(() => { var formService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); formService.CreateFormConfigVersion(PFFormConfigVersionEnum.Query, id); List ids = new List(); ids.Add(new Guid(id)); this.DoDelete(ids); return true; }); } private void DoDelete(List ids) { this.DeleteEntity(t => ids.Contains(t.ID)); } /// /// 批量删除 /// /// /// [HttpGet, Route("BatchDelete")] public JsonActionResult BatchDelete(string ids) { return SafeExecute(() => { var formService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); formService.CreateFormConfigVersion(PFFormConfigVersionEnum.Query, ids); var arrays = string.IsNullOrEmpty(ids) ? null : ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(t => new Guid(t)).ToList(); if (arrays != null && arrays.Any()) this.DoDelete(arrays); return true; }); } /// /// 根据ID获得实体数据 /// /// /// [HttpPost, Route("Get")] public JsonActionResult Get([FromBody] KeywordFilter filter) { return WitEntity(null, filter); } /// /// 获取查询字段 /// /// /// [HttpPost, Route("GetQueryFieldsByTableName")] public JsonActionResult> GetQueryFieldsByTableName([FromBody] KeywordFilter filter) { return SafeExecute>(() => { string formIdStr = filter.Keyword;//表单ID; string curFieldName = filter.Parameter1;//当前字段名称 string tableName = filter.Parameter2;//表名 string lablePrefix = filter.Parameter3;//显示名称前缀 var entityOperateService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); return entityOperateService.GetEntityFieldsByTableName(tableName, curFieldName, lablePrefix, null); }); } /// /// 获取查询字段 /// /// /// [HttpPost, Route("GetQueryFieldsByQueryFormId")] public JsonActionResult> GetQueryFieldsByQueryFormId([FromBody] KeywordFilter filter) { return SafeExecute>(() => { string formIdStr = filter.Keyword;//表单ID; string curFieldName = filter.Parameter1;//当前字段名称 string tableName = filter.Parameter2;//表名 string lablePrefix = filter.Parameter3;//显示名称前缀 string code = filter.Parameter4;//编号 string expandFieldStr = filter.Parameter5;//需展开的字段 if (string.IsNullOrEmpty(formIdStr)) throw new Exception("请选择表单ID"); List expandFields = null; if (!string.IsNullOrEmpty(expandFieldStr)) expandFields = expandFieldStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); var entityOperateService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); return entityOperateService.GetEntityFieldsByQueryFormId(new Guid(formIdStr), code, curFieldName, lablePrefix, expandFields, filter); }); } } }