Cui Zhi Feng
2024-09-01 aab9711ea4512f013fd28478b3cc59757190edbb
处理积分商品兑换券
已修改1个文件
已添加2个文件
67 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/entity/payment/OrderPointGoods.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/payment/OrderPointGoodsMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/payment/OrderService.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
}
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> {
}
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位小数
     *