|
|
@@ -39,10 +39,11 @@ import org.dromara.fulfiller.mapper.SysTagMapper;
|
|
|
import org.dromara.fulfiller.mapper.SysTagRelMapper;
|
|
|
import org.dromara.fulfiller.service.IFlfFulfillerService;
|
|
|
|
|
|
-import org.dromara.resource.api.RemoteFileService;
|
|
|
-import org.dromara.resource.api.domain.RemoteFile;
|
|
|
+import org.dromara.service.api.RemoteSysServiceService;
|
|
|
import org.dromara.system.api.RemoteAreaStationService;
|
|
|
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -69,7 +70,7 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
|
|
|
private RemoteAreaStationService remoteAreaStationService;
|
|
|
|
|
|
@DubboReference
|
|
|
- private RemoteFileService remoteFileService;
|
|
|
+ private RemoteSysServiceService remoteSysServiceService;
|
|
|
|
|
|
@Override
|
|
|
public FlfFulfillerVo queryById(Long id) {
|
|
|
@@ -322,9 +323,18 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
|
|
|
if (vo.getStationId() != null) {
|
|
|
vo.setStationName(remoteAreaStationService.selectNameById(vo.getStationId()));
|
|
|
}
|
|
|
- // 解析服务类型 JSON
|
|
|
+ // 解析服务类型(逗号分隔ID -> 名称列表)
|
|
|
if (StringUtils.isNotBlank(vo.getServiceTypes())) {
|
|
|
- vo.setServiceTypeList(com.alibaba.fastjson2.JSON.parseArray(vo.getServiceTypes(), String.class));
|
|
|
+ try {
|
|
|
+ String cleaned = vo.getServiceTypes().replaceAll("[\\[\\]\"']", "");
|
|
|
+ List<Long> serviceIds = java.util.Arrays.stream(cleaned.split(","))
|
|
|
+ .map(String::trim).filter(s -> !s.isEmpty() && s.matches("\\d+"))
|
|
|
+ .map(Long::parseLong)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (!serviceIds.isEmpty()) {
|
|
|
+ vo.setServiceTypeList(remoteSysServiceService.selectNamesByIds(serviceIds));
|
|
|
+ }
|
|
|
+ } catch (Exception ignored) {}
|
|
|
}
|
|
|
// 计算注册天数
|
|
|
if (vo.getCreateTime() != null) {
|
|
|
@@ -340,44 +350,7 @@ public class FlfFulfillerServiceImpl implements IFlfFulfillerService {
|
|
|
FlfFulfiller entity = baseMapper.selectById(vo.getId());
|
|
|
vo.setHasPassword(entity != null && StringUtils.isNotBlank(entity.getPassword()));
|
|
|
|
|
|
- // 收集所有需要查询URL的OSS ID
|
|
|
- List<String> ossIds = new ArrayList<>();
|
|
|
- if (vo.getAvatar() != null) ossIds.add(String.valueOf(vo.getAvatar()));
|
|
|
- if (vo.getIdCardFront() != null) ossIds.add(String.valueOf(vo.getIdCardFront()));
|
|
|
- if (vo.getIdCardBack() != null) ossIds.add(String.valueOf(vo.getIdCardBack()));
|
|
|
- // 解析资质图片 OSS IDs
|
|
|
- List<String> qualOssIds = new ArrayList<>();
|
|
|
- if (StringUtils.isNotBlank(vo.getQualImages())) {
|
|
|
- qualOssIds = com.alibaba.fastjson2.JSON.parseArray(vo.getQualImages(), String.class);
|
|
|
- ossIds.addAll(qualOssIds);
|
|
|
- }
|
|
|
- // 批量查询 OSS URL
|
|
|
- if (!ossIds.isEmpty()) {
|
|
|
- String idsStr = String.join(",", ossIds);
|
|
|
- List<RemoteFile> files = remoteFileService.selectByIds(idsStr);
|
|
|
- for (RemoteFile f : files) {
|
|
|
- if (vo.getAvatar() != null && f.getOssId().equals(vo.getAvatar())) {
|
|
|
- vo.setAvatarUrl(f.getUrl());
|
|
|
- }
|
|
|
- if (vo.getIdCardFront() != null && f.getOssId().equals(vo.getIdCardFront())) {
|
|
|
- vo.setIdCardFrontUrl(f.getUrl());
|
|
|
- }
|
|
|
- if (vo.getIdCardBack() != null && f.getOssId().equals(vo.getIdCardBack())) {
|
|
|
- vo.setIdCardBackUrl(f.getUrl());
|
|
|
- }
|
|
|
- }
|
|
|
- // 资质图片URL
|
|
|
- List<String> qualUrls = new ArrayList<>();
|
|
|
- for (String qId : qualOssIds) {
|
|
|
- for (RemoteFile f : files) {
|
|
|
- if (String.valueOf(f.getOssId()).equals(qId)) {
|
|
|
- qualUrls.add(f.getUrl());
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- vo.setQualImageUrls(qualUrls);
|
|
|
- }
|
|
|
+ // 图片URL由 @Translation 注解在序列化时自动解析,无需手动处理
|
|
|
} catch (Exception e) {
|
|
|
log.warn("enrichVo失败: {}", e.getMessage());
|
|
|
}
|