From 5273de9efb900feb07a9a4f1426976e0580c623f Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 02 七月 2024 10:29:37 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java |  151 +++++++++++++++++++++++++++++---------------------
 1 files changed, 88 insertions(+), 63 deletions(-)

diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
index 127e6a8..3fef92b 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
@@ -164,27 +164,8 @@
         PayVO payVO = new PayVO();
         payVO.setOrderId(tVipOrder.getId());
         payVO.setId(id);
-
-
         return R.ok(payVO);
-//        switch (payType) {
-//            case 1:
-//                return payMoneyUtil.weixinpay
-//                        ("购买会员", "",
-//                                id + "_" + tVipOrder.getId() + "_" +
-//                                        UUIDUtil.getRandomCode(8),
-//                                tVipOrder.getMoney().toString(),
-//                                "/base/wxPayBuyVip", "APP", "");
-//            case 2:
-//                return payMoneyUtil.alipay
-//                        ("购买会员",
-//                                "购买会员下单支付",
-//                                "",
-//                                id + "_" + tVipOrder.getId() + "_" +
-//                                        UUIDUtil.getRandomCode(8),
-//                                tVipOrder.getMoney().toString(),
-//                                "/base/aliPayBuyVip");
-//        }
+
 
     }
 
@@ -192,7 +173,9 @@
     @PostMapping("/aliPayBuyVip")
     public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response) {
         try {
+            System.err.println("进入支付宝回调");
             Map<String, String> map = payMoneyUtil.alipayCallback(request);
+            System.err.println("返回参数");
             if (null != map) {
                 String out_trade_no = map.get("out_trade_no");
                 String trade_no = map.get("trade_no");
@@ -213,7 +196,6 @@
                 byId.setTransactionId(trade_no);
                 byId.setOutTradeNo(out_trade_no);
                 byId.setPayTime(new Date());
-
 
                 TUser byId1 = userService.getById(byId.getUserId());
                 if (byId1.getVipPayTime() == null) {
@@ -379,6 +361,18 @@
         } else {
             return R.tokenError("登录失效");
         }
+    }
+
+    @PostMapping("/studyPage")
+    @ApiOperation(value = "学习端", tags = {"启动页"})
+    public R<String> studyPage() {
+        List<TPage> data = managementClient.getPage1().getData();
+        for (TPage datum : data) {
+            if (datum.getType() == 1) {
+                return R.ok(datum.getImg());
+            }
+        }
+        return R.ok();
     }
 
     @PostMapping("/parentPage")
@@ -691,6 +685,9 @@
         }
         TUser user = userService.lambdaQuery().eq(TUser::getId, loginUserStudy.getUserid()).one();
         TUserStudy userStudy = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, user.getId()).eq(TUserStudy::getDisabled, 0).one();
+        if (null == userStudy) {
+            userStudy = createUserStudy(loginUserStudy.getUserid());
+        }
         // 学习时长格式转换
         Integer todayStudy = userStudy.getTodayStudy();
         userStudy.setTodayStudy(Math.round((float) todayStudy / 3600));
@@ -706,6 +703,27 @@
         Integer totalStudy = userStudy.getTotalStudy();
         userStudy.setTotalStudy(Math.round((float) (totalStudy + sum) / 3600));
         return R.ok(new UserPersonalCenterVO(user, userStudy));
+    }
+
+    private TUserStudy createUserStudy(Integer userid) {
+        TUserStudy userStudy = new TUserStudy();
+        userStudy.setUserId(userid);
+        // 学习周目
+        TStudy tStudy = studyService.lambdaQuery().eq(TStudy::getQuarter, Constants.ONE)
+                .orderByAsc(TStudy::getWeek).last("limit 1").one();
+        userStudy.setWeek(tStudy.getWeek());
+        userStudy.setDay(Constants.ONE);
+        userStudy.setTotalStudy(Constants.ZERO);
+        userStudy.setTodayStudy(Constants.ZERO);
+        userStudy.setWeekStudy(Constants.ZERO);
+        userStudy.setMonthStudy(Constants.ZERO);
+        userStudy.setListen(Constants.BURDEN_ONE);
+        userStudy.setLook(Constants.BURDEN_ONE);
+        userStudy.setInduction(Constants.BURDEN_ONE);
+        userStudy.setAnswer(Constants.BURDEN_ONE);
+        userStudy.setPair(Constants.BURDEN_ONE);
+        userStudyService.save(userStudy);
+        return userStudy;
     }
 
     @GetMapping("/userInfoParent")
@@ -951,9 +969,6 @@
     public R<UserInfoVO> getUserInfo(@RequestBody UserInfoQuery dto) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
         UserInfoVO res = new UserInfoVO();
-        PageInfo<UserGameRecordVO> list = new PageInfo<>(dto.getPageNumber(), dto.getPageSize());
-
-
         TUser byId = userService.getById(dto.getId());
         String name = byId.getName();
         String phone = byId.getPhone();
@@ -969,57 +984,67 @@
                 res.setIsVip(0);
             }
         }
