From a79996fedf6be3af3292495d394e0f0250b71d4c Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 28 六月 2024 17:50:41 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 73 +++++++++++++++++++++++++----------- 1 files changed, 51 insertions(+), 22 deletions(-) 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 b21c323..e5bbfb6 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 @@ -97,15 +97,12 @@ wrapper.like("type", query.getType()); } wrapper.eq("state", 1); + List<TStory> tStories = new ArrayList<>(); + switch (query.getStoryType()) { case 2: List<TStory> list = storyService.list(wrapper); - List<TStory> tSubjects = new ArrayList<>(); - for (TStory tSubject : list) { - if (!tSubject.getError().isEmpty()) { - tSubjects.add(tSubject); - } - } + List<TStory> tSubjects = new ArrayList<>(list); res.setRecords(tSubjects); res.setTotal(tSubjects.size()); return R.ok(res); @@ -113,8 +110,13 @@ // 查询出error字段不为空的数据 wrapper.isNotNull("error"); List<TStory> list1 = storyService.list(wrapper); - res.setRecords(list1); - res.setTotal(list1.size()); + for (TStory tStory : list1) { + if (tStory.getError()!=null && (!tStory.equals(""))){ + tStories.add(tStory); + } + } + res.setRecords(tStories); + res.setTotal(tStories.size()); return R.ok(res); } @@ -809,7 +811,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 +822,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 +1343,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 +1357,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 +1379,7 @@ // 可获得积分不为null时,才添加积分明细记录 if (null != availableIntegral && !Constants.ZERO.equals(availableIntegral)) { add = add && integralRecordService.add(String.valueOf(availableIntegral), - Constants.COMPLETE_GAME, completeStudy.getGameId(), null, difficulty); + Constants.COMPLETE_GAME, completeStudy.getGameId(), null, item, null); // 用户账户添加积分 TUser user = userService.getById(userid); user.setIntegral(user.getIntegral() + availableIntegral); @@ -1527,15 +1538,17 @@ Integer userId = loginUserStudy.getUserid(); Boolean result = true; // 学习时长更新 + TStudy study = studyService.lambdaQuery().eq(TStudy::getId, storyListen.getStudyId()) + .eq(TStudy::getDisabled, 0).one(); TUserStudy userStudy = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, userId) .eq(TUserStudy::getDisabled, 0).one(); if (null == userStudy) { userStudy = createUserStudy(userId); - userStudy.setTotalStudy(userStudy.getTotalStudy() + studyTime); - userStudy.setTodayStudy(userStudy.getTodayStudy() + studyTime); - userStudy.setWeekStudy(userStudy.getWeekStudy() + studyTime); - userStudy.setMonthStudy(userStudy.getMonthStudy() + studyTime); } + 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("学习时长更新失败!"); @@ -1547,11 +1560,15 @@ throw new GlobalException("自主故事-看图配音正确率异常!"); } // 看图配音模式,也需要根据游戏正确率计算积分 - int integral = storyListen.getLookIntegral() * (accuracy / 100); + double d = (double) accuracy / 100; + int integral = (int) (storyListen.getLookIntegral() * d); int obtainedIntegral; + // 看图配音已获取积分数量 List<TUserStudyRecord> list = studyRecordService.lambdaQuery() .eq(TUserStudyRecord::getStoryId, storyId) .eq(TUserStudyRecord::getType, 1) + .eq(TUserStudyRecord::getQuarter, study.getQuarter()) + .eq(TUserStudyRecord::getWeek, storyListen.getWeek()) .eq(TUserStudyRecord::getUserId, userId).list(); if (list.isEmpty()) { obtainedIntegral = 0; @@ -1560,25 +1577,37 @@ .mapToInt(Integer::intValue).sum(); } // 可获得积分计算 - if (integral > obtainedIntegral) { + int i = integral - obtainedIntegral; + if (i > 0) { TUserStudyRecord data = new TUserStudyRecord(); data.setUserId(userId); - data.setObtainedIntegral(integral - obtainedIntegral); + data.setObtainedIntegral(i); data.setType(Constants.ONE); data.setStoryId(storyId); + data.setQuarter(study.getQuarter()); + data.setWeek(storyListen.getWeek()); result = studyRecordService.save(data); - sum = integral - obtainedIntegral; + sum = i; + // 添加积分明细记录 + result = integralRecordService.add(String.valueOf(sum), + Constants.COMPLETE_STORY, null, storyId, null, Constants.ZERO); + TUser user = userService.lambdaQuery().eq(TUser::getId, userId).one(); + // 添加积分 + user.setIntegral(user.getIntegral() + sum); + result = result && userService.updateById(user); } } else { // 超级记忆只有首次才能获取积分 TIntegralRecord integralRecord = integralRecordService.lambdaQuery() .eq(TIntegralRecord::getUserId, userId) .eq(TIntegralRecord::getStoryId, storyId) - .eq(TIntegralRecord::getDisabled, 0).one(); + .eq(TIntegralRecord::getDisabled, 0) + .eq(TIntegralRecord::getStoryType, Constants.ONE) + .one(); if (null == integralRecord) { // 添加积分明细记录 result = integralRecordService.add(String.valueOf(storyListen.getIntegral()), - Constants.COMPLETE_STORY, null, storyId, null); + Constants.COMPLETE_STORY, null, storyId, null, Constants.ONE); TUser user = userService.lambdaQuery().eq(TUser::getId, userId).one(); // 添加积分 user.setIntegral(user.getIntegral() + storyListen.getIntegral()); -- Gitblit v1.7.1