From 153622ed0e29399d67a6de14517e96cbc15ffdad Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 19 六月 2024 16:07:54 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java      |   35 +++++++++++++++++
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java   |   14 ++++++-
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/factory/StudyFallbackFactory.java |   15 +++++++
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/feignClient/StudyClient.java      |    5 ++
 4 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/factory/StudyFallbackFactory.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/factory/StudyFallbackFactory.java
index 234efd5..060a2e0 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/factory/StudyFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/factory/StudyFallbackFactory.java
@@ -136,16 +136,31 @@
             }
 
             @Override
+            public R<TUser> userInfoParent() {
+                return R.fail("获取用户信息失败" + cause.getMessage());
+            }
+
+            @Override
             public R<Boolean> addIntegralDetail(String integral, String method) {
                 return R.fail("生成积分明细信息失败" + cause.getMessage());
             }
 
             @Override
+            public R<Boolean> addIntegralDetailParent(String integral, String method) {
+                return R.fail("添加积分明细失败" + cause.getMessage());
+            }
+
+            @Override
             public R<Boolean> exchangeIntegral(Integer integral, String method) {
                 return R.fail("用户积分变动失败" + cause.getMessage());
             }
 
             @Override
+            public R<Boolean> exchangeIntegralParent(Integer integral, String method) {
+                return R.fail("修改积分变动失败" + cause.getMessage());
+            }
+
+            @Override
             public R<Boolean> addIntegralDetail1(String integral, String method) {
                 return null;
             }
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/feignClient/StudyClient.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/feignClient/StudyClient.java
index f63a6f0..d7696f5 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/feignClient/StudyClient.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/feignClient/StudyClient.java
@@ -191,6 +191,8 @@
      */
     @GetMapping("/base/study/addIntegralDetail")
     R<Boolean> addIntegralDetail(@RequestParam("integral") String integral, @RequestParam("method") String method);
+    @GetMapping("/base/study/addIntegralDetailParent")
+    R<Boolean> addIntegralDetailParent(@RequestParam("integral") String integral, @RequestParam("method") String method);
 
     /**
      * 用户积分变动(增加或减少)-用于远程调用
@@ -202,6 +204,9 @@
     @GetMapping("/base/study/exchangeIntegral")
     @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"})
     R<Boolean> exchangeIntegral(@RequestParam("integral") Integer integral, @RequestParam("method") String method);
+    @GetMapping("/base/study/exchangeIntegralParent")
+    @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"})
+    R<Boolean> exchangeIntegralParent(@RequestParam("integral") Integer integral, @RequestParam("method") String method);
 
     /**
      * 生成积分明细-用于远程调用
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java
index 595780e..de5e855 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java
@@ -153,6 +153,16 @@
         // 扣除用户积分
         result = result && studyClient.exchangeIntegral(needIntegral, Constants.BURDEN).getData();
         return result;
+    }private Boolean exchangeGoodParent(GoodExchangeDTO goodExchange, Recipient recipient, Integer number,
+                                 Integer goodId, int needIntegral) {
+        // 兑换成功,生成订单信息、生成积分明细(积分明细需要远程调用rouyi-study服务)
+        TOrder order = orderInfo(goodExchange, recipient, number, goodId, needIntegral);
+        boolean result = orderService.save(order);
+        // 远程调用,生成积分明细
+        result = result && studyClient.addIntegralDetailParent(Constants.BURDEN + needIntegral, Constants.SHOPPING_CONSUME).getData();
+        // 扣除用户积分
+        result = result && studyClient.exchangeIntegralParent(needIntegral, Constants.BURDEN).getData();
+        return result;
     }
 
     @Override
@@ -202,7 +212,7 @@
                 return R.exchangeError("当前商品库存不足");
             }
             // 兑换成功,生成订单信息、生成积分明细(积分明细需要远程调用rouyi-study服务)
-            boolean result = exchangeGood(goodExchange, recipient, number, goodId, needIntegral);
+            boolean result = exchangeGoodParent(goodExchange, recipient, number, goodId, needIntegral);
             // 扣除库存
             result = result && this.lambdaUpdate().set(TGoods::getTotal, good.getTotal() - number)
                     .eq(TGoods::getId, good.getId()).update();
@@ -211,7 +221,7 @@
                 return R.exchangeError("商品兑换失败!");
             }
         } else {
-            boolean result = exchangeGood(goodExchange, recipient, number, goodId, needIntegral);
+            boolean result = exchangeGoodParent(goodExchange, recipient, number, goodId, needIntegral);
             if (!result) {
                 return R.exchangeError("商品兑换失败!");
             }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
index 442f5b8..b96e876 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java
@@ -1616,6 +1616,27 @@
         integralRecord.setUpdateTime(new Date());
         return R.ok(integralRecordService.save(integralRecord));
     }
+    @GetMapping("/addIntegralDetailParent")
+//    @ApiOperation(value = "添加-积分明细", tags = {"添加-积分明细"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "积分数量", name = "integral", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "变动源(完成学习、完成游戏...)", name = "method", dataType = "String", required = true)
+    })
+    public R<Boolean> addIntegralDetailParent(@RequestParam("integral") String integral, @RequestParam("method") String method) {
+        // 当前登录用户
+        LoginUserParent userStudy = tokenService.getLoginUser1();
+        // 生成积分明细信息
+        TIntegralRecord integralRecord = new TIntegralRecord();
+        integralRecord.setIntegral(integral);
+        integralRecord.setMethod(method);
+        integralRecord.setUserId(userStudy.getUserid());
+        integralRecord.setDisabled(Boolean.FALSE);
+        integralRecord.setCreateBy(userStudy.getPhone());
+        integralRecord.setCreateTime(new Date());
+        integralRecord.setUpdateBy(userStudy.getPhone());
+        integralRecord.setUpdateTime(new Date());
+        return R.ok(integralRecordService.save(integralRecord));
+    }
 
     @GetMapping("/addIntegralDetail1")
 //    @ApiOperation(value = "添加-积分明细", tags = {"添加-积分明细"})
@@ -1659,6 +1680,20 @@
         }
         return R.ok(userService.updateById(user));
     }
+    @GetMapping("/exchangeIntegralParent")
+//    @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"})
+    public R<Boolean> exchangeIntegralParent(@RequestParam("integral") Integer integral, @RequestParam("method") String method) {
+        if (tokenService.getLoginUser1()==null){
+            return R.tokenError("登录失效");
+        }
+        TUser user = userService.getById(tokenService.getLoginUser1().getUserid());
+        if (Constants.BURDEN.equals(method)) {
+            user.setIntegral(user.getIntegral() - integral);
+        } else {
+            user.setIntegral(user.getIntegral() + integral);
+        }
+        return R.ok(userService.updateById(user));
+    }
 
     @GetMapping("/exchangeIntegral1")
 //    @ApiOperation(value = "用户积分变动", tags = {"用户积分变动"})

--
Gitblit v1.7.1