✅P266_商城业务-订单服务-订单确认页模型抽取
2024/2/14大约 2 分钟
数据模型分析
用户地址信息,数据表:ums_member_receive_address

商品项信息,参考之前编写得CartItemVo

优惠券信息,使用京豆的形式增加用户的积分->ums_member表integration字段

订单总额和应付总额信息

编写VO
订单确认页VO
cfmall-order/src/main/java/com/gyz/cfmall/order/vo/OrderConfirmVo.java
package com.gyz.cfmall.order.vo;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
/**
 * @author gong_yz
 * @Description 订单确认页VO
 */
public class OrderConfirmVo {
    /**
     * 会员收获地址列表
     */
    @Getter
    @Setter
    List<MemberAddressVo> memberAddressVos;
    /**
     * 所有选中的购物项
     */
    @Getter
    @Setter
    List<OrderItemVo> items;
    /**
     * 优惠券(会员积分)
     */
    @Getter
    @Setter
    private Integer integration;
    /**
     * 防止重复提交的令牌
     */
    @Getter
    @Setter
    private BigDecimal total;
    @Getter
    @Setter
    private BigDecimal payPrice;
}用户地址VO
cfmall-order/src/main/java/com/gyz/cfmall/order/vo/MemberAddressVo.java
package com.gyz.cfmall.order.vo;
import lombok.Data;
/**
 * @author gong_yz
 * @Description
 */
@Data
public class MemberAddressVo {
    private Long id;
    /**
     * member_id
     */
    private Long memberId;
    /**
     * 收货人姓名
     */
    private String name;
    /**
     * 电话
     */
    private String phone;
    /**
     * 邮政编码
     */
    private String postCode;
    /**
     * 省份/直辖市
     */
    private String province;
    /**
     * 城市
     */
    private String city;
    /**
     * 区
     */
    private String region;
    /**
     * 详细地址(街道)
     */
    private String detailAddress;
    /**
     * 省市区代码
     */
    private String areacode;
    /**
     * 是否默认
     */
    private Integer defaultStatus;
}商品信息VO
cfmall-order/src/main/java/com/gyz/cfmall/order/vo/OrderItemVo.java
package com.gyz.cfmall.order.vo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * @author gong_yz
 * @Description
 */
@Data
public class OrderItemVo {
    private Long skuId;
    /**
     * 是否被选中
     */
    private Boolean check;
    private String title;
    /**
     * 默认图片
     */
    private String image;
    /**
     * 商品套餐属性
     */
    private List<String> skuAttrValues;
    /**
     * 商品单价
     */
    private BigDecimal price;
    /**
     * 商品数量
     */
    private Integer count;
    /**
     * 总价
     */
    private BigDecimal totalPrice;
}业务逻辑
cfmall-order/src/main/java/com/gyz/cfmall/order/web/OrderWebController.java
package com.gyz.cfmall.order.web;
import com.gyz.cfmall.order.service.OrderService;
import com.gyz.cfmall.order.vo.OrderConfirmVo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import javax.annotation.Resource;
/**
 * @author gong_yz
 * @Description
 */
@Controller
public class OrderWebController {
    @Resource
    private OrderService orderService;
    /**
     * 跳转结算确认页面
     * @param model
     * @return
     */
    @GetMapping("/toTrade")
    public String toTrade(Model model) {
        OrderConfirmVo confirmVo = orderService.confirmOrder();
        model.addAttribute("confirmOrderData", confirmVo);
        return "confirm";
    }
}具体实现逻辑后续会补充!