From 4712c04afe2aedeed20ddc5b1a3b0ba66b89cb9b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 01 七月 2024 17:43:22 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/RuoYiStudyApplication.java                            |    4 
 ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java         |    1 
 ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java             |   95 ++++++++-------
 ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TGoodsController.java            |    4 
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/UserInfoVO.java                                |    9 +
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java                    |    1 
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyRecordResultVO.java                       |   36 ++++++
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/factory/StudyFallbackFactory.java                 |    5 
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java                      |    3 
 ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/RuoYiManagementApplication.java             |    1 
 ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TGoods.java                                |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java                   |    6 +
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java                      |    4 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java |    1 
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/model/TGameRecord.java                            |    4 
 ruoyi-service/ruoyi-management/src/main/resources/mapper/management/TFeedbackMapper.xml                       |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                   |    2 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java                      |   37 ++++++
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java                    |   10 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java                       |   94 ++++++++-------
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java                              |    5 
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserInfoVO.java                                    |    9 +
 ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGameRecord.java                               |   10 -
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java                            |    4 
 ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/feignClient/StudyClient.java                      |    3 
 ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml                                    |    2 
 26 files changed, 236 insertions(+), 118 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TGoods.java b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TGoods.java
index 8a46573..0ad745f 100644
--- a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TGoods.java
+++ b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TGoods.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.web.domain.BaseModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -93,6 +94,7 @@
      * 商品详情
      */
     @ApiModelProperty(value = "商品详情")
+    @JsonFormat()
     private String detail;
 
     /**
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 060a2e0..f159e75 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
@@ -21,6 +21,11 @@
     public StudyClient create(Throwable cause) {
         return new StudyClient() {
             @Override
+            public R<StudyRecordResultVO> recordManagement(Integer id) {
+                return R.fail("根据用户id获取用户信息失败" + cause.getMessage());
+            }
+
+            @Override
             public R<TUser> getUserById(Integer id) {
                 return R.fail("根据用户id获取会员信息失败" + cause.getMessage());
             }
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 d7696f5..16d0676 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
@@ -18,7 +18,8 @@
 
 @FeignClient(contextId = "studyClient", value = ServiceNameConstants.STUDY_SERVICE, fallbackFactory = StudyFallbackFactory.class)
 public interface StudyClient {
-
+    @PostMapping("/base/study/recordManagement/{id}")
+    R<StudyRecordResultVO> recordManagement(@PathVariable("id")Integer id);
 
     @PostMapping("/base/user/getUserById/{id}")
     R<TUser> getUserById(@PathVariable("id") Integer id);
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/model/TGameRecord.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/model/TGameRecord.java
index 53ba1f8..664ec11 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/model/TGameRecord.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/model/TGameRecord.java
@@ -1,6 +1,7 @@
 package com.ruoyi.study.api.model;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.web.domain.BaseModel;
@@ -44,6 +45,9 @@
      */
     @ApiModelProperty(value = "用时时间 秒")
     private Integer useTime;
