Pu Zhibing
2025-01-16 a23f0ba99b7e3c1ad270dd5a263a6b48b4b8fb6f
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -898,13 +898,13 @@
      Long userid = tokenService.getLoginUserApplet().getUserid();
      Object cacheObject = redisService.getCacheObject("ONLINE_" + userid);
      if(null == cacheObject){
         redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
         redisService.setCacheObject("ONLINE_" + userid, System.currentTimeMillis(), 1L, TimeUnit.HOURS);
      }else{
         Integer duration = (Integer) cacheObject;
         duration += 10;
         Long duration = (Long) cacheObject;
         long time = (System.currentTimeMillis() - duration) / 3600000;
         //满足一个小时,开始发放积分,计时归0
         if(60 >= duration){
            redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
         if(1 >= time){
            redisService.setCacheObject("ONLINE_" + userid, System.currentTimeMillis(), 1L, TimeUnit.HOURS);
            AppUser appUser = this.getById(userid);
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
            if(null != pointSetting){
@@ -924,19 +924,19 @@
               appUser.setTotalHourPoint(appUser.getTotalHourPoint() + hourPoint);
               this.updateById(appUser);
               //添加积分变动记录
               UserPoint userPoint = new UserPoint();
               userPoint.setType(6);
               userPoint.setHistoricalPoint(lavePoint);
               userPoint.setVariablePoint(hourPoint);
               userPoint.setBalance(appUser.getLavePoint());
               userPoint.setCreateTime(LocalDateTime.now());
               userPoint.setAppUserId(appUser.getId());
               userPointService.save(userPoint);
               if(hourPoint > 0){
                  UserPoint userPoint = new UserPoint();
                  userPoint.setType(6);
                  userPoint.setHistoricalPoint(lavePoint);
                  userPoint.setVariablePoint(hourPoint);
                  userPoint.setBalance(appUser.getLavePoint());
                  userPoint.setCreateTime(LocalDateTime.now());
                  userPoint.setAppUserId(appUser.getId());
                  userPointService.save(userPoint);
               }
               //变更等级
               vipUpgrade(appUser.getId());
            }
         }else{
            redisService.setCacheObject("ONLINE_" + userid, duration, 15L, TimeUnit.MINUTES);
         }
      }
   }