From b25411fe8aae9c2db3854b548c8761ad170bf5ef Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 12 Aug 2025 15:57:08 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=90=8C=E6=AD=A5=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=A4=B1=E8=B4=A5=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RetailOrderServiceImpl.java | 17 ++++-- .../sale/order/mapper/SaOrderSyncMapper.java | 11 ++++ .../order/service/ISaOrderSyncService.java | 11 ++++ .../service/impl/SaOrderSyncServiceImpl.java | 15 +++++ .../mapper/sale/order/SaOrderSyncMapper.xml | 5 ++ .../common/domain/sale/order/SaOrderSync.java | 57 +++++++++++++++++++ 6 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java create mode 100644 bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml create mode 100644 bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index 2a07d262..56c36fa5 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -93,6 +93,8 @@ public class RetailOrderServiceImpl implements IRetailOrderService { private ISaOrderWaresLimitService iSaOrderWaresLimitService; @Autowired private IBdProductService iBdProductService; + @Autowired + private ISaOrderSyncService iSaOrderSyncService; @Autowired private RedisService redisService; @@ -1087,19 +1089,24 @@ public class RetailOrderServiceImpl implements IRetailOrderService { httpRequest.header("authorization", header); httpRequest.body(JSONUtil.toJsonStr(bodyMap)); httpRequest.setReadTimeout(5000); - String resultStr; try { - resultStr = httpRequest.execute().body(); + // 同步产品接口返回 + String resultStr = httpRequest.execute().body(); AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class); log.info("同步产品,resultStr: {}", resultStr); if (!ajaxResult.isSuccess()) { + // 同步产品失败,250毫秒后重试 + Thread.sleep(250); resultStr = httpRequest.execute().body(); log.info("同步产品失败重试,resultStr: {}", resultStr); } } catch (Exception e) { - log.error("同步产品库存失败", e); - resultStr = httpRequest.execute().body(); - log.info("同步产品异常重试,resultStr: {}", resultStr); + log.error("同步产品库存异常", e); + // 保存订单产品同步记录 + iSaOrderSyncService.save(SaOrderSync.builder() + .orderCode(saOrderExt.getOrderCode()) + .bodyDetail(JSONUtil.toJsonStr(bodyDetailList)) + .build()); } }); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java new file mode 100644 index 00000000..ff8dfead --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/mapper/SaOrderSyncMapper.java @@ -0,0 +1,11 @@ +package com.hzs.sale.order.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.hzs.common.domain.sale.order.SaOrderSync; + +/** + * 订单产品同步记录 Mapper 接口 + */ +public interface SaOrderSyncMapper extends BaseMapper { + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java new file mode 100644 index 00000000..ce5897bc --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/ISaOrderSyncService.java @@ -0,0 +1,11 @@ +package com.hzs.sale.order.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.hzs.common.domain.sale.order.SaOrderSync; + +/** + * 订单产品同步记录 服务类 + */ +public interface ISaOrderSyncService extends IService { + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java new file mode 100644 index 00000000..bce905ad --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderSyncServiceImpl.java @@ -0,0 +1,15 @@ +package com.hzs.sale.order.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.common.domain.sale.order.SaOrderSync; +import com.hzs.sale.order.mapper.SaOrderSyncMapper; +import com.hzs.sale.order.service.ISaOrderSyncService; +import org.springframework.stereotype.Service; + +/** + * 订单产品同步记录 服务实现类 + */ +@Service +public class SaOrderSyncServiceImpl extends ServiceImpl implements ISaOrderSyncService { + +} diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml new file mode 100644 index 00000000..f4ef63e1 --- /dev/null +++ b/bd-business/bd-business-sale/src/main/resources/mapper/sale/order/SaOrderSyncMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java new file mode 100644 index 00000000..0285fb73 --- /dev/null +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderSync.java @@ -0,0 +1,57 @@ +package com.hzs.common.domain.sale.order; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 订单产品同步记录 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("SA_ORDER_SYNC") +public class SaOrderSync implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId("PK_ID") + private Long pkId; + + /** + * 订单编号 + */ + @TableField("ORDER_CODE") + private String orderCode; + + /** + * 产品明细列表 + */ + @TableField("BODY_DETAIL") + private String bodyDetail; + + /** + * 创建时间 + */ + @TableField("CREATION_TIME") + private Date creationTime; + + /** + * 同步状态(1=失败) + */ + @TableField("STATUS") + private Integer status; + + +}