فهرست منبع

2022-8-29 更改专题库

沈永艺 3 سال پیش
والد
کامیت
6baad3cca5

+ 6 - 7
PAS/src/main/java/cn/cslg/pas/common/config/SaTokenConfigure.java

@@ -10,9 +10,9 @@ import cn.dev33.satoken.stp.StpUtil;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
-//@Configuration
-//public class SaTokenConfigure {
-//
+@Configuration
+public class SaTokenConfigure {
+
 //    @Bean
 //    public SaServletFilter getSaServletFilter() {
 //        return new SaServletFilter()
@@ -25,12 +25,11 @@ import org.springframework.context.annotation.Configuration;
 //                            Constants.API_VERSION_V2 + "/oauth2/**",
 //                            Constants.API_VERSION_V2 + "/admin/**",
 //                            Constants.API_VERSION_V2 + "/common/download",
-//                            Constants.API_VERSION_V2 + "/common/export",
-//                            Constants.API_VERSION_V2 + "/project/**"
+//                            Constants.API_VERSION_V2 + "/common/export"
 //                    ).check(StpUtil::checkLogin);
 //                    SaRouter.match(Constants.API_VERSION_V2 + "/admin/**", Constants.API_VERSION_V2 + "/admin/login", StpAdminUtil::checkLogin);
 //                })
 //                .setError(e -> Response.error(ResponseEnum.UNAUTHORIZED));
 //    }
-//
-//}
+
+}

+ 109 - 0
PAS/src/main/java/cn/cslg/pas/common/model/PersonnelVO.java

@@ -0,0 +1,109 @@
+package cn.cslg.pas.common.model;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author 沈永艺
+ * @date 2022-8-4
+ * @description 人员类 前台对应实体
+ */
+
+@Data
+@Accessors(chain = true)
+public class PersonnelVO {
+    /**
+     * ID
+     */
+    private Integer id;
+
+    /**
+     * Front:姓名
+     * Back:人员名称
+     */
+    private String name;
+
+    /**
+     * Front:性别
+     * Back:人员性别
+     */
+    private Integer gender;
+
+    /**
+     * Front:邮箱
+     * Back:人员邮箱
+     */
+    private String email;
+
+    /**
+     * Front:联系方式
+     * Back:人员联系电话
+     */
+    private String mobile;
+
+    /**
+     * Front:所属租户
+     * Back:租户ID
+     */
+    private Integer tenant;
+
+    /**
+     * Front:状态
+     * Back:人员账号状态(1启用0停用)
+     */
+    private Integer state;
+
+    /**
+     * Front:账号
+     * Back:人员账号
+     */
+    private String username;
+
+    /**
+     * Front:密码
+     * Back:人员密码
+     */
+    private String password;
+
+    /**
+     * Front:备注
+     * Back:人员描述
+     */
+    private String remark;
+
+    /**
+     * Front:QQ号
+     * Back:人员QQ号
+     */
+    private String qqNumber;
+
+    /**
+     * Front:微信号
+     * Back:人员微信号
+     */
+    private String wechat;
+
+    /**
+     * Front:钉钉号
+     * Back:人员钉钉号
+     */
+    private String nail;
+
+    /**
+     * Front:
+     * Back:租户名称
+     */
+    private String tenantName;
+
+    /**
+     * Front:
+     * Back:租户ID
+     */
+    private Integer tenantId;
+
+    private String token;
+
+}

+ 42 - 0
PAS/src/main/java/cn/cslg/pas/common/utils/ApiUtils.java

@@ -0,0 +1,42 @@
+package cn.cslg.pas.common.utils;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.Objects;
+
+@Component
+public class ApiUtils {
+    @Value("${authorUrl}")
+    private String url;
+    public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
+
+    public JSONArray invokeApi(JSONObject params, String api, String type, String field) throws IOException {
+        RequestBody postParams = RequestBody.create(JSON, String.valueOf(params));
+        OkHttpClient okHttpClient = new OkHttpClient();
+        String resBody = null;
+        if (type.equals("post")) {
+            Request request = new Request.Builder()
+                    .url(url + api)
+                    .post(postParams)
+                    .build();
+            resBody = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+        } else if (type.equals("get")) {
+            Request request = new Request.Builder()
+                    .url(url + api)
+                    .get()
+                    .build();
+            resBody = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+        }
+
+       JSONObject jsonObject = JSONObject.parseObject(resBody,JSONObject.class);
+        return (JSONArray) jsonObject.get(field);
+    }
+}

