springboot第二章---打造企业级微信点餐系统(4)--买家订单01---实体类及dao

第一步:创建实体类(订单主表及订单详情表)

OrderMaster.java

package com.fjz.vxsell.bean;

import com.fjz.vxsell.enums.OrderStatusEnums;
import com.fjz.vxsell.enums.PayStatusEnums;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单主表
 * @author 冯师兄
 * @date 2020-05-08 14:18
 */
@Entity
@Data
@DynamicUpdate
public class OrderMaster {

    /*订单id*/
    @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 = OrderStatusEnums.NEW.getCode();

    /*支付状态,默认为0 未支付*/
    private Integer payerStatus = PayStatusEnums.WAIT.getCode();

    /*创建时间*/
    private Date createTime;

    /*修改时间*/
    private Date updateTime;
}

创建枚举 OrderStatusEnumsjava

package com.fjz.vxsell.enums;

import lombok.Getter;

/**
 * @author 冯师兄
 * @date 2020-05-08 14:29
 */
@Getter
public enum OrderStatusEnums {

    NEW(0,"新订单"),
    FINISH(1,"订单已完结"),
    CANCLE(2,"订单已取消"),
    ;


    private Integer code;
    private String message;

    OrderStatusEnums(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

PayStatusEnums.java

package com.fjz.vxsell.enums;

import lombok.Getter;

/**
 * @author 冯师兄
 * @date 2020-05-08 14:36
 */
@Getter
public enum PayStatusEnums {
    WAIT(0,"等待支付"),
    SUCCESS(1,"支付成功"),
    ;

    private Integer code;
    private String message;

    PayStatusEnums(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

OrderDetail.java

package com.fjz.vxsell.bean;

import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.security.PrivateKey;
import java.util.Date;

/**
 * 订单详情表
 * @author 冯师兄
 * @date 2020-05-08 14:44
 */
@Entity
@Data
@DynamicUpdate
public class OrderDetail {

    /*订单详情id*/
    @Id
    private String detailId;

    /*订单id*/
    private String orderId;

    /*商品id*/
    private String productId;

    /*商品名称*/
    private String productName;

    /*商品价格*/
    private BigDecimal productPrice;

    /*商品数量*/
    private Integer productQuantity;

    /*商品图片*/
    private String productIcon;



}

第二步:创建repository:OrderMasterRepository.java

package com.fjz.vxsell.repository;

import com.fjz.vxsell.bean.OrderMaster;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;

/**
 * @author 冯师兄
 * @date 2020-05-08 14:59
 */
public interface OrderMasterRepository extends JpaRepository<OrderMaster,String> {

    /**
     * 分页查询
     * 根据买家的openid查询
     * @param buyerOpenid
     * @param pageable
     * @return
     */
    Page<OrderMaster> findByBuyerOpenid(String buyerOpenid, Pageable pageable);
}

测试:

package com.fjz.vxsell.repository;

import com.fjz.vxsell.bean.OrderMaster;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.test.context.junit4.SpringRunner;

import java.math.BigDecimal;

import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderMasterRepositoryTest {

    @Autowired
    private OrderMasterRepository orderMasterRepository;

    private final String Openid = "123456";

    /**
     * 测试保存
     */
    @Test
    public void saveTest() {
        OrderMaster orderMaster = new OrderMaster();
        orderMaster.setOrderId("004");
        orderMaster.setBuyerName("十三师兄");
        orderMaster.setBuyerPhone("15916574437");
        orderMaster.setBuyerAddress("北京房山");
        orderMaster.setBuyerOpenid(Openid);
        orderMaster.setOrderAmount(new BigDecimal(255.63));

        OrderMaster result = orderMasterRepository.save(orderMaster);
        Assert.assertNotNull(result);

    }

    /**
     * 分页查询
     */
    @Test
    public void findByBuyerOpenid() {
        PageRequest request = new PageRequest(0,2);
        Page<OrderMaster> page = orderMasterRepository.findByBuyerOpenid(Openid, request);
        System.out.println(page.getTotalElements());
        Assert.assertNotEquals(0, page.getTotalPages());
    }
}

OrderDetailRepository.java

package com.fjz.vxsell.repository;

import com.fjz.vxsell.bean.OrderDetail;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * @author 冯师兄
 * @date 2020-05-08 15:02
 */
public interface OrderDetailRepository extends JpaRepository<OrderDetail, String> {

    /**
     * 根据orderID查询出所有的订单详情
     * @param orderId
     * @return
     */
    List<OrderDetail> findByOrderId(String orderId);
}

测试:

package com.fjz.vxsell.repository;

import com.fjz.vxsell.bean.OrderDetail;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.math.BigDecimal;
import java.util.List;

import static org.junit.Assert.*;

@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderDetailRepositoryTest {

    @Autowired
    private OrderDetailRepository orderDetailRepository;

    @Test
    public void saveTest(){
        OrderDetail orderDetail = new OrderDetail();
        orderDetail.setDetailId("000002");
        orderDetail.setOrderId("111111");
        orderDetail.setProductId("010101");
        orderDetail.setProductIcon("http://xxxx.jpg");
        orderDetail.setProductName("华为");
        orderDetail.setProductPrice(new BigDecimal(35.3));
        orderDetail.setProductQuantity(50);

        OrderDetail result = orderDetailRepository.save(orderDetail);
        Assert.assertNotNull(result);
    }

    @Test
    public void findByOrderId() {
        List<OrderDetail> list =  orderDetailRepository.findByOrderId("111111");
        Assert.assertNotEquals(0, list.size());
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值