提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
订单模块写下来目前感觉就订单的生成部分是最繁琐的,思路不好理清楚,不知道自己要做什么,写代码的时候不知道该传什么参。后面的一些小功能就好写一点了,基本都是一样的流程。
一、建表
至少三个表
- 总订单表
- 详情订单表
- 商品表
总订单表不记录商品名、商品数量、商品属性等内容。
总订单表中记录下单人姓名,地址,电话以及订单的总价,应付金额,优惠金额等。
详情订单表将总订单表中的具体商品分别列出,记录所购商品的名称、数量、单价等。
商品表中记录商品的各类属性。
二、写订单表功能
1、在xml中写sql,并在mapper里写抽象方法实现xml中的sql
2、在service中写抽象方法,在serviceImpl中实现
3、在serviceImpl中写逻辑
package cn.tedu.mall_phone.service.impl;
import cn.tedu.mall_phone.dummy.GetUserId;
import cn.tedu.mall_phone.entity.CategoryOrder;
import cn.tedu.mall_phone.entity.OrderDetails;
import cn.tedu.mall_phone.mapper.OrderDetailMapper;
import cn.tedu.mall_phone.mapper.OrderMapper;
import cn.tedu.mall_phone.pojo.dto.CategoryOrderDTO;
import cn.tedu.mall_phone.pojo.dto.ProductDTO;
import cn.tedu.mall_phone.service.OrderService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Random;
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private GetUserId user;
@Autowired
private OrderDetailMapper orderDetailMapper;
@Override
public void addNew(CategoryOrderDTO categoryOrderDTO) {
// 小订单价格声明
BigDecimal orderDetailPrice = new BigDecimal("0");
// 总订单价格声明
BigDecimal orderTotalPrice = new BigDecimal("0");
// 支付金额声明 插入数据需要String类型,但是在进行优惠计算的时候需要BigDecimal类型
BigDecimal