+ 10 - 0
PAS/src/main/java/cn/cslg/pas/common/utils/CacheUtils.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.common.utils;
 
 import cn.cslg.pas.common.core.base.RedisConf;
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.dto.ProjectFieldOrderDTO;
 import cn.cslg.pas.domain.PatentField;
 import cn.cslg.pas.domain.User;
@@ -48,6 +49,15 @@ public class CacheUtils {
         }
     }
 
+    public PersonnelVO getLoginUserPersonnel(Object userId) {
+        String json = redisUtil.get(RedisConf.LOGIN_USER + RedisConf.SYMBOL_COLON + userId);
+        if (StringUtils.isEmpty(json)) {
+            throw new NotLoginException("无数据", "user", "");
+        } else {
+            return JsonUtils.jsonToPojo(json, PersonnelVO.class);
+        }
+    }
+
     public String getSelectPatentIds(String patentKey) {
         return redisUtil.get(RedisConf.SELECT_PATENT + RedisConf.SYMBOL_COLON + patentKey);
     }

+ 5 - 4
PAS/src/main/java/cn/cslg/pas/controller/ProjectController.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.controller;
 import cn.cslg.pas.common.core.annotation.Permission;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.exception.PermissionException;
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.vo.*;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.domain.ProjectExport;
@@ -50,10 +51,10 @@ public class ProjectController {
     @PostMapping("add")
     @Operation(summary = "新增专题库")
     public String add(@RequestBody Project project) {
-        User user = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
-        if (user.getUserType().equals(0)) {
-            throw new PermissionException("用户创建专题库拦截");
-        }
+        PersonnelVO user = cacheUtils.getLoginUserPersonnel(StpUtil.getLoginIdAsInt());
+//        if (user.getUserType().equals(0)) {
+//            throw new PermissionException("用户创建专题库拦截");
+//        }
         return projectService.add(project);
     }
 

+ 9 - 0
PAS/src/main/java/cn/cslg/pas/domain/Project.java

@@ -97,6 +97,12 @@ public class Project extends BaseEntity<Project> {
     private String remark;
 
     /**
+     * 部门ID
+     */
+    @TableField("department_id")
+    private Integer departmentId;
+
+    /**
      * 创建时间
      */
     private Integer createTime;
@@ -121,4 +127,7 @@ public class Project extends BaseEntity<Project> {
 
     @TableField(exist = false)
     private Integer reportNum;
+
+    @TableField(exist = false)
+    private String departmentName;
 }

+ 21 - 25
PAS/src/main/java/cn/cslg/pas/service/OAuth2Service.java

@@ -2,24 +2,19 @@ package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.base.RedisConf;
-import cn.cslg.pas.common.utils.RedisUtil;
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.utils.Response;
-import cn.cslg.pas.common.utils.ResponseEnum;
-import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.domain.Project;
 import cn.cslg.pas.domain.ProjectUser;
 import cn.cslg.pas.domain.User;
-import cn.cslg.pas.common.utils.CacheUtils;
-import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.captcha.CaptchaUtil;
 import cn.hutool.captcha.CircleCaptcha;
 import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.lang.UUID;
 import cn.hutool.crypto.SecureUtil;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import okhttp3.*;
 import org.springframework.beans.factory.annotation.Value;
@@ -43,7 +38,7 @@ public class OAuth2Service {
     private final ProjectUserService projectUserService;
     private final ProjectService projectService;
     @Value("${authorUrl}")
-    private  String url;
+    private String url;
     public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
 
     public User getUserinfo() {
@@ -125,17 +120,17 @@ public class OAuth2Service {
         OkHttpClient okHttpClient = new OkHttpClient();
 
         Request request = new Request.Builder()
-                .url(url+"/permission/api/admin/verifyCode")
+                .url(url + "/permission/api/admin/verifyCode")
                 .get()
                 .build();
         String resBody = okHttpClient.newCall(request).execute().body().string();
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         JSONObject data = (JSONObject) jsonObject.get("data");
-        Object captcha =data.get("captcha");
-        Object uuid   = data.get("uuid");
+        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("captcha", captcha.toString());
         result.put("uuid", uuid.toString());
         result.put("code", code.toString());
         //将验证码存放到Redis里面并设置
@@ -143,30 +138,31 @@ public class OAuth2Service {
         //KEY值格式为: 验证码:UUID  VALUE值为:验证码生成工具所生成的验证码
         return Response.success(result);
     }
+
     /**
-     * @param
      * @return 登录成功的信息
      * @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));
+    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")
+                .url(url + "/permission/api/admin/login")
                 .post(a)
                 .build();
         String resBody = okHttpClient.newCall(request).execute().body().string();
-       JSONObject jsonObject =JSONObject.parseObject(resBody);
-        String token =jsonObject.get("data").toString();
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        String token = jsonObject.get("data").toString();
+        PersonnelVO personnelVO = JsonUtils.jsonToPojo(token, PersonnelVO.class);
 
 
-        return Response.success(true);
+        return Response.success(personnelVO.getToken());
     }
 
     public String changePwd(String oldPassword, String newPassword) {

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentFieldService.java

@@ -231,6 +231,7 @@ public class PatentFieldService {
             add(new PatentField("caseDate", "委案日", Constants.SYSTEM_FIELD_PROJECT, 1));
             add(new PatentField("createName", "创建人", Constants.SYSTEM_FIELD_PROJECT, 1));
             add(new PatentField("createTime", "创建时间", Constants.SYSTEM_FIELD_PROJECT, 1));
+            add(new PatentField("departmentId", "所属部门", Constants.SYSTEM_FIELD_PROJECT, 1));
         }};
         return dataList;
     }

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

@@ -2,6 +2,7 @@ package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.core.exception.CustomException;
+import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.dto.TaskWebSocketDTO;
 import cn.cslg.pas.common.model.dto.UploadFileDTO;
 import cn.cslg.pas.common.model.vo.*;
@@ -25,6 +26,8 @@ import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -99,6 +102,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     private final ProjectService projectService;
     private final PatentInventorMergeService patentInventorMergeService;
     private final UserService userService;
+    private final ApiUtils apiUtils;
 
     public Project getProjectByName(String name) {
         LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
@@ -108,7 +112,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     }
 
     public IPage<Project> getPageList(ProjectVO params) {
-        User user = cacheUtils.getLoginUser(3);
+        PersonnelVO user = cacheUtils.getLoginUserPersonnel(3);
         List<Integer> projectIds = new ArrayList<Integer>() {{
             add(-1);
         }};
@@ -119,9 +123,19 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
             projectIds.addAll(projectService.list().stream().map(Project::getId).collect(Collectors.toList()));
         }
         params.setProIds(projectIds);
-      params.setCreateBy(3);
+        params.setCreateBy(3);
         IPage<Project> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
         List<Project> dataList = pageList.getRecords();
+        Map<String, Object> map = new HashMap<>();
+        map.put("departmentId", dataList.stream().map(Project::getDepartmentId).collect(Collectors.toList()));
+        try {
+            JSONArray jsonObject = apiUtils.invokeApi(new JSONObject(map), "/permission/api/system/getDepartmentById", "post", "data");
+            for (int i = 0; i < dataList.size(); i++) {
+                dataList.get(i).setDepartmentName((String) jsonObject.get(i));
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
         this.setDataList(dataList);
         pageList.setRecords(dataList);
         return pageList;
@@ -168,12 +182,12 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     }
 
     public List<Project> getAllProjectByMySelf() {
-        User user = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+        User user = cacheUtils.getLoginUser(3);
         LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
         List<Integer> proIds = new ArrayList<>();
         if (!user.getUsername().equals(Constants.ADMIN_USERNAME)) {
             proIds.addAll(projectUserService.getProIdByUserId(user.getId()));
-            proIds.addAll(this.getProjectByCreateId(StpUtil.getLoginIdAsInt()).stream().map(Project::getId).collect(Collectors.toList()));
+            proIds.addAll(this.getProjectByCreateId(3).stream().map(Project::getId).collect(Collectors.toList()));
             if (proIds.size() != 0) {
                 queryWrapper.in(Project::getId, proIds);
             } else {

+ 1 - 1
PAS/src/main/resources/mapper/ProjectMapper.xml

@@ -6,7 +6,7 @@
         select a.id, a.`name`, a.creat_id as create_by, a.technical_theme,
         a.innerfile as inner_file, a.`update`, a.`status`, a.contract_no,
         a.`case` as case_date, a.update_time, a.sort, a.clientid as client_id,
-        a.scenarioid as scenario, a.typeid as type, a.remark, a.create_time,
+        a.scenarioid as scenario, a.typeid as type, a.remark, a.create_time,a.department_id,
         b.`name` as client_name, u.`name` as create_name,
         (select count(*) from os_thematic_file where zid = a.id and type = 1) as report_num
         from os_thematic a