SpringBoot 微信点餐系统学习记录六-订单表和订单详情表的后端开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39036844/article/details/81806051
  • 在dataobject文件夹创建订单表和订单详情表的实体类

    package com.imooc.dataobject;
    
    import com.imooc.enums.OrderStatusEnum;
    import com.imooc.enums.PayStatusEnum;
    import lombok.Data;
    import org.hibernate.annotations.DynamicUpdate;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import java.math.BigDecimal;
    import java.util.Date;
    
    /**
     * Created by Cdy1234 on 2018/7/24.
     *订单主表
     */
    @Entity
    @Data
    @DynamicUpdate
    public class OrderMaster  {
    
        /**订单ID**/
        @Id
        private  String orderId;
    
        /**买家姓名**/
        private  String buyerName;
    
        /**买家电话**/
        private  String buyerPhone;
    
        /**买家地址**/
        private  String buyerAddress;
    
        /**买家微信openId**/
        private  String buyerOpenid;
    
        /**订单总金额**/
        private  BigDecimal orderAmount;
    
        /**订单状态 默认为0,代表新订单**/
        private  Integer orderStatus= OrderStatusEnum.NEW.getCode();
    
        /**支付状态 默认为0,代表未支付**/
        private  Integer payStatus= PayStatusEnum.WAIT.getCode();
    
        /**订单创建时间**/
        private  Date createTime;
    
        /**更新时间**/
        private  Date updateTime;
    
    
    
    }
    
    package com.imooc.dataobject;
    
    import lombok.Data;
    
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import java.math.BigDecimal;
    
    /**
     * Created by Cdy1234 on 2018/8/7.
     *订单详情表
     */
    @Entity
    @Data
    public class OrderDetail {
      @Id
      private String detailId;
    
      /**订单ID*/
      private String orderId;
    
      /**商品ID*/
      private String productId;
    
      /**商品名称*/
      private String productName;
    
      /**商品价格*/
      private BigDecimal productPrice;
    
      /**商品数量*/
      private Integer productQuantity;
    
      /***商品图片*/
      private String productIcon;
    
    
    }
    

    在DAO层创建对订单表的操作,继承JpaRepository,编写思路,订单详情是通过订单id查询,可能返回多个结果。所以是返回个list集合。

  • package com.imooc.repository;
    
    import com.imooc.dataobject.OrderDetail;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    import java.util.List;
    
    /**
     * Created by Cdy1234 on 2018/8/11.
     * 订单详情表dao
     */
    
    public interface OrderDetailRepository extends JpaRepository<OrderDetail,String>{
        /**
         * 根据Orderid 来查询订单详情,返回一条以上的记录,使用list集合。
         * @param orderId 订单id
         * @return
         */
        List<OrderDetail>findByOrderId(String orderId);
    
    
    }
    

    编写对订单主表的DAO层,继承JpaRepository,思路,查询用户的openid,可以是返回多个订单,所以返回一个Page。

  • package com.imooc.repository;
    
    import com.imooc.dataobject.OrderMaster;
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    /**
     * Created by Cdy1234 on 2018/8/8.
     * 订单主表表dao层
     */
    
    public interface OrderMasterRepository extends JpaRepository<OrderMaster,String>{
    
        /**
         * 根据用户id查询订单详情
         * @param buyerOpenid 用户的微信Open
         * @param pageable    第几页
         * @return Page      页数和用户下的订单详情
         */
       Page<OrderMaster>findByBuyerOpenid(String buyerOpenid, Pageable pageable);
    }
    

    测试DAO层OrderDetailRepository 的情况。右键OrderDetailRepository,选择go to--->Test 

  • 选择所编写的方法。创建OrderDetailRepositoryTest ,测试Save方法, Assert.assertNotNull(result),只需要result不为空,就可以通过。

  • package com.imooc.repository;
    
    import com.imooc.dataobject.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;
    
    /**
     * Created by Cdy1234 on 2018/8/17.
     * 订单详情表DAO层
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class OrderDetailRepositoryTest {
    
        @Autowired
        private OrderDetailRepository repository;
    
        @Test
        public  void saveTest(){
            OrderDetail orderDetail=new OrderDetail();
            orderDetail.setDetailId("142342842988");
            orderDetail.setOrderId("1111321");
            orderDetail.setProductName("皮蛋粥");
            orderDetail.setProductIcon("http://xxx.jpg");
            orderDetail.setProductId("2332423");
            orderDetail.setProductPrice(new BigDecimal(12));
            orderDetail.setProductQuantity(20);
            OrderDetail result= repository.save(orderDetail);
    
            Assert.assertNotNull(result);
        }
    
        @Test
        public void testFindByOrderId() throws Exception {
    
    
        }
    }

    执行Save方法,数据表成功添加,测试成功。

  • 测试订单主表DAO层测试,同上。

  • package com.imooc.repository;
    
    import com.imooc.dataobject.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;
    
    /**
     * Created by Cdy1234 on 2018/8/17.
     * 订单主表测试
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class OrderMasterRepositoryTest {
    
        @Autowired
        private  OrderMasterRepository repository;
    
        private final String OPENID="110110";
    
        @Test
        public void SaveTest(){
            OrderMaster orderMaster=new OrderMaster();
            orderMaster.setOrderId("124323");
            orderMaster.setBuyerName("蔡中彩");
            orderMaster.setBuyerPhone("18060065761");
            orderMaster.setBuyerAddress("领袖天地");
            orderMaster.setBuyerOpenid(OPENID);
            orderMaster.setOrderAmount(new BigDecimal(2.3));
            OrderMaster result= repository.save(orderMaster);
    
            Assert.assertNotNull(result);
    
    
        }
    
        @Test
        public void testFindByBuyerOpenid() throws Exception {
            PageRequest requset=PageRequest.of(0,1);//调用PAgeRequest,该方法继承Pageable,
            Page<OrderMaster> result =repository.findByBuyerOpenid(OPENID,requset);
            Assert.assertNotEquals(0,result.getTotalElements());//不等于0,就运行通过
            System.out.println(result.getTotalElements());
    
        }
    }

    测试SaveTest方法。

  • 运行成功

  • 测试testFindByBuyerOpenid

  • 测试成功

猜你喜欢

转载自blog.csdn.net/qq_39036844/article/details/81806051