-        if (vipPayTime != null) {
+        if (vipEndTime!=null){
             res.setVipPayTime(format.format(vipPayTime));
         }
         res.setState(byId.getState());
         res.setName(name);
         res.setPhone(phone);
-        res.setInsertTime(format.format(insertTime));
+        if (insertTime!=null){
+            res.setInsertTime(format.format(insertTime));
+        }
         res.setIntegral(byId.getIntegral());
+        // 学习记录
         TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, dto.getId())
                 .eq(TUserStudy::getDisabled, 0).one();
-        // 游戏测试成绩
+        // 查询剩余周目
+        if (studyRecord != null) {
+            int size = studyService.list(new QueryWrapper<TStudy>()
+                    .eq("type", 1)).size();
+            studyRecord.setSurplus(size - studyRecord.getWeek());
+        } else {
+            TUserStudy tUserStudy = new TUserStudy();
+            tUserStudy.setSurplus(studyService.list(new QueryWrapper<TStudy>()
+                    .eq("type", 1)).size());
+            tUserStudy.setWeek(1);
+            tUserStudy.setTodayStudy(Constants.ZERO);
+            tUserStudy.setTotalStudy(Constants.ZERO);
+            tUserStudy.setWeekStudy(Constants.ZERO);
+            tUserStudy.setMonthStudy(Constants.ZERO);
+            studyRecord = tUserStudy;
+        }
+        // 学习时长格式转换
+        Integer todayStudy = studyRecord.getTodayStudy();
+        studyRecord.setTodayStudy(Math.round((float) todayStudy / 3600));
+        Integer weekStudy = studyRecord.getWeekStudy();
+        studyRecord.setWeekStudy(Math.round((float) weekStudy / 3600));
+        Integer monthStudy = studyRecord.getMonthStudy();
+        studyRecord.setMonthStudy(Math.round((float) monthStudy / 3600));
+        // 总时长还需计算上游戏测试成绩时长
         List<TGameRecord> gameRecordList = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, dto.getId())
                 .eq(TGameRecord::getDisabled, 0).list();
-        if (studyRecord != null) {
-            res.setCurrent(studyRecord.getWeek());
-            // 查询当前听的总周目
-            List<TStudy> list1 = studyService.list(new QueryWrapper<>());
-            res.setSurplus(list1.size() - studyRecord.getWeek());
-            res.setTotalHours(studyRecord.getTotalStudy().doubleValue());
-            res.setTodayHours(studyRecord.getTodayStudy().doubleValue());
-            res.setWeekHours(studyRecord.getWeekStudy().doubleValue());
-            res.setMonthHours(studyRecord.getMonthStudy().doubleValue());
-        } else {
-            res.setCurrent(0);
-            res.setSurplus(0);
-            res.setTotalHours(0.0);
-            res.setTodayHours(0.0);
-            res.setWeekHours(0.0);
-            res.setMonthHours(0.0);
-        }
-
-        List<UserGameRecordVO> userGameRecordVOS = new ArrayList<>();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm");
         for (TGameRecord tGameRecord : gameRecordList) {
-            UserGameRecordVO userGameRecordVO = new UserGameRecordVO();
-            userGameRecordVO.setGameName(tGameRecord.getGameName());
-            userGameRecordVO.setUseTime(tGameRecord.getUseTime().toString());
-            if (tGameRecord.getGameDifficulty() == 0) {
-                userGameRecordVO.setAccuracy("100%");
-            } else {
-                userGameRecordVO.setAccuracy(tGameRecord.getAccuracy() + "%");
-            }
-            if (tGameRecord.getGameDifficulty() == 0) {
-                userGameRecordVO.setTime(tGameRecord.getUseTime());
-            } else {
-                userGameRecordVO.setTime(tGameRecord.getUseTime() / 2);
-            }
-            userGameRecordVOS.add(userGameRecordVO);
+            tGameRecord.setTime(simpleDateFormat.format(tGameRecord.getCreateTime()));
         }
-        list.setRecords(userGameRecordVOS);
-        list.setTotal(userGameRecordVOS.size());
-        res.setGameRecords(list);
+        int sum = gameRecordList.stream().map(TGameRecord::getUseTime).mapToInt(Integer::intValue).sum();
+        Integer totalStudy = studyRecord.getTotalStudy();
+        studyRecord.setTotalStudy(Math.round((float) (totalStudy + sum) / 3600));
+        res.setCurrent(studyRecord.getWeek()+"");
+        // 剩余周目
+        List<TStudy> studyList = studyService.lambdaQuery().eq(TStudy::getDisabled, 0)
+                .eq(TStudy::getType, Constants.ONE)
+                .orderByAsc(TStudy::getWeek).list();
+
+        res.setSurplus(studyRecord.getSurplus()+"");
+        res.setTotalHours(studyRecord.getTotalStudy().doubleValue());
+        res.setTodayHours(studyRecord.getTodayStudy().doubleValue());
+        res.setMonthHours(studyRecord.getMonthStudy().doubleValue());
+        res.setWeekHours(studyRecord.getWeekStudy().doubleValue());
+        PageInfo<TGameRecord> list1 = new PageInfo<>(dto.getPageNumber(), dto.getPageSize());
+        list1.setTotal(gameRecordList.size());
+        list1.setRecords(gameRecordList);
+        res.setGameRecords(list1);
         return R.ok(res);
     }
 

--
Gitblit v1.7.1