Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	yudao-server/src/main/resources/application-dev.yaml
Zimo 4 tygodni temu
rodzic
commit
8fd1d9245f

+ 8 - 1
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java

@@ -208,11 +208,18 @@ public class AuthController {
 
     @PostMapping("/pmsSsoToken")
     @PermitAll
-    @Operation(summary = "根据当前登录人工号 获取随机验证码", description = "快捷登录OA")
+    @Operation(summary = "根据当前登录人工号 获取随机验证码", description = "快捷登录PMS")
     public CommonResult<String> pmsSsoToken(@RequestBody @Valid AuthOaLoginReqVO reqVO) {
         return success(authService.pmsSsoToken(reqVO));
     }
 
+    @PostMapping("/rdSsoToken")
+    @PermitAll
+    @Operation(summary = "根据当前登录人工号 获取随机验证码", description = "快捷登录 R&D")
+    public CommonResult<String> rdSsoToken(@RequestBody @Valid AuthOaLoginReqVO reqVO) {
+        return success(authService.rdSsoToken(reqVO));
+    }
+
     @PostMapping("/ehrLogin")
     @PermitAll
     @Operation(summary = "根据当前登录人工号 获取随机验证码", description = "快捷登录OA")

+ 7 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java

@@ -112,6 +112,13 @@ public interface AdminAuthService {
      */
     String pmsSsoToken(AuthOaLoginReqVO reqVO);
 
+    /**
+     * 免登录 R&D
+     *
+     * @param reqVO 验证码信息
+     */
+    String rdSsoToken(AuthOaLoginReqVO reqVO);
+
     /**
      * ehr sso登录
      * @param reqVO

+ 24 - 0
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java

@@ -105,9 +105,15 @@ public class AdminAuthServiceImpl implements AdminAuthService {
     @Value("${pms.ssoToken}")
     private String pmsSsoToken;
 
+    @Value("${rd.ssoToken}")
+    private String rdSsoToken;
+
     @Value("${pms.secret}")
     private String pmsSecret;
 
+    @Value("${rd.secret}")
+    private String rdSecret;
+
     @Value("${oa.secret}")
     private String oaSecret;
 
@@ -456,6 +462,24 @@ public class AdminAuthServiceImpl implements AdminAuthService {
         return token;
     }
 
+    @Override
+    public String rdSsoToken(AuthOaLoginReqVO reqVO) {
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-Type", "application/json");
+        headers.add("tenant-id", "1");
+        RestTemplate restTemplate = SslSkippingRestTemplate.createRestTemplate();
+        // 使用 MultiValueMap 而不是 HashMap
+        Map<String, String> params1 = new HashMap<>();
+        params1.put("appid", rdSecret);
+        params1.put("username", reqVO.getUsername());
+        HttpEntity<Map<String, String>> requestEntityOut = new HttpEntity<>(params1, headers);
+        String result = restTemplate.postForObject(rdSsoToken, requestEntityOut, String.class);
+        JSONObject jsonObject = JSON.parseObject(result);
+        String token = String.valueOf(jsonObject.get("data"));
+        System.out.println("result token:" + token);
+        return token;
+    }
+
     @Override
     public String crmGetUser(String token) {
         // 根据token 获取当前登录人的信息 userId...