Files
sionrui/yudao/module/tik/kling/KlingServiceImpl.java
2025-12-01 22:27:50 +08:00

51 lines
1.7 KiB
Java

package cn.iocoder.yudao.module.tik.kling;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.tik.kling.dto.KlingIdentifyFaceRequest;
import cn.iocoder.yudao.module.tik.kling.dto.KlingIdentifyFaceResponse;
import cn.iocoder.yudao.module.tik.kling.vo.KlingIdentifyFaceReqVO;
import cn.iocoder.yudao.module.tik.kling.vo.KlingIdentifyFaceRespVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.stream.Collectors;
/**
* 可灵服务实现
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class KlingServiceImpl implements KlingService {
private final KlingClient klingClient;
@Override
public KlingIdentifyFaceRespVO identifyFace(KlingIdentifyFaceReqVO reqVO) {
// 转换请求对象
KlingIdentifyFaceRequest request = BeanUtils.toBean(reqVO, KlingIdentifyFaceRequest.class);
// 调用302.ai API
KlingIdentifyFaceResponse response = klingClient.identifyFace(request);
// 转换响应对象
KlingIdentifyFaceRespVO respVO = new KlingIdentifyFaceRespVO();
respVO.setSessionId(response.getData().getSessionId());
// 转换人脸数据列表
if (response.getData().getFaceData() != null) {
respVO.setFaceData(response.getData().getFaceData().stream()
.map(face -> BeanUtils.toBean(face, KlingIdentifyFaceRespVO.FaceDataVO.class))
.collect(Collectors.toList()));
}
log.info("[identify-face][识别完成][sessionId={}, faceCount={}]",
respVO.getSessionId(),
respVO.getFaceData() != null ? respVO.getFaceData().size() : 0);
return respVO;
}
}