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 ++++++++++++++++++++++++
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java | 4 +-
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java | 2
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 12 +++++-
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java | 6 +++
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java | 2
6 files changed, 69 insertions(+), 6 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java
index a1d6e36..6003545 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserSignRecord.java
@@ -45,9 +45,9 @@
@TableField("red_amount")
private BigDecimal redAmount;
- @ApiModelProperty(value = "红包金额")
+ @ApiModelProperty(value = "积分")
@TableField("point")
- private BigDecimal point;
+ private Integer point;
@ApiModelProperty(value = "删除(0=否,1=是)")
@TableField("del_flag")
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
index 1e6dd8d..3eb8c14 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -320,8 +320,16 @@
AppUser superiorLeader = appUserService.getSuperiorLeader(id);
return R.ok(superiorLeader);
}
-
-
+
+
+
+ @ResponseBody
+ @PostMapping("/onlineRecord")
+ @ApiOperation(value = "10分钟定时任务调用,记录用户在线时长", tags = {"小程序-个人中心首页"})
+ public R onlineRecord(){
+ appUserService.onlineRecord();
+ return R.ok();
+ }
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
index 053388f..e0f26c8 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
@@ -60,7 +60,7 @@
if (pointSetting.getData() != null) {
userSignRecord.setPoint(pointSetting.getData().getSignPoint());
}else {
- userSignRecord.setPoint(BigDecimal.ZERO);
+ userSignRecord.setPoint(0);
}
R<BigDecimal> bigDecimalR = systemConfigClient.redPackegeSet();
userSignRecord.setRedAmount(bigDecimalR.getData());
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java
index 0f3fb03..4e2adac 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/dto/SignBackRDto.java
@@ -7,6 +7,6 @@
@Data
public class SignBackRDto {
- private BigDecimal point;
+ private Integer point;
private BigDecimal redAmount;
}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java
index f5a5335..58ff323 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java
@@ -73,4 +73,10 @@
* 解绑推广人
*/
void unbindThePromoter();
+
+
+ /**
+ * 在线记录操作,用于赠送积分
+ */
+ void onlineRecord();
}
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