From 965af8a1b7b7470a1d3659fb9efed1da21713a1c Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期日, 29 九月 2024 09:01:52 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java | 35 ++++++++++++++++++++++++++++++----- 1 files changed, 30 insertions(+), 5 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java index aec8295..1eb1e82 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java @@ -12,6 +12,7 @@ import com.ruoyi.account.api.model.TAppUser; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.AppGoodQuery; +import com.ruoyi.common.core.dto.ExchangeBackDto; import com.ruoyi.common.core.dto.PointChangeDto; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; @@ -200,6 +201,9 @@ Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData(); if (good.getLimitExchangeTimes() != -1 && count >= good.getLimitExchangeTimes()) { return AjaxResult.error("当前用户已兑换"+count+"张"); + }else { + //减少库存 + good.setInventory(good.getInventory()-exchangeDto.getNum()); } if (user.getPoints()<good.getRedeemPoints()){ return AjaxResult.error("当前用户积分不足"); @@ -209,18 +213,24 @@ point = coupon.getRedeemPoints(); Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData(); - if (coupon.getInventoryQuantity() != -1 && count >= coupon.getInventoryQuantity()) { - return AjaxResult.error("当前用户已到达兑换"+coupon+"次"); - } if (user.getPoints()<point){ return AjaxResult.error("当前用户积分不足"); } + if (coupon.getInventoryQuantity() != -1 && count >= coupon.getInventoryQuantity()) { + return AjaxResult.error("当前用户已到达兑换"+coupon+"次"); + }else { + coupon.setInventoryQuantity(coupon.getInventoryQuantity()-exchangeDto.getNum()); + } + + } exchangeDto.setPoint(point); exchangeDto.setUserId(userId); //生成积分兑换成功的订单 - R<Long> longR = orderClient.exchangeCreate(exchangeDto); + R<ExchangeBackDto> longR = orderClient.exchangeCreate(exchangeDto); if (exchangeDto.getGoodType()==2) { + TCoupon coupon = couponService.getById(exchangeDto.getGoodId()); + //如果是优惠卷,赠送优惠卷给用户 GrantCouponDto grantCouponDto = new GrantCouponDto(); grantCouponDto.setUserIds(userId.toString()); @@ -228,6 +238,14 @@ grantCouponDto.setWaysToObtain(1); grantCouponDto.setEndTime(LocalDateTime.now()); grantCouponDto.setType(3); + switch (coupon.getValidityPeriodMode()){ + case 1: + grantCouponDto.setEndTime(coupon.getEndTime()); + break; + case 2: + grantCouponDto.setEndTime(LocalDateTime.now().plusDays(coupon.getDays())); + break; + } appCouponClient.grantCoupon(grantCouponDto); } //生成消耗积分的记录 @@ -236,6 +254,7 @@ pointChangeDto.setPoints(point); pointChangeDto.setRemark(longR.getData().toString()); pointChangeDto.setType(6); + pointChangeDto.setCode(longR.getData().getCode()); appUserClient.changeDown(pointChangeDto); return AjaxResult.success(); @@ -259,6 +278,7 @@ if (exchangeDto.getGoodType()==1){ TGoods good = goodsService.getById(exchangeDto.getGoodId()); BigDecimal originalPrice = good.getPreferentialPrice(); + exchangeDto.setTitle("【商品购买】"+good.getName()); if (isVip){ if (good.getVipPrice()!=null){ vipDiscount = originalPrice.subtract(good.getVipPrice()).multiply(BigDecimal.valueOf(exchangeDto.getNum())); @@ -267,7 +287,9 @@ } orderPrice = orderPrice.add(originalPrice.multiply(BigDecimal.valueOf(exchangeDto.getNum()))); }else { + TCoupon coupon = couponService.getById(exchangeDto.getGoodId()); + exchangeDto.setTitle("【优惠卷购买】"+coupon.getName()); BigDecimal originalPrice = coupon.getPaymentAmount(); if (isVip){ if (coupon.getVipPaymentAmount()!=null) { @@ -291,11 +313,14 @@ } payPrice = orderPrice.subtract(coupon.getDiscountAmount()); discountPrice = coupon.getDiscountAmount(); + }else { + payPrice = orderPrice; } - exchangeDto.setPayPrice(orderPrice); + exchangeDto.setPayPrice(payPrice); exchangeDto.setDiscountPrice(discountPrice); exchangeDto.setVipDiscount(vipDiscount); exchangeDto.setUserId(userId); + exchangeDto.setPhone(user.getPhone()); //创建订单 TShoppingOrder shopOrder = orderClient.shopCreate(exchangeDto).getData(); if (exchangeDto.getPayMethod()==1) { -- Gitblit v1.7.1