luodangjia
2025-01-17 b0cc9bd3619e69fa4c8bbdedebb56435cfd74a8f
12.18
4个文件已修改
34 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SeckillActivityInfoClientFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SeckillActivityInfoClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/SeckillActivityInfoClientFallbackFactory.java
@@ -22,6 +22,11 @@
            public R<SeckillActivityInfo> getSeckillActivityInfoById(Integer id) {
                return R.fail("根据id获取秒杀活动失败:" + cause.getMessage());
            }
            @Override
            public R<SeckillActivityInfo> getSeckillActivityInfoByGoodsId(Integer goodsId) {
                return R.fail();
            }
        };
    }
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/SeckillActivityInfoClient.java
@@ -7,6 +7,7 @@
import com.ruoyi.other.api.factory.SeckillActivityInfoClientFallbackFactory;
import com.ruoyi.other.api.vo.GetSeckillActivityInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -35,4 +36,7 @@
     */
    @PostMapping("/seckill-activity-info/getSeckillActivityInfoById")
    R<SeckillActivityInfo> getSeckillActivityInfoById(@RequestParam("id") Integer id);
    @GetMapping("/seckill-activity-info/getSeckillActivityInfoByGoodsId")
    public R<SeckillActivityInfo> getSeckillActivityInfoByGoodsId(@RequestParam("goodsId") Integer goodsId);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -337,7 +337,20 @@
                .eq(ShoppingCart::getAppUserId, userid));
        goodsSaleNum += count;
        Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
        if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && (goodsSaleNum + shoppingCart.getNumber()) > goods.getPurchaseLimit()){
        Integer maxNum = 0;
        if(shoppingCart.getType() == 2){
            R<SeckillActivityInfo> r = seckillActivityInfoClient.getSeckillActivityInfoByGoodsId(shoppingCart.getGoodsId());
            if (R.isError(r)){
                throw new ServiceException("获取秒杀商品失败!");
            }
            SeckillActivityInfo seckillActivityInfo = r.getData();
            maxNum = seckillActivityInfo.getMaxNum();
        }else {
            maxNum = goods.getPurchaseLimit();
        }
        if(null != goods.getPurchaseLimit() && -1 != maxNum && (goodsSaleNum + shoppingCart.getNumber()) > maxNum){
            throw new ServiceException("超出购买数量限制");
        }
        ShoppingCart one = this.getOne(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid)
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
@@ -186,6 +186,16 @@
        return R.ok();
    }
    @GetMapping("/getSeckillActivityInfoByGoodsId")
    public R<SeckillActivityInfo> getSeckillActivityInfoByGoodsId(@RequestParam("goodsId") Integer goodsId){
        SeckillActivityInfo seckillActivityInfo = seckillActivityInfoService.getOne(new LambdaQueryWrapper<SeckillActivityInfo>()
                .eq(SeckillActivityInfo::getGoodId, goodsId)
                .eq(SeckillActivityInfo::getDelFlag, 0)
                .eq(SeckillActivityInfo::getIsShelves, 1)
                .last(" and now() between start_time and end_time"));
        return R.ok(seckillActivityInfo);
    }
    /**
     * 修改秒杀活动
     */