完善获得字典值

This commit is contained in:
cool 2024-02-27 19:29:48 +08:00
parent 390849d4fe
commit c6e660713b

View File

@ -64,25 +64,44 @@ export class DictInfoService extends BaseService {
}
/**
*
* @param infoId
*
* @param value
* @param key
* @returns
*/
async value(infoId: number) {
const info = await this.dictInfoEntity.findOneBy({ id: infoId });
return info?.name;
async getValues(value: string | string[], key: string) {
// 获取字典类型
const type = await this.dictTypeEntity.findOneBy({ key });
if (!type) {
return null; // 或者适当的错误处理
}
// 根据typeId获取所有相关的字典信息
const dictValues = await this.dictInfoEntity.find({
where: { typeId: type.id },
});
// 如果value是字符串直接查找
if (typeof value === 'string') {
return this.findValueInDictValues(value, dictValues);
}
// 如果value是数组遍历数组对每个元素进行查找
return value.map(val => this.findValueInDictValues(val, dictValues));
}
/**
*
* @param infoId
*
* @param value
* @param dictValues
* @returns
*/
async values(infoIds: number[]) {
const infos = await this.dictInfoEntity.findBy({ id: In(infoIds) });
return infos.map(e => {
return e.name;
});
findValueInDictValues(value: string, dictValues: any[]) {
let result = dictValues.find(dictValue => dictValue.value === value);
if (!result) {
result = dictValues.find(dictValue => dictValue.id === parseInt(value));
}
return result ? result.name : null; // 或者适当的错误处理
}
/**