فهرست منبع

【获取接口token,优先UAS移动端,Uas应用次之;流程消息推送,优先UAS移动端,U审批次之,最后Uas应用】

wuyx 2 روز پیش
والد
کامیت
3e8ac239b3

+ 1 - 1
qywx-sdk/src/main/java/com/usoftchina/qywx/sdk/AddrBookSdk.java

@@ -412,7 +412,7 @@ public class AddrBookSdk extends BaseSdk {
                 baseUrl + "/cgi-bin/batch/userid_to_openuserid?access_token={access_token}",
                 new ModelMap("userid_list", userList),
                 GetUserOpenIDListResp.class,
-                new ModelMap("access_token", getAccessToken("UasAudit")));
+                new ModelMap("access_token", getAccessToken(null)));
         logger.info("convert_openUserId--:{}",resp.getBody());
         assertOK(resp);
         return resp.getBody();

+ 12 - 1
qywx-sdk/src/main/java/com/usoftchina/qywx/sdk/BaseSdk.java

@@ -24,6 +24,7 @@ public abstract class BaseSdk {
     protected String baseUrl = QywxConst.API_BASE_URL;
     private QywxProperties properties;
     public final static String DEFAULT_AGENT_CODE = "Uas";//默认应用,代开发应用审批及打卡均只能通过其他应用获取
+    public final static String AGENT_UAS_MOBILE = "UasMobile";//默认应用,UAS移动端
     public final static String CHECKIN_AGENT_CODE = "Checkin";
     public final static String APPROVAL_AGENT_CODE = "Approval";
     public final static String SCHEDULE_AGENT_CODE = "Schedule";
@@ -88,14 +89,18 @@ public abstract class BaseSdk {
      * @return
      */
     protected synchronized String getAccessToken(String agentCode) {
+        if(agentCode == null){
+            agentCode = getDefaultAgentCode();
+        }
         Agent agent = getAgentMap().get(agentCode);
         if (null == agent) {
             throw new RuntimeException("没有找到应用" + agentCode);
         }
         //企业微信待开发应用无法通过审批及打卡应用获取,统一通过Uas应用获取
         if((agentCode.equals(CHECKIN_AGENT_CODE) || agentCode.equals(APPROVAL_AGENT_CODE) || agentCode.equals(SCHEDULE_AGENT_CODE)) && agent.getSecret().equals(DEFAULT_AGENT_CODE) ){
-            agent = getAgentMap().get(DEFAULT_AGENT_CODE);
+            agent = getAgentMap().get(getDefaultAgentCode());
         }
+//        agent = getAgentMap().get("Uas");
         if (!accessTokenMap.containsKey(agent.getSecret()) || accessTokenMap.get(agent.getSecret()).expired()) {
             ResponseEntity<GetAccessTokenResp> resp = restTemplate.getForEntity(
                     baseUrl + "/cgi-bin/gettoken?corpid={corpid}&corpsecret={corpsecret}",
@@ -128,4 +133,10 @@ public abstract class BaseSdk {
             return token;
         }
     }
+    public String getDefaultAgentCode() {
+        if(isAgentEnabled(AGENT_UAS_MOBILE)){//wuyx 2025-12-03 优先UAS移动端,没有就是Uas
+            return AGENT_UAS_MOBILE;
+        }
+        return DEFAULT_AGENT_CODE;
+    }
 }

+ 2 - 1
uas-office-qywx/src/main/java/com/usoftchina/uas/office/qywx/listener/UasProcessListener.java

@@ -104,7 +104,8 @@ public class UasProcessListener {
             String paramsStr = "{\"master\":\"" + event.getMaster() + "\",\"nodeId\":" + process.getJp_nodeid() + ",\"baseUrl\":\"" + URLEncoder.encode(agent.getOuterUrl(), "utf-8") + "\"}";
             String msgUrl = UrlUtils.generateOAuthUrl(messageSdk.getCorpId(), event.getMaster(), "Uas", agent.getOuterUrl(),
                     dataCenter.getOuterUrl() + "api/authorize", "uas/approval/" + URLEncoder.encode(paramsStr, "utf-8"));
-            messageSdk.send((!messageSdk.isAgentEnabled("UasAudit")) ? "Uas":"UasAudit", new SendMessageReq()
+            String sendAgentCode = (messageSdk.isAgentEnabled("UasMobile")?"UasMobile":((!messageSdk.isAgentEnabled("UasAudit")) ? "Uas":"UasAudit"));
+            messageSdk.send(sendAgentCode, new SendMessageReq()
                     .textCard(title, description, msgUrl, "查看详情")
                     .toUser(employee.getEm_qywx()));
         } catch (Exception e) {

+ 2 - 1
uas-office-qywx/src/main/java/com/usoftchina/uas/office/qywx/listener/UasUrlMsgListener.java

@@ -70,7 +70,8 @@ public class UasUrlMsgListener {
             QywxAgent agent = getUasAgent();
             String msgUrl = UrlUtils.generateOAuthUrl(messageSdk.getCorpId(), event.getMaster(), "Uas", agent.getOuterUrl(),
                     dataCenter.getOuterUrl() + "api/authorize", url);
-            messageSdk.send("Uas", new SendMessageReq()
+            String sendAgentCode = (messageSdk.isAgentEnabled("UasMobile")?"UasMobile":((!messageSdk.isAgentEnabled("UasAudit")) ? "Uas":"UasAudit"));
+            messageSdk.send(sendAgentCode, new SendMessageReq()
                     .textCard(title, description, msgUrl, "查看详情")
                         .toUser(userCode));
         }catch (Exception e){

+ 2 - 1
uas-office-qywx/src/main/java/com/usoftchina/uas/office/qywx/task/QywxPushMsgTask.java

@@ -57,7 +57,8 @@ public class QywxPushMsgTask {
                         }
                         sendMsg.toUser(uMsg.getEms_().split(","));
                         try {
-                            messageSdk.send("Uas", sendMsg);
+                            String sendAgentCode = (messageSdk.isAgentEnabled("UasMobile")?"UasMobile":"Uas");
+                            messageSdk.send(sendAgentCode, sendMsg);
                             uasUApprovalMsgService.recodMsg(uMsg.getId_(),"SUCESS","");
                             logger.info("send uas custom message sucess {}", uMsg);
                         }catch (Exception e){