using ce.autofac.extension; using learun.iapplication; using learun.util; using System.Collections.Generic; using System.Threading.Tasks; namespace learun.application { /// /// 版 本 EasyCode EC管理后台 /// Copyright (c) 2019-present EC管理有限公司 /// 创建人:tobin /// 日 期:2019.09.19 /// 描 述:数据字典管理 /// public class DataItemBLL : BLLBase, DataItemIBLL, BLL { #region 属性 private readonly DataItemService dataItemService = new DataItemService(); #endregion 属性 #region 数据字典分类 /// /// 分类列表 /// /// public Task> GetClassifyList() { return dataItemService.GetClassifyList(); } /// /// 分类列表 /// /// 关键词(名称/编码) /// 是否只取有效 /// public async Task> GetClassifyList(string keyword, bool enabledMark = true) { List list = (List)await GetClassifyList(); if (enabledMark) { list = list.FindAll(t => t.F_EnabledMark.Equals(1)); } if (!string.IsNullOrEmpty(keyword)) { list = list.FindAll(t => t.F_ItemName.Contains(keyword) || t.F_ItemCode.Contains(keyword)); } return list; } /// /// 获取分类树形数据 /// /// public async Task> GetClassifyTree() { List classifyList = (List)await GetClassifyList(); List treeList = new List(); foreach (var item in classifyList) { TreeModel node = new TreeModel(); node.id = item.F_ItemId; node.text = item.F_ItemName; node.value = item.F_ItemCode; node.showcheck = false; node.checkstate = 0; node.isexpand = true; node.parentId = item.F_ParentId; treeList.Add(node); } return treeList.ToTree(); } /// /// 保存分类数据实体 /// /// 主键 /// 实体 public async Task SaveClassifyEntity(string keyValue, DataItemEntity entity) { await dataItemService.SaveClassifyEntity(keyValue, entity); } /// /// 删除分类数据 /// /// 主键 public async Task DeleteClassify(string keyValue) { await dataItemService.DeleteClassify(keyValue); } /// /// 通过编号获取字典分类实体 /// /// 编码 /// public Task GetClassifyEntityByCode(string itemCode) { return dataItemService.GetClassifyEntityByCode(itemCode); } #endregion 数据字典分类 #region 字典明细 /// /// 获取数据字典明显 /// /// 分类编码 /// public Task> GetDetailList(string itemCode) { return dataItemService.GetDetailList(itemCode); } /// /// 获取数据字典明显 /// /// 分类编码 /// 关键词(名称/值) /// public async Task> GetDetailList(string itemCode, string keyword) { List list = (List)await GetDetailList(itemCode); if (!string.IsNullOrEmpty(keyword)) { list = list.FindAll(t => t.F_ItemName.Contains(keyword) || t.F_ItemValue.Contains(keyword)); } return list; } /// /// 获取数据字典明显 /// /// 分类编号 /// 父级主键 /// public async Task> GetDetailListByParentId(string itemCode, string parentId) { List list = (List)await GetDetailList(itemCode); if (!string.IsNullOrEmpty(parentId)) { list = list.FindAll(t => t.F_ParentId.ContainsEx(parentId)); } else { list = list.FindAll(t => t.F_ParentId.ContainsEx("0")); } return list; } /// /// 获取字典明细树形数据 /// /// 分类编号 /// public async Task> GetDetailTree(string itemCode) { List list = (List)await GetDetailList(itemCode); List treeList = new List(); foreach (var item in list) { TreeModel node = new TreeModel(); node.id = item.F_ItemDetailId; node.text = item.F_ItemName; node.value = item.F_ItemValue; node.showcheck = false; node.checkstate = 0; node.isexpand = true; node.parentId = item.F_ParentId == null ? "0" : item.F_ParentId; treeList.Add(node); } return treeList.ToTree(); } /// /// 项目值不能重复 /// /// 主键 /// 项目值 /// 分类编码 /// public async Task ExistDetailItemValue(string keyValue, string itemValue, string itemCode) { bool res = false; List list = (List)await GetDetailList(itemCode); if (string.IsNullOrEmpty(keyValue)) { res = list.FindAll(t => t.F_ItemValue.Equals(itemValue)).Count <= 0; } else { res = list.FindAll(t => t.F_ItemValue.Equals(itemValue) && !t.F_ItemDetailId.Equals(keyValue)).Count <= 0; } return res; } /// /// 项目名不能重复 /// /// 主键 /// 项目名 /// 分类编码 /// public async Task ExistDetailItemName(string keyValue, string itemName, string itemCode) { bool res = false; List list = (List)await GetDetailList(itemCode); if (string.IsNullOrEmpty(keyValue)) { res = list.FindAll(t => t.F_ItemName.Equals(itemName)).Count <= 0; } else { res = list.FindAll(t => t.F_ItemName.Equals(itemName) && !t.F_ItemDetailId.Equals(keyValue)).Count <= 0; } return res; } /// /// 保存明细数据实体 /// /// 主键 /// 实体 public async Task SaveDetailEntity(string keyValue, DataItemDetailEntity entity) { DataItemEntity classifyEntity = await dataItemService.GetClassifyEntityByKey(entity.F_ItemId); if (classifyEntity.F_IsTree != 1 || string.IsNullOrEmpty(entity.F_ParentId)) { entity.F_ParentId = "0"; } await dataItemService.SaveDetailEntity(keyValue, entity); } /// /// 虚拟删除明细数据 /// /// 主键 public async Task DeleteDetail(string keyValue) { await dataItemService.DeleteDetail(keyValue); } #endregion 字典明细 } }