# Coverage Summary for Class: OrderMapper (cn.edu.ecnu.stu.bookstore.mapper)

Class
OrderMapper

     package cn.edu.ecnu.stu.bookstore.mapper;

     import cn.edu.ecnu.stu.bookstore.pojo.Book;
     import cn.edu.ecnu.stu.bookstore.pojo.Order;
     import cn.edu.ecnu.stu.bookstore.pojo.OrderStatus;
     import org.apache.ibatis.annotations.*;

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

     @Mapper
     public interface OrderMapper {

         @Insert("insert into t_order(order_id, buyer_id, from_address, to_address, price, status, store_id) values " +
                 "(#{order.orderId}, #{order.buyerId}, #{order.fromAddress}, #{order.toAddress}, #{order.price}, #{order.status.value}, " +
                 "#{order.storeId})")
         int insert(@Param("order")Order order);

         int insertOrderBook(@Param("orderId") String orderId, @Param("books") List<Map<String, Object>> books);

         @Select("select price from t_order where order_id = #{orderId}")
         BigDecimal selectPrice(@Param("orderId") String orderId);

         @Update("update t_order set status = #{status.value} where order_id = #{orderId}")
         void updateOrderStatus(@Param("orderId") String orderId, @Param("status") OrderStatus status);

         List<Order> select(@Param("buyerId") Integer buyerId, @Param("status") OrderStatus status);

         Order selectById(@Param("orderId") String orderId);

         @Select("select count(*) from t_order where buyer_id = #{buyerId} and order_id = #{orderId}")
         int checkOrder(@Param("orderId") String orderId, @Param("buyerId") Integer buyerId);

         int selectStatus(@Param("orderId") String orderId);
     }