using Infrastructure; using Infrastructure.Attribute; using System; using System.Collections.Generic; using System.Text; using ZR.Model.System; using ZR.Repository.System; using ZR.Service.IService; namespace ZR.Service.System { /// /// 字典类型 /// [AppService(ServiceType = typeof(ISysDictService), ServiceLifetime = LifeTime.Transient)] public class SysDictService : BaseService, ISysDictService { private SysDictRepository sysDictRepository; private SysDictDataRepository DictDataRepository; public SysDictService(SysDictRepository sysDictRepository, SysDictDataRepository dictDataRepository) { this.sysDictRepository = sysDictRepository; this.DictDataRepository = dictDataRepository; } /// /// 查询字段类型列表 /// /// 实体模型 /// public List SelectDictTypeList(SysDictType dictType) { return sysDictRepository.SelectDictTypeList(dictType); } /// /// 根据Id查询 /// /// /// public SysDictType SelectDictTypeById(long id) { return sysDictRepository.SelectDictTypeById(id); } /// /// 校验字典类型称是否唯一 /// /// 字典类型 /// public string CheckDictTypeUnique(SysDictType dictType) { SysDictType sysDictType = sysDictRepository.CheckDictTypeUnique(dictType.DictType); if (sysDictType != null && sysDictType.DictId != dictType.DictId) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; } /// /// 删除一个 /// /// /// public int DeleteDictTypeById(long id) { return sysDictRepository.DeleteDictTypeById(id); } /// /// 批量删除字典数据信息 /// /// /// public int DeleteDictTypeByIds(long[] dictIds) { foreach (var dictId in dictIds) { SysDictType dictType = SelectDictTypeById(dictId); if (DictDataRepository.CountDictDataByType(dictType.DictType) > 0) { throw new CustomException($"{dictType.DictName}已分配,不能删除"); } } int count = sysDictRepository.DeleteDictTypeByIds(dictIds); //if (count > 0) //{ // DictUtils.clearDictCache(); //} return count; } /// /// 插入字典类型 /// /// /// public long InsertDictType(SysDictType sysDictType) { return sysDictRepository.InsertDictType(sysDictType); } /// /// 修改字典类型 /// /// /// public int UpdateDictType(SysDictType sysDictType) { SysDictType oldDict = sysDictRepository.SelectDictTypeById(sysDictType.DictId); if (sysDictType.DictType != oldDict.DictType) { //同步修改 dict_data表里面的DictType值 DictDataRepository.UpdateDictDataType(oldDict.DictType, sysDictType.DictType); } return sysDictRepository.UpdateDictType(sysDictType); } } }