From dda33478829592be6eea4c78b6519142a9dd93bb Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期三, 26 六月 2024 18:20:19 +0800
Subject: [PATCH] fix: 学习端bug
---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TStudyServiceImpl.java | 53 ++++++++++++++++++--------
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 17 ++++++--
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java | 5 ++
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 12 ++++++
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/TGoodsServiceImpl.java | 11 +++++
5 files changed, 78 insertions(+), 20 deletions(-)
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 99da36f..5ee3e2c 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
@@ -317,4 +317,9 @@
*/
public static final String MEMORY = "超级记忆";
+ /**
+ * 每日学习时长
+ */
+ public static final String ONLINE_DURATION = "每日学习时长";
+
}
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 cda7ef4..e234a88 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
@@ -105,6 +105,17 @@
return R.exchangeError("兑换失败,当前剩余积分不足!");
}
if (null != good.getTotal()) {
+ // 检查库存总数是否足够
+ List<TOrder> order = orderService.lambdaQuery().eq(TOrder::getGoodsId, goodId)
+ .eq(TOrder::getDisabled, 0).list();
+ if (!order.isEmpty()) {
+ int totalNumber = order.stream().map(TOrder::getCount).collect(Collectors.toList())
+ .stream().mapToInt(Integer::intValue).sum();
+ boolean canBuy = good.getTotal() - totalNumber >= number;
+ if (!canBuy) {
+ throw new GlobalException("商品库存不足,兑换失败!");
+ }
+ }
// 检查用户兑换数量是否超过单用户最大兑换数量
List<TOrder> orderList = orderService.lambdaQuery().eq(TOrder::getUserId, user.getId())
.eq(TOrder::getGoodsId, goodId).list();
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 ab871ee..224def4 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
@@ -809,7 +809,7 @@
data.setIsDelete(0);
result = result && userPresentRecordService.save(data);
} else {
- if (System.currentTimeMillis() - record.getPresentTime().getTime() >= 10 * 60 * 1000) {
+ if (System.currentTimeMillis() - record.getPresentTime().getTime() >= (long) Integer.parseInt(sysSet.getTime()) * 60 * 1000) {
// 赠送积分
result = userService.lambdaUpdate()
.set(TUser::getIntegral, user.getIntegral() + Integer.parseInt(integral))
@@ -820,6 +820,12 @@
data.setPresentTime(new Date());
data.setIsDelete(0);
result = result && userPresentRecordService.save(data);
+ // 生成积分明细
+ TIntegralRecord integralRecord = new TIntegralRecord();
+ integralRecord.setIntegral(sysSet.getIntegral());
+ integralRecord.setMethod(Constants.ONLINE_DURATION);
+ integralRecord.setUserId(loginStudy.getUserid());
+ result = result && integralRecordService.save(integralRecord);
}
}
return R.ok(result);
@@ -1335,7 +1341,8 @@
* 例如:游戏配置的积分是100,他的正确率是50%那么拿50分,下次他再玩这个游戏 正确率是60% 那么他该获得60分 但是上次已经拿了50 所以这次就只给他加10积分
*/
Integer userid = loginUserStudy.getUserid();
- TGame game = gameService.lambdaQuery().eq(TGame::getId, completeStudy.getGameId()).eq(TGame::getDisabled, 0).one();
+ TGame game = gameService.lambdaQuery().eq(TGame::getId, completeStudy.getGameId())
+ .eq(TGame::getDisabled, 0).one();
if (null == game) {
throw new GlobalException("游戏信息异常!");
}
@@ -1348,15 +1355,17 @@
.eq(TIntegralRecord::getGameDifficulty, difficulty).list();
// 本次游戏总共能获取的积分数量
Integer integral;
+ Integer item = null;
if (completeStudy.getGameName().equals(Constants.HEARING)) {
// 本次游戏总积分
integral = Integer.parseInt(game.getIntegral().split(",")[difficulty]);
+ item = completeStudy.getDifficulty();
} else if (completeStudy.getGameName().equals(Constants.MEMORY)) {
integralRecordList = integralRecordService.lambdaQuery()
.eq(TIntegralRecord::getUserId, userid)
.eq(TIntegralRecord::getGameId, game.getId())
.eq(TIntegralRecord::getDisabled, 0)
- .eq(TIntegralRecord::getGameDifficulty, null).list();
+ .last("and gameDifficulty is null").list();
integral = game.getAnswerIntegral();
} else {
throw new GlobalException("该次游戏积分计算异常!");
@@ -1368,7 +1377,7 @@
// 可获得积分不为null时,才添加积分明细记录
if (null != availableIntegral && !Constants.ZERO.equals(availableIntegral)) {
add = add && integralRecordService.add(String.valueOf(availableIntegral),
- Constants.COMPLETE_GAME, completeStudy.getGameId(), null, difficulty, null);
+ Constants.COMPLETE_GAME, completeStudy.getGameId(), null, item, null);
// 用户账户添加积分
TUser user = userService.getById(userid);
user.setIntegral(user.getIntegral() + availableIntegral);
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 7d150a9..aa54d0b 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
@@ -381,6 +381,18 @@
}
}
+ @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")
@ApiOperation(value = "平板", tags = {"启动页"})
public R<String> parentPage() {
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 60558ec..76fb9f7 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
@@ -65,41 +65,62 @@
Integer id = item.getId();
// 计算总积分
int total = 0;
+ List<Integer> dayList = new ArrayList<>();
// 有问有答
List<TStudyAnswer> answerList = studyAnswerService.lambdaQuery().eq(TStudyAnswer::getStudyId, id)
.eq(TStudyAnswer::getDisabled, 0).list();
- Optional<TStudyAnswer> answerOptional = answerList.stream().findAny();
- if (answerOptional.isPresent()) {
- total += answerOptional.get().getIntegral();
+ for (TStudyAnswer data : answerList) {
+ Integer day = data.getDay();
+ if (!dayList.contains(day)) {
+ total += data.getIntegral();
+ dayList.add(day);
+ }
}
+ dayList.clear();
// 归纳判断
List<TStudyInduction> inductionList = studyInductionService.lambdaQuery().eq(TStudyInduction::getStudyId, id)
.eq(TStudyInduction::getDisabled, 0).list();
- Optional<TStudyInduction> inductionOptional = inductionList.stream().findAny();
- if (inductionOptional.isPresent()) {
- total += inductionOptional.get().getIntegral();
+ for (TStudyInduction data : inductionList) {
+ Integer day = data.getDay();
+ if (!dayList.contains(day)) {
+ total += data.getIntegral();
+ dayList.add(day);
+ }
}
+ dayList.clear();
// 看图选音
List<TStudyLook> lookList = studyLookService.lambdaQuery().eq(TStudyLook::getStudyId, id)
.eq(TStudyLook::getDisabled, 0).list();
- Optional<TStudyLook> lookOptional = lookList.stream().findAny();
- if (lookOptional.isPresent()) {
- total += lookOptional.get().getIntegral();
+ for (TStudyLook data : lookList) {
+ Integer day = data.getDay();
+ if (!dayList.contains(day)) {
+ total += data.getIntegral();
+ dayList.add(day);
+ }
}
+ dayList.clear();
// 听音选图
List<TStudyListen> listenList = studyListenService.lambdaQuery().eq(TStudyListen::getStudyId, id)
.eq(TStudyListen::getDisabled, 0).list();
- Optional<TStudyListen> listenOptional = listenList.stream().findAny();
- if (listenOptional.isPresent()) {
- total += listenOptional.get().getIntegral();
+ for (TStudyListen data : listenList) {
+ Integer day = data.getDay();
+ if (!dayList.contains(day)) {
+ total += data.getIntegral();
+ dayList.add(day);
+ }
}
+ dayList.clear();
// 音图相配
List<TStudyPair> pairList = studyPairService.lambdaQuery().eq(TStudyPair::getStudyId, id)
.eq(TStudyPair::getDisabled, 0).list();
- Optional<TStudyPair> pairOptional = pairList.stream().findAny();
- if (pairOptional.isPresent()) {
- total += pairOptional.get().getIntegral();
+ for (TStudyPair data : pairList) {
+ Integer day = data.getDay();
+ if (!dayList.contains(day)) {
+ total += data.getIntegral();
+ dayList.add(day);
+ }
}
+ dayList.clear();
// 自主游戏
List<TGame> gameList = gameService.lambdaQuery().eq(TGame::getStudyId, id)
.eq(TGame::getDisabled, 0).list();
@@ -465,7 +486,7 @@
defaultSchedule = 100;
} else if (studyIndex < weekIndex) {
defaultSchedule = 0;
- }else {
+ } else {
// 根据day初始化学习进度
if (Constants.ONE.equals(day)) {
defaultSchedule = 0;
--
Gitblit v1.7.1