diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java index e72b46f..3499e4b 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/PaymentController.java @@ -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_balance.UserBalanceApplicationService; 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.qywx.accessToken.AccessTokenApplicationService; import com.agileboot.domain.qywx.accessToken.db.QyAccessTokenEntity; @@ -77,6 +78,7 @@ public class PaymentController { private final Ab98UserApplicationService ab98UserApplicationService; private final UserBalanceApplicationService userBalanceApplicationService; private final WxshopConfig wxshopConfig; + private final CaffeineCacheService caffeineCache; // 新增回调接口 /** @@ -190,7 +192,20 @@ public class PaymentController { QyAuthCorpInfoEntity authCorpInfo = authCorpInfoApplicationService.selectByCorpid(corpid); QyAccessTokenEntity qyAccessToken = accessTokenApplicationService.getByAppid(authCorpInfo.getAppid(), corpid); // 通过企业微信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查询系统用户名 SysUserEntity sysUserEntity = sysUserQyUserApplicationService.getSysUserByQyUserid(userid);