Browse Source

:construction_worker: 项目结构调整/添加缓存刷新隐藏接口

lag 10 months ago
parent
commit
c243440bd4
17 changed files with 75 additions and 27 deletions
  1. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/AuthenticationInterceptor.java
  2. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/FrequencyLimitInterceptor.java
  3. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/GlobalExceptionHandler.java
  4. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/PermissionsVerifyInterceptor.java
  5. 7 5
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/AuthController.java
  6. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/SysController.java
  7. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/TestController.java
  8. 2 0
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/mapper/SysDatashareAuthNewMapper.java
  9. 2 0
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/RedisService.java
  10. 2 0
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/SysDatashareServiceNewService.java
  11. 12 0
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/impl/RedisServiceImpl.java
  12. 12 0
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/impl/SysDatashareServiceNewServiceImpl.java
  13. 2 12
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/util/Encodes.java
  14. 2 2
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/vo/ObjectBodyVo.java
  15. 10 0
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/vo/request/FrequencyCacheReq.java
  16. 1 1
      ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/domain/ReturnMsg.java
  17. 17 1
      ghjg-item-datashare-server/src/main/resources/mapper/SysDatashareAuthNewMapper.xml

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/AuthenticationInterceptor.java

@@ -2,7 +2,7 @@ package com.shanghaichengdi.ghjgitem.config;
 
 import com.alibaba.fastjson.JSONObject;
 import com.shanghaichengdi.ghjgitem.constant.Constants;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.service.RedisService;
 import com.shanghaichengdi.ghjgitem.util.CharsetKit;
 import java.util.Objects;

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/FrequencyLimitInterceptor.java

@@ -2,7 +2,7 @@ package com.shanghaichengdi.ghjgitem.config;
 
 import com.alibaba.fastjson.JSONObject;
 import com.shanghaichengdi.ghjgitem.constant.Constants;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.domain.SysDatashareUser;
 import com.shanghaichengdi.ghjgitem.service.RedisService;
 import com.shanghaichengdi.ghjgitem.service.SysDatashareServiceNewService;

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/GlobalExceptionHandler.java

@@ -1,7 +1,7 @@
 package com.shanghaichengdi.ghjgitem.config;
 
 import com.shanghaichengdi.ghjgitem.constant.HttpStatus;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.exception.AesDecodeException;
 import com.shanghaichengdi.ghjgitem.util.PrintLogUtils;
 import java.io.IOException;

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/config/PermissionsVerifyInterceptor.java

@@ -3,7 +3,7 @@ package com.shanghaichengdi.ghjgitem.config;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.shanghaichengdi.ghjgitem.constant.Constants;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.domain.SysDatashareAuthNew;
 import com.shanghaichengdi.ghjgitem.domain.SysDatashareServiceNew;
 import com.shanghaichengdi.ghjgitem.domain.SysDatashareUser;

+ 7 - 5
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/AuthController.java

@@ -4,16 +4,16 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.shanghaichengdi.ghjgitem.constant.Constants;
 import com.shanghaichengdi.ghjgitem.constant.HttpStatus;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.domain.SysDatashareUser;
 import com.shanghaichengdi.ghjgitem.enums.OutsideInterface;
 import com.shanghaichengdi.ghjgitem.service.RedisService;
-import com.shanghaichengdi.ghjgitem.service.SysDatashareAuthNewService;
 import com.shanghaichengdi.ghjgitem.service.SysDatashareServiceNewService;
 import com.shanghaichengdi.ghjgitem.service.SysDatashareUserService;
 import com.shanghaichengdi.ghjgitem.util.ApiUtils;
 import com.shanghaichengdi.ghjgitem.util.JwtUtils;
 import com.shanghaichengdi.ghjgitem.vo.request.AuthRequest;
+import com.shanghaichengdi.ghjgitem.vo.request.FrequencyCacheReq;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -79,15 +79,17 @@ public class AuthController {
 
   @GetMapping("/checkToken/{tokenString}")
   public ReturnMsg checkToken(@PathVariable("tokenString") String tokenString) {
+    Objects.requireNonNull(tokenString,"tokenString不可为空");
     Map<String, String> map = new HashMap<>();
     map.put("token", tokenString);
     String result = ApiUtils.api(map, OutsideInterface.AUTH_URL.getUrlString(), "checkToken");
     return ReturnMsg.success(result);
   }
 
-  @PostMapping("/refresh")
-  public void refresh() {
-    datashareServiceNewService.initCacheAuthService();
+  @PostMapping("/refresh/frequency")
+  public ReturnMsg refreshFrequency(@RequestBody FrequencyCacheReq req) {
+    datashareServiceNewService.refreshFrequency(req.getClientList());
+    return ReturnMsg.success("缓存刷新成功");
   }
 
   @GetMapping("/test/{token}")

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/SysController.java

@@ -3,7 +3,7 @@ package com.shanghaichengdi.ghjgitem.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.shanghaichengdi.ghjgitem.constant.Constants;
 import com.shanghaichengdi.ghjgitem.constant.HttpStatus;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.service.SysGroupService;
 import com.shanghaichengdi.ghjgitem.service.SysUserService;
 import com.shanghaichengdi.ghjgitem.util.CommonTools;

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/controller/TestController.java

@@ -2,7 +2,7 @@ package com.shanghaichengdi.ghjgitem.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.shanghaichengdi.ghjgitem.constant.Constants;
-import com.shanghaichengdi.ghjgitem.domain.ReturnMsg;
+import com.shanghaichengdi.ghjgitem.vo.response.ReturnMsg;
 import com.shanghaichengdi.ghjgitem.service.RedisService;
 import com.shanghaichengdi.ghjgitem.util.Encodes;
 import java.nio.charset.StandardCharsets;

+ 2 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/mapper/SysDatashareAuthNewMapper.java

@@ -18,6 +18,8 @@ public interface SysDatashareAuthNewMapper extends BaseMapper<SysDatashareAuthNe
       @Param("serviceApi") String serviceApi);
 
   List<FrequencyInfoVo> selectAllFrequencyInfo();
+
+  List<FrequencyInfoVo> selectFrequencyInfoByClient(@Param("clientList") List<String> clientList);
 }
 
 

+ 2 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/RedisService.java

@@ -19,4 +19,6 @@ public interface RedisService {
   String getValue(String key);
 
   String getValue(String folder, String key);
+
+  void deleteKeys(String prefix);
 }

+ 2 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/SysDatashareServiceNewService.java

@@ -21,4 +21,6 @@ public interface SysDatashareServiceNewService {
   void setNewLastRequestTime(FrequencyInfoVo frequencyInfoVo);
 
   List<SysDatashareServiceNew> list(Wrapper<SysDatashareServiceNew> queryWrapper);
+
+  void refreshFrequency(List<String> clientList);
 }

+ 12 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/impl/RedisServiceImpl.java

@@ -1,14 +1,19 @@
 package com.shanghaichengdi.ghjgitem.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.shanghaichengdi.ghjgitem.service.RedisService;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import javax.annotation.Resource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 @Service
 public class RedisServiceImpl implements RedisService {
 
+  private static final Logger log = LoggerFactory.getLogger(RedisServiceImpl.class);
   @Resource
   private RedisTemplate<String, Object> redisTemplate;
 
@@ -53,4 +58,11 @@ public class RedisServiceImpl implements RedisService {
   public String getValue(String folder, String key) {
     return (String) redisTemplate.opsForValue().get(folder + key);
   }
+
+  @Override
+  public void deleteKeys(String prefix) {
+    Set<String> keys = redisTemplate.keys(prefix + "*");
+    log.info("删除掉的key有:{}", JSONObject.toJSONString(keys));
+    redisTemplate.delete(keys);
+  }
 }

+ 12 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/service/impl/SysDatashareServiceNewServiceImpl.java

@@ -11,6 +11,7 @@ import com.shanghaichengdi.ghjgitem.service.RedisService;
 import com.shanghaichengdi.ghjgitem.service.SysDatashareServiceNewService;
 import com.shanghaichengdi.ghjgitem.vo.FrequencyInfoVo;
 import java.util.List;
+import java.util.Objects;
 import javax.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -64,6 +65,17 @@ public class SysDatashareServiceNewServiceImpl extends CrudService<SysDatashareS
   public List<SysDatashareServiceNew> list(Wrapper<SysDatashareServiceNew> queryWrapper) {
     return sysDatashareServiceNewMapper.selectList(queryWrapper);
   }
+
+  @Override
+  public void refreshFrequency(List<String> clientList) {
+    List<FrequencyInfoVo> infoVoList = datashareAuthNewMapper.selectFrequencyInfoByClient(clientList);
+    clientList.forEach(x -> {
+      redisService.deleteKeys(redisKeyDir + x);
+    });
+    infoVoList.forEach(x -> {
+      redisService.setStringCache(redisKeyDir, x.getUserAndUrl(), JSONObject.toJSONString(x));
+    });
+  }
 }
 
 

File diff suppressed because it is too large
+ 2 - 12
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/util/Encodes.java


+ 2 - 2
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/vo/ObjectBodyVo.java

@@ -6,8 +6,8 @@ import lombok.Data;
 @Data
 public class ObjectBodyVo {
 
-  @NotBlank
+  @NotBlank(message = "key值不可为空")
   String key;
-  @NotBlank
+  @NotBlank(message = "data值不可为空")
   String data;
 }

+ 10 - 0
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/vo/request/FrequencyCacheReq.java

@@ -0,0 +1,10 @@
+package com.shanghaichengdi.ghjgitem.vo.request;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class FrequencyCacheReq {
+
+  List<String> clientList;
+}

+ 1 - 1
ghjg-item-datashare-server/src/main/java/com/shanghaichengdi/ghjgitem/domain/ReturnMsg.java

@@ -1,4 +1,4 @@
-package com.shanghaichengdi.ghjgitem.domain;
+package com.shanghaichengdi.ghjgitem.vo.response;
 
 import com.shanghaichengdi.ghjgitem.constant.HttpStatus;
 import com.shanghaichengdi.ghjgitem.util.StringUtils;

+ 17 - 1
ghjg-item-datashare-server/src/main/resources/mapper/SysDatashareAuthNewMapper.xml

@@ -27,11 +27,27 @@
 
   <select id="selectAllFrequencyInfo" resultType="com.shanghaichengdi.ghjgitem.vo.FrequencyInfoVo">
     SELECT T.CLIENT || ':' || SERVICE.NAME AS userAndUrl,
-           SERVICE.FREQUENCY_TIME                   AS frequencyTime
+           SERVICE.FREQUENCY_TIME          AS frequencyTime
     FROM GHJG_BASICS.SYS_DATASHARE_USER T
            LEFT JOIN GHJG_BASICS.SYS_DATASHARE_AUTH_new AU
                      ON T.ID = AU.USERID
            LEFT JOIN GHJG_BASICS.SYS_DATASHARE_SERVICE_new SERVICE
                      ON SERVICE.ID = AU.SERVICEID
   </select>
+
+    <select id="selectFrequencyInfoByClient" resultType="com.shanghaichengdi.ghjgitem.vo.FrequencyInfoVo">
+    SELECT T.CLIENT || ':' || SERVICE.NAME AS userAndUrl,
+    SERVICE.FREQUENCY_TIME AS frequencyTime
+    FROM GHJG_BASICS.SYS_DATASHARE_USER T
+    LEFT JOIN GHJG_BASICS.SYS_DATASHARE_AUTH_new AU
+    ON T.ID = AU.USERID
+    LEFT JOIN GHJG_BASICS.SYS_DATASHARE_SERVICE_new SERVICE
+    ON SERVICE.ID = AU.SERVICEID
+    where T.CLIENT in
+    <foreach item="item" collection="clientList" open="(" separator="," close=")">
+      #{item}
+    </foreach>
+  </select>
+
+
 </mapper>