From 2e2b5d4cdc02d80cf41f0488fc4f4f7f6037dfae Mon Sep 17 00:00:00 2001 From: callmeyan Date: Thu, 1 Dec 2022 08:21:31 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E6=96=B0=E5=A2=9E=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderInfoServiceImpl.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/me/xiaoyan/point/api/service/impl/OrderInfoServiceImpl.java b/api/src/main/java/me/xiaoyan/point/api/service/impl/OrderInfoServiceImpl.java index dc0090e..a794327 100644 --- a/api/src/main/java/me/xiaoyan/point/api/service/impl/OrderInfoServiceImpl.java +++ b/api/src/main/java/me/xiaoyan/point/api/service/impl/OrderInfoServiceImpl.java @@ -9,11 +9,8 @@ import me.xiaoyan.point.api.pojo.OrderInfo; import me.xiaoyan.point.api.pojo.UserInfo; import me.xiaoyan.point.api.pojo.dto.OrderStatus; import me.xiaoyan.point.api.pojo.vo.CreateOrderData; -import me.xiaoyan.point.api.service.GoodsService; -import me.xiaoyan.point.api.service.OrderInfoService; -import me.xiaoyan.point.api.service.UserInfoService; +import me.xiaoyan.point.api.service.*; import me.xiaoyan.point.api.util.OrderIdGenerator; -import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,6 +30,8 @@ public class OrderInfoServiceImpl extends ServiceImpl now || goods.getOfflineTime().getTime() < now) { throw BizException.create("商品未上架或已下架"); } - // TODO 需要判断积分 if (goods.getStock() < data.getBuyCount()) throw BizException.create("商品存库不足"); - // 判断购买数量的限制 - if(goods.getLimitCount() > 0 && buyHistoryCount(uid,data.getGoodsId()) + data.getBuyCount() > goods.getLimitCount()){ - throw BizException.create("最多兑换" + goods.getLimitCount() + "件"); + // 需要判断积分 + if (goods.getPrice() > 0 && user.getPointInfo().getTotalPoint() < goods.getPrice()) { + throw BizException.create("积分不足,兑换失败"); } + // 判断购买数量的限制 + if (goods.getLimitCount() > 0 && buyHistoryCount(uid, data.getGoodsId()) + data.getBuyCount() > goods.getLimitCount()) { + throw BizException.create("最多兑换" + goods.getLimitCount() + "件"); + } + // 扣减积分 + pointRecordService.record(uid, 0 - goods.getPrice(), "兑换商品 " + goods.getTitle()); // 3.减库存 if (!goodsService.deductStock(data.getGoodsId(), data.getBuyCount())) { throw BizException.create("商品库存不足");