版权声明:本文为博主原创文章,未经博主允许不得转载。 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
-
测试成功