From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 01 四月 2025 16:03:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-auth/src/main/java/com/ruoyi/auth/service/QywxInnerService.java |   29 +++++++++++++++--------------
 1 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/QywxInnerService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/QywxInnerService.java
index b425ba0..7e2954f 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/QywxInnerService.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/QywxInnerService.java
@@ -1,7 +1,6 @@
 package com.ruoyi.auth.service;
 
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
 import com.ruoyi.auth.config.QywxInnerConfig;
 import com.ruoyi.auth.utils.RestUtils;
 import com.ruoyi.common.core.constant.Constants;
@@ -9,20 +8,14 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.system.api.model.AgentConfigVo;
 import org.apache.commons.codec.binary.Hex;
-import org.apache.commons.lang3.ObjectUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.cache.RedisCache;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 @Service
@@ -121,20 +114,19 @@
         }
         logger.info("----------------userinfo detail -------------");
         logger.info(detailResponse.toString());
-
         return detailResponse;
     }
 
 
 
-    public AgentConfigVo getAgentConfig(String url) {
+    public AgentConfigVo getAgentConfig(String url, String type) {
 
         AgentConfigVo agentConfigVo = new AgentConfigVo();
         agentConfigVo.setAgentid(qywxInnerConfig.getAgentId());
         agentConfigVo.setCorpid(qywxInnerConfig.getCorpId());
 
         //临时票据
-        String ticket = getJsApiTicket();
+        String ticket = getJsApiTicket(type);
         if (StringUtils.isEmpty(ticket)) {
            throw new ServiceException("获取票据异常");
         }
@@ -178,13 +170,22 @@
      * @paran type
      * @return
      */
-    public String getJsApiTicket() {
+    public String getJsApiTicket(String type) {
         String accessToken = getAccessToken();
-        String ticket = redisTemplate.opsForValue().get(Constants.QY_WX_TICKET_KEY);
+        String ticketKey = Constants.QY_WX_TICKET_KEY;
+
+        String jsapiTicketUrl = qywxInnerConfig.getJsapiTicketUrl();
+        if("agent_config".equals(type)){
+            ticketKey = ticketKey + type;
+            jsapiTicketUrl = qywxInnerConfig.getJsapiTicketAgentUrl();
+        }
+
+        String ticket = redisTemplate.opsForValue().get(ticketKey);
         if(!StringUtils.isEmpty(ticket)){
             return ticket;
         }
-        String url = String.format(qywxInnerConfig.getJsapiTicketAgentUrl(), accessToken);
+
+        String url = String.format(jsapiTicketUrl, accessToken);
 
         JSONObject response = RestUtils.get(url);
         if(response.containsKey(Constants.QY_WX_ERR_CODE) && response.getInteger(Constants.QY_WX_ERR_CODE) != 0){
@@ -195,7 +196,7 @@
         ticket = response.getString(Constants.QY_WX_TICKET);
         Long expiresIn = response.getLong(Constants.QY_WX_EXPIRES_IN);
         expiresIn = expiresIn - 100;
-        redisTemplate.opsForValue().set(Constants.QY_WX_TICKET_KEY, ticket, expiresIn, TimeUnit.SECONDS);
+        redisTemplate.opsForValue().set(ticketKey, ticket, expiresIn, TimeUnit.SECONDS);
 
         return ticket;
     }

--
Gitblit v1.7.1