From ec51a38f51f382c9f263fbee346804d975b78506 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 17 Dec 2025 11:49:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=87=E6=BB=A4=20=E5=B7=B2=E5=8F=82?= =?UTF-8?q?=E5=9B=A2=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/user/UGbOrderController.java | 4 +-- .../java/com/czg/market/entity/GbWare.java | 2 +- .../com/czg/market/service/GbWareService.java | 3 ++ .../com/czg/order/service/GbOrderService.java | 2 +- .../service/impl/GbWareServiceImpl.java | 10 +++++++ .../service/impl/GbOrderServiceImpl.java | 29 +++++++++++++++---- 6 files changed, 40 insertions(+), 10 deletions(-) diff --git a/cash-api/order-server/src/main/java/com/czg/controller/user/UGbOrderController.java b/cash-api/order-server/src/main/java/com/czg/controller/user/UGbOrderController.java index cc5faaa51..c78814d3c 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/user/UGbOrderController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/user/UGbOrderController.java @@ -57,11 +57,11 @@ public class UGbOrderController { } /** - * 拼团订单详情 + * 拼团商品详情 */ @GetMapping("/ware/detail") public CzgResult getWareDetail(@RequestParam Long shopId, @RequestParam Long wareId) { - return CzgResult.success(orderService.getWareDetail(shopId, wareId)); + return CzgResult.success(orderService.getWareDetail(shopId, wareId, StpKit.USER.getLoginIdAsLong())); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java index 41f923a7d..1f584e609 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/GbWare.java @@ -79,7 +79,7 @@ public class GbWare implements Serializable { private BigDecimal groupPrice; /** - * 拼团库存 + * 拼团累计数 */ private Integer groupedNum; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java index d4605456f..1308ebb44 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/GbWareService.java @@ -25,4 +25,7 @@ public interface GbWareService extends IService { //删除 下架状态可删除 boolean deleteGbWare(Long id); + + // 累计拼团数+1 + void upGbWareGroupedNum(Long id); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java index a26f7fb16..6bc519249 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/GbOrderService.java @@ -29,7 +29,7 @@ public interface GbOrderService extends IService { GbOrderDetailVO getGoodsRecordDetail(Long shopId, Long detailId); //商品详情 - GbWareVO getWareDetail(Long shopId, Long wareId); + GbWareVO getWareDetail(Long shopId, Long wareId, Long userId); //成团/参团 支付 CzgResult> groupJoin(GroupJoinDTO param); diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java index cd6976cba..032078e83 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/GbWareServiceImpl.java @@ -78,6 +78,16 @@ public class GbWareServiceImpl extends ServiceImpl impleme return remove(query().eq(GbWare::getId, id).eq(GbWare::getShopId, StpKit.USER.getShopId())); } + @Override + public void upGbWareGroupedNum(Long id) { + GbWare ware = getById(id); + if (ware != null) { + GbWare upWare = new GbWare(); + upWare.setGroupedNum(ware.getGroupedNum() == null ? 1 : ware.getGroupedNum() + 1); + update(upWare, query().eq(GbWare::getId, id)); + } + } + private void checkStatus(Long id) { GbWare ware = getById(id); AssertUtil.isNotEqual(ware.getOnlineStatus(), 0, "操作失败,请下架后,重试"); 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 9f96490bc..b4a5ced4b 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 @@ -49,6 +49,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -108,7 +109,7 @@ public class GbOrderServiceImpl extends ServiceImpl impl } @Override - public GbWareVO getWareDetail(Long shopId, Long wareId) { + public GbWareVO getWareDetail(Long shopId, Long wareId, Long userId) { GbWareVO ware = wareService.getOneAs(query().eq(GbWare::getId, wareId), GbWareVO.class); AssertUtil.isNull(ware, "商品不存在"); if (ware.getIsDel() || ware.getOnlineStatus() == 0) { @@ -119,18 +120,32 @@ public class GbOrderServiceImpl extends ServiceImpl impl ware.setShopName(shopInfo.getShopName()); ware.setShopAddress(shopInfo.getAddress()); } + List orderIngResult = new ArrayList<>(); List orderIng = listAs(query().eq(GbOrder::getId, wareId) .eq(GbOrder::getShopId, shopId) .eq(GbOrder::getStatus, "ing") + .orderBy(GbOrder::getGroupEndTime).desc() , GbWareOrderVO.class); - orderIng.forEach(ing -> { + for (GbWareOrderVO ing : orderIng) { + QueryWrapper queryWrapper1 = query(); + queryWrapper1.eq(GbOrderDetail::getIsDel, 0) + .and(q -> { + q.eq(GbOrderDetail::getStatus, "待成团").or(GbOrderDetail::getStatus).eq("退款中"); + }); + queryWrapper1.eq(GbOrderDetail::getGroupOrderNo, ing.getGroupOrderNo()); + queryWrapper1.eq(GbOrderDetail::getUserId, userId); + boolean exists = detailService.exists(queryWrapper1); + if (exists) { + continue; + } + QueryWrapper queryWrapper = QueryWrapper.create(); queryWrapper.eq(GbOrderDetail::getIsDel, 0) .and(q -> { q.eq(GbOrderDetail::getStatus, "待成团").or(GbOrderDetail::getStatus).eq("退款中"); - }) - .orderBy(GbOrderDetail::getPayTime); + }); queryWrapper.eq(GbOrderDetail::getGroupOrderNo, ing.getGroupOrderNo()); + queryWrapper.orderBy(GbOrderDetail::getPayTime).asc(); GbOrderDetail detail = detailService.getOne(queryWrapper); if (detail != null) { ShopUser userInfo = shopUserService.getUserInfo(detail.getShopId(), detail.getUserId()); @@ -139,8 +154,9 @@ public class GbOrderServiceImpl extends ServiceImpl impl ing.setNickName(userInfo.getNickName()); } } - }); - ware.setGbOrderList(orderIng); + orderIngResult.add(ing); + } + ware.setGbOrderList(orderIngResult); return ware; } @@ -270,6 +286,7 @@ public class GbOrderServiceImpl extends ServiceImpl impl order.setGroupEndTime(LocalDateTime.now()); GbOrderDetail upRecord = new GbOrderDetail(); upRecord.setStatus("待核销"); + wareService.upGbWareGroupedNum(order.getWareId()); detailService.update(upRecord, query() .eq(GbOrderDetail::getGroupOrderNo, order.getGroupOrderNo()) .eq(GbOrderDetail::getShopId, order.getShopId())