From aab9711ea4512f013fd28478b3cc59757190edbb Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <cuizf@fengyuntec.com> Date: 星期日, 01 九月 2024 09:53:19 +0800 Subject: [PATCH] 处理积分商品兑换券 --- src/main/java/com/mzl/flower/entity/payment/OrderPointGoods.java | 21 ++++++++++ src/main/java/com/mzl/flower/mapper/payment/OrderPointGoodsMapper.java | 14 +++++++ src/main/java/com/mzl/flower/service/payment/OrderService.java | 32 +++++++++++++-- 3 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/mzl/flower/entity/payment/OrderPointGoods.java b/src/main/java/com/mzl/flower/entity/payment/OrderPointGoods.java new file mode 100644 index 0000000..6c91533 --- /dev/null +++ b/src/main/java/com/mzl/flower/entity/payment/OrderPointGoods.java @@ -0,0 +1,21 @@ +package com.mzl.flower.entity.payment; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mzl.flower.base.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@TableName("t_order_point_goods") +public class OrderPointGoods extends BaseEntity { + + @TableField("order_id") + private String orderId;//订单id + + @TableField("goods_record_id") + private Long goodsRecordId;//客户商品id + +} diff --git a/src/main/java/com/mzl/flower/mapper/payment/OrderPointGoodsMapper.java b/src/main/java/com/mzl/flower/mapper/payment/OrderPointGoodsMapper.java new file mode 100644 index 0000000..6cf35fe --- /dev/null +++ b/src/main/java/com/mzl/flower/mapper/payment/OrderPointGoodsMapper.java @@ -0,0 +1,14 @@ +package com.mzl.flower.mapper.payment; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.entity.payment.OrderPointGoods; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface OrderPointGoodsMapper extends BaseMapper<OrderPointGoods> { + +} 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..430198b 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,13 +474,27 @@ 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 使用积分商品兑换券 + } + /** * 计算订单中每种商品每扎平摊的优惠券面值,保留2位小数 * -- Gitblit v1.9.3