1.
phpcjl
2024-12-10 e99f11d4c9c93acc2d341e5580f9e8035e104740
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -6,11 +6,13 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.model.AppUserShop;
import com.ruoyi.account.api.model.UserChangeLog;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.mapper.AppUserMapper;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.AppUserShopService;
import com.ruoyi.account.service.UserChangeLogService;
import com.ruoyi.account.service.UserPointService;
import com.ruoyi.account.util.weChat.EnvVersion;
import com.ruoyi.account.util.weChat.WXCore;
import com.ruoyi.account.util.weChat.WeChatUtil;
@@ -19,8 +21,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.PointSetting;
import com.ruoyi.other.api.domain.Shop;
import com.ruoyi.other.api.domain.VipSetting;
import com.ruoyi.other.api.feignClient.PointSettingClient;
import com.ruoyi.other.api.feignClient.ShopClient;
import com.ruoyi.other.api.feignClient.VipSettingClient;
import com.ruoyi.system.api.domain.SysUser;
@@ -34,6 +38,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation.ANONYMOUS.optional;
@@ -69,15 +74,21 @@
   
   @Resource
   private VipSettingClient vipSettingClient;
   @Resource
   private PointSettingClient pointSettingClient;
   
   @Resource
   private UserChangeLogService userChangeLogService;
   @Value("${file.upload.location}")
   private String filePath;
   
   @Value("${file.upload.accessPath}")
   private String accessPath;
   @Resource
   private UserPointService userPointService;
   
   
   
@@ -286,7 +297,15 @@
         appUser.setTotalRedPacketAmount(BigDecimal.ZERO);
         appUser.setTotalDistributionAmount(BigDecimal.ZERO);
         appUser.setBalance(BigDecimal.ZERO);
         appUser.setLavePoint(0);
         R<PointSetting> pointSettingR = pointSettingClient.getPointSetting(1);
         if (R.isError(pointSettingR)){
            throw new RuntimeException("获取积分设置失败");
         }
         PointSetting pointSetting = pointSettingR.getData();
         if (pointSetting == null){
            throw new RuntimeException("积分设置不存在");
         }
         appUser.setLavePoint(pointSetting.getGetRegisPoint());
         appUser.setTotalPoint(0);
         //根据平台的配置未达标,则标注为可修改推广人
         appUser.setChangePromoter(0);
@@ -338,7 +357,7 @@
      }
      LoginVo loginVo = new LoginVo();
      loginVo.setSkipPage(1);
      loginVo.setFirstTime(null == appUser1 ? true : false);
      loginVo.setFirstTime(null == appUser1);
      loginVo.setPhone(appUser.getPhone());
      //构建token
      LoginUser loginUser = new LoginUser();
@@ -551,4 +570,44 @@
         this.updateById(appUser);
      }
   }
   /**
    * 在线记录操作,用于赠送积分
    */
   @Override
   public void onlineRecord() {
      Long userid = tokenService.getLoginUserApplet().getUserid();
      Object cacheObject = redisService.getCacheObject("ONLINE_" + userid);
      if(null == cacheObject){
         redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
      }else{
         Long duration = (Long) cacheObject;
         duration += 10;
         //满足一个小时,开始发放积分,计时归0
         if(60 >= duration){
            redisService.setCacheObject("ONLINE_" + userid, 0, 15L, TimeUnit.MINUTES);
            AppUser appUser = this.getById(userid);
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
            if(null != pointSetting){
               int hourPoint = pointSetting.getHourPoint().intValue();
               Integer lavePoint = appUser.getLavePoint();
               appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
               appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
               this.updateById(appUser);
               //添加积分变动记录
               UserPoint userPoint = new UserPoint();
               userPoint.setType(9);
               userPoint.setHistoricalPoint(lavePoint);
               userPoint.setVariablePoint(hourPoint);
               userPoint.setBalance(appUser.getLavePoint());
               userPoint.setCreateTime(LocalDateTime.now());
               userPoint.setAppUserId(appUser.getId());
               userPointService.save(userPoint);
            }
         }else{
            redisService.setCacheObject("ONLINE_" + userid, duration, 15L, TimeUnit.MINUTES);
         }
      }
   }
}