فهرست منبع

2022-11-2 14:21 RMS报告管理系统提交 基础数据接口开发:1.权限列表2.部门列表3.人员列表4.客户列表

沈永艺 2 سال پیش
والد
کامیت
3aba80c1e0

+ 5 - 0
RMS/pom.xml

@@ -47,6 +47,11 @@
             <version>${poi-tl.version}</version>
         </dependency>
         <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.5.2</version>
+        </dependency>
+        <dependency>
             <groupId>cn.dev33</groupId>
             <artifactId>sa-token-spring-boot-starter</artifactId>
             <version>${sa-token.version}</version>

+ 4 - 1
RMS/src/main/java/cn/cslg/report/Application.java

@@ -1,6 +1,7 @@
 package cn.cslg.report;
 
 import cn.hutool.cron.CronUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@@ -8,12 +9,14 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 @SpringBootApplication
+@Slf4j
 public class Application {
     public static void main(String[] args) {
+        log.info("系统开始启动");
         SpringApplication.run(Application.class, args);
         CronUtil.setMatchSecond(true);
         CronUtil.start();
-        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "后台程序已启动,请运行前台");
+        log.info("系统启动完毕,当前时间为:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
     }
 
 }

+ 2 - 0
RMS/src/main/java/cn/cslg/report/common/core/base/Constants.java

@@ -3,6 +3,8 @@ package cn.cslg.report.common.core.base;
 public class Constants {
     public static final String REPORT_API = "/report/api";
 
+    public static final String NET_ERROR = "网络异常";
+
     /**
      * 分隔符-竖线
      */

+ 101 - 0
RMS/src/main/java/cn/cslg/report/controller/BaseController.java

@@ -0,0 +1,101 @@
+package cn.cslg.report.controller;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.vo.LoginVO;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.service.BaseService;
+import cn.dev33.satoken.stp.StpUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+
+/**
+ * @author 沈永艺
+ * @date 2022-10-31
+ * @description 基础功能 Controller 层
+ */
+
+@Tag(name = "基础功能")
+@RestController
+@RequestMapping(Constants.REPORT_API)
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class BaseController {
+    private final BaseService baseService;
+
+    @PostMapping("/login")
+    @Operation(summary = "登录")
+    public String login(@RequestBody LoginVO loginVO) throws IOException {
+        return baseService.login(loginVO);
+    }
+
+    @PostMapping("/logout")
+    @Operation(summary = "登出")
+    public String logout() {
+        StpUtil.logout();
+        return Response.success(true);
+    }
+
+    @GetMapping("/verifyCode")
+    @Operation(summary = "生成验证码")
+    public String verifyCode() {
+        return baseService.verifyCode();
+    }
+
+    @GetMapping("/getUserInfo")
+    @Operation(summary = "获取用户信息")
+    public String getUserInfo() {
+        return baseService.getUserInfo();
+    }
+
+    @GetMapping("/getDictMessage")
+    @Operation(summary = "获取字典项信息")
+    public String getDictMessage() {
+        return baseService.getDictMessage();
+    }
+
+    @GetMapping("/getPermissionList")
+    @Operation(summary = "获取权限列表")
+    public String getPermissionList(String code) {
+        return baseService.getPermissionList(code);
+    }
+
+    @GetMapping("/getAllDepartment")
+    @Operation(summary = "获取所有部门")
+    public String getAllDepartment() {
+        return baseService.getAllDepartment();
+    }
+
+    @GetMapping("/getPartDepartment")
+    @Operation(summary = "获取部分部门")
+    public String getPartDepartment() {
+        return baseService.getPartDepartment();
+    }
+
+    @GetMapping("/getAllPersonnel")
+    @Operation(summary = "获取所有人员")
+    public String getAllPersonnel() {
+        return baseService.getAllPersonnel();
+    }
+
+    @GetMapping("/getPartPersonnel")
+    @Operation(summary = "获取部分人员")
+    public String getPartPersonnel() {
+        return baseService.getPartPersonnel();
+    }
+
+    @GetMapping("/getAllClient")
+    @Operation(summary = "获取所有客户")
+    public String getAllClient() {
+        return baseService.getAllClient();
+    }
+
+    @GetMapping("/getPartClient")
+    @Operation(summary = "获取部分客户")
+    public String getPartClient() {
+        return baseService.getPartClient();
+    }
+}

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

@@ -1,59 +0,0 @@
-package cn.cslg.report.controller;
-
-import cn.cslg.report.common.core.base.Constants;
-import cn.cslg.report.common.model.vo.LoginVO;
-import cn.cslg.report.common.utils.Response;
-import cn.cslg.report.service.LoginService;
-import cn.dev33.satoken.stp.StpUtil;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
-
-/**
- * @author 沈永艺
- * @date 2022-10-31
- * @description 登录 Controller 层
- */
-
-@Tag(name = "登录管理")
-@RestController
-@RequestMapping(Constants.REPORT_API)
-@RequiredArgsConstructor(onConstructor_ = {@Lazy})
-public class LoginController {
-    private final LoginService loginService;
-
-    @PostMapping("/login")
-    @Operation(summary = "登录")
-    public String login(@RequestBody LoginVO loginVO) throws IOException {
-        return loginService.login(loginVO);
-    }
-
-    @PostMapping("/logout")
-    @Operation(summary = "登出")
-    public String logout() {
-        StpUtil.logout();
-        return Response.success(true);
-    }
-
-    @GetMapping("/verifyCode")
-    @Operation(summary = "生成验证码")
-    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();
-    }
-}

