瀏覽代碼

用户访问次数-重复开发

MOKASZ\lw12420 2 年之前
父節點
當前提交
99c8a3f565

+ 77 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/userVisits/UserVisitsServices.java

@@ -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);
+    }
+}