From e1d24e1ae7bca4a14923410d9131035e0bcfe8b9 Mon Sep 17 00:00:00 2001 From: huk Date: Fri, 10 Oct 2025 16:40:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(order):=20=E5=A2=9E=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=95=86=E5=93=81=E9=94=80=E9=87=8F=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改订单支付成功逻辑,增加商品销量更新调用- 在 OrderItemService 中新增 addSaleNum 方法用于批量更新商品销量 - 在 ProductMapper 中新增 updateSales 方法实现销量累加 - 调整常量 ORDER_CANCEL_TIME从15分钟延长至30分钟 - 移除冗余的类导入和无用注解 - 更新 AppMemberController 关注相关接口的日志标题与描述 --- .../java/org/dromara/app/AppMemberController.java | 13 ++++--------- .../org/dromara/common/core/constant/Constants.java | 2 +- .../com/wzj/soopin/goods/domain/entity/Product.java | 6 ++++++ .../com/wzj/soopin/goods/mapper/ProductMapper.java | 5 +++++ .../wzj/soopin/order/service/OrderItemService.java | 2 ++ .../order/service/impl/OrderItemServiceImpl.java | 13 +++++++++++-- .../transaction/kit/params/impl/OrderCashier.java | 2 ++ 7 files changed, 31 insertions(+), 12 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java b/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java index cdbea6448..39ba2841f 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/AppMemberController.java @@ -27,14 +27,12 @@ import com.wzj.soopin.transaction.convert.WithdrawConvert; import com.wzj.soopin.transaction.domain.bo.ChargeBO; import com.wzj.soopin.transaction.domain.bo.WithdrawBO; import com.wzj.soopin.transaction.domain.entity.InitiateBatchTransferResponseNew; -import com.wzj.soopin.transaction.domain.entity.WxAuthResponse; import com.wzj.soopin.transaction.domain.po.Withdraw; import com.wzj.soopin.transaction.enums.WithdrawType; import com.wzj.soopin.transaction.service.IAccountBillService; import com.wzj.soopin.transaction.service.IChargeService; import com.wzj.soopin.transaction.service.IWithdrawService; import com.wzj.soopin.transaction.service.impl.WxAuthService; -import com.wzj.soopin.transaction.service.impl.WxPayService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -52,11 +50,8 @@ import org.dromara.common.ratelimiter.annotation.RateLimiter; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.social.config.properties.SocialProperties; import org.dromara.common.social.utils.SocialUtils; -import org.springframework.data.annotation.LastModifiedDate; import org.springframework.web.bind.annotation.*; -import java.math.BigDecimal; - @RestController @RequestMapping("/app/member") @Tag(name = "会员管理") @@ -244,8 +239,8 @@ public class AppMemberController { - @Operation(summary = "用户注销") - @Log(title = "用户注销 ", businessType = BusinessType.UPDATE) + @Operation(summary = "关注用户") + @Log(title = "关注用户 ", businessType = BusinessType.UPDATE) @PostMapping("/follow") public R follow(@RequestParam Long vloggerId) { LoginUser loginUser= LoginHelper.getLoginUser(); @@ -255,8 +250,8 @@ public class AppMemberController { fansService.doFollow(loginUser.getUserId(), vloggerId); return R.ok(); } - @Operation(summary = "用户注销") - @Log(title = "用户注销 ", businessType = BusinessType.UPDATE) + @Operation(summary = "取消关注") + @Log(title = "取消关注 ", businessType = BusinessType.UPDATE) @PostMapping("/cancel") public R cancelFollow(@RequestParam Long vloggerId) { LoginUser loginUser= LoginHelper.getLoginUser(); diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/Constants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/Constants.java index c235d5f7d..795c3559b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/Constants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/Constants.java @@ -75,7 +75,7 @@ public interface Constants { /** * 订单未支付自动取消时间(分钟) */ - Long ORDER_CANCEL_TIME = 15L; + Long ORDER_CANCEL_TIME = 30L; /** * 订单支付未核销自动退款时间(天) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java index e8ce4c48d..c252d8aae 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java @@ -1,10 +1,13 @@ package com.wzj.soopin.goods.domain.entity; +import ch.qos.logback.core.joran.spi.NoAutoStart; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import org.apache.ibatis.type.JdbcType; @@ -23,6 +26,9 @@ import java.math.BigDecimal; @Schema(description = "商品信息对象") @Data @TableName("pms_product") +@Builder +@AllArgsConstructor +@NoAutoStart public class Product extends BaseEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java index 19443b7dd..23a941350 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java @@ -9,6 +9,7 @@ import com.wzj.soopin.goods.domain.vo.ProductVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; import java.util.List; import java.util.Map; @@ -46,4 +47,8 @@ public interface ProductMapper extends BaseMapper { IPage getProduct(@Param("page") Page page, @Param("query") ProductBo query); + + @Update("UPDATE pms_product SET sales = sales + #{quantity} WHERE id = #{productId}") + void updateSales(@Param("productId") Long productId, @Param("quantity") Integer quantity); + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderItemService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderItemService.java index b08abd930..8704cdcb7 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderItemService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/OrderItemService.java @@ -19,4 +19,6 @@ public interface OrderItemService extends IService { MerchantOrderVO getMerchantOrder(Long orderItemId); MerchantOrderVO getMerchantOrder(String code); + + void addSaleNum(Long orderId); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderItemServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderItemServiceImpl.java index e2696fdd5..3c5688325 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderItemServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderItemServiceImpl.java @@ -3,6 +3,7 @@ package com.wzj.soopin.order.service.impl; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fasterxml.jackson.databind.ObjectMapper; +import com.wzj.soopin.goods.mapper.ProductMapper; import com.wzj.soopin.order.domain.entity.OrderItem; import com.wzj.soopin.order.domain.vo.MerchantOrderVO; import com.wzj.soopin.order.mapper.OrderItemMapper; @@ -23,7 +24,6 @@ import java.util.concurrent.TimeUnit; /** * 订单中所包含的商品Service业务层处理 * - * * @author zcc */ @Slf4j @@ -32,6 +32,9 @@ public class OrderItemServiceImpl extends ServiceImpl findByOrderId(Long orderId) { @@ -78,6 +81,12 @@ public class OrderItemServiceImpl extends ServiceImpl ServiceException.of("您无权查看商户订单")); - return baseMapper.selectMerchatOrder(tenantId,null, code); + return baseMapper.selectMerchatOrder(tenantId, null, code); + } + + @Override + public void addSaleNum(Long orderId) { + List orderItems = findByOrderId(orderId); + orderItems.forEach(orderItem -> productMapper.updateSales(orderItem.getProductId(), orderItem.getQuantity())); } } diff --git a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/params/impl/OrderCashier.java b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/params/impl/OrderCashier.java index 90c9817ae..20a4e6764 100644 --- a/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/params/impl/OrderCashier.java +++ b/ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/kit/params/impl/OrderCashier.java @@ -98,6 +98,8 @@ public class OrderCashier implements CashierExecute { log.info("订单{}支付成功,金额{},方式{}", payParam.getSn(), paymentSuccessParams.getPaymentMethod(), paymentSuccessParams.getReceivableNo()); + // 订单内商品已售数量增加 + orderItemService.addSaleNum(Long.valueOf(payParam.getSn())); } }