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 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 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 2a8e295..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; @@ -36,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; @@ -83,6 +86,12 @@ @Value("${file.upload.accessPath}") private String accessPath; + + @Resource + private PointSettingClient pointSettingClient; + + @Resource + private UserPointService userPointService; @@ -564,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