|
|
@@ -424,6 +424,12 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
|
|
|
updateOrderFromRecognition(order, skuListStr, resourceInfoStr, confidence, activityId);
|
|
|
logRecognizeResultDetails(resultStr, skuListStr, resourceInfoStr);
|
|
|
|
|
|
+ // 低置信度订单拉取开门前后图片供人工审核
|
|
|
+ if (confidence != null && confidence.compareTo(new BigDecimal("0.8")) < 0) {
|
|
|
+ log.info("识别置信度较低({}),拉取订单图像供人工审核 - activityId: {}", confidence, activityId);
|
|
|
+ getOrderMedia(null, activityId);
|
|
|
+ }
|
|
|
+
|
|
|
// 更新关门状态
|
|
|
doorRecordService.updateDoorClosed(activityId);
|
|
|
log.info("AI识别结果处理完成 - activityId: {}, orderId: {}", activityId, order.getId());
|
|
|
@@ -1391,6 +1397,8 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
|
|
|
if (PayScoreState.DONE.getCode().equals(state)) {
|
|
|
log.info("支付分扣费成功 - orderId: {}, state: {}, outOrderNo: {}",
|
|
|
order.getId(), state, result.getOutOrderNo());
|
|
|
+ // 通知哈哈平台支付已完成
|
|
|
+ syncPayStatusToHaha(order);
|
|
|
} else if (PayScoreState.isPaying(state)) {
|
|
|
log.warn("支付分扣款已发起但用户待支付 - orderId: {}, state: {}, outOrderNo: {}",
|
|
|
order.getId(), state, result.getOutOrderNo());
|
|
|
@@ -1406,4 +1414,68 @@ public class HahaCallbackServiceImpl implements HahaCallbackService {
|
|
|
log.error("处理支付分扣费异常 - orderId: {}", order.getId(), e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步支付状态到哈哈平台
|
|
|
+ * 告知哈哈平台该订单已完成支付
|
|
|
+ */
|
|
|
+ private void syncPayStatusToHaha(Order order) {
|
|
|
+ try {
|
|
|
+ if (order.getOrderNo() != null && !order.getOrderNo().isEmpty()) {
|
|
|
+ hahaClient.getOrderApi().setPayStatus(order.getOrderNo());
|
|
|
+ log.info("支付状态已同步到哈哈平台 - orderNo: {}", order.getOrderNo());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("同步支付状态到哈哈平台失败 - orderNo: {}", order.getOrderNo(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取订单图像用于人工审核
|
|
|
+ * 当识别置信度低于阈值时拉取开门前后图片
|
|
|
+ */
|
|
|
+ public Map<String, Object> getOrderMedia(String orderId, String activityId) {
|
|
|
+ try {
|
|
|
+ return hahaClient.getOrderApi().getOrderMedia(orderId, activityId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("获取订单图像失败 - orderId: {}, activityId: {}", orderId, activityId, e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从哈哈平台查询订单详情(用于对账补偿)
|
|
|
+ */
|
|
|
+ public Map<String, Object> queryOrderFromHaha(String orderId, String activityId) {
|
|
|
+ try {
|
|
|
+ return hahaClient.getOrderApi().queryOrder(orderId, activityId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("从哈哈平台查询订单失败 - orderId: {}, activityId: {}", orderId, activityId, e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询回调投递状态
|
|
|
+ */
|
|
|
+ public Map<String, Object> getCallbackInfo(String type, String actId) {
|
|
|
+ try {
|
|
|
+ return hahaClient.getOrderApi().getCallbackInfo(type, actId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("查询回调投递状态失败 - type: {}, actId: {}", type, actId, e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取静态柜分层识别结果
|
|
|
+ */
|
|
|
+ public Map<String, Object> getLayerRecognize(String orderId, String activityId) {
|
|
|
+ try {
|
|
|
+ return hahaClient.getOrderApi().getLayerRecognize(orderId, activityId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("获取静态柜分层识别结果失败 - orderId: {}, activityId: {}", orderId, activityId, e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|