数量扣减

This commit is contained in:
2025-12-11 10:53:28 +08:00
parent 71ee1247c6
commit a722f14045
2 changed files with 13 additions and 6 deletions

View File

@@ -90,7 +90,7 @@ public class MkPointsGoodsServiceImpl extends ServiceImpl<MkPointsGoodsMapper, M
.eq(MkPointsGoodsRecord::getUserId, userId)
.eq(MkPointsGoodsRecord::getShopId, shopId)
.orderBy(MkPointsGoodsRecord::getCreateTime, false);
if (status != null) {
if (StrUtil.isNotBlank(status)) {
if ("售后".equals(status)) {
queryWrapper.and(wrapper -> {
wrapper.eq(MkPointsGoodsRecord::getStatus, "退款中").or(MkPointsGoodsRecord::getStatus).eq("已退款");

View File

@@ -63,6 +63,9 @@ public class PointsGoodPayServiceImpl implements PointsGoodPayService {
if (goods.getStatus() != 1) {
throw new CzgException("兑换失败,商品已下架");
}
if (goods.getQuantity() <= 0) {
throw new CzgException("兑换失败,商品库存不足");
}
Integer boughtCount = goodsRecordService.getOneAs(QueryWrapper.create().select("sum(number)")
.eq(MkPointsGoodsRecord::getPointsGoodsId, param.getPointsGoodsId())
.ne(MkPointsGoodsRecord::getStatus, "已退款")
@@ -177,16 +180,20 @@ public class PointsGoodPayServiceImpl implements PointsGoodPayService {
.setShopUserId(record.getShopUserId())
.setSource("积分兑换");
couponRecordService.receiveCoupon(giftDTO, record.getNumber(), false);
goodsService.upNumberById(goods.getId(), goods.getQuantity() - record.getNumber(), goods.getTotalExchangeCount() + record.getNumber());
//扣除积分
pointsUserService.alterPoints(record.getUserId(), null, record.getShopId(), PointsConstant.SUB,
record.getSpendPoints(), record.getId(), "积分商品兑换");
return record;
} else {
record.setStatus("待核销");
record.setCouponCode(RandomUtil.randomNumbers(12));
goodsRecordService.save(record);
goodsService.upNumberById(goods.getId(), goods.getQuantity() - record.getNumber(), goods.getTotalExchangeCount() + record.getNumber());
//扣除积分
pointsUserService.alterPoints(record.getUserId(), null, record.getShopId(), PointsConstant.SUB,
record.getSpendPoints(), record.getId(), "积分商品兑换");
}
goodsService.upNumberById(goods.getId(), goods.getQuantity() - record.getNumber(), goods.getTotalExchangeCount() + record.getNumber());
goodsRecordService.save(record);
//扣除积分
pointsUserService.alterPoints(record.getUserId(), null, record.getShopId(), PointsConstant.SUB,
record.getSpendPoints(), record.getId(), "积分商品兑换");
return record;
}
}