Commit a0129d5b authored by shiyu's avatar shiyu

限购排除已取消订单

parent 055a150d
...@@ -42,6 +42,14 @@ public interface DistributionOrderDao { ...@@ -42,6 +42,14 @@ public interface DistributionOrderDao {
List<DistributionOrder> findByBuyerId(long buyerId); List<DistributionOrder> findByBuyerId(long buyerId);
/**
* 根据买家id查询历史有效购买记录,排除已取消的订单
* @param buyerId
* @return
*/
List<DistributionOrder> findValidOrderByBuyerId(long buyerId);
/** /**
* 根据卖家id查询 * 根据卖家id查询
* @param sellerId * @param sellerId
......
...@@ -51,6 +51,17 @@ public class DistributionOrderDaoImpl implements DistributionOrderDao { ...@@ -51,6 +51,17 @@ public class DistributionOrderDaoImpl implements DistributionOrderDao {
return distributionOrderMapper.selectByExample(example); return distributionOrderMapper.selectByExample(example);
} }
@Override
public List<DistributionOrder> findValidOrderByBuyerId(long buyerId) {
DistributionOrderExample example = new DistributionOrderExample();
DistributionOrderExample.Criteria criteria = example.createCriteria();
criteria.andBuyerIdEqualTo(buyerId);
//排除已取消的订单
criteria.andStateNotEqualTo(101);
return distributionOrderMapper.selectByExample(example);
}
@Override @Override
public List<DistributionOrder> findBySellerId(long sellerId) { public List<DistributionOrder> findBySellerId(long sellerId) {
DistributionOrderExample example = new DistributionOrderExample(); DistributionOrderExample example = new DistributionOrderExample();
......
...@@ -90,13 +90,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService { ...@@ -90,13 +90,13 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
int buyLimitNum = supplierItem.getBuyLimitNum() == null ? 5 : supplierItem.getBuyLimitNum(); int buyLimitNum = supplierItem.getBuyLimitNum() == null ? 5 : supplierItem.getBuyLimitNum();
//检查该购买者是否超出限购数量 //检查该购买者是否超出限购数量
//1.查询购买者对该商品的历史购买记录 //1.查询购买者对该商品的历史购买记录
List<DistributionOrder> distributionOrders = distributionOrderDao.findByBuyerId(dto.getBuyerId()); List<DistributionOrder> distributionOrders = distributionOrderDao.findValidOrderByBuyerId(dto.getBuyerId());
int buyNum = 0; int buyNum = 0;
if (!CollectionUtils.isEmpty(distributionOrders)) { if (!CollectionUtils.isEmpty(distributionOrders)) {
buyNum = distributionOrders.stream().mapToInt(DistributionOrder::getItemNum).sum(); buyNum = distributionOrders.stream().mapToInt(DistributionOrder::getItemNum).sum();
} }
if (buyNum + dto.getItemNum() > buyLimitNum) { if (buyNum + dto.getItemNum() > buyLimitNum) {
return Result.failed("超出购买上限,不能下单"); return Result.failed("超出购买上限" + buyLimitNum + "件");
} }
String distributionOrderId = IdUtils.getOrderNumber(DISTRIBUTION_ORDER_PREFIX); String distributionOrderId = IdUtils.getOrderNumber(DISTRIBUTION_ORDER_PREFIX);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment