@@ -15,7 +15,7 @@ target/ | |||
### IntelliJ IDEA ### | |||
.idea | |||
logs | |||
logs/** | |||
*.iws | |||
*.iml | |||
*.ipr | |||
@@ -0,0 +1,50 @@ | |||
package com.szyx.tcm.supervision.config; | |||
import com.github.benmanes.caffeine.cache.Cache; | |||
import com.github.benmanes.caffeine.cache.Caffeine; | |||
import com.szyx.tcm.supervision.model.dto.supervise.SuperviseTokenRep; | |||
import com.szyx.tcm.supervision.service.BjSuperviseUploadService; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.springframework.stereotype.Component; | |||
import javax.annotation.Resource; | |||
import java.util.concurrent.TimeUnit; | |||
/******************************************************************* | |||
* <pre></pre> | |||
* @文件名称: CahceAgent.java | |||
* @包 路 径: com.szyx.tcm.supervision.config | |||
* @Copyright:wy (C) 2024 * | |||
* @Description: | |||
* @Version: V1.0 | |||
* @Author: wy | |||
* @Date:2024/3/7 15:57 | |||
* @Modify: | |||
*/ | |||
@Component | |||
@Slf4j | |||
public class CacheAgent { | |||
private final Cache<String, SuperviseTokenRep> superviseTokenCache; | |||
public CacheAgent() { | |||
superviseTokenCache = Caffeine.newBuilder() | |||
.maximumSize(10) | |||
.expireAfterWrite(120, TimeUnit.SECONDS) | |||
.build(); | |||
} | |||
public SuperviseTokenRep get(String key) { | |||
return superviseTokenCache.getIfPresent(key); | |||
} | |||
public void put(String key, SuperviseTokenRep value) { | |||
superviseTokenCache.put(key, value); | |||
} | |||
} |
@@ -1,10 +1,23 @@ | |||
package com.szyx.tcm.supervision.controller; | |||
import com.fiftyonetrust.common.model.result.R; | |||
import com.fiftyonetrust.common.util.YAssert; | |||
import com.github.benmanes.caffeine.cache.Caffeine; | |||
import com.github.benmanes.caffeine.cache.LoadingCache; | |||
import com.szyx.tcm.supervision.annotation.TraceLog; | |||
import org.springframework.web.bind.annotation.GetMapping; | |||
import org.springframework.web.bind.annotation.RequestMapping; | |||
import org.springframework.web.bind.annotation.RestController; | |||
import com.szyx.tcm.supervision.config.CacheAgent; | |||
import com.szyx.tcm.supervision.constant.CacheConstant; | |||
import com.szyx.tcm.supervision.enums.OperationTypeEnum; | |||
import com.szyx.tcm.supervision.model.LogInfo; | |||
import com.szyx.tcm.supervision.model.dto.supervise.SuperviseTokenRep; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.dromara.hutool.core.date.DateUtil; | |||
import org.springframework.web.bind.annotation.*; | |||
import javax.annotation.Resource; | |||
import java.time.Instant; | |||
import java.util.Date; | |||
import java.util.concurrent.TimeUnit; | |||
/******************************************************************* | |||
* <pre></pre> | |||
@@ -19,15 +32,68 @@ import org.springframework.web.bind.annotation.RestController; | |||
*/ | |||
@RestController | |||
@RequestMapping("/test") | |||
@Slf4j | |||
public class TestController { | |||
@Resource | |||
private CacheAgent cacheAgent; | |||
@GetMapping("/get") | |||
@TraceLog(desc = "测试接口") | |||
public R<String> get(){ | |||
return R.ok("success"); | |||
} | |||
/** | |||
* 生成token header | |||
* | |||
* @return | |||
*/ | |||
private String generateToken() { | |||
LoadingCache<String, SuperviseTokenRep> cache = Caffeine.newBuilder() | |||
.expireAfterWrite(120, TimeUnit.SECONDS) | |||
.build(key -> this.getToken()); | |||
SuperviseTokenRep rep = cache.get(CacheConstant.SUPERVISE_TOKEN); | |||
String token = null; | |||
if (rep != null) { | |||
token = rep.getAccess_token(); | |||
log.info("更新监管平台token成功,token:{},过期时间为:{}", rep.getAccess_token(), DateUtil.offsetSecond(new Date(), rep.getExpires_in())); | |||
} else { | |||
log.warn("更新监管平台token失败"); | |||
} | |||
return token; | |||
} | |||
@PostMapping("/post") | |||
@TraceLog(desc = "测试接口",operationType = OperationTypeEnum.POST) | |||
public R<String> post(@RequestBody LogInfo body){ | |||
SuperviseTokenRep rep = cacheAgent.get(CacheConstant.SUPERVISE_TOKEN); | |||
if(null == rep){ | |||
rep = getToken(); | |||
cacheAgent.put(CacheConstant.SUPERVISE_TOKEN,rep); | |||
} | |||
// YAssert.notNull(null,"监管平台token获取失败"); | |||
return R.ok("success"); | |||
} | |||
public SuperviseTokenRep getToken(){ | |||
return SuperviseTokenRep.builder().access_token(Instant.now().toString()).expires_in(1).build(); | |||
} | |||
} |
@@ -2,7 +2,9 @@ package com.szyx.tcm.supervision.model; | |||
import com.baomidou.mybatisplus.annotation.TableId; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import lombok.AllArgsConstructor; | |||
import lombok.Data; | |||
import lombok.NoArgsConstructor; | |||
import java.util.Date; | |||
@@ -20,6 +22,8 @@ import java.util.Date; | |||
@Data | |||
@TableName("log_info") | |||
@AllArgsConstructor | |||
@NoArgsConstructor | |||
public class LogInfo { | |||
/** | |||
@@ -1,5 +1,6 @@ | |||
package com.szyx.tcm.supervision.model.dto.supervise; | |||
import lombok.Builder; | |||
import lombok.Data; | |||
/** | |||
@@ -10,6 +11,7 @@ import lombok.Data; | |||
* @create: 2023-05-23 16:32 | |||
**/ | |||
@Data | |||
@Builder | |||
public class SuperviseTokenRep { | |||
/** | |||
* 获取到的凭证 | |||
@@ -3,6 +3,7 @@ package com.szyx.tcm.supervision.service.Impl; | |||
import com.alibaba.fastjson2.JSONObject; | |||
import com.github.benmanes.caffeine.cache.Caffeine; | |||
import com.github.benmanes.caffeine.cache.LoadingCache; | |||
import com.szyx.tcm.supervision.config.CacheAgent; | |||
import com.szyx.tcm.supervision.constant.CacheConstant; | |||
import com.szyx.tcm.supervision.constant.HttpConstants; | |||
import com.szyx.tcm.supervision.model.dto.supervise.CommonRsp; | |||
@@ -19,6 +20,7 @@ import org.dromara.hutool.core.date.DateUtil; | |||
import org.springframework.beans.factory.annotation.Value; | |||
import org.springframework.stereotype.Service; | |||
import javax.annotation.Resource; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import java.util.concurrent.TimeUnit; | |||
@@ -46,6 +48,9 @@ public class BjSuperviseUploadServiceImpl implements BjSuperviseUploadService { | |||
@Value("${supervise.secret}") | |||
private String secret; | |||
@Resource | |||
private CacheAgent cacheAgent; | |||
@Override | |||
public SuperviseTokenRep getToken() { | |||
@@ -80,11 +85,14 @@ public class BjSuperviseUploadServiceImpl implements BjSuperviseUploadService { | |||
* @return | |||
*/ | |||
private String generateToken() { | |||
LoadingCache<String, SuperviseTokenRep> cache = Caffeine.newBuilder() | |||
.expireAfterWrite(120, TimeUnit.SECONDS) | |||
.build(key -> this.getToken()); | |||
SuperviseTokenRep rep = cache.get(CacheConstant.SUPERVISE_TOKEN); | |||
SuperviseTokenRep rep = cacheAgent.get(CacheConstant.SUPERVISE_TOKEN); | |||
if(null == rep){ | |||
rep = getToken(); | |||
cacheAgent.put(CacheConstant.SUPERVISE_TOKEN,rep); | |||
} | |||
String token = null; | |||
if (rep != null) { | |||
token = rep.getAccess_token(); | |||