Coverage Summary for Class: SellerServiceImpl (cn.edu.ecnu.stu.bookstore.service.impl)
Class |
Method, %
|
Line, %
|
SellerServiceImpl |
100%
(6/6)
|
82.9%
(29/35)
|
SellerServiceImpl$$EnhancerBySpringCGLIB$$5c5e673 |
SellerServiceImpl$$EnhancerBySpringCGLIB$$5c5e673$$FastClassBySpringCGLIB$$9f00c23a |
SellerServiceImpl$$FastClassBySpringCGLIB$$907e56df |
Total |
100%
(6/6)
|
82.9%
(29/35)
|
package cn.edu.ecnu.stu.bookstore.service.impl;
import cn.edu.ecnu.stu.bookstore.component.AppException;
import cn.edu.ecnu.stu.bookstore.component.Constants;
import cn.edu.ecnu.stu.bookstore.mapper.BookMapper;
import cn.edu.ecnu.stu.bookstore.mapper.OrderMapper;
import cn.edu.ecnu.stu.bookstore.mapper.StoreMapper;
import cn.edu.ecnu.stu.bookstore.pojo.*;
import cn.edu.ecnu.stu.bookstore.service.SellerService;
import cn.edu.ecnu.stu.bookstore.utils.ImageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SellerServiceImpl implements SellerService {
@Autowired
private StoreMapper storeMapper;
@Autowired
private BookMapper bookMapper;
@Autowired
private OrderMapper orderMapper;
@Autowired
@Lazy
private SellerService sellerService;
public void createStore(Store store) {
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
store.setSellerId(user.getId());
if(storeMapper.checkStoreExist(store.getStoreId()) != 0)
throw new AppException(Constants.CLIENT_ERROR, Constants.STORE_ID_ERROR);
storeMapper.insert(store);
}
public void addBook(Book book) {
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
int userId = user.getId();
if(storeMapper.checkStore(userId, book.getStoreId()) == 0)
throw new AppException(Constants.CLIENT_ERROR, Constants.STORE_NON_EXIST_ERROR);
List<String> tags = book.getTags();
List<String> pictures = book.getPictures();
pictures = pictures.stream().map(ImageUtil::convertBase64StrToImage).collect(Collectors.toList());
sellerService.insertBook(book, tags, pictures);
}
@Transactional
public void insertBook(Book book, List<String> tags, List<String> pictures) {
bookMapper.insert(book);
bookMapper.insertBookDetail(book);
bookMapper.insertTags(book.getBookId(), tags);
bookMapper.insertPictures(book.getBookId(), pictures);
}
@Override
public void addStockLevel(String storeId, String bookId, int addStockLevel) {
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
int userId = user.getId();
if(storeMapper.checkStore(userId, storeId) == 0)
throw new AppException(Constants.CLIENT_ERROR, Constants.STORE_NON_EXIST_ERROR);
if(bookMapper.checkBook(storeId, bookId) == 0)
throw new AppException(Constants.CLIENT_ERROR, Constants.BOOK_ERROR);
bookMapper.addStockLevel(storeId, bookId, addStockLevel);
}
@Override
public void sendGoods(String orderId) {
Order order = orderMapper.selectById(orderId);
if(order == null)
throw new AppException(Constants.CLIENT_ERROR, Constants.ORDER_NON_EXIST_ERROR);
String storeId = order.getStoreId();
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if(storeMapper.checkStore(user.getId(), storeId) != 1)
throw new AppException(Constants.CLIENT_ERROR, Constants.AUTHORITY_ERROR);
if(!order.getStatus().equals(OrderStatus.WAIT_SEND))
throw new AppException(Constants.CLIENT_ERROR, Constants.STATUS_ERROR);
orderMapper.updateOrderStatus(orderId, OrderStatus.WAIT_RECEIVE);
}
}