历史订单 赠送
退款库存 回滚 日志打印 截断200
This commit is contained in:
@@ -153,10 +153,12 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
||||
Map<String, List<OrderDetail>> resultMap = new HashMap<>();
|
||||
// 遍历订单详情列表
|
||||
for (OrderDetail orderDetail : orderDetails) {
|
||||
orderDetail.initGift();
|
||||
// 获取当前订单详情的 placeNum
|
||||
Integer placeNum = orderDetail.getPlaceNum();
|
||||
// 检查 Map 中是否已经存在该 placeNum 对应的列表
|
||||
resultMap.computeIfAbsent(placeNum.toString(), k -> new ArrayList<>()).add(orderDetail);
|
||||
|
||||
}
|
||||
historyOrderVo.setDetailMap(resultMap);
|
||||
return historyOrderVo;
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import com.czg.account.dto.shopuser.ShopUserMoneyEditDTO;
|
||||
import com.czg.account.entity.*;
|
||||
import com.czg.account.service.*;
|
||||
import com.czg.config.RabbitPublisher;
|
||||
import com.czg.config.RedisCst;
|
||||
import com.czg.entity.req.*;
|
||||
import com.czg.entity.resp.*;
|
||||
@@ -44,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -81,6 +83,8 @@ public class PayServiceImpl implements PayService {
|
||||
private OrderPaymentService paymentService;
|
||||
@Resource
|
||||
private RedisService redisService;
|
||||
@Resource
|
||||
private RabbitPublisher rabbitPublisher;
|
||||
|
||||
private final BigDecimal MONEY_RATE = new BigDecimal("100");
|
||||
|
||||
@@ -429,6 +433,7 @@ public class PayServiceImpl implements PayService {
|
||||
BigDecimal refundAmountTotal = BigDecimal.ZERO;
|
||||
//退优惠券数量 <商品id,数量>
|
||||
Map<Long, Integer> returnCouponMap = new HashMap<>();
|
||||
Map<Long, BigDecimal> returnProMap = new HashMap<>();
|
||||
boolean isPay = true;
|
||||
String refPayOrderNo = "REFO" + IdUtil.getSnowflakeNextId();
|
||||
if (orderInfo.getStatus().equals(OrderStatusEnums.UNPAID.getCode())) {
|
||||
@@ -485,6 +490,7 @@ public class PayServiceImpl implements PayService {
|
||||
|
||||
}
|
||||
orderDetailService.updateById(orderDetail);
|
||||
returnProMap.put(orderDetail.getProductId(), refundDetail.getNum());
|
||||
}
|
||||
long count = orderDetailService.queryChain()
|
||||
.eq(OrderDetail::getOrderId, orderInfo.getId())
|
||||
@@ -497,20 +503,22 @@ public class PayServiceImpl implements PayService {
|
||||
} else {
|
||||
refundAmountTotal = param.getRefundAmount();
|
||||
orderInfo.setStatus(OrderStatusEnums.REFUND.getCode());
|
||||
if (isPay) {
|
||||
orderDetailService.updateChain()
|
||||
.eq(OrderDetail::getOrderId, param.getOrderId())
|
||||
.setRaw(OrderDetail::getRefundNum, "num-refund_num")
|
||||
.setRaw(OrderDetail::getReturnAmount, "pay_amount")
|
||||
.set(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode())
|
||||
.update();
|
||||
} else {
|
||||
orderDetailService.updateChain()
|
||||
.eq(OrderDetail::getOrderId, param.getOrderId())
|
||||
.setRaw(OrderDetail::getReturnNum, "num")
|
||||
.set(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode())
|
||||
.update();
|
||||
List<OrderDetail> orderDetails = orderDetailService.queryChain()
|
||||
.select(OrderDetail::getId, OrderDetail::getNum, OrderDetail::getReturnNum, OrderDetail::getReturnNum)
|
||||
.eq(OrderDetail::getOrderId, orderInfo.getId())
|
||||
.list();
|
||||
for (OrderDetail orderDetail : orderDetails) {
|
||||
if (isPay) {
|
||||
returnProMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum()).subtract(orderDetail.getRefundNum()));
|
||||
orderDetail.setRefundNum(orderDetail.getNum().subtract(orderDetail.getReturnNum()));
|
||||
orderDetail.setReturnAmount(orderDetail.getPayAmount());
|
||||
} else {
|
||||
returnProMap.put(orderDetail.getProductId(), orderDetail.getNum().subtract(orderDetail.getReturnNum()));
|
||||
orderDetail.setReturnNum(orderDetail.getNum());
|
||||
}
|
||||
orderDetail.setStatus(OrderStatusEnums.REFUND.getCode());
|
||||
}
|
||||
orderDetailService.updateBatch(orderDetails);
|
||||
}
|
||||
//总退款金额
|
||||
//TODO 退款 券 未处理
|
||||
@@ -572,6 +580,8 @@ public class PayServiceImpl implements PayService {
|
||||
}
|
||||
orderInfo.setRefundRemark(orderInfo.getRefundRemark() + param.getRefundReason());
|
||||
orderInfoService.updateById(orderInfo);
|
||||
//退款返还库存
|
||||
rabbitPublisher.sendOrderRefundMsg(JSONObject.toJSONString(returnProMap));
|
||||
return CzgResult.success();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user