From 4ad0fc5f949708ee4dbd56c0db74673e8dc8040a Mon Sep 17 00:00:00 2001 From: phpcjl <phpcjl@gmail.com> Date: 星期二, 10 十二月 2024 18:01:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 66 ++++++++++++++++++++++++++++++++- 1 files changed, 64 insertions(+), 2 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java index 0d4ac5c..2c88ab4 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java +++ b/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,24 @@ @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 PointSettingClient pointSettingClient; + + @Resource + private UserPointService userPointService; @@ -286,7 +300,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); @@ -551,4 +573,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); + } + } + } } -- Gitblit v1.7.1