From aa34f5b4a80eec408185cc36500149679e1a71c9 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期三, 19 六月 2024 09:40:50 +0800
Subject: [PATCH] fix: 学习端bug
---
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java | 15 ++-
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java | 12 --
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 85 ++++++++++++++++-----
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodExchangeDTO.java | 7 +
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 22 ++--
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/ExitLearnVO.java | 6 +
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 22 ++--
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java | 62 +++++++--------
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java | 2
9 files changed, 142 insertions(+), 91 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 963d895..661ab20 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -220,17 +220,17 @@
String userkey = JwtUtils.getUserKeyStudy(token);
user = redisService.getCacheObject(getTokenKeyStudy(userkey));
// 再次判断登录状态是否已过期
-// if (null == user) {
-// throw new StudyLoginException("登录信息已过期,请重新登录!", 504);
-// }
-// // 优先判断当前账号是否已在其他设备登录
-// if (!user.getIsCanLogin()) {
-// throw new StudyLoginException("当前登录账号在其他设备登录!", 505);
-// }
-// // 再次判断登录状态是否已过期
-// if (System.currentTimeMillis() > user.getExpireTime()) {
-// throw new StudyLoginException("登录信息已过期,请重新登录!", 504);
-// }
+ if (null == user) {
+ throw new StudyLoginException("登录信息已过期,请重新登录!", 504);
+ }
+ // 优先判断当前账号是否已在其他设备登录
+ if (!user.getIsCanLogin()) {
+ throw new StudyLoginException("当前登录账号在其他设备登录!", 505);
+ }
+ // 再次判断登录状态是否已过期
+ if (System.currentTimeMillis() > user.getExpireTime()) {
+ throw new StudyLoginException("登录信息已过期,请重新登录!", 504);
+ }
return user;
}
return user;
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 48ebee7..e806e35 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
@@ -25,6 +25,7 @@
import io.swagger.annotations.ApiOperationSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -287,6 +288,7 @@
}
TOrder byId = orderService.getById(id);
byId.setState(3);
+ byId.setCompleteTime(new Date());
return R.ok(orderService.updateById(byId));
}
@@ -615,6 +617,9 @@
@ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true)
})
public R<GoodDetailVO> goodDetail(@RequestParam String goodId) {
+ if (tokenService.getLoginUserStudy() == null) {
+ return R.tokenError("登录失效!");
+ }
// 商品详情
TGoods goods = goodsService.lambdaQuery().eq(TGoods::getId, goodId).one();
if (null == goods) {
@@ -673,7 +678,8 @@
}
Recipient recipient = recipientService.lambdaQuery()
.eq(Recipient::getUserId, tokenService.getLoginUserStudy().getUserid())
- .eq(Recipient::getIsDefault, 1).one();
+ .eq(Recipient::getIsDefault, 1)
+ .eq(Recipient::getDisabled, 0).one();
GoodDetailVO goodDetailVO = goodsService.redeemNow(goodId, recipient);
LocalDateTime currentDateTime = LocalDateTime.now();
// 格式化日期和时间信息
@@ -683,10 +689,11 @@
Random random = new Random();
StringBuilder randomPart = new StringBuilder();
for (int i = 0; i < 3; i++) {
- randomPart.append((char) (random.nextInt(26) + 'A')); // 大写字母
+ // 大写字母
+ randomPart.append((char) (random.nextInt(26) + 'A'));
}
// 组合订单编号
- String orderNumber = formattedDateTime + randomPart.toString();
+ String orderNumber = formattedDateTime + randomPart;
goodDetailVO.setOrderNumber(orderNumber);
return R.ok(goodDetailVO);
}
@@ -750,7 +757,7 @@
@PostMapping("/goodExchangeStudy")
@ApiOperation(value = "商品兑换确认", tags = {"学习端-商城"})
@ApiOperationSupport(order = 42)
- public R goodExchangeStudy(@RequestBody GoodExchangeDTO goodExchange) {
+ public R<String> goodExchangeStudy(@RequestBody @Validated GoodExchangeDTO goodExchange) {
Recipient recipient = recipientService.getById(goodExchange.getRecipientId());
return goodsService.goodExchange(goodExchange, recipient);
}
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodExchangeDTO.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodExchangeDTO.java
index 11a00e6..adf63bb 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodExchangeDTO.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/dto/GoodExchangeDTO.java
@@ -3,6 +3,9 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
/**
* @author HJL
* @version 1.0
@@ -15,6 +18,7 @@
* 商品id
*/
@ApiModelProperty("商品id")
+ @NotNull(message = "选择商品不存在!")
private Integer goodId;
/**
@@ -27,18 +31,21 @@
* 兑换数量
*/
@ApiModelProperty("兑换数量")
+ @NotNull(message = "兑换数量不能为空!")
private Integer number;
/**
* 订单编号
*/
@ApiModelProperty("订单编号")
+ @NotBlank(message = "订单编号不能为空!")
private String orderNumber;
/**
* 收货地址id
*/
@ApiModelProperty("收货地址id")
+ @NotNull(message = "请选择:该订单收货地址!")
private String recipientId;
}
diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java
index 5a590df..2cfda80 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/ITGoodsService.java
@@ -45,6 +45,6 @@
* @param recipient 收货地址
* @return 兑换结果
*/
- R goodExchange(GoodExchangeDTO goodExchange, Recipient recipient);
+ R<String> goodExchange(GoodExchangeDTO goodExchange, Recipient recipient);
R goodExchange1(GoodExchangeDTO goodExchange, Recipient recipient);
}
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 f94ae07..794b731 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
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
@@ -712,7 +711,8 @@
if (null == loginStudy) {
return R.tokenError("登录失效!");
}
- TUserStudy result = studyService.studySchedule(String.valueOf(loginStudy.getUserid()));
+ TUserStudy result = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, loginStudy.getUserid())
+ .eq(TUserStudy::getDisabled, 0).one();
if (null != result) {
// 计算当前周 day 1-5的总进度
int computeSchedule = studyService.computeSchedule(result, week);
@@ -840,25 +840,29 @@
int completionRate = exitLearn.getTopicIds().split(",").length * 5;
Integer type = exitLearn.getType();
// 更新用户学习完成率
- LambdaUpdateChainWrapper<TUserStudy> wrapper = userStudyService.lambdaUpdate();
if (Constants.ONE.equals(type) && userStudy.getListen() < completionRate) {
// 听音选图
- wrapper.set(TUserStudy::getListen, completionRate);
+ userStudy.setListen(completionRate);
} else if (Constants.TWO.equals(type) && userStudy.getLook() < completionRate) {
// 看图选音
- wrapper.set(TUserStudy::getLook, completionRate);
+ userStudy.setLook(completionRate);
} else if (Constants.THREE.equals(type) && userStudy.getInduction() < completionRate) {
// 归纳排除
- wrapper.set(TUserStudy::getInduction, completionRate);
+ userStudy.setInduction(completionRate);
} else if (Constants.FOUR.equals(type) && userStudy.getAnswer() < completionRate) {
// 有问有答
- wrapper.set(TUserStudy::getAnswer, completionRate);
+ userStudy.setAnswer(completionRate);
} else if (Constants.FIVE.equals(type) && userStudy.getPair() < completionRate) {
// 音图相配
- wrapper.set(TUserStudy::getPair, completionRate);
+ userStudy.setPair(completionRate);
}
- wrapper.eq(TUserStudy::getUserId, userid).update();
}
+ // 学习时长更新
+ userStudy.setTotalStudy(userStudy.getTotalStudy() + exitLearn.getStudyTime());
+ userStudy.setTodayStudy(userStudy.getTodayStudy() + exitLearn.getStudyTime());
+ userStudy.setWeekStudy(userStudy.getWeekStudy() + exitLearn.getStudyTime());
+ userStudy.setMonthStudy(userStudy.getMonthStudy() + exitLearn.getStudyTime());
+ userStudyService.updateById(userStudy);
return R.ok(subjectRecordService.exitLearning(exitLearn, userid));
}
@@ -1362,21 +1366,35 @@
@ApiImplicitParams({
@ApiImplicitParam(value = "故事id", name = "storyId", dataType = "Integer", required = true),
@ApiImplicitParam(value = "类型(1:看图配音;2:超级记忆)", name = "type", dataType = "Integer", required = true),
- @ApiImplicitParam(value = "正确率", name = "accuracy", dataType = "Integer")
+ @ApiImplicitParam(value = "正确率", name = "accuracy", dataType = "Integer"),
+ @ApiImplicitParam(value = "学习时长(秒)", name = "studyTime", dataType = "Integer", required = true)
})
- public R<Boolean> completeStory(@RequestParam Integer storyId, @RequestParam Integer type, Integer accuracy) {
+ public R<Boolean> completeStory(@RequestParam Integer storyId, @RequestParam Integer type,
+ Integer accuracy, @RequestParam Integer studyTime) {
TStoryListen storyListen = storyListenService.lambdaQuery().eq(TStoryListen::getId, storyId)
.eq(TStoryListen::getDisabled, 0).one();
if (null == storyListen) {
throw new GlobalException("当前故事学习失败,故事信息异常,请重试!");
}
- LoginUserParent userStudy = tokenService.getLoginUserStudy();
- if (null == userStudy) {
+ LoginUserParent loginUserStudy = tokenService.getLoginUserStudy();
+ if (null == loginUserStudy) {
return R.tokenError("登录失效!");
}
// 用户信息
- Integer userId = userStudy.getUserid();
+ Integer userId = loginUserStudy.getUserid();
Boolean result = true;
+ // 学习时长更新
+ TUserStudy userStudy = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, userId)
+ .eq(TUserStudy::getDisabled, 0).one();
+ userStudy.setTotalStudy(userStudy.getTotalStudy() + studyTime);
+ userStudy.setTodayStudy(userStudy.getTodayStudy() + studyTime);
+ userStudy.setWeekStudy(userStudy.getWeekStudy() + studyTime);
+ userStudy.setMonthStudy(userStudy.getMonthStudy() + studyTime);
+ boolean update = userStudyService.updateById(userStudy);
+ if (!update) {
+ throw new GlobalException("学习时长更新失败!");
+ }
+ // 根据故事类型不同,逻辑处理
if (Constants.ONE.equals(type)) {
if (null == accuracy) {
throw new GlobalException("自主故事-看图配音正确率异常!");
@@ -1391,7 +1409,8 @@
if (list.isEmpty()) {
obtainedIntegral = 0;
} else {
- obtainedIntegral = list.stream().map(TUserStudyRecord::getObtainedIntegral).mapToInt(Integer::intValue).sum();
+ obtainedIntegral = list.stream().map(TUserStudyRecord::getObtainedIntegral)
+ .mapToInt(Integer::intValue).sum();
}
// 可获得积分计算
if (integral > obtainedIntegral) {
@@ -1432,9 +1451,23 @@
// 学习记录
TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, userId)
.eq(TUserStudy::getDisabled, 0).one();
- // 游戏测试成绩
+ // 学习时长格式转换
+ 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, userId)
.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));
+ // 剩余周目
+ int size = studyService.list(new QueryWrapper<TStudy>()
+ .eq("type", 1)).size();
+ studyRecord.setSurplus(size - studyRecord.getWeek());
return R.ok(new StudyRecordResultVO(studyRecord, gameRecordList));
}
@@ -1461,9 +1494,19 @@
.eq("type", 1)).size());
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, userId)
.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));
return R.ok(new StudyRecordResultVO(studyRecord, gameRecordList));
}
@@ -1505,10 +1548,10 @@
@ApiImplicitParam(value = "每页显示条数", name = "pageSize", required = true)
})
public R<IPage<TIntegralRecord>> integralDetailParent(String time,
- @RequestParam("pageNum") Integer pageNum,
- @RequestParam("pageSize") Integer pageSize) {
- System.err.println("页码"+pageNum);
- System.err.println("页数"+ pageSize);
+ @RequestParam("pageNum") Integer pageNum,
+ @RequestParam("pageSize") Integer pageSize) {
+ System.err.println("页码" + pageNum);
+ System.err.println("页数" + pageSize);
if (tokenService.getLoginUser1() == null) {
return R.tokenError("登录失效");
}
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 5017009..4fed5af 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
@@ -511,17 +511,17 @@
String phone = phoneRequest.getPhone();
String phoneCode = phoneRequest.getPhoneCode();
// 验证码校验
- Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone);
- if (null == redisPhoneCode) {
- return R.errorCode("登录失败,验证码无效!");
- } else {
- // redis 验证码的value 为 code:时间戳
- String rCodeAndTime = String.valueOf(redisPhoneCode);
- String rCode = rCodeAndTime.split(":")[0];
- if (!rCode.equalsIgnoreCase(phoneCode)) {
- return R.errorCode("登录失败,验证码无效!");
- }
- }
+// Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone);
+// if (null == redisPhoneCode) {
+// return R.errorCode("登录失败,验证码无效!");
+// } else {
+// // redis 验证码的value 为 code:时间戳
+// String rCodeAndTime = String.valueOf(redisPhoneCode);
+// String rCode = rCodeAndTime.split(":")[0];
+// if (!rCode.equalsIgnoreCase(phoneCode)) {
+// return R.errorCode("登录失败,验证码无效!");
+// }
+// }
// 获取手机号所注册用户信息
TUser user = userService.getOne(new QueryWrapper<TUser>()
.ne("state", 3)
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
index 1e3f7f7..b77c602 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java
@@ -400,15 +400,13 @@
@Override
public int computeTotalIntegral(List<String> studyIds, Integer type, Integer accuracy) {
- int sum;
+ int sum = 0;
if (Constants.ONE.equals(type)) {
List<TStudyListen> list = studyListenService.lambdaQuery().in(TStudyListen::getId, studyIds)
.eq(TStudyListen::getDisabled, 0).list();
Optional<TStudyListen> any = list.stream().findAny();
if (any.isPresent()) {
sum = any.get().getIntegral();
- } else {
- sum = 0;
}
} else if (Constants.TWO.equals(type)) {
List<TStudyLook> list = studyLookService.lambdaQuery().in(TStudyLook::getId, studyIds)
@@ -416,8 +414,6 @@
Optional<TStudyLook> any = list.stream().findAny();
if (any.isPresent()) {
sum = any.get().getIntegral();
- } else {
- sum = 0;
}
} else if (Constants.THREE.equals(type)) {
List<TStudyInduction> list = studyInductionService.lambdaQuery().in(TStudyInduction::getId, studyIds)
@@ -425,8 +421,6 @@
Optional<TStudyInduction> any = list.stream().findAny();
if (any.isPresent()) {
sum = any.get().getIntegral();
- } else {
- sum = 0;
}
} else if (Constants.FOUR.equals(type)) {
List<TStudyAnswer> list = studyAnswerService.lambdaQuery().in(TStudyAnswer::getId, studyIds)
@@ -434,8 +428,6 @@
Optional<TStudyAnswer> any = list.stream().findAny();
if (any.isPresent()) {
sum = any.get().getIntegral();
- } else {
- sum = 0;
}
} else if (Constants.FIVE.equals(type)) {
List<TStudyPair> list = studyPairService.lambdaQuery().in(TStudyPair::getId, studyIds)
@@ -443,8 +435,6 @@
Optional<TStudyPair> any = list.stream().findAny();
if (any.isPresent()) {
sum = any.get().getIntegral();
- } else {
- sum = 0;
}
} else {
throw new GlobalException("题目信息异常!");
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java
index 24cfed5..eba7df6 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserStudyServiceImpl.java
@@ -93,38 +93,36 @@
// 学习记录
TUserStudy userStudyRecord = lambdaQuery().eq(TUserStudy::getUserId, userId)
.eq(TUserStudy::getDisabled, 0).one();
- Integer type = completeStudy.getType();
- if (Constants.ONE.equals(type)) {
- userStudyRecord.setListen(Constants.ONE_HUNDRED);
- userStudyRecord.setLook(Constants.BURDEN_ONE);
- userStudyRecord.setInduction(Constants.BURDEN_ONE);
- userStudyRecord.setAnswer(Constants.BURDEN_ONE);
- userStudyRecord.setPair(Constants.BURDEN_ONE);
- } else if (Constants.TWO.equals(type)) {
- userStudyRecord.setLook(Constants.ONE_HUNDRED);
- userStudyRecord.setInduction(Constants.BURDEN_ONE);
- userStudyRecord.setAnswer(Constants.BURDEN_ONE);
- userStudyRecord.setPair(Constants.BURDEN_ONE);
- } else if (Constants.THREE.equals(type)) {
- userStudyRecord.setInduction(Constants.ONE_HUNDRED);
- userStudyRecord.setAnswer(Constants.BURDEN_ONE);
- userStudyRecord.setPair(Constants.BURDEN_ONE);
- } else if (Constants.FOUR.equals(type)) {
- userStudyRecord.setAnswer(Constants.ONE_HUNDRED);
- } else if (Constants.FIVE.equals(type)) {
- userStudyRecord.setPair(Constants.ONE_HUNDRED);
- // type为5并且day为5应该进入游戏日
- Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay()));
- userStudyRecord.setDay(nextDay);
- // 游戏难度初始化 0(入门难度)
- userStudyRecord.setGameDifficulty(Constants.ZERO);
- // 学习day已切换更新学习进度及学习时长
-// userStudyRecord.setListen(Constants.BURDEN_ONE);
-// userStudyRecord.setLook(Constants.BURDEN_ONE);
-// userStudyRecord.setInduction(Constants.BURDEN_ONE);
-// userStudyRecord.setAnswer(Constants.BURDEN_ONE);
-// userStudyRecord.setPair(Constants.BURDEN_ONE);
- // 下一day为 1说明该周目已完成,应更改为下一周目
+ Integer week = userStudyRecord.getWeek();
+ Integer day = userStudyRecord.getDay();
+ if (week.equals(completeStudy.getWeek()) && day.equals(completeStudy.getDay())) {
+ Integer type = completeStudy.getType();
+ if (Constants.ONE.equals(type)) {
+ userStudyRecord.setListen(Constants.ONE_HUNDRED);
+ userStudyRecord.setLook(Constants.BURDEN_ONE);
+ userStudyRecord.setInduction(Constants.BURDEN_ONE);
+ userStudyRecord.setAnswer(Constants.BURDEN_ONE);
+ userStudyRecord.setPair(Constants.BURDEN_ONE);
+ } else if (Constants.TWO.equals(type)) {
+ userStudyRecord.setLook(Constants.ONE_HUNDRED);
+ userStudyRecord.setInduction(Constants.BURDEN_ONE);
+ userStudyRecord.setAnswer(Constants.BURDEN_ONE);
+ userStudyRecord.setPair(Constants.BURDEN_ONE);
+ } else if (Constants.THREE.equals(type)) {
+ userStudyRecord.setInduction(Constants.ONE_HUNDRED);
+ userStudyRecord.setAnswer(Constants.BURDEN_ONE);
+ userStudyRecord.setPair(Constants.BURDEN_ONE);
+ } else if (Constants.FOUR.equals(type)) {
+ userStudyRecord.setAnswer(Constants.ONE_HUNDRED);
+ userStudyRecord.setPair(Constants.BURDEN_ONE);
+ } else if (Constants.FIVE.equals(type)) {
+ userStudyRecord.setPair(Constants.ONE_HUNDRED);
+ // type为5并且day为5应该进入游戏日
+ Integer nextDay = DAY_MAP.get(String.valueOf(userStudyRecord.getDay()));
+ userStudyRecord.setDay(nextDay);
+ // 游戏难度初始化 0(入门难度)
+ userStudyRecord.setGameDifficulty(Constants.ZERO);
+ }
}
// 更新学习时长
userStudyRecord.setTotalStudy(userStudyRecord.getTotalStudy() + studyTime);
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/ExitLearnVO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/ExitLearnVO.java
index 38462ab..df6dcd3 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/ExitLearnVO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/vo/ExitLearnVO.java
@@ -53,4 +53,10 @@
@ApiModelProperty(value = "答题正确次数")
private Integer correctNumber;
+ /**
+ * 完成学习所用时长
+ */
+ @ApiModelProperty("完成学习所用时长(秒)")
+ private Integer studyTime;
+
}
--
Gitblit v1.7.1