Browse Source

feature : add supervision system

master
王昱 6 months ago
parent
commit
b2e92ffe01
6 changed files with 138 additions and 8 deletions
  1. +1
    -1
      .gitignore
  2. +50
    -0
      src/main/java/com/szyx/tcm/supervision/config/CacheAgent.java
  3. +69
    -3
      src/main/java/com/szyx/tcm/supervision/controller/TestController.java
  4. +4
    -0
      src/main/java/com/szyx/tcm/supervision/model/LogInfo.java
  5. +2
    -0
      src/main/java/com/szyx/tcm/supervision/model/dto/supervise/SuperviseTokenRep.java
  6. +12
    -4
      src/main/java/com/szyx/tcm/supervision/service/Impl/BjSuperviseUploadServiceImpl.java

+ 1
- 1
.gitignore View File

@@ -15,7 +15,7 @@ target/

### IntelliJ IDEA ###
.idea
logs
logs/**
*.iws
*.iml
*.ipr


+ 50
- 0
src/main/java/com/szyx/tcm/supervision/config/CacheAgent.java View File

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



}

+ 69
- 3
src/main/java/com/szyx/tcm/supervision/controller/TestController.java View File

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



}

+ 4
- 0
src/main/java/com/szyx/tcm/supervision/model/LogInfo.java View File

@@ -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 {

/**


+ 2
- 0
src/main/java/com/szyx/tcm/supervision/model/dto/supervise/SuperviseTokenRep.java View File

@@ -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 {
/**
* 获取到的凭证


+ 12
- 4
src/main/java/com/szyx/tcm/supervision/service/Impl/BjSuperviseUploadServiceImpl.java View File

@@ -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();


Loading…
Cancel
Save