1.上传人脸修复

koumen
shenzhidan 2026-07-29 11:03:56 +08:00
parent 1366309b02
commit 00de04fd98
1 changed files with 39 additions and 1 deletions

View File

@ -1,6 +1,10 @@
package com.zcloud.primeport.command; package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.gbscommon.zclouduser.facade.ZcloudUserFacade;
import com.zcloud.gbscommon.zclouduser.request.ZcloudUserImgQry;
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserImgBase64Co;
import com.zcloud.primeport.domain.gateway.DaHuaGateway; import com.zcloud.primeport.domain.gateway.DaHuaGateway;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway; import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd; import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
@ -9,6 +13,7 @@ import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd; import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
import jodd.util.Base64; import jodd.util.Base64;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
@ -28,6 +33,9 @@ public class DaHuaPersonSyncExe {
private final DaHuaGateway daHuaGateway; private final DaHuaGateway daHuaGateway;
private final PersonApplyGateway personApplyGateway; private final PersonApplyGateway personApplyGateway;
@DubboReference
private ZcloudUserFacade zcloudUserFacade;
/** /**
* *
*/ */
@ -118,11 +126,41 @@ public class DaHuaPersonSyncExe {
DaHuaPersonSyncCmd.PersonBiosignature face = new DaHuaPersonSyncCmd.PersonBiosignature(); DaHuaPersonSyncCmd.PersonBiosignature face = new DaHuaPersonSyncCmd.PersonBiosignature();
face.setType(3); face.setType(3);
face.setIndex(1); face.setIndex(1);
face.setPath(faceUrl); // userFaceUrl 是用户中心的文件路径,先通过 Dubbo 获取 Base64交给网关上传到大华
face.setBase64Data(resolveFaceBase64(faceUrl));
cmd.setPersonBiosignatures(Collections.singletonList(face)); cmd.setPersonBiosignatures(Collections.singletonList(face));
return cmd; return cmd;
} }
/**
* Base64
* path fileUrl使
*/
private String resolveFaceBase64(String faceUrl) {
if (faceUrl == null || faceUrl.trim().isEmpty()) {
throw new BizException("相关方人员头像不能为空");
}
ZcloudUserImgQry qry = new ZcloudUserImgQry();
qry.setUrlList(Collections.singletonList(faceUrl));
MultiResponse<ZcloudUserImgBase64Co> response;
try {
response = zcloudUserFacade.listBase64ByUrl(qry);
} catch (Exception e) {
throw new BizException("获取相关方人员头像失败");
}
if (response == null || response.getData() == null) {
throw new BizException("获取相关方人员头像失败");
}
for (ZcloudUserImgBase64Co image : response.getData()) {
if (image != null && faceUrl.equals(image.getUserAvatarUrl())
&& image.getUserAvatarBase64() != null
&& !image.getUserAvatarBase64().trim().isEmpty()) {
return image.getUserAvatarBase64();
}
}
throw new BizException("相关方人员头像转换失败");
}
private String decodeUserCard(String userCard) { private String decodeUserCard(String userCard) {
try { try {
return Base64.decodeToString(userCard); return Base64.decodeToString(userCard);