+ 215 - 0
RMS/src/main/java/cn/cslg/report/service/BaseService.java

@@ -0,0 +1,215 @@
+package cn.cslg.report.service;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.vo.LoginVO;
+import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.utils.LogExceptionUtil;
+import cn.cslg.report.common.utils.Response;
+import com.alibaba.fastjson.JSONObject;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class BaseService {
+    private final OutInterfaceService outInterfaceService;
+
+    /**
+     * @return 1.生成验证码的base64转码 2.生成的UUID 与Redis里面的验证码KEY值一致
+     * @title 获取验证码
+     * @author 沈永艺
+     */
+    public String verifyCode() {
+        try {
+            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());
+            result.put("uuid", data.get("uuid").toString());
+            return Response.success(result);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取验证码失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回Token 失败返回错误信息
+     * @title 登录接口
+     * @author 沈永艺
+     */
+    public String login(LoginVO loginVO) throws IOException {
+        String resBody = outInterfaceService.loginFromPCS(loginVO);
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        //判断请求返回是否为200,不是的话则返回报错信息
+        if (!jsonObject.get("code").equals(200)) {
+            log.error("权限系统登录失败,错误信息:" + jsonObject.get("message").toString());
+            return Response.error(Constants.NET_ERROR);
+        } 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(Constants.NET_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(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回权限列表信息 失败返回错误信息
+     * @title 获取权限列表
+     * @author 沈永艺
+     */
+    public String getPermissionList(String code) {
+        try {
+            String resBody = outInterfaceService.getPermissionListFromPCS(code);
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取权限列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回部门列表信息 失败返回错误信息
+     * @title 获取所有部门
+     * @author 沈永艺
+     */
+    public String getAllDepartment() {
+        try {
+            String resBody = outInterfaceService.getAllDepartmentFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取部门列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回部门列表信息 失败返回错误信息
+     * @title 获取部分部门
+     * @author 沈永艺
+     */
+    public String getPartDepartment() {
+        try {
+            String resBody = outInterfaceService.getPartDepartmentFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取部门列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回人员列表信息 失败返回错误信息
+     * @title 获取全部人员
+     * @author 沈永艺
+     */
+    public String getAllPersonnel() {
+        try {
+            String resBody = outInterfaceService.getAllPersonnelFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取人员列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回人员列表信息 失败返回错误信息
+     * @title 获取部分人员
+     * @author 沈永艺
+     */
+    public String getPartPersonnel() {
+        try {
+            String resBody = outInterfaceService.getPartPersonnelFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取人员列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回客户列表信息 失败返回错误信息
+     * @title 获取所有客户
+     * @author 沈永艺
+     */
+    public String getAllClient() {
+        try {
+            String resBody = outInterfaceService.getAllClientFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取客户列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+    /**
+     * @return 成功返回客户列表信息 失败返回错误信息
+     * @title 获取部分客户
+     * @author 沈永艺
+     */
+    public String getPartClient() {
+        try {
+            String resBody = outInterfaceService.getPartClientFromPCS();
+            JSONObject jsonObject = JSONObject.parseObject(resBody);
+            return Response.success(jsonObject.get("data"));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            log.error("权限系统获取客户列表失败,错误信息:" + LogExceptionUtil.getMessage(ex));
+            return Response.error(Constants.NET_ERROR);
+        }
+    }
+
+}

+ 0 - 94
RMS/src/main/java/cn/cslg/report/service/LoginService.java

@@ -1,94 +0,0 @@
-package cn.cslg.report.service;
-
-import cn.cslg.report.common.model.vo.LoginVO;
-import cn.cslg.report.common.model.vo.PersonnelVO;
-import cn.cslg.report.common.utils.LogExceptionUtil;
-import cn.cslg.report.common.utils.Response;
-import com.alibaba.fastjson.JSONObject;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Service;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-@Slf4j
-@Service
-@RequiredArgsConstructor(onConstructor_ = {@Lazy})
-public class LoginService {
-    private final OutInterfaceService outInterfaceService;
-
-    /**
-     * @return 1.生成验证码的base64转码 2.生成的UUID 与Redis里面的验证码KEY值一致
-     * @title 获取验证码
-     * @author 沈永艺
-     */
-    public String verifyCode() {
-        try {
-            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());
-            result.put("uuid", data.get("uuid").toString());
-            return Response.success(result);
-        } catch (Exception ex) {
-            ex.printStackTrace();
-            log.error("权限系统获取验证码失败,错误信息:" + LogExceptionUtil.getMessage(ex));
-            return Response.error("获取验证码失败");
-        }
-    }
-
-    /**
-     * @return 成功返回Token 失败返回错误信息
-     * @title 登录接口
-     * @author 沈永艺
-     */
-    public String login(LoginVO loginVO) throws IOException {
-        String resBody = outInterfaceService.loginFromPCS(loginVO);
-        JSONObject jsonObject = JSONObject.parseObject(resBody);
-        //判断请求返回是否为200,不是的话则返回报错信息
-        if (!jsonObject.get("code").equals(200)) {
-            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("字典项获取失败");
-        }
-    }
-}

+ 101 - 1
RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java

@@ -14,7 +14,9 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @author 沈永艺
@@ -104,4 +106,102 @@ public class OutInterfaceService {
         map.putAll(JsonUtils.jsonToMap(String.valueOf(jsonObject2.get("data"))));
         return map;
     }
+
+    /**
+     * @title 获取权限列表
+     * @description 接口来源:PCS
+     */
+    public String getPermissionListFromPCS(String code) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getPermissionList?code=" + code)
+                .addHeader("Cookie", LoginUtils.getToken())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取所有部门(无权限控制)
+     * @description 接口来源:PCS
+     */
+    public String getAllDepartmentFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getAllDepartment")
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取部分部门(有权限控制)
+     * @description 接口来源:PCS
+     */
+    // TODO: 2022/11/2 未开发
+    public String getPartDepartmentFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getPartDepartment")
+                .addHeader("Cookie", LoginUtils.getToken())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取所有人员(无权限控制)
+     * @description 接口来源:PCS
+     */
+    public String getAllPersonnelFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getAllPersonnel")
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取部分人员(有权限控制)
+     * @description 接口来源:PCS
+     */
+    // TODO: 2022/11/2 未开发
+    public String getPartPersonnelFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PCSUrl + "/permission/api/system/getPartPersonnel")
+                .addHeader("Cookie", LoginUtils.getToken())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取所有客户(无权限控制)
+     * @description 接口来源:PCS
+     */
+    public String getAllClientFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PASUrl + "/api/v2/client/getAllClient")
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * @title 获取部分客户(有权限控制)
+     * @description 接口来源:PCS
+     */
+    // TODO: 2022/11/2 未开发
+    public String getPartClientFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(PASUrl + "/api/v2/client/getPartClient")
+                .addHeader("Cookie", LoginUtils.getToken())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
 }

+ 14 - 1
RMS/src/main/resources/application-dev.yml

@@ -7,9 +7,22 @@ spring:
     timeout: 1000
   datasource:
     url: jdbc:mysql://47.101.137.223:3306/PCS_TEST?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    driver-class-name: com.mysql.cj.jdbc.Driver
     username: root
     password: TU5x6IeBi7rl
-    driver-class-name: com.mysql.cj.jdbc.Driver
+    dynamic:
+      primary: pas
+      datasource:
+        pas:
+          url: jdbc:mysql://47.101.137.223:3306/pas?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          username: root
+          password: TU5x6IeBi7rl
+        pcs:
+          url: jdbc:mysql://47.101.137.223:3306/PCS_TEST?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          username: root
+          password: TU5x6IeBi7rl
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       stat-view-servlet:

+ 2 - 1
RMS/src/main/resources/application.yml

@@ -64,5 +64,6 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
   mapper-locations: classpath:mapper/*.xml
-authorUrl: http://localhost:8880
+PCSUrl: http://localhost:8880
+PASUrl: http://localhost:8879