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