第一步:新建一个类OrderDTO.java
这个类包含order_master表中的所有信息,以及关联order_detail的信息
package com.fjz.vxsell.dto;
import com.fjz.vxsell.bean.OrderDetail;
import com.fjz.vxsell.enums.OrderStatusEnums;
import com.fjz.vxsell.enums.PayStatusEnums;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author 冯师兄
* @date 2020-05-08 16:47
*/
@Data
public class OrderDTO {
/*订单id*/
private String orderId;
/*买家名字*/
private String buyerName;
/*买家电话*/
private String buyerPhone;
/*买家地址*/
private String buyerAddress;
/*买家微信id*/
private String buyerOpenid;
/*订单总金额*/
private BigDecimal orderAmount;
/*订单状态,默认是新订单为0,实体类中最好不要出现=0,这里用一个枚举*/
private Integer orderStatus;
/*支付状态,默认为0 未支付*/
private Integer payerStatus;
/*创建时间*/
private Date createTime;
/*修改时间*/
private Date updateTime;
/*关联order_detail*/
List<OrderDetail> orderDetailList;
}
第二步:service
package com.fjz.vxsell.service;
import com.fjz.vxsell.dto.OrderDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
/**
* @author 冯师兄
* @date 2020-05-08 16:53
*/
public interface OrderService {
//创建订单
OrderDTO create(OrderDTO orderDTO);
//根据id查询订单
OrderDTO findById(String orderId);
//查询订单列表
Page<OrderDTO> findOrderList(String buyerOpenid, Pageable pageable);
//取消订单
OrderDTO cancel(OrderDTO orderDTO);
//完结订单
OrderDTO finish(OrderDTO orderDTO);
//支付订单
OrderDTO paid(OrderDTO orderDTO);
}
第三步:serviceImpl
分析:1. 这里涉及到减少库存,所以还需要在商品表进行操作
2. 参考接口文档,items是购物车的内容,所以还需要购物车
3. 里面判断,需要抛出异常
4. orderId/detailId需要生成随机数. 格式:时间(精确到毫秒)+ 随机数
1. VxsellException.java
package com.fjz.vxsell.e