From 7995746c5dd82bf697a68c69421bf10556df097f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Fri, 15 Nov 2024 14:48:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=BF=87=E6=9C=9F=E8=BF=94=E8=BF=98=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/order/TbOrderInfoServiceImpl.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java index f7a953ac..34ac129a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/order/TbOrderInfoServiceImpl.java @@ -450,6 +450,25 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { keys.add(CacheKey.PRODUCT_SKU + detail.getShopId() + ":" + detail.getId()); } + // 查询是否消耗了积分优惠券返还对应的卷或商品 + if (tbOrderInfo.getCouponInfoList() != null) { + OrderCouponInfoDTO couponInfoDTO = JSONObject.parseObject(tbOrderInfo.getCouponInfoList(), OrderCouponInfoDTO.class); + // 券返还 + if (!couponInfoDTO.getOutRecordList().isEmpty()) { + couponInfoDTO.getOutRecordList().forEach(item -> { + item.setRefNum(item.getUseNum()); + }); + shopCouponService.refund(couponInfoDTO.getOutRecordList()); + couponInfoDTO.setOutRecordList(new ArrayList<>()); + tbOrderInfo.setCouponInfoList(null); + } + } + + // 返还积分 + if (tbOrderInfo.getPointsNum() != null && tbOrderInfo.getPointsNum() != 0 && tbOrderInfo.getMemberId() != null) { + memberPointsService.addPoints(Long.valueOf(tbOrderInfo.getMemberId()), tbOrderInfo.getPointsNum(), "订单取消返还: " + tbOrderInfo.getPointsNum() + "积分", Long.valueOf(orderInfo.getId())); + } + mpCashierCartService.updateStateByOrderId(TableConstant.OrderInfo.Status.CLOSED, tbOrderInfo.getId()); String[] keysArray = keys.toArray(new String[keys.size()]); redisUtils.del(keysArray); @@ -653,7 +672,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { return; } TbOrderInfo returnOrder = orderInfoMapper.selectOne(new LambdaQueryWrapper() - .eq(TbOrderInfo::getStatus, "refunding") + .eq(TbOrderInfo::getStatus, "refunding") .eq(TbOrderInfo::getSource, orderInfo.getId())); if (returnOrder == null) { log.warn("订单信息不存在: {}", payOrderId); @@ -705,7 +724,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService { .set(TbOrderInfo::getPointsNum, 0) .set(TbOrderInfo::getUpdatedAt, cn.hutool.core.date.DateUtil.current()) .set(TbOrderInfo::getStatus, "cancelled")); - }catch (Exception e) { + } catch (Exception e) { log.error("取消订单失败: 订单信息: {}", orderInfo); log.error("异常信息: ", e); }