Browse Source

兼容多套环境处理

zhouy 2 years ago
parent
commit
96ad9b3bb4

+ 6 - 1
uas-office-qywx/src/main/java/com/usoftchina/uas/office/qywx/controller/QywxAuthController.java

@@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.ModelAndView;
 
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
 import java.time.Duration;
 import java.time.Duration;
@@ -52,7 +53,7 @@ public class QywxAuthController {
     @RequestMapping(value = "/api/authorize")
     @RequestMapping(value = "/api/authorize")
     public ModelAndView authorize(@RequestParam(value = "code") String code, @RequestParam(value = "agent") String agent,
     public ModelAndView authorize(@RequestParam(value = "code") String code, @RequestParam(value = "agent") String agent,
                                   @RequestParam(value = "master", required = false) String master,
                                   @RequestParam(value = "master", required = false) String master,
-                                  @RequestParam(value = "url") String url, HttpServletResponse response) throws IOException {
+                                  @RequestParam(value = "url") String url, HttpServletRequest request, HttpServletResponse response) throws IOException {
         DataCenter dataCenter = DataCenter.INSTANCE;
         DataCenter dataCenter = DataCenter.INSTANCE;
         if (null == dataCenter) {
         if (null == dataCenter) {
             return new ModelAndView("/error");
             return new ModelAndView("/error");
@@ -81,6 +82,10 @@ public class QywxAuthController {
                 return new ModelAndView("/error");
                 return new ModelAndView("/error");
             }
             }
             QywxAgent uasAgent = agentService.findByCode("Uas");
             QywxAgent uasAgent = agentService.findByCode("Uas");
+            QywxAgent UasProdAgent = agentService.findByCode("UasProd");
+            if(request.getRequestURL().indexOf(uasAgent.getOuterUrl()) < 0) {
+                uasAgent = UasProdAgent;
+            }
             redisTemplate.opsForValue().set(code, employee.getEm_id(), Duration.ofMinutes(1));
             redisTemplate.opsForValue().set(code, employee.getEm_id(), Duration.ofMinutes(1));
             response.sendRedirect(String.format("%sopen/authorize.action?token=%s&master=%s&url=%s",
             response.sendRedirect(String.format("%sopen/authorize.action?token=%s&master=%s&url=%s",
                     uasAgent.getOuterUrl(), code, master == null ? "" : master, url));
                     uasAgent.getOuterUrl(), code, master == null ? "" : master, url));