perf(支付): 添加企业微信用户ID缓存以减少API调用
添加Caffeine缓存服务来缓存企业微信用户ID,避免重复调用企业微信API获取用户ID,提高性能并减少外部API调用次数
This commit is contained in:
parent
d6495cf4e0
commit
c35a432203
|
|
@ -16,6 +16,7 @@ import com.agileboot.domain.ab98.user.Ab98UserApplicationService;
|
||||||
import com.agileboot.domain.ab98.user.db.Ab98UserEntity;
|
import com.agileboot.domain.ab98.user.db.Ab98UserEntity;
|
||||||
import com.agileboot.domain.ab98.user_balance.UserBalanceApplicationService;
|
import com.agileboot.domain.ab98.user_balance.UserBalanceApplicationService;
|
||||||
import com.agileboot.domain.ab98.user_balance.dto.UserBalanceDTO;
|
import com.agileboot.domain.ab98.user_balance.dto.UserBalanceDTO;
|
||||||
|
import com.agileboot.domain.common.cache.CaffeineCacheService;
|
||||||
import com.agileboot.domain.common.dto.QyLoginDTO;
|
import com.agileboot.domain.common.dto.QyLoginDTO;
|
||||||
import com.agileboot.domain.qywx.accessToken.AccessTokenApplicationService;
|
import com.agileboot.domain.qywx.accessToken.AccessTokenApplicationService;
|
||||||
import com.agileboot.domain.qywx.accessToken.db.QyAccessTokenEntity;
|
import com.agileboot.domain.qywx.accessToken.db.QyAccessTokenEntity;
|
||||||
|
|
@ -77,6 +78,7 @@ public class PaymentController {
|
||||||
private final Ab98UserApplicationService ab98UserApplicationService;
|
private final Ab98UserApplicationService ab98UserApplicationService;
|
||||||
private final UserBalanceApplicationService userBalanceApplicationService;
|
private final UserBalanceApplicationService userBalanceApplicationService;
|
||||||
private final WxshopConfig wxshopConfig;
|
private final WxshopConfig wxshopConfig;
|
||||||
|
private final CaffeineCacheService caffeineCache;
|
||||||
|
|
||||||
// 新增回调接口
|
// 新增回调接口
|
||||||
/**
|
/**
|
||||||
|
|
@ -190,7 +192,20 @@ public class PaymentController {
|
||||||
QyAuthCorpInfoEntity authCorpInfo = authCorpInfoApplicationService.selectByCorpid(corpid);
|
QyAuthCorpInfoEntity authCorpInfo = authCorpInfoApplicationService.selectByCorpid(corpid);
|
||||||
QyAccessTokenEntity qyAccessToken = accessTokenApplicationService.getByAppid(authCorpInfo.getAppid(), corpid);
|
QyAccessTokenEntity qyAccessToken = accessTokenApplicationService.getByAppid(authCorpInfo.getAppid(), corpid);
|
||||||
// 通过企业微信code获取用户ID
|
// 通过企业微信code获取用户ID
|
||||||
String userid = QywxApiUtil.getQyUserid(qyAccessToken.getAccessToken(), code);
|
String userid = "";
|
||||||
|
|
||||||
|
// 构建缓存键
|
||||||
|
String cacheKey = corpid + ":" + code;
|
||||||
|
|
||||||
|
// 先从缓存获取
|
||||||
|
String cachedUserid = caffeineCache.qyUseridCache.get(cacheKey);
|
||||||
|
if (cachedUserid != null) {
|
||||||
|
userid = cachedUserid;
|
||||||
|
} else {
|
||||||
|
userid = QywxApiUtil.getQyUserid(qyAccessToken.getAccessToken(), code);
|
||||||
|
// 缓存用户ID
|
||||||
|
caffeineCache.qyUseridCache.put(cacheKey, userid);
|
||||||
|
}
|
||||||
// 根据企业微信用户ID查询系统用户名
|
// 根据企业微信用户ID查询系统用户名
|
||||||
SysUserEntity sysUserEntity = sysUserQyUserApplicationService.getSysUserByQyUserid(userid);
|
SysUserEntity sysUserEntity = sysUserQyUserApplicationService.getSysUserByQyUserid(userid);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue