From 360214ef4835065d3f6cc8d73681bdade004e852 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 19 Dec 2025 09:58:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=85=B3=E9=97=AD=20=E4=B8=BB=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/account/service/ShopInfoService.java | 2 +- .../service/impl/GbOrderServiceImpl.java | 52 +++++++++++-------- .../main/resources/mapper/GbOrderMapper.xml | 2 +- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopInfoService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopInfoService.java index e475b7127..f87dfec90 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopInfoService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopInfoService.java @@ -27,7 +27,7 @@ public interface ShopInfoService extends IService { * @param switchType ShopInfo的某列 开关 目前只支持Integer类型字段 * @return true:开启 false:关闭 */ - boolean checkSwitch(Long shopId, ShopSwitchTypeEnum switchType) throws ValidateException; + boolean checkSwitch(Long shopId, ShopSwitchTypeEnum switchType) throws ValidateException; Page get(PageDTO pageDTO, String shopName, Integer status, Integer isHeadShop); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java index de09f0660..cccfa199d 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/GbOrderServiceImpl.java @@ -333,7 +333,7 @@ public class GbOrderServiceImpl extends ServiceImpl impl throw new CzgException("申请失败,该商品不可申请退款"); } if ("待成团".equals(record.getStatus())) { - return refundAmount(record, param.getReason()); + return refundByGbOrderDetail(record, param.getReason()); } GbOrderDetail upRecord = new GbOrderDetail(); upRecord.setStatus("退款中"); @@ -395,7 +395,7 @@ public class GbOrderServiceImpl extends ServiceImpl impl if (!"待核销".equals(record.getStatus()) && !"待成团".equals(record.getStatus()) && !"退款中".equals(record.getStatus())) { throw new CzgException("退款失败,订单不处于待退款"); } - return refundAmount(record, param.getReason()); + return refundByGbOrderDetail(record, param.getReason()); } @Override @@ -442,25 +442,8 @@ public class GbOrderServiceImpl extends ServiceImpl impl return true; } - public boolean refundByGbOrder(GbOrder gbOrder, String reason) { - if (gbOrder == null) { - return false; - } - List details = detailService.list(query() - .eq(GbOrderDetail::getShopId, gbOrder.getShopId()) - .eq(GbOrderDetail::getGroupOrderNo, gbOrder.getGroupOrderNo()) - .ne(GbOrderDetail::getStatus, "已退款") - .eq(GbOrderDetail::getIsDel, SystemConstants.OneZero.ZERO)); - details.forEach(item -> FunUtils.safeRunVoid(() -> refundAmount(item, reason), "订单详情{}退款失败", item.getId())); - return true; - } - - - private boolean refundAmount(GbOrderDetail record, String reason) { - //退钱 - String refPayOrderNo = CzgRandomUtils.snowflake(OrderNoPrefixEnum.REP); - payService.unifyRefund(record.getShopId(), record.getId(), record.getPayOrderId(), refPayOrderNo, - StrUtil.isBlankIfStr(reason) ? "拼团退款" : reason, record.getPayAmount()); + //单个退 + public boolean refundByGbOrderDetail(GbOrderDetail record, String reason) { //回退 人数 GbOrder gbOrder = getOne(query().eq(GbOrder::getGroupOrderNo, record.getGroupOrderNo()).eq(GbOrder::getShopId, record.getShopId())); if (gbOrder != null) { @@ -473,6 +456,33 @@ public class GbOrderServiceImpl extends ServiceImpl impl } updateById(upOrder); } + FunUtils.safeRunVoid(() -> refundAmount(record, reason), "订单详情{}退款失败", record.getId()); + return false; + } + + //大量退 + public boolean refundByGbOrder(GbOrder gbOrder, String reason) { + if (gbOrder == null) { + return false; + } + List details = detailService.list(query() + .eq(GbOrderDetail::getShopId, gbOrder.getShopId()) + .eq(GbOrderDetail::getGroupOrderNo, gbOrder.getGroupOrderNo()) + .ne(GbOrderDetail::getStatus, "已退款") + .eq(GbOrderDetail::getIsDel, SystemConstants.OneZero.ZERO)); + details.forEach(item -> FunUtils.safeRunVoid(() -> refundAmount(item, reason), "订单详情{}退款失败", item.getId())); + GbOrder upOrder = new GbOrder(); + upOrder.setStatus("fail"); + update(upOrder, query().eq(GbOrder::getId, gbOrder.getId())); + return true; + } + + + private boolean refundAmount(GbOrderDetail record, String reason) { + //退钱 + String refPayOrderNo = CzgRandomUtils.snowflake(OrderNoPrefixEnum.REP); + payService.unifyRefund(record.getShopId(), record.getId(), record.getPayOrderId(), refPayOrderNo, + StrUtil.isBlankIfStr(reason) ? "拼团退款" : reason, record.getPayAmount()); GbOrderDetail upRecord = new GbOrderDetail(); upRecord.setStatus("已退款"); upRecord.setCancelReason(reason); diff --git a/cash-service/order-service/src/main/resources/mapper/GbOrderMapper.xml b/cash-service/order-service/src/main/resources/mapper/GbOrderMapper.xml index 84aa99845..7887e6de6 100644 --- a/cash-service/order-service/src/main/resources/mapper/GbOrderMapper.xml +++ b/cash-service/order-service/src/main/resources/mapper/GbOrderMapper.xml @@ -6,7 +6,7 @@