diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/ExpressCallbackController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/ExpressCallbackController.java index c9d010ecc..dab77fae5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/ExpressCallbackController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/ExpressCallbackController.java @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.w3c.dom.Document; +import javax.servlet.http.HttpServletRequest; import java.util.concurrent.TimeUnit; /** @@ -72,7 +73,8 @@ public class ExpressCallbackController extends XktBaseController { @ApiOperation("圆通-轨迹推送") @RequestMapping(value = "yto/track") - public String ytoTrack(YtoTrackObj.Request request) { + public String ytoTrack(HttpServletRequest servletRequest) { + YtoTrackObj.Request request = new YtoTrackObj.Request(servletRequest); if (StrUtil.isNotBlank(request.getLogistics_interface()) && //验签 YtoSignUtil.verify(request.getData_digest(), request.getLogistics_interface(), ytoAppSecret2)) { @@ -80,7 +82,9 @@ public class ExpressCallbackController extends XktBaseController { Document dom = XmlUtil.parseXml(request.getLogistics_interface()); YtoTrackObj.Info obj = XmlUtil.xmlToBean(dom, YtoTrackObj.class).getUpdateInfo(); StoreOrderExpressTrackAddDTO trackAddDTO = trans2OrderTrack(obj); - storeOrderService.addTrack(trackAddDTO); + if (trackAddDTO.getExpressWaybillNo() != null) { + storeOrderService.addTrack(trackAddDTO); + } return YtoTrackObj.Response.builder() .success(true) .logisticProviderID(obj.getLogisticProviderID()) @@ -104,7 +108,9 @@ public class ExpressCallbackController extends XktBaseController { logger.info("中通-轨迹推送数据处理: {}", request); ZtoTrackObj.Info obj = JSONUtil.toBean(request.getData(), ZtoTrackObj.Info.class); StoreOrderExpressTrackAddDTO trackAddDTO = trans2OrderTrack(obj); - storeOrderService.addTrack(trackAddDTO); + if (trackAddDTO.getExpressWaybillNo() != null) { + storeOrderService.addTrack(trackAddDTO); + } return ZtoTrackObj.Response.builder() .status(true) .build() diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index 07506aec0..7672e0183 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -164,7 +164,7 @@ public class SecurityUtils { username = Optional.ofNullable(user).map(LoginUser::getUsername).orElse(null); } } catch (Exception e) { - log.error("获取用户账户异常", e); + log.warn("获取用户账户失败"); } return username; } @@ -183,7 +183,7 @@ public class SecurityUtils { userId = Optional.ofNullable(user).map(LoginUser::getUserId).orElse(null); } } catch (Exception e) { - log.error("获取用ID户异常", e); + log.warn("获取用户ID失败"); } return userId; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java index 25c17b1c4..4cfba48db 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreOrderServiceImpl.java @@ -1161,13 +1161,10 @@ public class StoreOrderServiceImpl implements IStoreOrderService { } refundOrderDetails.add(orderDetail); } + Assert.notEmpty(refundOrderDetails, "无可退款商品"); EOrderStatus orderStatus = EOrderStatus.AFTER_SALE_COMPLETED; for (StoreOrderDetail orderDetail : orderDetails) { - if (EOrderStatus.PLATFORM_INTERVENED.getValue().equals(orderDetail.getDetailStatus())) { - orderStatus = EOrderStatus.PLATFORM_INTERVENED; - break; - } if (EOrderStatus.AFTER_SALE_REJECTED.getValue().equals(orderDetail.getDetailStatus())) { orderStatus = EOrderStatus.AFTER_SALE_REJECTED; break; diff --git a/xkt/src/main/java/com/ruoyi/xkt/thirdpart/yto/YtoTrackObj.java b/xkt/src/main/java/com/ruoyi/xkt/thirdpart/yto/YtoTrackObj.java index 25982da41..6660f4560 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/thirdpart/yto/YtoTrackObj.java +++ b/xkt/src/main/java/com/ruoyi/xkt/thirdpart/yto/YtoTrackObj.java @@ -7,6 +7,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import javax.servlet.http.HttpServletRequest; import java.util.Date; /** @@ -143,6 +144,8 @@ public class YtoTrackObj { } @Data + @AllArgsConstructor + @NoArgsConstructor public static class Request { /** * 消息内容 @@ -160,5 +163,12 @@ public class YtoTrackObj { * 订单类型(online:在线下单,offline:线下下单) */ private String type; + + public Request(HttpServletRequest servletRequest) { + this(servletRequest.getParameter("logistics_interface"), + servletRequest.getParameter("data_digest"), + servletRequest.getParameter("clientId"), + servletRequest.getParameter("type")); + } } }