using Model; using Model.Dto.System; using SqlSugar; using System.Collections.Generic; using System.Threading.Tasks; namespace Service.Interface { /// /// 数据字典管理 服务接口 /// 约定:字典分类(DictType) + 字典项(DictItem) 二层结构,不支持级联 /// public interface IDictService { // ==================== 字典分类 ==================== /// 分页查询字典分类(关键字匹配 Code/Name) Task>> GetTypesPagedAsync(int pageIndex, int pageSize, RefAsync total, string? keyword = null); /// 全部启用的字典分类(下拉用,不缓存) Task>> GetTypesAllAsync(); /// 字典分类详情 Task> GetTypeByIdAsync(long id); /// 新增字典分类(校验编码唯一) Task> AddTypeAsync(DictTypeDto dto); /// 修改字典分类 Task> UpdateTypeAsync(DictTypeDto dto); /// 删除字典分类(分类下有字典项时禁止删除) Task DeleteTypeAsync(long id); // ==================== 字典项 ==================== /// 查询指定分类下的字典项(按 Sort、CreateTime 倒序) Task>> GetItemsByTypeAsync(long typeId); /// 新增字典项(校验同分类下编码唯一;IsDefault=1 时清零其它默认项) Task> AddItemAsync(DictItemDto dto); /// 修改字典项 Task> UpdateItemAsync(DictItemDto dto); /// 删除字典项 Task DeleteItemAsync(long id); // ==================== 业务侧(无权限,供其它模块调用) ==================== /// 按字典编码查询启用项(带 IMemoryCache 缓存,增删改时失效) Task>> GetOptionsByCodeAsync(string typeCode); } }