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);
}
}
}