Kaynağa Gözat

代码结构修改 2022/9/29

lwhhszx 3 yıl önce
ebeveyn
işleme
f6c7341e1b

+ 3 - 25
PAS/src/main/java/cn/cslg/pas/common/utils/auth/AuthAop.java

@@ -3,7 +3,6 @@ package cn.cslg.pas.common.utils.auth;
 import cn.cslg.pas.common.model.DataSource;
 import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.utils.CacheUtils;
-import cn.cslg.pas.common.utils.RedisUtil;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import com.alibaba.fastjson.JSON;
@@ -14,7 +13,6 @@ import okhttp3.FormBody;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.RequestBody;
-import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.*;
 import org.aspectj.lang.reflect.MethodSignature;
@@ -26,9 +24,7 @@ import org.springframework.stereotype.Component;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 import java.lang.reflect.Method;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 @Order(2)
@@ -37,12 +33,11 @@ import java.util.Objects;
 public class AuthAop {
     @Value("${authorUrl}")
     private String url;
+
     @Autowired
     private CacheUtils cacheUtils;
     @Autowired
     private LoginUtils loginUtils;
-    @Autowired
-    private RedisUtil redisUtil;
 
     /**
      * 定义切点
@@ -52,13 +47,6 @@ public class AuthAop {
 
     }
 
-    @Before("annotationPointcut()")
-    public void beforePointcut(JoinPoint joinPoint) {
-        //此处进入到方法前  可以实现一些业务逻辑
-        //获取目标对象方法参数
-
-    }
-
     /**
      * @param joinPoint 当前执行的方法
      */
@@ -95,7 +83,7 @@ public class AuthAop {
         JSONArray jsonArray = JSONArray.parseArray(resBody);
         //如果获得规则的返回值为[-1]则代表登录人没有使用该功能的权限
         if (jsonArray.get(0).toString().equals("-1")) {
-            return Response.error("没有功能");
+            return Response.error("没有" + operAnnotation.summary() + "的功能");
         }
         //如果获得规则的返回值为[0],则直接通过判断
         else if (jsonArray.size() == 1 && jsonArray.get(0).equals("0")) {
@@ -141,22 +129,12 @@ public class AuthAop {
 
         //判断不通过
         if (!isPass) {
-            return Response.error("没有权限进行操作");
+            return Response.error("没有权限进行" + operAnnotation.summary() + "的操作");
         }
 
         //判断通过
         return joinPoint.proceed();
     }
 
-    /**
-     * 在切入点return内容之后切入内容(可以用来对处理返回值做一些加工处理)
-     * @param joinPoint 切点
-     */
-    @AfterReturning("annotationPointcut()")
-    public void doAfterReturning(JoinPoint joinPoint) {
-    }
-
-    private void checkToken(String token) {
-    }
 }
 

+ 3 - 27
PAS/src/main/java/cn/cslg/pas/service/OAuth2Service.java

@@ -39,6 +39,7 @@ public class OAuth2Service {
     private final ProjectUserService projectUserService;
     private final ProjectService projectService;
     private final LoginUtils loginUtils;
+    private final RequestService requestService;
     @Value("${authorUrl}")
     private String url;
     public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
@@ -117,27 +118,14 @@ public class OAuth2Service {
      * @author 沈永艺
      */
     public String verifyCode() throws Exception {
-        RequestBody requestBody = new FormBody.Builder()
-                .build();
-        OkHttpClient okHttpClient = new OkHttpClient();
-
-        Request request = new Request.Builder()
-                .url(url + "/permission/api/admin/verifyCode")
-                .get()
-                .build();
-        String resBody = okHttpClient.newCall(request).execute().body().string();
+        String resBody = requestService.getverifyCodeFromPCS();
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         JSONObject data = (JSONObject) jsonObject.get("data");
         Object captcha = data.get("captcha");
         Object uuid = data.get("uuid");
-//        Object code = data.get("code");
         Map<String, String> result = new HashMap<>();
         result.put("captcha", captcha.toString());
         result.put("uuid", uuid.toString());
-//        result.put("code", code.toString());
-        //将验证码存放到Redis里面并设置
-        //过期时间为 60 单位:秒
-        //KEY值格式为: 验证码:UUID  VALUE值为:验证码生成工具所生成的验证码
         return Response.success(result);
     }
 
@@ -146,19 +134,7 @@ public class OAuth2Service {
      * @author 沈永艺
      */
     public String login(String username, String password, String code, String uuid) throws IOException {
-        Map<String, Object> map = new HashMap<>();
-        map.put("code", code);
-        map.put("uuid", uuid);
-        map.put("username", username);
-        map.put("password", password);
-        JSONObject json = new JSONObject(map);
-        RequestBody a = RequestBody.create(JSON, String.valueOf(json));
-        OkHttpClient okHttpClient = new OkHttpClient();
-        Request request = new Request.Builder()
-                .url(url + "/permission/api/admin/login")
-                .post(a)
-                .build();
-        String resBody = okHttpClient.newCall(request).execute().body().string();
+        String resBody = requestService.LoginFromPCS(username, password, code,uuid);
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         //判断请求返回是否为200,不是的话则返回报错信息
         if (!jsonObject.get("code").equals(200)) {

+ 4 - 6
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -101,6 +101,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     private final ApiUtils apiUtils;
     private final LoginUtils loginUtils;
     private final SecurityUtils securityUtils;
+    private final RequestService requestService;
 
     public Project getProjectByName(String name) {
         LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
@@ -125,9 +126,8 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
 
         try {
             //获取所属部门对应信息
-            Map<String, Object> map = new HashMap<>();
-            map.put("departmentId", dataList.stream().map(Project::getDepartmentId).filter(Objects::nonNull).collect(Collectors.toList()));
-            String jsonObject = apiUtils.invokeApi(new JSONObject(map), "/permission/api/system/getDepartmentById", "post", "data");
+
+            String jsonObject =  requestService.getDepartmentFromPCS(dataList);
             JSONArray jsonArray1 = JSON.parseArray(jsonObject);
             List<ProjectVO.Department> departmentList = jsonArray1.toJavaList(ProjectVO.Department.class);
             for (Project project : dataList) {
@@ -141,9 +141,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
             }
 
             //获取专题库负责人对应信息
-            Map<String, Object> map1 = new HashMap<>();
-            map1.put("personnelId", dataList.stream().map(Project::getPersonnelId).collect(Collectors.toList()));
-            String jsonObject1 = apiUtils.invokeApi(new JSONObject(map1), "/permission/api/system/getPersonnelById", "post", "data");
+            String jsonObject1 = requestService.getPersonnelFromPCS(dataList);
             JSONArray jsonArray = JSON.parseArray(jsonObject1);
             List<ProjectVO.Personnel> personnelList = jsonArray.toJavaList(ProjectVO.Personnel.class);
             for (Project project : dataList) {

+ 125 - 0
PAS/src/main/java/cn/cslg/pas/service/RequestService.java

@@ -0,0 +1,125 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.model.vo.UserVO;
+import cn.cslg.pas.common.utils.ApiUtils;
+import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.pas.domain.Client;
+import cn.cslg.pas.domain.Project;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import lombok.RequiredArgsConstructor;
+import okhttp3.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class RequestService {
+    @Value("${authorUrl}")
+    private String url;
+    private final ApiUtils apiUtils;
+    public static final MediaType JSON1 = MediaType.parse("application/json; charset=utf-8");
+    private final ProjectService projectService;
+    private  final  ClientService clientService;
+     //从权限系统查询专题库负责人信息
+    public String getDepartmentFromPCS(List<Project> dataList) throws IOException {
+        //获取专题库负责人对应信息
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("departmentId", dataList.stream().map(Project::getDepartmentId).filter(Objects::nonNull).collect(Collectors.toList()));
+     return  apiUtils.invokeApi(new JSONObject(map1), "/permission/api/system/getDepartmentById", "post", "data");
+    }
+
+    //从权限系统获取专题库负责人对应信息
+    public String getPersonnelFromPCS(List<Project> dataList) throws IOException {
+        Map<String, Object> map1 = new HashMap<>();
+        map1.put("personnelId", dataList.stream().map(Project::getPersonnelId).collect(Collectors.toList()));
+        return apiUtils.invokeApi(new JSONObject(map1), "/permission/api/system/getPersonnelById", "post", "data");
+    }
+    //从权限系统获取验证码
+    public String getverifyCodeFromPCS() throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(url + "/permission/api/admin/verifyCode")
+                .get()
+                .build();
+       return okHttpClient.newCall(request).execute().body().string();
+    }
+
+    //从权限系统登录
+    public String LoginFromPCS(String username, String password, String code, String uuid) throws IOException {
+        Map<String, Object> map = new HashMap<>();
+        map.put("code", code);
+        map.put("uuid", uuid);
+        map.put("username", username);
+        map.put("password", password);
+        JSONObject json = new JSONObject(map);
+        RequestBody a = RequestBody.create(JSON1, String.valueOf(json));
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(url + "/permission/api/admin/login")
+                .post(a)
+                .build();
+        return  okHttpClient.newCall(request).execute().body().string();
+    }
+    //从权限系统获得租户信息
+    public String getTenantMessageFromPCS(UserVO params) throws IOException {
+        //查询数据规则
+        //设定formdata类型参数
+        Project project = projectService.getProjectById(params.getProjectId());
+        int tentId = project.getTenantId();
+        List<Client> clients = clientService.getClientBytenant(tentId);
+        List<String> tenantNames = new ArrayList<>();
+        clients.forEach(item->{ tenantNames.add(item.getName());});
+        String names = JSON.toJSONString(tenantNames);
+        String name ="";
+        name = params.getName()==null? name:params.getName();
+        RequestBody requestBody = new FormBody.Builder()
+                .add("tenantId", tentId+"" )
+                .add("tenantNames",names)
+                .add("tenantName",name)
+                .add("current",params.getCurrent().toString())
+                .add("size",params.getSize().toString())
+                .build();
+        //建立连接
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(url + "/permission/api/system/getTenantMessage")
+                .post(requestBody)
+                .addHeader("Cookie", LoginUtils.getToken())
+                .build();
+        //获得请求返回
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+    //从权限系统获得租户信息
+    public String getPersonnelMessageFromPCS(UserVO params) throws IOException {
+        //查询数据规则
+        //设定formdata类型参数
+        List<Client> clients = clientService.getClientBytenant(params.getTenantId());
+        List<String> tenantNames = new ArrayList<>();
+        clients.forEach(item->{ tenantNames.add(item.getName());});
+        String name ="";
+        name = params.getName()==null? name:params.getName();
+        RequestBody requestBody = new FormBody.Builder()
+                .add("tenantId", params.getTenantId()+"" )
+                .add("personnelName",name)
+                .add("current",params.getCurrent().toString())
+                .add("size",params.getSize().toString())
+                .build();
+        //建立连接
+        OkHttpClient okHttpClient = new OkHttpClient();
+        Request request = new Request.Builder()
+                .url(url + "/permission/api/system/getPersonnelMessage")
+                .post(requestBody)
+                .addHeader("Cookie", LoginUtils.getToken())
+                .build();
+        //获得请求返回
+        String resBody = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+
+        return resBody;
+    }
+}

+ 3 - 52
PAS/src/main/java/cn/cslg/pas/service/UserService.java

@@ -48,11 +48,10 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class UserService extends ServiceImpl<UserMapper, User> {
 
-    private final DepartmentService departmentService;
     private final CacheUtils cacheUtils;
-    private final ProjectUserService projectUserService;
     private final ProjectService projectService;
     private  final  ClientService clientService;
+    private  final  RequestService requestService;
     @Value("${authorUrl}")
     private String url;
 
@@ -79,60 +78,12 @@ public class UserService extends ServiceImpl<UserMapper, User> {
     }
 
     public String getPageList(UserVO params) throws IOException {
-        //查询数据规则
-        //设定formdata类型参数
-      Project project = projectService.getProjectById(params.getProjectId());
-         int tentId = project.getTenantId();
-         List<Client> clients = clientService.getClientBytenant(tentId);
-         List<String> tenantNames = new ArrayList<>();
-         clients.forEach(item->{ tenantNames.add(item.getName());});
-       String names = JSON.toJSONString (tenantNames);
-       String name ="";
-       name = params.getName()==null? name:params.getName();
-        RequestBody requestBody = new FormBody.Builder()
-                .add("tenantId", tentId+"" )
-                .add("tenantNames",names)
-                .add("tenantName",name)
-                .add("current",params.getCurrent().toString())
-                .add("size",params.getSize().toString())
-                .build();
-        //建立连接
-        OkHttpClient okHttpClient = new OkHttpClient();
-        Request request = new Request.Builder()
-                .url(url + "/permission/api/system/getTenantMessage")
-                .post(requestBody)
-                .addHeader("Cookie", LoginUtils.getToken())
-                .build();
-        //获得请求返回
-        String resBody = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-
+        String resBody = requestService.getTenantMessageFromPCS(params);
 return resBody;
 
     }
     public String getPersonnelList(UserVO params) throws IOException {
-        //查询数据规则
-        //设定formdata类型参数
-        List<Client> clients = clientService.getClientBytenant(params.getTenantId());
-        List<String> tenantNames = new ArrayList<>();
-        clients.forEach(item->{ tenantNames.add(item.getName());});
-        String name ="";
-        name = params.getName()==null? name:params.getName();
-        RequestBody requestBody = new FormBody.Builder()
-                .add("tenantId", params.getTenantId()+"" )
-                .add("personnelName",name)
-                .add("current",params.getCurrent().toString())
-                .add("size",params.getSize().toString())
-                .build();
-        //建立连接
-        OkHttpClient okHttpClient = new OkHttpClient();
-        Request request = new Request.Builder()
-                .url(url + "/permission/api/system/getPersonneltMessage")
-                .post(requestBody)
-                .addHeader("Cookie", LoginUtils.getToken())
-                .build();
-        //获得请求返回
-        String resBody = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-
+        String resBody =requestService.getPersonnelMessageFromPCS(params);
         return resBody;
     }