package cn.lili.event.impl; import cn.hutool.json.JSONUtil; import cn.lili.common.utils.BeanUtil; import cn.lili.event.TradeEvent; import cn.lili.modules.order.cart.entity.dto.TradeDTO; import cn.lili.modules.order.order.entity.dos.Receipt; import cn.lili.modules.order.order.entity.vo.OrderVO; import cn.lili.modules.order.order.entity.vo.ReceiptVO; import cn.lili.modules.order.order.service.ReceiptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * 订单创建发票相关处理 * * @author Chopper * @since 2020-07-03 11:20 **/ @Service public class OrderCreateReceiptExecute implements TradeEvent { @Autowired private ReceiptService receiptService; @Override public void orderCreate(TradeDTO tradeDTO) { //根据交易sn查询订单信息 List orderList = tradeDTO.getOrderVO(); //获取发票信息 ReceiptVO receiptVO = tradeDTO.getReceiptVO(); //如果需要获取发票则保存发票信息 if (Boolean.TRUE.equals(tradeDTO.getNeedReceipt()) && !orderList.isEmpty()) { List receipts = new ArrayList<>(); for (OrderVO orderVO : orderList) { Receipt receipt = new Receipt(); BeanUtil.copyProperties(receiptVO, receipt); receipt.setMemberId(orderVO.getMemberId()); receipt.setMemberName(orderVO.getMemberName()); receipt.setStoreId(orderVO.getStoreId()); receipt.setStoreName(orderVO.getStoreName()); receipt.setOrderSn(orderVO.getSn()); receipt.setReceiptDetail(JSONUtil.toJsonStr(orderVO.getOrderItems())); receipt.setReceiptPrice(orderVO.getFlowPrice()); receipt.setReceiptStatus(0); receipts.add(receipt); } //保存发票 receiptService.saveBatch(receipts); } } }