添加用户购买的书籍

This commit is contained in:
wuchunlei
2023-11-23 13:09:45 +08:00
parent ff5a94b4fe
commit 9687a73269

View File

@@ -7,6 +7,8 @@ import com.alipay.api.internal.util.AlipaySignature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.peanut.common.utils.CopyUtils;
import com.peanut.common.utils.OrderUtils;
import com.peanut.modules.book.dao.ShopProductBookDao;
import com.peanut.modules.book.dao.UserEbookBuyDao;
import com.peanut.modules.book.entity.*;
import com.peanut.modules.book.service.*;
import com.peanut.modules.pay.alipay.config.AliPayConfig;
@@ -20,10 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.*;
/**
* 支付宝支付实现
@@ -46,6 +45,10 @@ public class AliPayServiceImpl implements AliPayService {
private PayPaymentOrderService payPaymentOrderService;
@Autowired
private BuyOrderService buyOrderService;
@Autowired
private ShopProductBookDao shopProductBookDao;
@Autowired
private UserEbookBuyDao userEbookBuyDao;
@Override
public String pay(AlipayDTO payDto) {
@@ -188,6 +191,27 @@ public class AliPayServiceImpl implements AliPayService {
if (bigDecimal.compareTo(realMoney) == 0) {
buyOrderService.updateOrderStatus(Integer.valueOf(customerid),oldPayZfbOrderEntity.getRelevanceoid(),"0");
}
/* 记录用户购买的书籍 */
// 查询订单的所有 book_id
List<Integer> orderBookIdList = shopProductBookDao.getOrderBookId(orderEntity.getOrderSn());
// 去重
Set<Integer> set = new HashSet<>(orderBookIdList);
orderBookIdList.clear();
orderBookIdList.addAll(set);
// 查询用户的所有 book_id
List<Integer> userBookIdList = userEbookBuyDao.getUserBookId(orderEntity.getUserId());
// 取差集
orderBookIdList.removeAll(userBookIdList);
// 为用户添加书籍
for (Integer bookId : orderBookIdList) {
UserEbookBuyEntity entity = new UserEbookBuyEntity();
entity.setUserId(orderEntity.getUserId());
entity.setBookId(bookId);
userEbookBuyDao.insert(entity);
}
}