use of com.github.lybgeek.orm.mybatis.model.BookOrder in project springboot-learning by lyb-geek.
the class BookOrderServiceImpl method pageBookOrder.
@Override
public PageResult<BookOrderDTO> pageBookOrder(PageQuery<BookOrderDTO> pageQuery) {
Integer pageNo = ObjectUtils.isEmpty(pageQuery.getPageNo()) ? 1 : pageQuery.getPageNo();
Integer pageSize = ObjectUtils.isEmpty(pageQuery.getPageSize()) ? 5 : pageQuery.getPageSize();
BookOrderDTO bookOrderDTO = pageQuery.getQueryParams();
Page<BookOrder> page = PageHelper.startPage(pageNo, pageSize);
PageHelper.orderBy("bo.create_date DESC");
List<BookOrderDTO> list = listBookOrders(bookOrderDTO);
return PageUtil.INSTANCE.getPage(page, list);
}
use of com.github.lybgeek.orm.mybatis.model.BookOrder in project springboot-learning by lyb-geek.
the class BookOrderServiceImpl method listBookOrders.
@Override
public List<BookOrderDTO> listBookOrders(BookOrderDTO bookOrderDTO) {
BookOrder bookOrder = new BookOrder();
if (bookOrderDTO != null) {
bookOrder = dozerMapper.map(bookOrderDTO, BookOrder.class);
}
List<BookOrder> bookOrders = bookOrderDao.listBookOrders(bookOrder);
if (CollectionUtils.isNotEmpty(bookOrders)) {
return BeanMapperUtils.mapList(bookOrders, BookOrderDTO.class);
}
return Collections.emptyList();
}
use of com.github.lybgeek.orm.mybatis.model.BookOrder in project springboot-learning by lyb-geek.
the class BookOrderServiceImpl method editBookOrder.
@Override
@Transactional
public BookOrderDTO editBookOrder(BookOrderDTO bookOrderDTO) {
BookOrder bookOrder = dozerMapper.map(bookOrderDTO, BookOrder.class);
BookOrder dbBookOrder = bookOrderDao.editBookOrder(bookOrder);
return dozerMapper.map(dbBookOrder, BookOrderDTO.class);
}
use of com.github.lybgeek.orm.mybatis.model.BookOrder in project springboot-learning by lyb-geek.
the class BookOrderServiceImpl method createBookOrder.
@Override
@Transactional
public BookOrderDTO createBookOrder(BookOrderDTO bookOrderDTO) {
BookOrder bookOrder = dozerMapper.map(bookOrderDTO, BookOrder.class);
OrderItemsDTO orderItemsDTO = OrderItemUtil.INSTANCE.getOrderItems(bookOrder.getBookOrderItems());
Map<String, Integer> orderCountMap = orderItemsDTO.getItemContMap();
boolean isCanCreate = true;
String bookName = null;
for (Map.Entry<String, Integer> entry : orderCountMap.entrySet()) {
BookDTO bookDTO = bookService.getBookByName(entry.getKey());
if (ObjectUtils.isEmpty(bookDTO)) {
log.warn("不存在书目{}", entry.getKey());
bookName = entry.getKey();
isCanCreate = false;
break;
}
int updateBookCount = bookService.updateStockById(bookDTO.getId(), entry.getValue());
if (updateBookCount <= 0) {
log.warn("当前书目:{},还有库存:{},欲购数目:{}", entry.getKey(), bookDTO.getStock(), entry.getValue());
throw new BizException("当前书目->" + entry.getKey() + "已经售罄");
}
}
if (!isCanCreate) {
throw new BizException("不存在书目->" + bookName);
}
bookOrder.setTotal(orderItemsDTO.getTotalPrice());
bookOrder.setOrderNo(String.valueOf(System.currentTimeMillis()));
BookOrder dbBookOrder = bookOrderDao.createBookOrder(bookOrder);
applicationEventPublisher.publishEvent(dbBookOrder);
return dozerMapper.map(dbBookOrder, BookOrderDTO.class);
}
Aggregations