|
|
@@ -0,0 +1,77 @@
|
|
|
+package com.webflux.launchadmin.mysql.service.userVisits;
|
|
|
+
|
|
|
+import com.plumelog.core.util.LogExceptionStackTrace;
|
|
|
+import com.webflux.launchadmin.global.BaseException;
|
|
|
+import com.webflux.launchadmin.mysql.controller.listening.req.OutListeningShareRequest;
|
|
|
+import com.webflux.launchadmin.mysql.controller.planNew.req.HftRequest;
|
|
|
+import com.webflux.launchadmin.mysql.controller.planNew.req.PlanNewCommonShareReq;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.Duration;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+@Service
|
|
|
+@Slf4j
|
|
|
+public class UserVisitsServices {
|
|
|
+ @Autowired
|
|
|
+ private StringRedisTemplate stringRedisTemplate;
|
|
|
+
|
|
|
+ public Integer getRedisUserVisits(String unique){
|
|
|
+ String s="-1";
|
|
|
+ try {
|
|
|
+ s = stringRedisTemplate.opsForValue().get(unique);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("接口异常 desc = {} e = {}", " redis读用户访问次数失败", LogExceptionStackTrace.erroStackTrace(e));
|
|
|
+ }
|
|
|
+ if(Objects.isNull(s) || "".equals(s.trim())){
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ return Integer.valueOf(s);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("接口异常 desc = {} e = {} value={}", "redis读用户访问次数解析Integer错误", LogExceptionStackTrace.erroStackTrace(e), s);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void setRedisUserVisits(String unique,Integer value){
|
|
|
+ try {
|
|
|
+ stringRedisTemplate.opsForValue().set(unique,String.valueOf(value), Duration.ofHours(48));
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("接口异常 desc = {} e = {}", "redis写入用户访问次数失败", LogExceptionStackTrace.erroStackTrace(e));
|
|
|
+ try {
|
|
|
+ stringRedisTemplate.opsForValue().set(unique,String.valueOf(value), Duration.ofHours(48));
|
|
|
+ }catch (Exception e2){
|
|
|
+ log.error("接口异常 desc = {} e = {}", "重试redis写入用户访问次数失败", LogExceptionStackTrace.erroStackTrace(e2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setUserVisitsV(HftRequest request) {
|
|
|
+ if(Objects.isNull(request.getUnique()) || "".equals(request.getUnique().trim())){
|
|
|
+ throw new BaseException("unique参数异常 请核对");
|
|
|
+ }
|
|
|
+ Integer redisUserVisits = getRedisUserVisits(request.getUnique())+1;
|
|
|
+ request.setUserVisits(redisUserVisits);
|
|
|
+ setRedisUserVisits(request.getUnique(),redisUserVisits);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setUserVisitsVLintening(OutListeningShareRequest request) {
|
|
|
+ if(Objects.isNull(request.getUnique()) || "".equals(request.getUnique().trim())){
|
|
|
+ throw new BaseException("unique参数异常 请核对");
|
|
|
+ }
|
|
|
+ Integer redisUserVisits = getRedisUserVisits(request.getUnique())+1;
|
|
|
+ request.setUserVisits(redisUserVisits);
|
|
|
+ setRedisUserVisits(request.getUnique(),redisUserVisits);
|
|
|
+ }
|
|
|
+ public void setUserVisitsCommon(PlanNewCommonShareReq request) {
|
|
|
+ if(Objects.isNull(request.getUnique()) || "".equals(request.getUnique().trim())){
|
|
|
+ throw new BaseException("unique参数异常 请核对");
|
|
|
+ }
|
|
|
+ Integer redisUserVisits = getRedisUserVisits(request.getUnique())+1;
|
|
|
+ request.setUserVisits(redisUserVisits);
|
|
|
+ setRedisUserVisits(request.getUnique(),redisUserVisits);
|
|
|
+ }
|
|
|
+}
|