using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using HT.Cloud.Code; using HT.Cloud.DataBase; using HT.Cloud.Domain.SystemManage; using HT.Cloud.Domain.SystemOrganize; namespace HT.Cloud.Service.SystemManage { /// /// 创 建:超级管理员 /// 日 期:2020-07-08 14:33 /// 描 述:表单设计服务类 /// public class FormService : BaseService, IDenpendency { public FormService(ISqlSugarClient context) : base(context) { } #region 获取数据 public async Task> GetList(string keyword = "") { var query = repository.IQueryable(); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(a => a.F_Name.Contains(keyword) || a.F_Description.Contains(keyword)); } return await query.Where(a => a.F_DeleteMark == false).OrderBy(a => a.F_Id, OrderByType.Desc).ToListAsync(); } public async Task> GetLookList(string ItemId = "", string keyword = "") { var query = GetQuery().Where(a => a.F_DeleteMark == false); if (!string.IsNullOrEmpty(ItemId)) { query = query.Where(a => a.F_OrganizeId == ItemId || a.F_OrganizeId == null || a.F_OrganizeId == ""); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(a => a.F_Name.Contains(keyword) || a.F_Description.Contains(keyword)); } query = GetDataPrivilege("a", "", query); return await query.Where(a => a.F_DeleteMark == false).OrderBy(a => a.F_Id, OrderByType.Desc).ToListAsync(); } public async Task> GetLookList(Pagination pagination, string keyword = "") { //获取数据权限 var query = GetQuery().Where(a => a.F_DeleteMark == false); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(a => a.F_Name.Contains(keyword) || a.F_Description.Contains(keyword)); } query = GetDataPrivilege("a", "", query); return await query.ToPageListAsync(pagination); } private ISugarQueryable GetQuery() { var query = repository.Db.Queryable((a, b) => new JoinQueryInfos( JoinType.Left, a.F_OrganizeId == b.F_Id )) .Select((a, b) => new FormEntity { F_Id = a.F_Id.SelectAll(), F_OrganizeName = b.F_FullName, }).MergeTable(); return query; } public async Task GetForm(string keyValue) { var data = await repository.FindEntity(keyValue); return data; } public async Task GetLookForm(string keyValue) { var data = await repository.FindEntity(keyValue); return GetFieldsFilterData(data); } #endregion 获取数据 #region 提交数据 public async Task SubmitForm(FormEntity entity, string keyValue) { if (entity.F_FrmType != 1) { var temp = FormUtil.SetValue(entity.F_Content); entity.F_ContentData = string.Join(',', temp.ToArray()); entity.F_Fields = temp.Count(); } else { var temp = FormUtil.SetValueByWeb(entity.F_WebId); entity.F_ContentData = string.Join(',', temp.ToArray()); entity.F_Fields = temp.Count(); } if (string.IsNullOrEmpty(keyValue)) { //此处需修改 entity.F_DeleteMark = false; entity.Create(); await repository.Insert(entity); } else { //此处需修改 entity.Modify(keyValue); await repository.Update(entity); } } public async Task DeleteForm(string keyValue) { var ids = keyValue.Split(','); await repository.Delete(a => ids.Contains(a.F_Id)); } #endregion 提交数据 } }