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 = "每日学习时长"; } 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(); 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); 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() { 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;