From 953319764fac47e0a1c6ebefd3d72ebfdcf9c413 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Mon, 2 Dec 2024 16:20:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=81=E8=B4=A7=E5=9C=B0=E5=9D=80bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShopOrderDeliveryAddressServiceImpl.java | 4 +- .../api/SFExpressApiController.java | 2 +- .../service/impl/SFExpressApiServiceImpl.java | 84 +++++++++++++------ .../impl/ShopStoreBaseServiceImpl.java | 4 +- .../mobile/UserDeliveryAddressController.java | 22 +++-- .../ShopUserDeliveryAddressServiceImpl.java | 35 +++++--- 6 files changed, 98 insertions(+), 53 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderDeliveryAddressServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderDeliveryAddressServiceImpl.java index 459bdbb6..e9972bb8 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderDeliveryAddressServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderDeliveryAddressServiceImpl.java @@ -64,10 +64,10 @@ public class ShopOrderDeliveryAddressServiceImpl extends BaseServiceImpl innerCreateSfExpressOrder(String orderId, Long orderPickupNum) { + public Pair innerCreateSfExpressOrder(String orderId, Long orderPickupNum) { // 从商家订单中,组件顺丰的订单信息,注:关键的函数 SFCreateOrderReq sfCreateOrderReq = shopOrderBaseService.buildSFOrderData(devId, orderId, orderPickupNum); @@ -223,10 +223,11 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Override public SFExpressApiRes cancelOrder(Map params) { if (params == null || params.get("order_id") == null) { - return new SFExpressApiRes().fail(1003,"请求参数有误!"); + return new SFExpressApiRes().fail(1003, "请求参数有误!"); } // 转换 json 字符串参数 + String orderId = params.get("order_id").toString(); String paramJSON = JsonUtil.toJSONString(params); // 根据参数生成请求签名 @@ -234,16 +235,30 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { String retRespStr = HttpUtil.post(send_url, paramJSON); if (StrUtil.isEmpty(retRespStr)) { logger.error("顺丰同城:取消订单异常,无返回值!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } SFExpressApiRes sfExpressApiRes = JsonUtil.json2object(retRespStr, SFExpressApiRes.class); if (sfExpressApiRes == null) { logger.error("顺丰同城:取消订单,返回值异常!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } - // TODO 更改商品订单状态: + // 判断订单的状态,是否已经取消了?已取消,不再执行 + ShopStoreSfOrder shopStoreSfOrderExist = shopStoreSfOrderService.getBySfOrderId(orderId); + if (shopStoreSfOrderExist != null && shopStoreSfOrderExist.getSf_order_status() != null + && (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) || + (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELING)))) { + return new SFExpressApiRes().success("订单已取消过!"); + } + + // 更改商城订单状态为:已取消,注意事务问题 + List orderList = new ArrayList<>(); + orderList.add(orderId); + Boolean success = shopOrderBaseService.cancel(orderList, null, false); + if (!success) { + return new SFExpressApiRes().fail(-1, "取消订单业务处理失败!"); + } return sfExpressApiRes; } @@ -257,7 +272,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Override public SFExpressApiRes addOrderGratuityFee(Map params) { if (params == null || params.get("order_id") == null || params.get("gratuity_fee") == null) { - return new SFExpressApiRes().fail(1003,"请求参数有误!"); + return new SFExpressApiRes().fail(1003, "请求参数有误!"); } params.putAll(buildCommonParams()); @@ -270,7 +285,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { String retRespStr = HttpUtil.post(send_url, paramJSON); if (StrUtil.isEmpty(retRespStr)) { logger.error("顺丰同城:订单加小费,无返回值!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } return JsonUtil.json2object(retRespStr, SFExpressApiRes.class); @@ -285,7 +300,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Override public SFExpressApiRes reminderOrder(Map params) { if (params == null || params.get("order_id") == null) { - return new SFExpressApiRes().fail(1003,"请求参数有误!"); + return new SFExpressApiRes().fail(1003, "请求参数有误!"); } params.putAll(buildCommonParams()); @@ -298,7 +313,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { String retRespStr = HttpUtil.post(send_url, paramJSON); if (StrUtil.isEmpty(retRespStr)) { logger.error("顺丰同城:催单异常,无返回值!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } return JsonUtil.json2object(retRespStr, SFExpressApiRes.class); @@ -315,7 +330,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Override public SFExpressApiRes listOrderFeed(Map params) { if (params == null || params.get("order_id") == null) { - return new SFExpressApiRes().fail(1003,"请求参数有误!"); + return new SFExpressApiRes().fail(1003, "请求参数有误!"); } params.putAll(buildCommonParams()); @@ -328,7 +343,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { String retRespStr = HttpUtil.post(send_url, paramJSON); if (StrUtil.isEmpty(retRespStr)) { logger.error("顺丰同城:订单状态流查询异常,无返回值!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } return JsonUtil.json2object(retRespStr, SFExpressApiRes.class); @@ -343,7 +358,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Override public SFExpressApiRes riderLatestPosition(Map params) { if (params == null || params.get("order_id") == null) { - return new SFExpressApiRes().fail(1003,"请求参数有误!"); + return new SFExpressApiRes().fail(1003, "请求参数有误!"); } params.putAll(buildCommonParams()); @@ -356,7 +371,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { String retRespStr = HttpUtil.post(send_url, paramJSON); if (StrUtil.isEmpty(retRespStr)) { logger.error("顺丰同城:获取配送员实时坐标异常,无返回值!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } return JsonUtil.json2object(retRespStr, SFExpressApiRes.class); @@ -371,7 +386,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { @Override public SFExpressApiRes riderViewV2(Map params) { if (params == null || params.get("order_id") == null) { - return new SFExpressApiRes().fail(1003,"请求参数有误!"); + return new SFExpressApiRes().fail(1003, "请求参数有误!"); } params.putAll(buildCommonParams()); @@ -384,7 +399,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { String retRespStr = HttpUtil.post(send_url, paramJSON); if (StrUtil.isEmpty(retRespStr)) { logger.error("顺丰同城:获取配送员轨迹H5异常,无返回值!"); - return new SFExpressApiRes().fail(-1,"顺丰同城:无返回值!"); + return new SFExpressApiRes().fail(-1, "顺丰同城:无返回值!"); } return JsonUtil.json2object(retRespStr, SFExpressApiRes.class); @@ -423,13 +438,27 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 更改顺丰同城订单状态 ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData); - Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder); - if (!success) { - return new SFExpressApiRes().fail(-1,"状态处理失败!"); + + // 判断订单的状态,是否已经取消了?已取消,不再执行 + ShopStoreSfOrder shopStoreSfOrderExist = shopStoreSfOrderService.getBySfOrderId(shopStoreSfOrder.getShop_order_id()); + if (shopStoreSfOrderExist != null && shopStoreSfOrderExist.getSf_order_status() != null + && (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELED) || + (shopStoreSfOrderExist.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_CANCELING)))) { + return new SFExpressApiRes().success("success"); } - // TODO 更改商城订单状态为:已取消,注意事务问题 + Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder); + if (!success) { + return new SFExpressApiRes().fail(-1, "状态处理失败!"); + } + // 更改商城订单状态为:已取消,注意事务问题 + List orderList = new ArrayList<>(); + orderList.add(shopStoreSfOrder.getShop_order_id()); + success = shopOrderBaseService.cancel(orderList, null, false); + if (!success) { + return new SFExpressApiRes().fail(-1, "取消订单业务处理失败!"); + } return new SFExpressApiRes().success("success"); } @@ -464,7 +493,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { } // 更改商城订单状态为:注意事务问题 - if(shopStoreSfOrder.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) { + if (shopStoreSfOrder.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_RECEIVED)) { // 配送员已取单配送中 // 商城订单状态:从 2030-待发货 到 2040-已发货/待收货确认 success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), StateCode.ORDER_STATE_WAIT_SHIPPING, StateCode.ORDER_PICKING_STATE_YES, StateCode.ORDER_SHIPPED_STATE_YES); @@ -502,17 +531,17 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { // 更改顺丰同城订单状态 ShopStoreSfOrder shopStoreSfOrder = toShopStoreSfOrder(jsonData); - if ( shopStoreSfOrder == null) { - return new SFExpressApiRes().fail(-1,"返回数据转换失败!"); + if (shopStoreSfOrder == null) { + return new SFExpressApiRes().fail(-1, "返回数据转换失败!"); } ShopStoreSfOrder order = shopStoreSfOrderService.getBySfOrderId(shopStoreSfOrder.getSf_order_id()); if (order == null) { - return new SFExpressApiRes().fail(-1,"订单不存在!"); + return new SFExpressApiRes().fail(-1, "订单不存在!"); } // 订单状态已经更改过,无需更改 - if (order.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_FINISH)){ + if (order.getSf_order_status().equals(StateCode.SF_ORDER_STATUS_FINISH)) { return new SFExpressApiRes().success("success"); } @@ -608,11 +637,12 @@ public class SFExpressApiServiceImpl implements SFExpressApiService { /** * 回调结果数据填充顺丰同城订单实例 + * * @param resultJSON * @return */ - private ShopStoreSfOrder toShopStoreSfOrder(String resultJSON){ - if(StrUtil.isBlank(resultJSON)){ + private ShopStoreSfOrder toShopStoreSfOrder(String resultJSON) { + if (StrUtil.isBlank(resultJSON)) { return null; } diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java index 66b36628..245742ba 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/store/service/impl/ShopStoreBaseServiceImpl.java @@ -2845,10 +2845,10 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl 0) { @@ -177,9 +187,9 @@ public class ShopUserDeliveryAddressServiceImpl extends BaseServiceImpl addressQueryWrapper = new QueryWrapper<>(); addressQueryWrapper.eq("user_id", userId).eq("label", updLabel).ne("ud_id", udId); - ShopUserDeliveryAddress deliveryAddress = new ShopUserDeliveryAddress(); - deliveryAddress.setUd_label(0); - - return edit(deliveryAddress, addressQueryWrapper); + ShopUserDeliveryAddress updDeliveryAddress = new ShopUserDeliveryAddress(); + updDeliveryAddress.setUd_label(0); + return edit(updDeliveryAddress, addressQueryWrapper); } }