From eb048c01b8734cc765ab744b128d0edc18f20beb Mon Sep 17 00:00:00 2001 From: hjl <1657978663@qq.com> Date: 星期五, 21 六月 2024 11:56:12 +0800 Subject: [PATCH] fix: 学习端bug --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStudyController.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 48 insertions(+), 8 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 d35dab6..b6fc43c 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 @@ -79,6 +79,8 @@ private IUserStudyRecordService studyRecordService; @Resource private ManagementClient managementClient; + @Resource + private ITUserPresentRecordService userPresentRecordService; @PostMapping("/storyList") // @ApiOperation(value = "配置学习类型选择故事", tags = {"题目管理"}) @@ -755,7 +757,7 @@ if (null == loginUserStudy) { return R.tokenError("登录失效!"); } - List<StudyWeekDTO> result = studyService.weekList(type, quarter,loginUserStudy.getUserid()); + List<StudyWeekDTO> result = studyService.weekList(type, quarter, loginUserStudy.getUserid()); return R.ok(result); } @@ -788,11 +790,39 @@ throw new GlobalException("获取在线时间赠送积分信息失败!"); } String integral = sysSet.getIntegral(); + // 计算时间间隔 + TUserPresentRecord record = userPresentRecordService.lambdaQuery() + .eq(TUserPresentRecord::getUserId, loginStudy.getUserid()) + .orderByDesc(TUserPresentRecord::getPresentTime) + .eq(TUserPresentRecord::getIsDelete, 0).last("limit 1").one(); + boolean result = true; TUser user = userService.lambdaQuery().eq(TUser::getId, loginStudy.getUserid()) .eq(TUser::getDisabled, 0).one(); - boolean update = userService.lambdaUpdate().set(TUser::getIntegral, user.getIntegral() + Integer.parseInt(integral)) - .eq(TUser::getId, loginStudy.getUserid()).update(); - return R.ok(update); + if (null == record) { + // 赠送积分 + result = userService.lambdaUpdate().set(TUser::getIntegral, user.getIntegral() + Integer.parseInt(integral)) + .eq(TUser::getId, loginStudy.getUserid()).update(); + // 添加赠送积分记录 + TUserPresentRecord data = new TUserPresentRecord(); + data.setUserId(loginStudy.getUserid()); + data.setPresentTime(new Date()); + data.setIsDelete(0); + result = result && userPresentRecordService.save(data); + } else { + if (System.currentTimeMillis() - record.getPresentTime().getTime() >= 10 * 60) { + // 赠送积分 + result = userService.lambdaUpdate() + .set(TUser::getIntegral, user.getIntegral() + Integer.parseInt(integral)) + .eq(TUser::getId, loginStudy.getUserid()).update(); + // 添加赠送积分记录 + TUserPresentRecord data = new TUserPresentRecord(); + data.setUserId(loginStudy.getUserid()); + data.setPresentTime(new Date()); + data.setIsDelete(0); + result = result && userPresentRecordService.save(data); + } + } + return R.ok(result); } /** @@ -1105,6 +1135,7 @@ .eq(TUserStudyRecord::getWeek, completeStudy.getWeek()) .eq(TUserStudyRecord::getDay, completeStudy.getDay()) .eq(TUserStudyRecord::getType, 0) + .eq(TUserStudyRecord::getStudyType, completeStudy.getType()) .eq(TUserStudyRecord::getUserId, userId).list(); if (list.isEmpty()) { obtainedIntegral = 0; @@ -1558,9 +1589,11 @@ 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()); + List<TStudy> studyList = studyService.lambdaQuery().eq(TStudy::getDisabled, 0) + .eq(TStudy::getType, Constants.ONE) + .orderByAsc(TStudy::getWeek).list(); + int size = studyService.residueWeek(studyRecord,studyList); + studyRecord.setSurplus(size); } return R.ok(new StudyRecordResultVO(studyRecord, gameRecordList)); } @@ -1636,7 +1669,14 @@ if (tokenService.getLoginUserStudy() == null) { return R.tokenError("登录失效"); } - return R.ok(integralRecordService.integralDetail(new Page<>(pageNum, pageSize), tokenService.getLoginUserStudy().getUserid(), time)); + IPage<TIntegralRecord> page = integralRecordService.integralDetail(new Page<>(pageNum, pageSize), + tokenService.getLoginUserStudy().getUserid(), time); + for (TIntegralRecord record : page.getRecords()) { + if (!record.getIntegral().startsWith("-")) { + record.setIntegral("+" + record.getIntegral()); + } + } + return R.ok(page); } @GetMapping("/integralDetailParent") -- Gitblit v1.7.1