✅P266_商城业务-订单服务-订单确认页模型抽取
大约 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";
}
}
具体实现逻辑后续会补充!