From db994385c62a32de344a5e6dc566b679435d9e54 Mon Sep 17 00:00:00 2001 From: gongzuming <gongzuming> Date: 星期一, 02 九月 2024 09:14:24 +0800 Subject: [PATCH] 积分过期 --- 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