From 61a8a1b57718b83b6f8ac09e817fabf09e96fdc0 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 19 May 2025 18:01:56 +0800
Subject: [PATCH] fix(member): 修正会员累计订单统计
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 89 ++++++++++++++++++++++++++++++--------------
1 files changed, 60 insertions(+), 29 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 95d834f..2a89336 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -109,7 +109,7 @@
throw new FebsException("请重新选择收货地址信息");
}
- String orderNo = MallUtils.getOrderNum();
+ String orderNo = MallUtils.getOrderNum("O");
MallOrderInfo orderInfo = new MallOrderInfo();
orderInfo.setOrderNo(orderNo);
orderInfo.setOrderTime(new Date());
@@ -208,13 +208,13 @@
}
MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
- // 零撸专区购买
- if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
- List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
- if (CollUtil.isNotEmpty(items)) {
- throw new FebsException("无法重复领取同一个商品");
- }
- }
+ // todo 纯积分商品一个账号限制购买一次
+// if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
+// List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
+// if (CollUtil.isNotEmpty(items)) {
+// throw new FebsException("积分商品一个账号只能购买一次");
+// }
+// }
if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
throw new FebsException(mallGoods.getGoodsName() + "已下架");
@@ -317,6 +317,7 @@
for (AddOrderItemDto item : items) {
Long skuId = item.getSkuId();
+ Integer cnt = item.getCnt();
MallGoodsSku sku = skusAll.stream().filter(s -> s.getId().equals(skuId)).findFirst().orElse(null);
if (ObjectUtil.isNotEmpty(sku)) {
Long goodsId = sku.getGoodsId();
@@ -324,7 +325,7 @@
if (ObjectUtil.isNotEmpty(mallGoods)) {
BigDecimal multi = mallGoods.getStaticProp().divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_DOWN);
//获取该商品该规格的积分
- BigDecimal scoreAmount = sku.getOriginalPrice().multiply(multi).setScale(0, RoundingMode.HALF_DOWN);
+ BigDecimal scoreAmount = sku.getOriginalPrice().multiply(multi).multiply(new BigDecimal(cnt)).setScale(0, RoundingMode.HALF_DOWN);
scoreAmountMap.put(skuId, scoreAmount);
}
}
@@ -543,15 +544,23 @@
if (OrderStatusEnum.WAIT_PAY.getValue() != orderInfo.getStatus()) {
throw new FebsException("订单状态不能支付");
}
- //先支付积分部分
- if(orderInfo.getScoreAmount().compareTo(BigDecimal.ZERO) > 0){
- balanceScorePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore");
- mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), ScoreFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), null, 2);
- }
String payResultStr = "";
String wxResultStr = "";
if(orderInfo.getAmount().compareTo(BigDecimal.ZERO) <= 0){
+ //先支付积分部分
+ if(orderInfo.getScoreAmount().compareTo(BigDecimal.ZERO) > 0){
+ balanceScorePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore");
+ mallMoneyFlowService.addMoneyFlow(
+ member.getId(),
+ orderInfo.getScoreAmount().negate(),
+ ScoreFlowTypeEnum.PAY.getValue(),
+ orderInfo.getOrderNo(),
+ FlowTypeEnum.PRIZE_SCORE.getValue(),
+ StrUtil.format(ScoreFlowTypeEnum.PAY.getDesc(),orderInfo.getScoreAmount()),
+ 2
+ );
+ }
orderInfo.setPayOrderNo(orderInfo.getOrderNo());
orderInfo.setPayMethod("积分支付");
orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
@@ -583,7 +592,22 @@
agentProducer.sendOrderReturn(orderInfo.getId());
break;
case "3":
+
payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "balance");
+
+ //先支付积分部分
+ if(orderInfo.getScoreAmount().compareTo(BigDecimal.ZERO) > 0){
+ balanceScorePay(orderInfo, payOrderDto.getTradePwd(), "prizeScore");
+ mallMoneyFlowService.addMoneyFlow(
+ member.getId(),
+ orderInfo.getScoreAmount().negate(),
+ ScoreFlowTypeEnum.PAY.getValue(),
+ orderInfo.getOrderNo(),
+ FlowTypeEnum.PRIZE_SCORE.getValue(),
+ StrUtil.format(ScoreFlowTypeEnum.PAY.getDesc(),orderInfo.getScoreAmount()),
+ 2
+ );
+ }
orderInfo.setPayOrderNo(orderInfo.getOrderNo());
orderInfo.setPayMethod("余额支付");
@@ -592,8 +616,15 @@
orderInfo.setPayResult("1");
orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
- mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2);
-
+ mallMoneyFlowService.addMoneyFlow(
+ member.getId(),
+ orderInfo.getAmount().negate(),
+ ScoreFlowTypeEnum.PAY_BALANCE.getValue(),
+ orderInfo.getOrderNo(),
+ FlowTypeEnum.BALANCE.getValue(),
+ StrUtil.format(ScoreFlowTypeEnum.PAY_BALANCE.getDesc(),orderInfo.getAmount()),
+ 2
+ );
agentProducer.sendOrderCoupon(orderInfo.getId());
break;
case "4":
@@ -679,11 +710,11 @@
orderListDto.setMemberId(member.getId());
// IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectApiOrderListInPage(page, orderListDto);
IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectNewApiOrderListInPage(page, orderListDto);
- if (CollUtil.isNotEmpty(mallOrderInfos.getRecords())) {
- mallOrderInfos.getRecords().forEach(item -> {
- item.setItems(mallOrderItemMapper.selectListByOrderId(item.getId()));
- });
- }
+// if (CollUtil.isNotEmpty(mallOrderInfos.getRecords())) {
+// mallOrderInfos.getRecords().forEach(item -> {
+// item.setItems(mallOrderItemMapper.selectListByOrderId(item.getId()));
+// });
+// }
return MallOrderInfoConversion.INSTANCE.entitysToVos(mallOrderInfos.getRecords());
}
@@ -694,13 +725,13 @@
if (ObjectUtil.isNull(orderInfo)) {
throw new FebsException("订单不存在");
}
- List<MallOrderItem> items = orderInfo.getItems();
- if(CollUtil.isNotEmpty(items)){
- for(MallOrderItem mallOrderItem : items){
- mallOrderItem.setItemAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getAmount());
- mallOrderItem.setScoreAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getScoreAmount());
- }
- }
+// List<MallOrderItem> items = orderInfo.getItems();
+// if(CollUtil.isNotEmpty(items)){
+// for(MallOrderItem mallOrderItem : items){
+// mallOrderItem.setItemAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getAmount());
+// mallOrderItem.setScoreAmount(mallOrderItemMapper.selectById(mallOrderItem.getId()).getScoreAmount());
+// }
+// }
OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo);
@@ -920,7 +951,7 @@
mallGoodsComment.setSkuName(mallGoodsSku.getSkuName());
mallGoodsComment.setStyleId(mallGoodsSku.getStyleId());
mallGoodsComment.setStyleName(mallGoodsSku.getStyleName());
- mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_ENABLE);
+ mallGoodsComment.setShowState(MallGoodsComment.SHOW_STATE_DISABLED);
mallGoodsCommentMapper.insert(mallGoodsComment);
}
}
--
Gitblit v1.9.1