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