+    @ApiModelProperty(value = "游戏时间")
+    @TableField(exist = false)
+    private String time;
 
 
 }
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyRecordResultVO.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyRecordResultVO.java
new file mode 100644
index 0000000..f7cfd4d
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/StudyRecordResultVO.java
@@ -0,0 +1,36 @@
+package com.ruoyi.study.api.vo;
+
+import com.ruoyi.study.api.model.TGameRecord;
+import com.ruoyi.study.api.model.TUserStudy;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-05-22 14:39
+ */
+@Data
+@ApiModel(value = "个人中心-学习记录返回信息类")
+public class StudyRecordResultVO {
+
+    /**
+     * 学习记录
+     */
+    @ApiModelProperty("学习记录")
+    private TUserStudy record;
+
+    /**
+     * 游戏测试成绩
+     */
+    @ApiModelProperty("游戏测试成绩")
+    private List<TGameRecord> gameRecordList;
+
+    public StudyRecordResultVO(TUserStudy record, List<TGameRecord> gameRecordList) {
+        this.record = record;
+        this.gameRecordList = gameRecordList;
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/UserInfoVO.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/UserInfoVO.java
index dd93c25..396b37d 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/UserInfoVO.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/UserInfoVO.java
@@ -1,9 +1,12 @@
 package com.ruoyi.study.api.vo;
 
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.study.api.model.TGameRecord;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.Date;
 
 @Data
 @ApiModel(value = "用户详情VO")
@@ -23,9 +26,9 @@
     @ApiModelProperty(value = "剩余积分")
     private Integer integral;
     @ApiModelProperty(value = "当前进度")
-    private Integer current;
+    private String current;
     @ApiModelProperty(value = "剩余进度")
-    private Integer surplus;
+    private String surplus;
     @ApiModelProperty(value = "学习总时长")
     private Double totalHours;
     @ApiModelProperty(value = "今日学习时长")
@@ -35,5 +38,5 @@
     @ApiModelProperty(value = "本月学习时长")
     private Double monthHours;
     @ApiModelProperty(value = "游戏数据列表")
-    private PageInfo<UserGameRecordVO> gameRecords;
+    private PageInfo<TGameRecord> gameRecords;
 }
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
index 5ee3e2c..5f84ceb 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
@@ -59,6 +59,7 @@
      * 失败标记
      */
     public static final Integer FAIL = 500;
+    public static final Integer FAILUPDATE = 602;
     /**
      * 登录失效
      */
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java
index 13477e8..1bc91ba 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java
@@ -18,6 +18,7 @@
 
     /** 失败 */
     public static final int FAIL = Constants.FAIL;
+    public static final int FAILUPDATE = Constants.FAILUPDATE;
     /** 积分商城兑换失败 */
     public static final int EXCHANGECODE = Constants.EXCHANGECODE;
     /**
@@ -52,6 +53,10 @@
     {
         return restResult(null, VIPERROR, msg);
     }
+    public static <T> R<T> failUpdate(String msg)
+    {
+        return restResult(null, FAILUPDATE, msg);
+    }
 
     public static <T> R<T> ok(T data, String msg)
     {
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java
index e97a3b6..8314534 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/interceptor/HeaderInterceptor.java
@@ -26,7 +26,6 @@
         if (!(handler instanceof HandlerMethod)) {
             return true;
         }
-
         SecurityContextHolder.setUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USER_ID));
         SecurityContextHolder.setUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_USERNAME));
         SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY));
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 61d6698..c22b791 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -190,7 +190,7 @@
         if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
             user.setNickName(user.getPhonenumber());
         }
-        user.setPassword(SecurityUtils.encryptPassword("a123456"));
+//        user.setPassword(SecurityUtils.encryptPassword("a123456"));
         user.setRoleType(1);
         user.setUpdateBy(SecurityUtils.getUsername());
         user.setUpdateTime(new Date());
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java
index 5cd7758..4a3839c 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/config/RedissonConfig.java
@@ -23,9 +23,9 @@
     public RedissonClient redissonClient() {
         Config config = new Config();
         // 线上redis
-        config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("dolphin123456");
+//        config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("dolphin123456");
         // 本地redis
-//        config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("123456");
+        config.useSingleServer().setAddress("redis://127.0.0.1:6379").setPassword("123456");
         return Redisson.create(config);
     }
 
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
index 2ae3e4b..fa6c973 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -863,6 +863,9 @@
         if (query.getEndTime() != null) {
             Date parse = format.parse(query.getStartTime());
             Date parse1 = format.parse(query.getEndTime());
+            parse1.setHours(23);
+            parse1.setMinutes(59);
+            parse1.setSeconds(59);
             query.setStartTime1(parse);
             query.setEndTime1(parse1);
         }
diff --git a/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml b/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml
index 7648676..57238a1 100644
--- a/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml
+++ b/ruoyi-service/ruoyi-goods/src/main/resources/mapper/goods/TOrderMapper.xml
@@ -43,7 +43,7 @@
         </if>
 
         <if test="null != req.startTime">
-            and t1.insertTime between #{req.startTime} and #{req.endTime}
+            and t1.insertTime between #{req.startTime1} and #{req.endTime1}
         </if>
         order by t1.state asc, t1.insertTime desc
     </select>
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/RuoYiManagementApplication.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/RuoYiManagementApplication.java
index acffc39..8ca775f 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/RuoYiManagementApplication.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/RuoYiManagementApplication.java
@@ -35,4 +35,5 @@
                 " |  |  \\    /  \\      /           \n" +
                 " ''-'   `'-'    `-..-'              ");
     }
+
 }
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java
index 73e0bbe..05a896e 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java
@@ -53,6 +53,7 @@
 //        }
         List<FeedbackVO> list = feedbackService.listAll(query);
         PageInfo<FeedbackVO> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
+        res.setTotal(list.size());
         res.setRecords(list);
         return AjaxResult.success(res);
     }
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TGoodsController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TGoodsController.java
index 59bdc91..1238c56 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TGoodsController.java
@@ -105,7 +105,7 @@
     @ResponseBody
     @PostMapping("/addGoods")
     @ApiOperation(value = "添加", tags = {"后台-商品管理"})
-    public AjaxResult<TGoods> addGoods(TGoods dto) {
+    public AjaxResult<TGoods> addGoods(@RequestBody TGoods dto) {
         goodsClient.addGoods(dto);
         return AjaxResult.success("添加成功");
     }
@@ -121,7 +121,7 @@
     @ResponseBody
     @PostMapping("/updateGoods")
     @ApiOperation(value = "修改", tags = {"后台-商品管理"})
-    public AjaxResult<TGoods> updateGoods( TGoods dto) {
+    public AjaxResult<TGoods> updateGoods(@RequestBody TGoods dto) {
         goodsClient.updateGoods(dto);
         return AjaxResult.success("修改成功");
     }
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
index fb71737..363dd9a 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
@@ -19,9 +19,8 @@
 import com.ruoyi.study.api.dto.AppUserQuery;
 import com.ruoyi.study.api.dto.UserInfoQuery;
 import com.ruoyi.study.api.feignClient.StudyClient;
-import com.ruoyi.study.api.vo.AppUserVO;
-import com.ruoyi.study.api.vo.UserInfoVO;
-import com.ruoyi.study.api.vo.VipOrderVO;
+import com.ruoyi.study.api.model.TGameRecord;
+import com.ruoyi.study.api.vo.*;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -29,6 +28,8 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -78,51 +79,52 @@
     @PostMapping("/getUserInfo")
     @ApiOperation(value = "查看用户详情", tags = {"用户管理"})
     public AjaxResult<UserInfoVO> getUserInfo(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();
-//        Date insertTime = byId.getInsertTime();
-//        Date vipPayTime = byId.getVipPayTime();
-//        Date vipEndTime = byId.getVipEndTime();
-//        if (vipEndTime == null){
-//            res.setIsVip(0);
-//        }else{
-//            if (vipEndTime.getTime() > System.currentTimeMillis()){
-//                res.setIsVip(1);
-//            }else{
-//                res.setIsVip(0);
-//            }
-//        }
-//        if (vipPayTime!=null){
-//            res.setVipPayTime(format.format(vipPayTime));
-//        }
-//        res.setState(byId.getState());
-//        res.setName(name);
-//        res.setPhone(phone);
-//        res.setInsertTime(format.format(insertTime));
-//        res.setIntegral(byId.getIntegral());
-//        // todo 查询进度
-//        res.setCurrent(0);
-//        res.setSurplus(0);
-//        res.setTotalHours(0d);
-//        res.setTodayHours(0d);
-//        res.setWeekHours(0d);
-//        res.setMonthHours(0d);
-//        // todo 查询用户的游戏记录
-//        List<UserGameRecordVO> userGameRecordVOS = new ArrayList<>();
-//        list.setRecords(userGameRecordVOS);
-//        list.setTotal(0);
-//        res.setGameRecords(list);
-        UserInfoVO data = studyClient.getUserInfo(dto).getData();
-
-        return AjaxResult.success(data);
+        UserInfoVO data1 = studyClient.getUserInfo(dto).getData();
+        UserInfoVO userInfoVO = new UserInfoVO();
+        userInfoVO.setState(data1.getState());
+        userInfoVO.setName(data1.getName());
+        userInfoVO.setPhone(data1.getPhone());
+        userInfoVO.setInsertTime(data1.getInsertTime());
+        userInfoVO.setIsVip(data1.getIsVip());
+        userInfoVO.setVipPayTime(data1.getVipPayTime());
+        userInfoVO.setIntegral(data1.getIntegral());
+        userInfoVO.setCurrent(convertToChineseOrdinal(Integer.parseInt(data1.getCurrent())));
+        userInfoVO.setSurplus(convertToChineseOrdinal1(Integer.parseInt(data1.getSurplus())));
+        userInfoVO.setTotalHours(data1.getTotalHours());
+        userInfoVO.setTodayHours(data1.getTodayHours());
+        userInfoVO.setWeekHours(data1.getWeekHours());
+        userInfoVO.setMonthHours(data1.getMonthHours());
+        userInfoVO.setGameRecords(data1.getGameRecords());
+        return AjaxResult.success(userInfoVO);
     }
+    public static String convertToChineseOrdinal(int number) {
+        if (number <= 0 || number > 50) {
+            return "未知";
+        }
+        String[] chineseNumbers = {
+                "一", "二", "三", "四", "五", "六", "七", "八", "九", "十",
+                "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十",
+                "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十",
+                "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十",
+                "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十"
+        };
 
+        return "周目" + chineseNumbers[number - 1];
+    }
+    public static String convertToChineseOrdinal1(int number) {
+        if (number <= 0 || number > 50) {
+            return "未知";
+        }
+        String[] chineseNumbers = {
+                "一", "二", "三", "四", "五", "六", "七", "八", "九", "十",
+                "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十",
+                "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十",
+                "三十一", "三十二", "三十三", "三十四", "三十五", "三十六", "三十七", "三十八", "三十九", "四十",
+                "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十"
+        };
+
+        return chineseNumbers[number - 1]+"周目" ;
+    }
     @PostMapping("/freeze")
     @ApiOperation(value = "冻结/解冻", tags = {"用户管理"})
     public AjaxResult freeze(Integer id) {
@@ -168,6 +170,7 @@
         {
             return AjaxResult.error("新密码不能与旧密码相同");
         }
+        one.setPassword(SecurityUtils.encryptPassword(password));
         return AjaxResult.success();
     }
     @GetMapping("/sendPhoneCode")
diff --git a/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/TFeedbackMapper.xml b/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/TFeedbackMapper.xml
index b70f6aa..7ff10fc 100644
--- a/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/TFeedbackMapper.xml
+++ b/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/TFeedbackMapper.xml
@@ -16,7 +16,7 @@
         id, userId, img, content, state
     </sql>
     <select id="listAll" resultType="com.ruoyi.management.vo.FeedbackVO">
-        select t1.*,t2.name as name ,t2.phone as phone
+        select t1.*,t2.name as name ,t2.phone as phone,t1.createTime as insertTime
         from t_feedback t1
         left join t_user t2 on t1.userId = t2.id
         where 1=1
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/RuoYiStudyApplication.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/RuoYiStudyApplication.java
index 532765e..5771992 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/RuoYiStudyApplication.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/RuoYiStudyApplication.java
@@ -1,11 +1,14 @@
 package com.ruoyi.study;
 
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.security.annotation.EnableCustomConfig;
 import com.ruoyi.common.security.annotation.EnableRyFeignClients;
 import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
 /**
@@ -35,4 +38,5 @@
                 " |  |  \\    /  \\      /           \n" +
                 " ''-'   `'-'    `-..-'              ");
     }
+
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java
index 1e5cc45..22106c6 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java
@@ -55,6 +55,12 @@
             this.setFieldValByName("createTime", new Date(), metaObject);
             this.setFieldValByName("updateTime", new Date(), metaObject);
         }
+        LoginUserParent loginUser1 = tokenService.getLoginUserStudy();
+        if (loginUser1 != null) {
+                this.setFieldValByName("createTime", new Date(), metaObject);
+        } else {
+            this.setFieldValByName("createTime", new Date(), metaObject);
+        }
 
     }
 
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java
index 3a4bb80..a8bfdf8 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java
@@ -135,13 +135,13 @@
                 for (String s : split) {
                     if (s.equals(String.valueOf(id))) {
                         Integer week = tStudyListen.getWeek();
-                        return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "听故事"  + "、" + "框架记忆中使用");
+                        return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "听故事"  + "、" + "框架记忆中使用");
                     }
                 }
                 for (String s : split1) {
                     if (s.equals(String.valueOf(id))) {
                         Integer week = tStudyListen.getWeek();
-                        return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "听故事"  + "、" + "看图配音中使用");
+                        return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "听故事"  + "、" + "看图配音中使用");
                     }
                 }
             }
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 e5bbfb6..870f4eb 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
@@ -1697,6 +1697,43 @@
         studyRecord.setTotalStudy(Math.round((float) (totalStudy + sum) / 3600));
         return R.ok(new StudyRecordResultVO(studyRecord, gameRecordList));
     }
+    @PostMapping("/recordManagement/{id}")
+    @ApiOperation(value = "游戏测试成绩", tags = {"管理后台-查看用户详情"})
+    public R<StudyRecordResultVO> recordManagement(@PathVariable("id")Integer id) {
+        // 学习记录
+        TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, id)
+                .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.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, id)
+                .eq(TGameRecord::getDisabled, 0).list();
+        int sum = gameRecordList.stream().map(TGameRecord::getUseTime).mapToInt(Integer::intValue).sum();
+        Integer totalStudy = studyRecord.getTotalStudy();
+        studyRecord.setTotalStudy(Math.round((float) (totalStudy + sum) / 3600));
+        StudyRecordResultVO studyRecordResultVO = new StudyRecordResultVO(studyRecord, gameRecordList);
+        return R.ok(studyRecordResultVO);
+    }
 
     @GetMapping("/getIntegral")
     @ApiOperation(value = "获取剩余积分", tags = {"家长端-获取剩余积分"})
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java
index d1773fa..3c83d42 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java
@@ -118,7 +118,7 @@
                     if (s.equals(String.valueOf(id))) {
                         Integer week = tStudyListen.getWeek();
                         Integer day = tStudyListen.getDay();
-                        return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "听音选图中使用");
+                        return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "听音选图中使用");
                     }
                 }
             }
@@ -130,7 +130,7 @@
                     if (s.equals(String.valueOf(id))) {
                         Integer week = tStudyListen.getWeek();
                         Integer day = tStudyListen.getDay();
-                        return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "看图选音中使用");
+                        return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "看图选音中使用");
                     }
                 }
             }
@@ -142,7 +142,7 @@
                     if (s.equals(String.valueOf(id))) {
                         Integer week = tStudyListen.getWeek();
                         Integer day = tStudyListen.getDay();
-                        return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "归纳排除中使用");
+                        return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "归纳排除中使用");
                     }
                 }
             }
@@ -154,7 +154,7 @@
                 if (subject.equals(id) || answerSubject.equals(id)) {
                     Integer week = tStudyListen.getWeek();
                     Integer day = tStudyListen.getDay();
-                    return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "有问有答中使用");
+                    return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "有问有答中使用");
                 }
             }
         }
@@ -165,7 +165,7 @@
                     if (s.equals(String.valueOf(id))) {
                         Integer week = tStudyListen.getWeek();
                         Integer day = tStudyListen.getDay();
-                        return R.fail("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "音图相配中使用");
+                        return R.failUpdate("操作失败,当前题目在" + "周目" + week + "、" + "day" + day + "、" + "音图相配中使用");
                     }
                 }
             }
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 aa54d0b..98c4eb4 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
@@ -192,7 +192,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 +215,6 @@
                 byId.setTransactionId(trade_no);
                 byId.setOutTradeNo(out_trade_no);
                 byId.setPayTime(new Date());
-
 
                 TUser byId1 = userService.getById(byId.getUserId());
                 if (byId1.getVipPayTime() == null) {
@@ -987,9 +988,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();
@@ -1005,57 +1003,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);
     }
 
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGameRecord.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGameRecord.java
index 9060f51..de51e5f 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGameRecord.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TGameRecord.java
@@ -60,14 +60,10 @@
      */
     @ApiModelProperty(value = "游戏难度(0入门、1中级、2高级)")
     private Integer gameDifficulty;
+    @ApiModelProperty(value = "游戏时间")
+    @TableField(exist = false)
+    private String time;
 
-    /**
-     * 创建时间
-     */
-    @ApiModelProperty(value = "记录创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
-    @TableField(value = "createTime", fill = FieldFill.INSERT)
-    private Date createTime;
 
 
 }
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserInfoVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserInfoVO.java
index 97b22f0..2aff637 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserInfoVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/UserInfoVO.java
@@ -1,9 +1,12 @@
 package com.ruoyi.study.vo;
 
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.study.domain.TGameRecord;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.Date;
 
 @Data
 @ApiModel(value = "用户详情VO")
@@ -23,9 +26,9 @@
     @ApiModelProperty(value = "剩余积分")
     private Integer integral;
     @ApiModelProperty(value = "当前进度")
-    private Integer current;
+    private String current;
     @ApiModelProperty(value = "剩余进度")
-    private Integer surplus;
+    private String surplus;
     @ApiModelProperty(value = "学习总时长")
     private Double totalHours;
     @ApiModelProperty(value = "今日学习时长")
@@ -35,5 +38,5 @@
     @ApiModelProperty(value = "本月学习时长")
     private Double monthHours;
     @ApiModelProperty(value = "游戏数据列表")
-    private PageInfo<UserGameRecordVO> gameRecords;
+    private PageInfo<TGameRecord> gameRecords;
 }
\ No newline at end of file

--
Gitblit v1.7.1