feat(order): 增加订单商品销量更新功能
- 修改订单支付成功逻辑,增加商品销量更新调用- 在 OrderItemService 中新增 addSaleNum 方法用于批量更新商品销量 - 在 ProductMapper 中新增 updateSales 方法实现销量累加 - 调整常量 ORDER_CANCEL_TIME从15分钟延长至30分钟 - 移除冗余的类导入和无用注解 - 更新 AppMemberController 关注相关接口的日志标题与描述
This commit is contained in:
parent
841074baeb
commit
e1d24e1ae7
@ -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();
|
||||
|
@ -75,7 +75,7 @@ public interface Constants {
|
||||
/**
|
||||
* 订单未支付自动取消时间(分钟)
|
||||
*/
|
||||
Long ORDER_CANCEL_TIME = 15L;
|
||||
Long ORDER_CANCEL_TIME = 30L;
|
||||
|
||||
/**
|
||||
* 订单支付未核销自动退款时间(天)
|
||||
|
@ -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;
|
||||
|
@ -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<Product> {
|
||||
|
||||
|
||||
IPage<ProductVO> getProduct(@Param("page") Page<Product> 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);
|
||||
|
||||
}
|
||||
|
@ -19,4 +19,6 @@ public interface OrderItemService extends IService<OrderItem> {
|
||||
MerchantOrderVO getMerchantOrder(Long orderItemId);
|
||||
|
||||
MerchantOrderVO getMerchantOrder(String code);
|
||||
|
||||
void addSaleNum(Long orderId);
|
||||
}
|
||||
|
@ -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<OrderItemMapper, OrderItem
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
@Autowired
|
||||
private ProductMapper productMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public List<OrderItem> findByOrderId(Long orderId) {
|
||||
@ -78,6 +81,12 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
|
||||
public MerchantOrderVO getMerchantOrder(String code) {
|
||||
String tenantId = TenantHelper.getTenantId();
|
||||
Assert.notEmpty(tenantId, () -> ServiceException.of("您无权查看商户订单"));
|
||||
return baseMapper.selectMerchatOrder(tenantId,null, code);
|
||||
return baseMapper.selectMerchatOrder(tenantId, null, code);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSaleNum(Long orderId) {
|
||||
List<OrderItem> orderItems = findByOrderId(orderId);
|
||||
orderItems.forEach(orderItem -> productMapper.updateSales(orderItem.getProductId(), orderItem.getQuantity()));
|
||||
}
|
||||
}
|
||||
|
@ -98,6 +98,8 @@ public class OrderCashier implements CashierExecute {
|
||||
log.info("订单{}支付成功,金额{},方式{}", payParam.getSn(),
|
||||
paymentSuccessParams.getPaymentMethod(),
|
||||
paymentSuccessParams.getReceivableNo());
|
||||
// 订单内商品已售数量增加
|
||||
orderItemService.addSaleNum(Long.valueOf(payParam.getSn()));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user