From b977bf61c82b7dc39079974d7316b7a80cf520fa Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 02 九月 2024 09:36:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2
---
src/main/java/com/mzl/flower/service/payment/OrderService.java | 35 ++++++++++++++++++++++++++++++-----
1 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java
index 95bc18a..5d8fa5a 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -133,6 +133,9 @@
@Autowired
private OrderItemCheckMapper orderItemCheckMapper;
+ @Autowired
+ private OrderPointGoodsMapper pointGoodsMapper;
+
public void changeFlower2Cart(CartSaveDTO dto) {
String userId = SecurityUtils.getUserId();
Cart c = cartMapper.selectOne(new QueryWrapper<Cart>()
@@ -361,7 +364,8 @@
}
Address address = addressMapper.selectById(dto.getAddressId());
- List<TransportOrderDTO> tLs = transportService.getPreOrderTransportList(address, p.getTotalWeight(), dto.getTransportId());
+ List<TransportOrderDTO> tLs = transportService.getPreOrderTransportList(address
+ , p.getTotalWeight(), dto.getTransportId());
BigDecimal transportFee = new BigDecimal(0);
String deliveryName = "";
if (tLs != null && tLs.size() > 0) {
@@ -373,6 +377,10 @@
String userId = SecurityUtils.getUserId();
Order order = new Order();
order.setId(UUIDGenerator.getUUID());
+
+ final List<Long> goodsRecordIdList = dto.getGoodsRecordIdList();
+ usePointGoods(order.getId(), goodsRecordIdList);//使用积分商品兑换券
+
order.create(userId);
order.setRemarks(dto.getRemarks());
order.setSpecialNeeds(dto.getSpecialNeeds());
@@ -421,7 +429,8 @@
//商品列表处理
List<FlowerCartListDTO> flowers = p.getFlowers();
Map<Long, List<ParamItemDTO>> paramMap = new HashMap<>();
- BigDecimal flowerAmount = order.getFlowerAmount();//订单商品总价
+ final BigDecimal flowerAmount = order.getFlowerAmount();//订单商品总价
+ final BigDecimal memberCouponAmount = order.getMemberCouponAmount();//使用优惠券面值
for (FlowerCartListDTO f : flowers) {
OrderItem t = new OrderItem();
t.setId(UUIDGenerator.getUUID());
@@ -451,8 +460,7 @@
t.setTotal(f.getTotalMember());//使用会员总价
t.setOriginalPrice(pp.getPrice());//非会员售价
- BigDecimal couponAmount = calculateCoupon(order.getMemberCouponAmount()
- , t.getTotal(), order.getFlowerAmount(), t.getNum());
+ BigDecimal couponAmount = calculateCoupon(memberCouponAmount, t.getTotal(), flowerAmount, t.getNum());
t.setCouponAmount(couponAmount);//每扎平摊的优惠券面值
t.setRealPrice(t.getPrice().subtract(couponAmount));//退款时使用的真实成交价
@@ -466,11 +474,25 @@
order.setPayOpenid(openId);
orderMapper.insert(order);
- //TODO 处理积分商品兑换券
+ //处理积分商品兑换券
+ if(goodsRecordIdList != null && goodsRecordIdList.size() > 0){
+ for(Long goodsRecordId : goodsRecordIdList){
+ OrderPointGoods g = new OrderPointGoods();
+ g.setId(UUIDGenerator.getUUID());
+ g.setOrderId(order.getId());
+ g.setGoodsRecordId(goodsRecordId);
+ g.create(userId);
+ pointGoodsMapper.insert(g);
+ }
+ }
Map map = paymentV3Service.wxPrepay(order);
map.put("_testV2OrderId", order.getId());
return map;
+ }
+
+ private void usePointGoods(String orderId, List<Long> goodsRecordIdList){
+ //TODO 使用积分商品兑换券
}
/**
@@ -841,6 +863,9 @@
boolean couldCheckRefund = StringUtils.isEmpty(transferId) && count == 0 && cc == 0;
dto.setCouldCheckRefund(couldCheckRefund);
+ List<OrderPointGoodsListDTO> pointGoodsList = orderMapper.getPointGoodsList(id);
+ dto.setPointGoodsList(pointGoodsList);
+
return dto;
}
--
Gitblit v1.9.3