From 4f35e32c3f13f2191aa276af406e57105db0b31b Mon Sep 17 00:00:00 2001 From: "382696293@qq.com" <382696293@qq.com> Date: Thu, 7 Mar 2024 17:27:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E4=BA=91accessToken=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ShuYunCallbackController.java | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunCallbackController.java diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunCallbackController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunCallbackController.java new file mode 100644 index 0000000..4689e63 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunCallbackController.java @@ -0,0 +1,65 @@ +package com.flossom.system.controller; + +import com.alibaba.fastjson.JSON; +import com.flossom.common.core.constant.CacheConstants; +import com.flossom.common.core.domain.R; +import com.flossom.common.core.domain.shuyun.AccessToken; +import com.flossom.common.redis.service.RedisService; +import com.flossom.system.utils.shuyun.ShuYunConfig; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; + +/** + * 数云回调接口 + */ +@RestController +@RequestMapping("/shuyun") +public class ShuYunCallbackController { + + protected final static Logger logger = LoggerFactory.getLogger(ShuYunCallbackController.class); + + @Autowired + private ShuYunConfig shuYunConfig; + + @Autowired + private RedisService redisService; + + + /** + * 数云回调接口,获取 accessToken,并将 accessToken 缓存起来 + */ + @PostMapping(value = "/accessToken") + public R accessToken(@RequestBody List accessTokenList) { + logger.info("数云回调结果accessTokenList: {}", accessTokenList); + /** + * 缓存 accessToken + */ + if (accessTokenList != null && accessTokenList.size() > 0) { + for (AccessToken accessToken : accessTokenList) { + if (StringUtils.equals(accessToken.getAppId(), shuYunConfig.getAppid())) { + logger.info("缓存数云accessToken:{}", accessToken); + if (StringUtils.isNotBlank(accessToken.getAccessToken())) { + Map map = new HashMap<>(); + map.put(CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE_VALUE, JSON.toJSONString(accessToken)); + map.put(CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE_EXPIRY, LocalDateTime.now().plusDays(1).atZone(ZoneId.systemDefault()).toEpochSecond()); + redisService.setCacheMap(CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE, map); + return R.ok("", "SUCCESS"); + } + } + } + } + logger.error("缓存数云accessToken失败:{}", accessTokenList); + return R.fail(); + } + +}