|
|
@@ -711,6 +711,7 @@ export class DisabledPersonService extends GenericCrudService<DisabledPerson> {
|
|
|
/**
|
|
|
* 获取人才个人信息(用于人才小程序)
|
|
|
* 直接返回数据库原始数据,日期字段由 schema 的 z.coerce.date() 自动处理
|
|
|
+ * 将 province/city/district 的 id 转换为地区名称
|
|
|
*/
|
|
|
async getPersonalInfo(personId: number): Promise<any | null> {
|
|
|
const person = await this.repository.findOne({
|
|
|
@@ -721,8 +722,40 @@ export class DisabledPersonService extends GenericCrudService<DisabledPerson> {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- // 直接返回原始数据,不进行日期转换
|
|
|
- // z.coerce.date() 会在 parseWithAwait 时自动处理 Date/string 转换
|
|
|
+ // 将地区 id 转换为地区名称 - 使用原始查询
|
|
|
+ let provinceName = person.province;
|
|
|
+ let cityName = person.city;
|
|
|
+ let districtName = person.district;
|
|
|
+
|
|
|
+ // 辅助函数:通过 id 查询地区名称
|
|
|
+ const getAreaName = async (idValue: string | null): Promise<string> => {
|
|
|
+ if (!idValue) return '';
|
|
|
+ const id = parseInt(idValue, 10);
|
|
|
+ if (isNaN(id)) return idValue;
|
|
|
+
|
|
|
+ try {
|
|
|
+ const result = await this.dataSource.query(
|
|
|
+ 'SELECT name FROM areas WHERE id = $1 LIMIT 1',
|
|
|
+ [id]
|
|
|
+ );
|
|
|
+ return result && result.length > 0 ? result[0].name : idValue;
|
|
|
+ } catch {
|
|
|
+ return idValue;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 并行查询省、市、区名称
|
|
|
+ const [province, city, district] = await Promise.all([
|
|
|
+ getAreaName(person.province),
|
|
|
+ getAreaName(person.city),
|
|
|
+ getAreaName(person.district)
|
|
|
+ ]);
|
|
|
+
|
|
|
+ provinceName = province;
|
|
|
+ cityName = city;
|
|
|
+ districtName = district;
|
|
|
+
|
|
|
+ // 返回数据,地区字段使用转换后的名称
|
|
|
return {
|
|
|
name: person.name,
|
|
|
gender: person.gender,
|
|
|
@@ -731,9 +764,9 @@ export class DisabledPersonService extends GenericCrudService<DisabledPerson> {
|
|
|
disabilityType: person.disabilityType,
|
|
|
disabilityLevel: person.disabilityLevel,
|
|
|
phone: person.phone,
|
|
|
- province: person.province,
|
|
|
- city: person.city,
|
|
|
- district: person.district,
|
|
|
+ province: provinceName,
|
|
|
+ city: cityName,
|
|
|
+ district: districtName,
|
|
|
detailedAddress: person.detailedAddress,
|
|
|
birthDate: person.birthDate,
|
|
|
idAddress: person.idAddress,
|