瀏覽代碼

2022-11-1 18:32 RMS报告管理系统提交 基础数据接口开发:1.登录人信息2.字典项信息

沈永艺 2 年之前
父節點
當前提交
a00f1b15a0

+ 1 - 1
RMS/src/main/java/cn/cslg/report/common/config/InnerInterceptor/LizzMybatisIntercepts.java

@@ -43,7 +43,7 @@ public class LizzMybatisIntercepts implements InnerInterceptor {
     @Autowired
     private LoginUtils loginUtils;
 
-    @Value("${authorUrl}")
+    @Value("${PCSUrl}")
     private String url;
 
     @SneakyThrows

+ 1 - 1
RMS/src/main/java/cn/cslg/report/common/utils/ApiUtils.java

@@ -13,7 +13,7 @@ import java.util.Objects;
 
 @Component
 public class ApiUtils {
-    @Value("${authorUrl}")
+    @Value("${PCSUrl}")
     private String url;
     public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
 

+ 1 - 1
RMS/src/main/java/cn/cslg/report/common/utils/auth/AuthAop.java

@@ -33,7 +33,7 @@ import java.util.Objects;
 @Aspect
 @Component
 public class AuthAop {
-    @Value("${authorUrl}")
+    @Value("${PCSUrl}")
     private String url;
 
     @Autowired

+ 12 - 0
RMS/src/main/java/cn/cslg/report/controller/LoginController.java

@@ -44,4 +44,16 @@ public class LoginController {
     public String verifyCode() {
         return loginService.verifyCode();
     }
+
+    @GetMapping("/getUserInfo")
+    @Operation(summary = "获取用户信息")
+    public String getUserInfo() {
+        return loginService.getUserInfo();
+    }
+
+    @GetMapping("/getDictMessage")
+    @Operation(summary = "获取字典项信息")
+    public String getDictMessage() {
+        return loginService.getDictMessage();
+    }
 }

+ 39 - 5
RMS/src/main/java/cn/cslg/report/service/LoginService.java

@@ -18,7 +18,7 @@ import java.util.Map;
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class LoginService {
-    private final OutInterfaceService requestService;
+    private final OutInterfaceService outInterfaceService;
 
     /**
      * @return 1.生成验证码的base64转码 2.生成的UUID 与Redis里面的验证码KEY值一致
@@ -27,7 +27,7 @@ public class LoginService {
      */
     public String verifyCode() {
         try {
-            String resBody = requestService.getVerifyCodeFromPCS();
+            String resBody = outInterfaceService.getVerifyCodeFromPCS();
             JSONObject data = (JSONObject) JSONObject.parseObject(resBody).get("data");
             Map<String, String> result = new HashMap<>();
             result.put("captcha", data.get("captcha").toString());
@@ -35,7 +35,7 @@ public class LoginService {
             return Response.success(result);
         } catch (Exception ex) {
             ex.printStackTrace();
-            log.error(LogExceptionUtil.getMessage(ex));
+            log.error("权限系统获取验证码失败,错误信息:" + LogExceptionUtil.getMessage(ex));
             return Response.error("获取验证码失败");
         }
     }
@@ -46,15 +46,49 @@ public class LoginService {
      * @author 沈永艺
      */
     public String login(LoginVO loginVO) throws IOException {
-        String resBody = requestService.LoginFromPCS(loginVO);
+        String resBody = outInterfaceService.loginFromPCS(loginVO);
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         //判断请求返回是否为200,不是的话则返回报错信息
         if (!jsonObject.get("code").equals(200)) {
-            log.error("权限系统登录接口报错,错误信息:" + jsonObject.get("message").toString());
+            log.error("权限系统登录失败,错误信息:" + jsonObject.get("message").toString());
             return Response.error(jsonObject.get("message").toString());
         } else {
             PersonnelVO personnelVO = com.alibaba.fastjson2.JSONObject.parseObject(jsonObject.get("data").toString(), PersonnelVO.class);
             return Response.success(personnelVO.getToken());
         }
     }
+
+    /**
+     * @return 成功返回用户信息 失败返回错误信息
+     * @title 获取登录人信息
+     * @author 沈永艺
+     */
+    public String getUserInfo() {
+        try {
+            String resBody = outInterfaceService.userInfoFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            PersonnelVO personnelVO = com.alibaba.fastjson2.JSONObject.parseObject(jsonObject.get("data").toString(), PersonnelVO.class);
+            return Response.success(personnelVO);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取用户信息失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error("用户信息获取失败");
+        }
+    }
+
+    /**
+     * @return 成功返回Map类型字典项信息 失败返回错误信息
+     * @title 获取字典项信息
+     * @author 沈永艺
+     */
+    public String getDictMessage() {
+        try {
+            Map<String, Object> map = outInterfaceService.dictMessageFromPCS();
+            return Response.success(map);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取字典项信息失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error("字典项获取失败");
+        }
+    }
 }

+ 55 - 11
RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java

@@ -1,6 +1,8 @@
 package cn.cslg.report.service;
 
 import cn.cslg.report.common.model.vo.LoginVO;
+import cn.cslg.report.common.utils.JsonUtils;
+import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import okhttp3.MediaType;
@@ -12,20 +14,20 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @author 沈永艺
- * @description 调用外部接口的Service类
+ * @description 调用外部接口的Service类 PCS:权限系统 PAS:专利分析系统
  * @date 2022-10-31
  */
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class OutInterfaceService {
-    @Value("${authorUrl}")
-    private String url;
+    @Value("${PCSUrl}")
+    private String PCSUrl;
+    @Value("${PASUrl}")
+    private String PASUrl;
     public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
 
     /**
@@ -35,7 +37,7 @@ public class OutInterfaceService {
     public String getVerifyCodeFromPCS() throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .url(url + "/permission/api/admin/verifyCode")
+                .url(PCSUrl + "/permission/api/admin/verifyCode")
                 .get()
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
@@ -45,19 +47,61 @@ public class OutInterfaceService {
      * @title 登录接口
      * @description 接口来源:PCS
      */
-    public String LoginFromPCS(LoginVO loginVO) throws IOException {
+    public String loginFromPCS(LoginVO loginVO) throws IOException {
         Map<String, Object> map = new HashMap<>();
         map.put("code", loginVO.getCode());
         map.put("uuid", loginVO.getUuid());
         map.put("username", loginVO.getUsername());
         map.put("password", loginVO.getPassword());
         JSONObject json = new JSONObject(map);
-        RequestBody a = RequestBody.create(JSON, String.valueOf(json));
+        RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .url(url + "/permission/api/admin/login")
-                .post(a)
+                .url(PCSUrl + "/permission/api/admin/login")
+                .post(requestBody)
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
+    /**
+     * @title 登录人信息
+     * @description 接口来源:PCS
+     */
+    public String userInfoFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/userinfo")
+                .get()
+                .addHeader("Cookie", LoginUtils.getToken())
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取字典项
+     * @description 接口来源:PCS PAS
+     */
+    public Map<String, Object> dictMessageFromPCS() throws IOException {
+        //从PCS取字典项
+        OkHttpClient okHttpClient1 = new OkHttpClient();
+        Request request1 = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getDict")
+                .get()
+                .build();
+        String pcsDictMessage = Objects.requireNonNull(okHttpClient1.newCall(request1).execute().body()).string();
+        //从PAS取字典项
+        OkHttpClient okHttpClient2 = new OkHttpClient();
+        Request request2 = new Request.Builder()
+                .url(PASUrl + "/api/v2/common/getDictMessage")
+                .get()
+                .build();
+        String pasDictMessage = Objects.requireNonNull(okHttpClient2.newCall(request2).execute().body()).string();
+
+        JSONObject jsonObject1 = JSONObject.parseObject(pcsDictMessage);
+        JSONObject jsonObject2 = JSONObject.parseObject(pasDictMessage);
+        Map<String, Object> map = new HashMap<>();
+        map.putAll(JsonUtils.jsonToMap(String.valueOf(jsonObject1.get("data"))));
+        map.putAll(JsonUtils.jsonToMap(String.valueOf(jsonObject2.get("data"))));
+        return map;
+    }
 }