From 022b17044ab6bb284fd6313da91d1d1dfb2d5079 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期一, 03 六月 2024 13:20:42 +0800
Subject: [PATCH] update
---
assess-admin/src/main/resources/db/migration/V20240409001_change_user.sql | 4
assess-admin/src/main/resources/application-dev.yml | 2
assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java | 4
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java | 2
assess-admin/src/main/resources/application-pro.yml | 6
assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java | 2
assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml | 8
assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java | 13 +
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java | 7
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java | 31 ++-
assess-admin/src/main/resources/db/migration/V20240408002_change_agency.sql | 2
assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java | 12
assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java | 4
assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java | 3
assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java | 12 +
assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java | 10
assess-common/src/main/java/com/gkhy/assess/common/domain/JwtToken.java | 4
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java | 12 +
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java | 4
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java | 5
assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java | 2
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java | 5
assess-admin/src/main/resources/db/migration/V20240408001_change_access_file.sql | 2
assess-admin/src/test/java/com/gkhy/admin/RegionTest.java | 10
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java | 2
assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java | 2
assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java | 4
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java | 4
assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java | 4
assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java | 15 +
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 83 ++++---
assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java | 4
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java | 26 +
pom.xml | 2
assess-framework/src/main/java/com/gkhy/assess/framework/interceptor/SameUrlDataInterceptor.java | 2
assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java | 2
assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java | 35 ++
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java | 22 +-
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysConfigServiceImpl.java | 2
assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java | 13 +
assess-system/src/main/resources/mapper/SysUserMapper.xml | 6
assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java | 9
assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml | 7
assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java | 2
assess-common/src/main/java/com/gkhy/assess/common/utils/RedisUtils.java | 2
assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java | 8
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java | 18 +
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java | 108 ++++++----
assess-system/src/main/resources/mapper/AssProjectMapper.xml | 4
assess-system/src/main/resources/mapper/AssInvestigationMapper.xml | 2
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java | 2
assess-system/src/main/resources/mapper/SysAgencyMapper.xml | 3
assess-common/src/main/java/com/gkhy/assess/common/domain/CustomerUsernamePasswordToken.java | 25 ++
54 files changed, 401 insertions(+), 185 deletions(-)
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
index 7d836a1..42e8cf7 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppAccessoryFileController.java
@@ -44,10 +44,11 @@
@GetMapping("/getAccessoryFileByProjectId")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "query", name = "processId", dataType = "long", required = true, value = "过程id"),
@ApiImplicitParam(paramType = "query", name = "moduleType", dataType = "int", required = true, value = "上传模块code")
})
- public CommonResult getAccessoryFileByProjectId(Long projectId,Integer moduleType){
- return CommonResult.success(assAccessoryFileService.getAccessoryFileByProjectId(projectId,moduleType));
+ public CommonResult getAccessoryFileByProjectId(Long projectId,Integer moduleType,@RequestParam(required = false) Long processId){
+ return CommonResult.success(assAccessoryFileService.getAccessoryFileByProjectId(projectId,processId,moduleType));
}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java
index 996883e..5266744 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/app/AppInvestigationController.java
@@ -35,13 +35,19 @@
return CommonResult.success(investigationService.getInvestigationByProjectId(projectId));
}
+ @ApiOperation(value = "根据id获取现场勘验记录表详情")
+ @GetMapping("/detail/{investigationId}")
+ public CommonResult investigationDetail(@PathVariable(value = "investigationId") Long investigationId){
+ return CommonResult.success(investigationService.getInvestigationById(investigationId));
+ }
+
@RepeatSubmit
@ApiOperation(value = "创建现场勘验记录表")
@PostMapping("/add")
public CommonResult addInvestigation(@Validated @RequestBody AssInvestigation investigation){
//app端只能保存数据,不能改变项目流程状态
investigation.setState(ApproveStatusEnum.TEMPORARY.getCode());
- return CommonResult.success(investigationService.addInvestigation(investigation, RequestSourceEnum.APP.getCode()));
+ return CommonResult.success(investigationService.addInvestigation(investigation));
}
@RepeatSubmit
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java
index be5100b..63580c4 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssAccessoryFileController.java
@@ -44,10 +44,11 @@
@GetMapping("/getAccessoryFileByProjectId")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ @ApiImplicitParam(paramType = "query", name = "processId", dataType = "long", required = true, value = "过程id"),
@ApiImplicitParam(paramType = "query", name = "moduleType", dataType = "int", required = true, value = "上传模块code")
})
- public CommonResult getAccessoryFileByProjectId(Long projectId,Integer moduleType){
- return CommonResult.success(assAccessoryFileService.getAccessoryFileByProjectId(projectId,moduleType));
+ public CommonResult getAccessoryFileByProjectId(Long projectId,Integer moduleType,@RequestParam(required = false) Long processId){
+ return CommonResult.success(assAccessoryFileService.getAccessoryFileByProjectId(projectId,processId,moduleType));
}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java
index 8fadb5b..2d644a8 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/AssInvestigationController.java
@@ -7,10 +7,14 @@
import com.gkhy.assess.system.domain.AssInvestigation;
import com.gkhy.assess.system.service.AssInvestigationService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
/**
* <p>
@@ -31,7 +35,7 @@
@ApiOperation(value = "根据id获取现场勘验记录表详情")
@GetMapping("/detail/{investigationId}")
public CommonResult investigationDetail(@PathVariable(value = "investigationId") Long investigationId){
- return CommonResult.success(investigationService.getInvestigationByProjectId(investigationId));
+ return CommonResult.success(investigationService.getInvestigationById(investigationId));
}
@ApiOperation(value = "根据项目id获取现场勘验记录表详情")
@@ -44,7 +48,18 @@
@ApiOperation(value = "创建现场勘验记录表")
@PostMapping("/add")
public CommonResult addInvestigation(@Validated @RequestBody AssInvestigation investigation){
- return CommonResult.success(investigationService.addInvestigation(investigation, RequestSourceEnum.WEB.getCode()));
+ return CommonResult.success(investigationService.addInvestigation(investigation));
+ }
+
+ @RepeatSubmit
+ @ApiOperation(value = "现场勘验项目状态流转")
+ @PostMapping("/doProcess")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "body", name = "projectId", dataType = "long", required = true, value = "项目id"),
+ })
+ public CommonResult doProcess(@RequestBody Map map){
+ investigationService.doInvestigationProcess(map);
+ return CommonResult.success();
}
@RepeatSubmit
@@ -54,13 +69,6 @@
return CommonResult.success(investigationService.editInvestigation(investigation));
}
-// @RepeatSubmit
-// @ApiOperation(value = "现场勘验记录项目状态流转")
-// @PostMapping("/doProcess")
-// public CommonResult doProcess(@RequestBody Long projectId){
-// investigationService.doInvestigationProcess(projectId);
-// return CommonResult.success();
-// }
}
diff --git a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java
index bc8d9a2..b1482e3 100644
--- a/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java
+++ b/assess-admin/src/main/java/com/gkhy/assess/admin/controller/web/SysAgencyController.java
@@ -32,7 +32,7 @@
return CommonResult.success(agencyService.agencyList(agency));
}
- @RequiresPermissions("system:assess:monitor")
+ @RequiresPermissions(value={"system:assess:monitor","system:assess:agency"},logical = Logical.OR)
@ApiOperation(value = "根据id获取机构详情")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "agencyId", dataType = "int", required = true, value = "机构id")
diff --git a/assess-admin/src/main/resources/application-dev.yml b/assess-admin/src/main/resources/application-dev.yml
index cdb2cd3..4a7ca0a 100644
--- a/assess-admin/src/main/resources/application-dev.yml
+++ b/assess-admin/src/main/resources/application-dev.yml
@@ -73,7 +73,7 @@
level:
root: INFO
org:
- com.nms.swspkmas_standalone: DEBUG
+ com.gkhy.assess: DEBUG
swagger:
diff --git a/assess-admin/src/main/resources/application-pro.yml b/assess-admin/src/main/resources/application-pro.yml
index 6997820..5058228 100644
--- a/assess-admin/src/main/resources/application-pro.yml
+++ b/assess-admin/src/main/resources/application-pro.yml
@@ -5,7 +5,7 @@
druid:
# 主库数据源
master:
- url: jdbc:mysql://172.17.254.237:7006/smart_assess?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
+ url: jdbc:mysql://127.0.0.1:7006/smart_assess?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password: 2farwL3yPXfbH2AP
# 从库数据源
@@ -48,7 +48,7 @@
database: 0
host: 127.0.0.1
port: 6379
- password: gkhy@202306
+ password: akj78avauba789a
# mybatis-plus相关配置
@@ -75,7 +75,7 @@
level:
root: INFO
org:
- com.nms.swspkmas_standalone: INFO
+ com.gkhy.assess: INFO
swagger:
diff --git a/assess-admin/src/main/resources/db/migration/V20240408001_change_access_file.sql b/assess-admin/src/main/resources/db/migration/V20240408001_change_access_file.sql
new file mode 100644
index 0000000..5a617c8
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240408001_change_access_file.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `smart_assess`.`ass_accessory_file`
+ADD COLUMN `process_id` bigint NULL COMMENT '项目过程id';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240408002_change_agency.sql b/assess-admin/src/main/resources/db/migration/V20240408002_change_agency.sql
new file mode 100644
index 0000000..06b3cd2
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240408002_change_agency.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `smart_assess`.`sys_agency`
+ADD COLUMN `cert_path` varchar(60) NULL COMMENT '资质证书图片路径';
\ No newline at end of file
diff --git a/assess-admin/src/main/resources/db/migration/V20240409001_change_user.sql b/assess-admin/src/main/resources/db/migration/V20240409001_change_user.sql
new file mode 100644
index 0000000..7bacb9f
--- /dev/null
+++ b/assess-admin/src/main/resources/db/migration/V20240409001_change_user.sql
@@ -0,0 +1,4 @@
+ALTER TABLE `smart_assess`.`sys_user`
+MODIFY COLUMN `certificate_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '证书编号';
+ALTER TABLE `smart_assess`.`sys_user`
+MODIFY COLUMN `level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '评价师等级';
\ No newline at end of file
diff --git a/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java b/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java
index 32cc777..2654ebc 100644
--- a/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java
+++ b/assess-admin/src/test/java/com/gkhy/admin/RegionTest.java
@@ -105,8 +105,14 @@
}
}
+ }
-
-
+ @Test
+ public void testLog(){
+ try {
+ int i = 1 / 0;
+ }catch (Exception e){
+ log.error("error=",e);
+ }
}
}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/CustomerUsernamePasswordToken.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/CustomerUsernamePasswordToken.java
new file mode 100644
index 0000000..c632843
--- /dev/null
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/CustomerUsernamePasswordToken.java
@@ -0,0 +1,25 @@
+package com.gkhy.assess.common.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.shiro.authc.UsernamePasswordToken;
+
+public class CustomerUsernamePasswordToken extends UsernamePasswordToken {
+ @ApiModelProperty("用户身份(0代表监管用户,1代表机构用户,2代表专家用户)")
+ private Integer identity;
+
+ public CustomerUsernamePasswordToken() {
+ }
+
+ public CustomerUsernamePasswordToken(String username, String password, Integer identity) {
+ super(username, password);
+ this.identity = identity;
+ }
+
+ public Integer getIdentity() {
+ return identity;
+ }
+
+ public void setIdentity(Integer identity) {
+ this.identity = identity;
+ }
+}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/JwtToken.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/JwtToken.java
similarity index 76%
rename from assess-framework/src/main/java/com/gkhy/assess/framework/shiro/JwtToken.java
rename to assess-common/src/main/java/com/gkhy/assess/common/domain/JwtToken.java
index a8d733f..b4cc8af 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/JwtToken.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/JwtToken.java
@@ -1,8 +1,8 @@
-package com.gkhy.assess.framework.shiro;
+package com.gkhy.assess.common.domain;
import org.apache.shiro.authc.UsernamePasswordToken;
-public class JwtToken extends UsernamePasswordToken {
+public class JwtToken extends CustomerUsernamePasswordToken {
private String jwtToken;
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java
index 3f71537..8d8860f 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/AccountVO.java
@@ -42,6 +42,6 @@
@ApiModelProperty("用户身份(0代表监管用户,1代表机构用户,2代表专家用户)")
private Integer identity;
- @ApiModelProperty("用户人脸数据(app使用)")
- private Object userFace;
+ @ApiModelProperty("用户人脸图片地址(app使用),前端访问图片链接格式:http://ip:port/api/文件保存相对路径")
+ private String idPhoto;
}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java
index 7c0ef26..efc5857 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/domain/vo/LoginBody.java
@@ -21,4 +21,6 @@
private String code;
@ApiModelProperty(value = "验证码唯一标识",required = false)
private String uuid;
+ @ApiModelProperty("用户身份(0代表监管用户,1代表机构用户,2代表专家用户)")
+ private Integer identity;
}
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java b/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java
index 096c6e8..9e004df 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/enums/AttachTypeEnum.java
@@ -6,7 +6,7 @@
*/
public enum AttachTypeEnum
{
- SOCIAL(1, "社保"), MEDICAL(2, "医保"),SALARY(3, "工资单");
+ SOCIAL(1, "社保"), MEDICAL(2, "医保"),SALARY(3, "工资单"),AGENCY_CERT(4, "机构资质证书");
private final Integer code;
private final String info;
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java b/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java
index 0447a9a..dd9aae4 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/utils/JwtTokenUtil.java
@@ -6,10 +6,12 @@
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTDecodeException;
+import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.common.exception.ApiException;
+import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.slf4j.Logger;
@@ -21,6 +23,8 @@
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
/**
* JwtToken生成的工具类
@@ -59,10 +63,11 @@
* @param secret 用户密码
* @return
*/
- public static boolean verify(String token,String username,String secret){
+ public static boolean verify(String token,String username,String secret,Integer identity){
try {
Algorithm algorithm = Algorithm.HMAC256(secret);
- JWTVerifier verifier = JWT.require(algorithm).withClaim("username", username).build();
+ JWTVerifier verifier = JWT.require(algorithm).withClaim("username", username)
+ .withClaim("identity",identity).build();
DecodedJWT jwt = verifier.verify(token);
return true;
}catch (Exception e){
@@ -71,11 +76,12 @@
}
- public static boolean isNeedUpdate(String token,String username,String secret){
+ public static boolean isNeedUpdate(String token, String username, String secret,Integer identity){
Date expertsAt =null;
try {
Algorithm algorithm = Algorithm.HMAC256(secret);
- JWTVerifier verifier = JWT.require(algorithm).withClaim("username", username).build();
+ JWTVerifier verifier = JWT.require(algorithm).withClaim("username", username)
+ .withClaim("identity",identity).build();
expertsAt = verifier.verify(token).getExpiresAt();
}catch (Exception e){
throw new ApiException("token非法无效");
@@ -99,15 +105,32 @@
}
/**
+ * 获取token中的信息 无需secret解密也能获得
+ * @param token
+ * @return
+ */
+ public static Integer getIdentity(String token){
+ try {
+ DecodedJWT jwt = JWT.decode(token);
+ return jwt.getClaim("identity").asInt();
+ }catch (JWTDecodeException e){
+ return null;
+ }
+ }
+
+
+
+ /**
* 生成签名
* @param username
* @param secret
* @return
*/
- public static String sign(String username,String secret){
+ public static String sign(String username,String secret,Integer identity){
Date date=new Date(System.currentTimeMillis()+EXPIRATION*1000);
Algorithm algorithm=Algorithm.HMAC256(secret);
- return JWT.create().withClaim("username",username).withExpiresAt(date).sign(algorithm);
+ return JWT.create().withClaim("username",username)
+ .withClaim("identity",identity).withExpiresAt(date).sign(algorithm);
}
/**
diff --git a/assess-common/src/main/java/com/gkhy/assess/common/utils/RedisUtils.java b/assess-common/src/main/java/com/gkhy/assess/common/utils/RedisUtils.java
index e0e3917..bb0e003 100644
--- a/assess-common/src/main/java/com/gkhy/assess/common/utils/RedisUtils.java
+++ b/assess-common/src/main/java/com/gkhy/assess/common/utils/RedisUtils.java
@@ -34,6 +34,7 @@
@Value("${spring.profiles.active}")
public String activeName;
+
private static final Long RELEASE_SUCCESS = 1L;
private static final String LOCK_SUCCESS = "OK";
private static final String SET_IF_NOT_EXIST = "NX";
@@ -777,4 +778,5 @@
}
+
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java b/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java
index d517027..5bc2a53 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/config/ApplicationConfig.java
@@ -53,7 +53,7 @@
builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
//接收时间数据反序列化
builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
- builder.timeZone(TimeZone.getDefault());
+ builder.timeZone(TimeZone.getTimeZone("UTC+8"));
};
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java b/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java
index 6d6083b..a92ec25 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/exception/GlobalExceptionHandler.java
@@ -4,6 +4,7 @@
import com.gkhy.assess.common.exception.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.UnauthorizedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -79,6 +80,16 @@
/**
* 拦截未知的运行时异常
*/
+ @ExceptionHandler(UnauthorizedException.class)
+ public CommonResult handleUnauthorizedException(RuntimeException ex, HttpServletRequest request)
+ {
+ writeExceptionLogFile(ex);
+ return CommonResult.failed("权限不足,无权操作!");
+ }
+
+ /**
+ * 拦截未知的运行时异常
+ */
@ExceptionHandler(RuntimeException.class)
public CommonResult handleRuntimeException(RuntimeException ex, HttpServletRequest request)
{
@@ -105,7 +116,7 @@
if (request!=null) {
url=request.getRequestURI();
}
- log.error("error={}",ex);
+ log.error("error:",ex);
log.error(ex.getMessage()+",url={}",url);
}
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/interceptor/SameUrlDataInterceptor.java b/assess-framework/src/main/java/com/gkhy/assess/framework/interceptor/SameUrlDataInterceptor.java
index 4da74f7..bf2f35c 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/interceptor/SameUrlDataInterceptor.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/interceptor/SameUrlDataInterceptor.java
@@ -59,7 +59,7 @@
String submitKey = StringUtils.trimToEmpty(request.getHeader(JwtTokenUtil.USER_LOGIN_TOKEN));
// 唯一标识(指定key + url + 消息头)
- String cacheRepeatKey = CacheConstant.REPEAT_SUBMIT_KEY + url + submitKey;
+ String cacheRepeatKey = redisUtils.generateKey(CacheConstant.REPEAT_SUBMIT_KEY + url + submitKey);
Object sessionObj = redisUtils.get(cacheRepeatKey);
if (sessionObj != null)
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java
index 5e5e18d..1f19d66 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/filter/JwtFilter.java
@@ -3,9 +3,8 @@
import com.alibaba.fastjson.JSONObject;
import com.gkhy.assess.common.api.CommonResult;
import com.gkhy.assess.common.api.ResultCode;
-import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.JwtTokenUtil;
-import com.gkhy.assess.framework.shiro.JwtToken;
+import com.gkhy.assess.common.domain.JwtToken;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.subject.Subject;
@@ -20,7 +19,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
-import java.util.Date;
@Slf4j
public class JwtFilter extends BasicHttpAuthenticationFilter {
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
index a56af8e..cd24912 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/realm/UserRealm.java
@@ -1,10 +1,10 @@
package com.gkhy.assess.framework.shiro.realm;
+import com.gkhy.assess.common.domain.CustomerUsernamePasswordToken;
import com.gkhy.assess.common.enums.UserIdentityEnum;
-import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.RequestUtil;
import com.gkhy.assess.common.utils.SpringContextUtils;
-import com.gkhy.assess.framework.shiro.JwtToken;
+import com.gkhy.assess.common.domain.JwtToken;
import com.gkhy.assess.framework.shiro.service.SysLoginService;
import com.gkhy.assess.system.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
@@ -66,7 +66,6 @@
if(authenticationToken instanceof JwtToken){
String token= (String) authenticationToken.getCredentials();
if(token==null){
-
log.info("————————身份认证失败——————————IP地址: "+ RequestUtil.getRequestIp(req) +",URL:"+req.getRequestURI());
throw new AuthenticationException("token为空!");
}
@@ -75,10 +74,10 @@
return new SimpleAuthenticationInfo(sysUser,token,this.getName());
}
}else{
- UsernamePasswordToken upToken = (UsernamePasswordToken) authenticationToken;
+ CustomerUsernamePasswordToken upToken = (CustomerUsernamePasswordToken) authenticationToken;
String username = upToken.getUsername();
String password=new String(upToken.getPassword());
- sysUser=sysLoginService.login(username,password);
+ sysUser=sysLoginService.login(username,password,upToken.getIdentity());
if(sysUser!=null){
return new SimpleAuthenticationInfo(sysUser,password,this.getName());
}
diff --git a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java
index ab85786..96d9a40 100644
--- a/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java
+++ b/assess-framework/src/main/java/com/gkhy/assess/framework/shiro/service/SysLoginService.java
@@ -4,7 +4,6 @@
import com.gkhy.assess.common.enums.ApproveStatusEnum;
import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.enums.UserStatusEnum;
-import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.JwtTokenUtil;
import com.gkhy.assess.common.utils.RedisUtils;
import com.gkhy.assess.system.domain.SysUser;
@@ -29,8 +28,8 @@
@Autowired
private HttpServletRequest request;
- public SysUser login(String username, String password) {
- SysUser sysUser=sysUserService.getUserByUsernamePhone(username);
+ public SysUser login(String username, String password,Integer identity) {
+ SysUser sysUser=sysUserService.getUserByUsernamePhone(username,identity);
validUser(sysUser);
passwordService.validate(sysUser,password);
recordLoginInfo(sysUser.getId());
@@ -67,15 +66,16 @@
public SysUser validJwtToken(String jwtToken){
String username= JwtTokenUtil.getUsername(jwtToken);
- if(StringUtils.isEmpty(username)){
+ Integer identity=JwtTokenUtil.getIdentity(jwtToken);
+ if(StringUtils.isEmpty(username)||identity==null){
throw new AuthenticationException("token非法无效!");
}
- SysUser sysUser=sysUserService.getUserByUsernamePhone(username);
+ SysUser sysUser=sysUserService.getUserByUsernamePhone(username,identity);
validUser(sysUser);
- if(!JwtTokenUtil.verify(jwtToken,username,sysUser.getPassword())){
+ if(!JwtTokenUtil.verify(jwtToken,username,sysUser.getPassword(),identity)){
throw new AuthenticationException("token非法无效!");
}
- if(!jwtTokenRefresh(jwtToken,username,sysUser.getPassword())){
+ if(!jwtTokenRefresh(jwtToken,username,sysUser.getPassword(),identity)){
throw new AuthenticationException("Token已失效,请重新登录!");
}
// setRolePermission(sysUser);
@@ -95,14 +95,14 @@
* @param passWord
* @return
*/
- public boolean jwtTokenRefresh(String jwtToken,String username,String passWord){
+ public boolean jwtTokenRefresh(String jwtToken, String username, String passWord, Integer identity){
String tokenKey=redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
- String userKey=redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+username);
+ String userKey=redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+username+"_"+identity);
String cacheToken= (String) redisUtils.get(tokenKey);
if(StringUtils.isNotEmpty(cacheToken)){
// 校验token有效性
- if(!JwtTokenUtil.isNeedUpdate(cacheToken,username,passWord)){
- String newToken=JwtTokenUtil.sign(username,passWord);
+ if(!JwtTokenUtil.isNeedUpdate(cacheToken,username,passWord,identity)){
+ String newToken=JwtTokenUtil.sign(username,passWord,identity);
// 设置超时时间
redisUtils.set(tokenKey,newToken);
redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000);
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java
index 9890066..24c7e2e 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssAccessoryFile.java
@@ -72,4 +72,8 @@
@ApiModelProperty("删除标志(0正常,1删除,默认0)")
@TableField("del_flag")
private Integer delFlag;
+
+ @ApiModelProperty(value = "项目过程id",required = false)
+ @TableField("process_id")
+ private Long processId;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java
index 2126a98..28c791a 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssInvestigation.java
@@ -14,8 +14,10 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
+import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
@@ -85,24 +87,27 @@
@TableField(exist = false)
private List<AssAccessoryFile> assAccessoryFiles;
-
+ @NotNull(message = "企业陪同合照不能为空")
@ApiModelProperty("企业陪同合照列表")
@TableField(exist = false)
- private List<AssAccessoryFile> ccompanyImages;
+ @Size(min = 1,message = "企业陪同合照不能为空")
+ private List<AssAccessoryFile> companyImages;
+ @NotNull(message = "主要装置前的合影照片不能为空")
@ApiModelProperty("主要装置前的合影照片列表")
@TableField(exist = false)
+ @Size(min = 1,message = "主要装置前的合影照片不能为空")
private List<AssAccessoryFile> deviceImages;
+ @NotNull(message = "现场勘验照片不能为空")
@ApiModelProperty("现场勘验照片")
@TableField(exist = false)
+ @Size(min = 1,message = "现场勘验照片不能为空")
private List<AssAccessoryFile> investingationImages;
+
@ApiModelProperty("现场勘验视频")
@TableField(exist = false)
private List<AssAccessoryFile> investingationVideos;
-
-
-
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
index 01fe651..6fca7e2 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/AssProject.java
@@ -194,4 +194,8 @@
@ApiModelProperty("归档确认总人数和已确认人数")
@TableField(exist = false)
private PersonRecognitionVO personRecognition;
+
+ @ApiModelProperty("机构名称")
+ @TableField(exist = false)
+ private String agencyName;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java
index ed2f452..f08252a 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysAgency.java
@@ -12,6 +12,7 @@
import com.gkhy.assess.common.domain.BaseEntity;
import com.gkhy.assess.common.enums.SensitiveTypeEnum;
import com.gkhy.assess.common.validate.AgencyGroup;
+import com.gkhy.assess.common.validate.ExpertGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@@ -129,6 +130,11 @@
@TableField("cert_number")
private String certNumber;
+ @NotNull(message = "资质证书图片路径不能为空")
+ @ApiModelProperty("资质证书图片路径,创建机构时传入")
+ @TableField("cert_path")
+ private String certPath;
+
@NotNull(message = "发证日期不能为空")
@ApiModelProperty(value = "发证日期",required = true)
@@ -177,7 +183,7 @@
private String business;
- @NotBlank(message = "机构信息上报表存放路径不能为空")
+// @NotBlank(message = "机构信息上报表存放路径不能为空")
@ApiModelProperty(value = "机构信息上报表存放路径",required = true)
@TableField("report_path")
private String reportPath;
@@ -203,4 +209,6 @@
@TableField("version")
private Integer version;
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java
index b76074d..3c08c3d 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUser.java
@@ -160,7 +160,7 @@
@TableField("version")
private Integer version;
- @ApiModelProperty("证书编号")
+ @ApiModelProperty("证书编号,多个证书,逗号隔开")
@TableField("certificate_no")
private String certificateNo;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java
index f90bf31..b013c9a 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/domain/SysUserFace.java
@@ -40,7 +40,7 @@
@TableId(value = "id", type = IdType.AUTO)
private Long id;
- @NotBlank(message = "人脸数据不能为空")
+
@ApiModelProperty(value = "人脸数据",required = true)
@TableField("face_base")
private String faceBase;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java
index 775f14c..66e4be9 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssAccessoryFileMapper.java
@@ -23,7 +23,7 @@
* @param moduleType
* @return
*/
- List<AssAccessoryFile> getAccessoryFileByProjectId(@Param("projectId") Long projectId, @Param("moduleType") Integer moduleType);
+ List<AssAccessoryFile> getAccessoryFileByProjectId(@Param("projectId") Long projectId,@Param("processId") Long processId, @Param("moduleType") Integer moduleType);
/**
* 获取数量
@@ -31,7 +31,7 @@
* @param moduleType
* @return
*/
- Integer getAccessoryFileCountByProjectId(@Param("projectId") Long projectId, @Param("moduleType") Integer moduleType);
+ Integer getAccessoryFileCountByProjectId(@Param("projectId") Long projectId, @Param("processId") Long processId,@Param("moduleType") Integer moduleType);
/**
* 根据id删除评估文件
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java
index 8530086..f2221b2 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssFaceRecognitionMapper.java
@@ -31,6 +31,13 @@
List<AssFaceRecognition> getFaceRecognitionByProjectId(Long projectId);
/**
+ *
+ * @param projectId
+ * @return
+ */
+ List<AssFaceRecognition> getSimpleFaceRecognitionByProjectId(Long projectId);
+
+ /**
* 根据id获取签字确认
* @param faceRecognitionId
* @return
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java
index 559ab35..019f94b 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/AssInvestigationMapper.java
@@ -4,6 +4,8 @@
import com.gkhy.assess.system.domain.AssInvestigation;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
/**
* <p>
* 现场勘验记录表 Mapper 接口
@@ -28,7 +30,7 @@
* @param projectId
* @return
*/
- AssInvestigation getInvestigationByProjectId(Long projectId);
+ List<AssInvestigation> getInvestigationByProjectId(Long projectId);
/**
* 根据id获取现场勘验记录
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java
index ece8e63..d8b2f43 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/mapper/SysUserMapper.java
@@ -29,7 +29,7 @@
* @param username
* @return
*/
- public SysUser getUserByUsernamePhone(String username);
+ public SysUser getUserByUsernamePhone(@Param("username") String username,@Param("identity") Integer identity);
/**
* 获取监管用户列表
@@ -87,7 +87,7 @@
* @param phone
* @return
*/
- SysUser checkPhoneUnique(String phone);
+ SysUser checkPhoneUnique(String phone,Integer identity);
/**
* 校验邮箱是否唯一
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java
index f1eb175..7653987 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssAccessoryFileService.java
@@ -30,7 +30,8 @@
* @param moduleType
* @return
*/
- List<AssAccessoryFile> getAccessoryFileByProjectId(Long projectId, Integer moduleType);
+ List<AssAccessoryFile> getAccessoryFileByProjectId(Long projectId,Long processId, Integer moduleType);
+
/**
* 根据id删除评估文件
@@ -53,5 +54,13 @@
* @param moduleType
* @return
*/
- Integer getAccessoryFileCountByProjectId(Long projectId, Integer moduleType);
+ Integer getAccessoryFileCountByProjectId(Long projectId,Long processId, Integer moduleType);
+
+ /**
+ * 批量更新文件processId
+ * @param accessoryFileIds
+ * @param processId
+ * @return
+ */
+ Boolean batchUpdateAccessoryFileProcessId(List<Long> accessoryFileIds,Long processId);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java
index 4e8d8dd..33d675a 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/AssInvestigationService.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.assess.system.domain.AssInvestigation;
+import java.util.List;
+import java.util.Map;
+
/**
* <p>
* 现场勘验记录表 服务类
@@ -18,7 +21,7 @@
* @param investigation
* @return
*/
- int addInvestigation(AssInvestigation investigation,String requestSourceType);
+ Long addInvestigation(AssInvestigation investigation);
/**
* 修改勘验记录
@@ -32,7 +35,7 @@
* @param projectId
* @return
*/
- AssInvestigation getInvestigationByProjectId(Long projectId);
+ List<AssInvestigation> getInvestigationByProjectId(Long projectId);
/**
@@ -44,7 +47,8 @@
/**
* 项目状态流转
- * @param projectId
+ * @param map
*/
- void doInvestigationProcess(Long projectId);
+ void doInvestigationProcess(Map map);
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java
index 0096e0b..e7717fe 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserFaceService.java
@@ -2,6 +2,7 @@
import com.gkhy.assess.system.domain.SysUserFace;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.gkhy.assess.system.domain.vo.UploadObjectVO;
/**
* <p>
@@ -17,7 +18,7 @@
* @param userFace
* @return
*/
- int addUserFace(SysUserFace userFace);
+ UploadObjectVO addUserFace(SysUserFace userFace);
/**
* 根据用户id获取人脸数据
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java
index 21f10f0..17ba65d 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/SysUserService.java
@@ -62,14 +62,14 @@
* @param username
* @return
*/
- SysUser getUserByUsername(String username);
+ SysUser getUserByUsername(String username,Integer identity);
/**
* 登录名或者手机号获取用户
* @param username
* @return
*/
- SysUser getUserByUsernamePhone(String username);
+ SysUser getUserByUsernamePhone(String username,Integer identity);
/**
* 新增监管用户
@@ -196,4 +196,12 @@
*/
SysUser getUserInfoById(Long userId);
+ /**
+ * 清空缓存
+ * @param username
+ * @param identity
+ */
+ void delCacheByUsername(String username,Integer identity);
+
+
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java
index 6e75233..6c65ff8 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssAccessoryFileServiceImpl.java
@@ -56,15 +56,23 @@
}
@Override
- public List<AssAccessoryFile> getAccessoryFileByProjectId(Long projectId, Integer moduleType) {
+ public List<AssAccessoryFile> getAccessoryFileByProjectId(Long projectId,Long processId, Integer moduleType) {
projectService.checkUserAllowed(projectId);
- return baseMapper.getAccessoryFileByProjectId(projectId,moduleType);
+ return baseMapper.getAccessoryFileByProjectId(projectId,processId,moduleType);
+ }
+
+
+ @Override
+ public Integer getAccessoryFileCountByProjectId(Long projectId,Long processId, Integer moduleType) {
+ projectService.checkUserAllowed(projectId);
+ return baseMapper.getAccessoryFileCountByProjectId(projectId,processId,moduleType);
}
@Override
- public Integer getAccessoryFileCountByProjectId(Long projectId, Integer moduleType) {
- projectService.checkUserAllowed(projectId);
- return baseMapper.getAccessoryFileCountByProjectId(projectId,moduleType);
+ public Boolean batchUpdateAccessoryFileProcessId(List<Long> accessoryFileIds, Long processId) {
+ return update(Wrappers.<AssAccessoryFile>lambdaUpdate()
+ .in(AssAccessoryFile::getId,accessoryFileIds)
+ .set(AssAccessoryFile::getProcessId,processId));
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java
index 646d7ac..0cff0a8 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssConclusionServiceImpl.java
@@ -69,7 +69,7 @@
public AssConclusion getConclusionByProjectId(Long projectId) {
projectService.checkUserAllowed(projectId);
AssConclusion conclusion= baseMapper.getConclusionByProjectId(projectId);
- conclusion.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.CONCLUSION.getCode()));
+ conclusion.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId,null, AccessoryFileTypeEnum.CONCLUSION.getCode()));
return conclusion;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java
index 66c5fd6..df6722f 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java
@@ -69,7 +69,7 @@
public Boolean checkAllFaceRecongnition(Long projectId){
projectService.checkUserAllowed(projectId);
List<AssPlanPerson> planPersonList=planPersonMapper.getAllPlanPersonByProjectId(projectId);
- List<AssFaceRecognition> faceRecognitionList=baseMapper.getFaceRecognitionByProjectId(projectId);
+ List<AssFaceRecognition> faceRecognitionList=baseMapper.getSimpleFaceRecognitionByProjectId(projectId);
Map<Long,AssFaceRecognition> map=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,a -> a,(k1,k2) -> k1));
String message="";
for(AssPlanPerson planPerson:planPersonList){
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java
index 907c2cd..24f5e55 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssInvestigationServiceImpl.java
@@ -2,6 +2,7 @@
import com.gkhy.assess.common.enums.RequestSourceEnum;
import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.system.domain.AssAccessoryFile;
import com.gkhy.assess.system.domain.AssInvestigation;
import com.gkhy.assess.system.enums.AccessoryFileTypeEnum;
import com.gkhy.assess.system.enums.ReportProgressEnum;
@@ -14,6 +15,11 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -34,49 +40,38 @@
@Override
@Transactional(rollbackFor = RuntimeException.class)
- public int addInvestigation(AssInvestigation investigation,String requestSourceType) {
+ public Long addInvestigation(AssInvestigation investigation) {
Long projectId=investigation.getProjectId();
projectService.checkUserAllowed(projectId);
- checkInvestigationCount(projectId);
+ // checkInvestigationCount(projectId);
investigation.setCreateBy(ShiroUtils.getSysUser().getUsername());
if(investigation.getIsSafetyCheck()!=null&&investigation.getIsSafetyCheck()==1){
- Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode());
+ Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId,null, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode());
if(fileCount==0){
throw new ApiException("未上传现场安全检查表");
}
}
- //校验图片数量
- Integer fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.DEVICE_IMAGE.getCode());
- if(fileCount==0){
- throw new ApiException("主要装置前的合影照片不能为空");
+ List<AssAccessoryFile> accessFiles=new ArrayList<>();
+ accessFiles.addAll(investigation.getCompanyImages());
+ accessFiles.addAll(investigation.getDeviceImages());
+ accessFiles.addAll(investigation.getInvestingationImages());
+ if(investigation.getInvestingationVideos()!=null&& !investigation.getInvestingationVideos().isEmpty()){
+ accessFiles.addAll(investigation.getInvestingationVideos());
}
- fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode());
- if(fileCount==0){
- throw new ApiException("现场勘验照片照片不能为空");
+ if(investigation.getAssAccessoryFiles()!=null&&!investigation.getAssAccessoryFiles().isEmpty()){
+ accessFiles.addAll(investigation.getAssAccessoryFiles());
}
- fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.COMPANY_IMAGE.getCode());
- if(fileCount==0){
- throw new ApiException("现场勘验人员与企业陪同人员图片不能为空");
+ List<Long> fileIds=new ArrayList<>();
+ for(AssAccessoryFile accessoryFile:accessFiles){
+ if(accessoryFile.getId()==null){
+ throw new ApiException("附件或图片id不能为空");
+ }
+ fileIds.add(accessoryFile.getId());
}
-// fileCount=accessoryFileService.getAccessoryFileCountByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode());
-// if(fileCount==0){
-// throw new ApiException("现场勘验视频不能为空");
-// }
- int row=baseMapper.insert(investigation);
- if(requestSourceType== RequestSourceEnum.WEB.getCode()){
- //校验项目状态
- projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
- //更新项目状态
- projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION);
- }
- //校验项目状态
-// projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
-// int row=baseMapper.insert(investigation);
-// if(row>0 && (investigation.getState()==null||!investigation.getState().equals(ApproveStatusEnum.TEMPORARY.getCode()))) {
-// //更新项目状态
-// projectService.changeReportProgress(projectId,ReportProgressEnum.INVESTINGATION);
-// }
- return row;
+ baseMapper.insert(investigation);
+ //更新图片过程id
+ accessoryFileService.batchUpdateAccessoryFileProcessId(fileIds,investigation.getId());
+ return investigation.getId();
}
public void checkInvestigationCount(Long projectId){
@@ -88,36 +83,61 @@
}
@Override
+ @Transactional(rollbackFor = RuntimeException.class)
public int editInvestigation(AssInvestigation investigation) {
+ if(investigation.getId()==null){
+ throw new ApiException("现场勘验记录id不能为空!");
+ }
projectService.checkUserAllowed(investigation.getProjectId());
investigation.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ List<AssAccessoryFile> accessFiles=new ArrayList<>();
+ accessFiles.addAll(investigation.getCompanyImages());
+ accessFiles.addAll(investigation.getDeviceImages());
+ accessFiles.addAll(investigation.getInvestingationImages());
+ if(investigation.getInvestingationVideos()!=null&& !investigation.getInvestingationVideos().isEmpty()){
+ accessFiles.addAll(investigation.getInvestingationVideos());
+ }
+ if(investigation.getAssAccessoryFiles()!=null&&!investigation.getAssAccessoryFiles().isEmpty()){
+ accessFiles.addAll(investigation.getAssAccessoryFiles());
+ }
+ List<Long> fileIds=new ArrayList<>();
+ for(AssAccessoryFile accessoryFile:accessFiles){
+ if(accessoryFile.getId()==null){
+ throw new ApiException("附件或图片id不能为空");
+ }
+ fileIds.add(accessoryFile.getId());
+ }
+ accessoryFileService.batchUpdateAccessoryFileProcessId(fileIds,investigation.getId());
int row=baseMapper.updateById(investigation);
return row;
}
@Override
- public AssInvestigation getInvestigationByProjectId(Long projectId) {
+ public List<AssInvestigation> getInvestigationByProjectId(Long projectId) {
projectService.checkUserAllowed(projectId);
- AssInvestigation investigation= baseMapper.getInvestigationByProjectId(projectId);
- if(investigation!=null) {
- investigation.setAssAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode()));
- investigation.setCcompanyImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.COMPANY_IMAGE.getCode()));
- investigation.setDeviceImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.DEVICE_IMAGE.getCode()));
- investigation.setInvestingationImages(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode()));
- investigation.setInvestingationVideos(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode()));
- }
- return investigation;
+ List<AssInvestigation> investigations= baseMapper.getInvestigationByProjectId(projectId);
+ return investigations;
}
@Override
public AssInvestigation getInvestigationById(Long investigationId) {
- return baseMapper.getInvestigationById(investigationId);
+ AssInvestigation investigation= baseMapper.getInvestigationById(investigationId);
+ if(investigation!=null) {
+ investigation.setAssAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(investigation.getProjectId(),investigation.getId(), AccessoryFileTypeEnum.INVESTINGATION_ATTACHMENT.getCode()));
+ investigation.setCompanyImages(accessoryFileService.getAccessoryFileByProjectId(investigation.getProjectId(),investigation.getId(), AccessoryFileTypeEnum.COMPANY_IMAGE.getCode()));
+ investigation.setDeviceImages(accessoryFileService.getAccessoryFileByProjectId(investigation.getProjectId(),investigation.getId(), AccessoryFileTypeEnum.DEVICE_IMAGE.getCode()));
+ investigation.setInvestingationImages(accessoryFileService.getAccessoryFileByProjectId(investigation.getProjectId(),investigation.getId(), AccessoryFileTypeEnum.INVESTINGATION_IMAGE.getCode()));
+ investigation.setInvestingationVideos(accessoryFileService.getAccessoryFileByProjectId(investigation.getProjectId(),investigation.getId(), AccessoryFileTypeEnum.INVESTINGATION_VIDEO.getCode()));
+ }
+ return investigation;
}
@Override
- public void doInvestigationProcess(Long projectId) {
+ public void doInvestigationProcess(Map map) {
+ Long projectId= Long.parseLong(map.get("projectId").toString());
projectService.checkUserAllowed(projectId);
+
//校验项目状态
projectService.checkReportProgress(projectId, ReportProgressEnum.WORK_NOTIFICATION);
//更新项目状态
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java
index e641012..3d3f27b 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssPlanPersonServiceImpl.java
@@ -6,9 +6,11 @@
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.StringUtils;
import com.gkhy.assess.system.domain.AssPlanPerson;
+import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.enums.PlayRoleEnum;
import com.gkhy.assess.system.mapper.AssPlanPersonMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.mapper.SysUserMapper;
import com.gkhy.assess.system.service.AssPlanPersonService;
import com.gkhy.assess.system.service.AssProjectService;
import com.gkhy.assess.system.utils.ShiroUtils;
@@ -29,6 +31,8 @@
public class AssPlanPersonServiceImpl extends ServiceImpl<AssPlanPersonMapper, AssPlanPerson> implements AssPlanPersonService {
@Autowired
private AssProjectService projectService;
+ @Autowired
+ private SysUserMapper sysUserMapper;
@Override
public List<AssPlanPerson> getByProjectId(Long projectId) {
projectService.checkUserAllowed(projectId);
@@ -57,11 +61,15 @@
AssPlanPerson pPerson= getOne(lambdaQueryWrapper);
if(pPerson!=null){
PlayRoleEnum playRoleEnum=PlayRoleEnum.getInfoByCode(pPerson.getPlayRole());
+ SysUser sysUser=sysUserMapper.selectById(planPerson.getPersonId());
+ if(sysUser==null){
+ throw new ApiException("选择的用户不存在");
+ }
String message=playRoleEnum!=null?playRoleEnum.getInfo():"";
if(StringUtils.isBlank(message)){
- message="该用户已存在";
+ message=String.format("用户<%s>已担任职务",sysUser.getName());
}else{
- message="该用户已担任"+message;
+ message=String.format("用户<%s>已担任%s",sysUser.getName(),message);
}
throw new ApiException(message);
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java
index a6f1b86..ec01bbf 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssProcessAuditServiceImpl.java
@@ -89,7 +89,7 @@
public AssProcessAudit getProcessAuditByProjectId(Long projectId) {
projectService.checkUserAllowed(projectId);
AssProcessAudit processAudit= baseMapper.getProcessAuditByProjectId(projectId);
- processAudit.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, AccessoryFileTypeEnum.PROCESS_ATTACHMENT.getCode()));
+ processAudit.setAccessoryFiles(accessoryFileService.getAccessoryFileByProjectId(projectId, null,AccessoryFileTypeEnum.PROCESS_ATTACHMENT.getCode()));
return processAudit;
}
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysConfigServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysConfigServiceImpl.java
index 9d842fb..f30a351 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysConfigServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysConfigServiceImpl.java
@@ -26,7 +26,7 @@
@Override
public String getConfigByKey(String configKey) {
- String redisKey=getCacheKey(configKey);
+ String redisKey=redisUtils.generateKey(getCacheKey(configKey));
String configValue= (String) redisUtils.get(redisKey);
if(StringUtils.isNotEmpty(configValue)){
return configValue;
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java
index c384eb1..2114126 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserFaceServiceImpl.java
@@ -1,5 +1,7 @@
package com.gkhy.assess.system.service.impl;
+import com.gkhy.assess.common.exception.ApiException;
+import com.gkhy.assess.common.utils.StringUtils;
import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.domain.SysUserFace;
import com.gkhy.assess.system.domain.vo.UploadObjectVO;
@@ -8,6 +10,7 @@
import com.gkhy.assess.system.service.SysCommonService;
import com.gkhy.assess.system.service.SysUserFaceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gkhy.assess.system.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -25,20 +28,28 @@
@Autowired
private SysCommonService commonService;
@Autowired
- private SysUserMapper userMapper;
+ private SysUserService userService;
@Override
- @Transactional
- public int addUserFace(SysUserFace userFace) {
- int row=0;
- SysUserFace oldUserFace=baseMapper.getFaceByUserId(userFace.getUserId());
+ @Transactional(rollbackFor = RuntimeException.class)
+ public UploadObjectVO addUserFace(SysUserFace userFace) {
+
+ // SysUserFace oldUserFace=baseMapper.getFaceByUserId(userFace.getUserId());
UploadObjectVO uploadObjectVO =commonService.doUpload(userFace.getFile());
- if(oldUserFace==null){
- row= baseMapper.insert(userFace);
+ /*if(oldUserFace==null){
+ baseMapper.insert(userFace);
}else{
- row= baseMapper.updateById(new SysUserFace().setId(oldUserFace.getId()).setFaceBase(userFace.getFaceBase()));
+ baseMapper.updateById(new SysUserFace().setId(oldUserFace.getId()).setFaceBase(userFace.getFaceBase()));
+ }*/
+ boolean res=userService.updateById(new SysUser().setId(userFace.getUserId()).setIdPhoto(uploadObjectVO.getPath()));
+ if(!res){
+ throw new ApiException("人脸数据上传失败");
}
- userMapper.updateById(new SysUser().setId(userFace.getUserId()).setIdPhoto(uploadObjectVO.getPath()));
- return row;
+ SysUser sysUser=userService.getById(userFace.getUserId());
+ userService.delCacheByUsername(sysUser.getUsername(),sysUser.getIdentity());
+ if(StringUtils.isNotBlank(sysUser.getPhone())) {
+ userService.delCacheByUsername(sysUser.getPhone(), sysUser.getIdentity());
+ }
+ return uploadObjectVO;
}
@Override
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
index 41ff653..c0cef63 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
import com.gkhy.assess.common.constant.CacheConstant;
+import com.gkhy.assess.common.domain.CustomerUsernamePasswordToken;
import com.gkhy.assess.common.domain.vo.AccountVO;
import com.gkhy.assess.common.domain.vo.LoginBody;
import com.gkhy.assess.common.enums.AttachTypeEnum;
@@ -70,9 +71,13 @@
@Override
public AccountVO login(LoginBody loginBody) {
+ if(loginBody.getIdentity()==null){
+ throw new ApiException("请选择登录用户身份");
+ }
// 验证码校验
validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
- UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
+ // UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
+ CustomerUsernamePasswordToken usernamePasswordToken=new CustomerUsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()),loginBody.getIdentity());
Subject subject= SecurityUtils.getSubject();
String msg ;
try {
@@ -87,9 +92,9 @@
accountVO.setAgentName(agency.getName());
accountVO.setAgentId(agency.getId());
}
- String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword());
+ String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword(),loginBody.getIdentity());
accountVO.setToken(token);
- cacheUserToken(sysUser.getUsername(),token);
+ cacheUserToken(sysUser.getUsername(),sysUser.getIdentity(),token);
return accountVO;
}catch (UnknownAccountException | IncorrectCredentialsException uae){
throw new ApiException("用户名/密码错误,请重新输入");
@@ -106,8 +111,9 @@
@Override
public AccountVO appLogin(LoginBody loginBody) {
- // 验证码校验
- UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
+ // app端只能是专家用户登录
+ loginBody.setIdentity(UserIdentityEnum.EXPERT.getCode());
+ CustomerUsernamePasswordToken usernamePasswordToken = new CustomerUsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), loginBody.getIdentity());
Subject subject= SecurityUtils.getSubject();
String msg ;
try {
@@ -122,10 +128,10 @@
accountVO.setAgentName(agency.getName());
accountVO.setAgentId(agency.getId());
}
- String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword());
+ String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword(),loginBody.getIdentity());
accountVO.setToken(token);
- cacheUserToken(sysUser.getUsername(),token);
- accountVO.setUserFace(userFaceMapper.getFaceByUserId(sysUser.getId()));
+ cacheUserToken(sysUser.getUsername(),sysUser.getIdentity(),token);
+ accountVO.setIdPhoto(sysUser.getIdPhoto());
return accountVO;
}catch (UnknownAccountException | IncorrectCredentialsException uae){
throw new ApiException("用户名/密码错误,请重新输入");
@@ -142,9 +148,8 @@
* 清空旧的登录信息,保证同时只有一个用户再登录,后登录用户会挤掉前一个用户
* @param username
*/
- public void cacheUserToken(String username,String newToken){
-
- String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
+ public void cacheUserToken(String username,Integer identity,String newToken){
+ String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
String oldToken = (String) redisUtils.get(userKey);
if (StringUtils.isNotBlank(oldToken)) {
String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken));
@@ -159,6 +164,7 @@
redisUtils.set(tokenKey,newToken);
redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000);
}
+
/**
* 校验验证码
@@ -191,7 +197,8 @@
String jwtToken = request.getHeader(JwtTokenUtil.USER_LOGIN_TOKEN);
if(StringUtils.isNotBlank(jwtToken)){
String username=JwtTokenUtil.getUsername(jwtToken);
- String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
+ Integer identity=JwtTokenUtil.getIdentity(jwtToken);
+ String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity);
String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
//删除redis缓存
redisUtils.del(tokenKey);
@@ -238,8 +245,8 @@
}
@Override
- public SysUser getUserByUsername(String username) {
- String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username);
+ public SysUser getUserByUsername(String username,Integer identity) {
+ String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME + ":" + username+"_"+identity);
SysUser sysUser =null;
if(redisUtils.hasKey(key)){
sysUser= (SysUser) redisUtils.get(key);
@@ -250,19 +257,20 @@
return sysUser;
}
- public void delCacheByUsername(String username){
- String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username);
+ @Override
+ public void delCacheByUsername(String username,Integer identity){
+ String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username+"_"+identity);
redisUtils.del(key);
}
@Override
- public SysUser getUserByUsernamePhone(String username) {
- String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username);
+ public SysUser getUserByUsernamePhone(String username,Integer identity) {
+ String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username+"_"+identity);
SysUser sysUser =null;
if(redisUtils.hasKey(key)){
sysUser= (SysUser) redisUtils.get(key);
}else {
- sysUser = baseMapper.getUserByUsernamePhone(username);
+ sysUser = baseMapper.getUserByUsernamePhone(username,identity);
redisUtils.set(key,sysUser,10*60);
}
return sysUser;
@@ -280,7 +288,7 @@
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
throw new ApiException("用户名已存在");
}
- if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
+ if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()).setIdentity(UserIdentityEnum.MONITOR.getCode()))){
throw new ApiException("手机号已存在");
}
String originPsword=Base64.decodeStr(user.getPassword());
@@ -303,7 +311,7 @@
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
throw new ApiException("用户名已存在");
}
- if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
+ if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()).setIdentity(UserIdentityEnum.AGENCY.getCode()))){
throw new ApiException("手机号已存在");
}
String originPsword=Base64.decodeStr(user.getPassword());
@@ -317,15 +325,17 @@
if(!agencyService.checkAgencyNameUnique(new SysAgency().setName(agency.getName()))){
throw new ApiException("机构名称已存在");
}
- agency.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ agency.setCreateBy(ShiroUtils.getSysUser()!=null?ShiroUtils.getSysUser().getUsername():"");
boolean b=agencyService.save(agency);
if(!b){
throw new ApiException("保存机构信息失败");
}
+
+ //创建机构用户
user.setIdentity(UserIdentityEnum.AGENCY.getCode());
user.setAgencyId(agency.getId());
user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
- user.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ user.setCreateBy(ShiroUtils.getSysUser()!=null?ShiroUtils.getSysUser().getUsername():"");
b=save(user);
if(!b){
throw new ApiException("创建机构用户信息失败");
@@ -342,7 +352,7 @@
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
throw new ApiException("用户名已存在");
}
- if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
+ if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()).setIdentity(UserIdentityEnum.EXPERT.getCode()))){
throw new ApiException("手机号已存在");
}
String major=user.getMajor();
@@ -424,7 +434,7 @@
agencyService.updateById(agency);
}
}
- delCacheByUsername(user.getUsername());
+ delCacheByUsername(user.getUsername(),user.getIdentity());
user=new SysUser().setId(userId);
user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
user.setDelFlag(DeleteFlagEnum.DELETED.getCode());
@@ -437,10 +447,10 @@
if(!checkUsernameUnique(user)){
throw new ApiException("用户名已存在");
}
- if(!checkPhoneUnique(user)){
+ if(!checkPhoneUnique(user.setIdentity(UserIdentityEnum.MONITOR.getCode()))){
throw new ApiException("手机号已存在");
}
- delCacheByUsername(user.getUsername());
+ delCacheByUsername(user.getUsername(),UserIdentityEnum.MONITOR.getCode());
user.setPassword(null);
user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(user);
@@ -458,7 +468,7 @@
if(!checkUsernameUnique(user)){
throw new ApiException("用户名已存在");
}
- if(!checkPhoneUnique(user)){
+ if(!checkPhoneUnique(user.setIdentity(UserIdentityEnum.AGENCY.getCode()))){
throw new ApiException("手机号已存在");
}
SysAgency agency=user.getAgency();
@@ -471,7 +481,7 @@
throw new ApiException("机构名称已存在");
}
- delCacheByUsername(user.getUsername());
+ delCacheByUsername(user.getUsername(),UserIdentityEnum.AGENCY.getCode());
agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
agencyService.updateById(agency);
user.setPassword(null);
@@ -490,7 +500,7 @@
if(!checkUsernameUnique(user)){
throw new ApiException("用户名已存在");
}
- if(!checkPhoneUnique(user)){
+ if(!checkPhoneUnique(user.setIdentity(UserIdentityEnum.EXPERT.getCode()))){
throw new ApiException("手机号已存在");
}
String major=user.getMajor();
@@ -542,7 +552,7 @@
if(!delIds.isEmpty()){
attachService.deleteAttachsByIds(delIds);
}
- delCacheByUsername(user.getUsername());
+ delCacheByUsername(user.getUsername(),UserIdentityEnum.EXPERT.getCode());
return row;
}
@@ -554,7 +564,7 @@
SysUser oldUser=checkUserDataScope(user.getId());
SysUser newUser=new SysUser().setId(user.getId()).setPassword(JwtTokenUtil.encryptPassword(oldUser.getUsername(),originPsword,oldUser.getSalt()));
newUser.setUpdateBy(ShiroUtils.getSysUser().getUsername());
- delCacheByUsername(oldUser.getUsername());
+ delCacheByUsername(oldUser.getUsername(),oldUser.getIdentity());
return updateById(newUser);
}
@@ -571,8 +581,11 @@
@Override
public boolean checkPhoneUnique(SysUser user) {
+ if(user.getIdentity()==null){
+ throw new ApiException("用户身份不能为空");
+ }
Long userId = user.getId()==null ? -1L : user.getId();
- SysUser info = baseMapper.checkPhoneUnique(user.getPhone());
+ SysUser info = baseMapper.checkPhoneUnique(user.getPhone(),user.getIdentity());
if (info!=null && info.getId().longValue() != userId.longValue())
{
return false;
@@ -625,7 +638,7 @@
SysUser existUser=checkUserDataScope(user.getId());
SysUser su=new SysUser().setId(user.getId()).setStatus(user.getStatus());
su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
- delCacheByUsername(existUser.getUsername());
+ delCacheByUsername(existUser.getUsername(),existUser.getIdentity());
return updateById(su);
}
@@ -634,7 +647,7 @@
SysUser existUser=checkUserDataScope(user.getId());
SysUser su=new SysUser().setId(user.getId()).setState(user.getState());
su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
- delCacheByUsername(existUser.getUsername());
+ delCacheByUsername(existUser.getUsername(),existUser.getIdentity());
return updateById(su);
}
}
diff --git a/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml b/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml
index ac9b382..fae37a0 100644
--- a/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssAccessoryFileMapper.xml
@@ -7,12 +7,18 @@
<select id="getAccessoryFileByProjectId" resultType="com.gkhy.assess.system.domain.AssAccessoryFile">
- select id,file_name,path,module_type,project_id,del_flag,origin_name,create_time from ass_accessory_file
+ select id,file_name,path,module_type,project_id,process_id,del_flag,origin_name,create_time from ass_accessory_file
where project_id=#{projectId} and del_flag=0 and module_type=#{moduleType}
+ <if test="processId!=null and processId!=''">
+ and process_id=#{processId}
+ </if>
</select>
<select id="getAccessoryFileCountByProjectId" resultType="java.lang.Integer">
select count(1) from ass_accessory_file
where project_id=#{projectId} and del_flag=0 and module_type=#{moduleType}
+ <if test="processId!=null and processId!=''">
+ and process_id=#{processId}
+ </if>
</select>
</mapper>
diff --git a/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml b/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml
index 7512fc8..b0741e1 100644
--- a/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssFaceRecognitionMapper.xml
@@ -63,7 +63,7 @@
</select>
<select id="getFaceRecognitionByProjectId" resultMap="faceRecognitionResult">
- select f.id,f.person_id,p.project_id,f.sign_path,f.insurance_path,
+ select f.id,p.person_id,p.project_id,f.sign_path,f.insurance_path,
f.version,f.del_flag,f.create_by,f.create_time,f.update_by,f.update_time,f.remark,
p.job_type,p.play_role,
u.name as person_name,u.major as person_major,u.phone as person_phone,u.post as person_post,u.level as person_level,
@@ -75,6 +75,11 @@
where p.project_id=#{projectId} and p.del_flag=0
</select>
+ <select id="getSimpleFaceRecognitionByProjectId" resultType="com.gkhy.assess.system.domain.AssFaceRecognition">
+ select * from ass_face_recognition
+ where project_id=#{projectId} and del_flag=0
+ </select>
+
<select id="getFaceRecognitionById" resultMap="faceRecognitionResult">
<include refid="selectFaceRecognitionVo"/>
where f.id=#{faceRecognitionId} and a.del_flag=0
diff --git a/assess-system/src/main/resources/mapper/AssInvestigationMapper.xml b/assess-system/src/main/resources/mapper/AssInvestigationMapper.xml
index 44c6e9d..e9f4d74 100644
--- a/assess-system/src/main/resources/mapper/AssInvestigationMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssInvestigationMapper.xml
@@ -31,7 +31,7 @@
<select id="getInvestigationByProjectId" resultMap="investigationResult">
<include refid="selectInvestigationVo"/>
- where project_id=#{projectId} and del_flag=0
+ where project_id=#{projectId} and del_flag=0 order by create_time desc
</select>
<select id="getInvestigationById" resultMap="investigationResult">
diff --git a/assess-system/src/main/resources/mapper/AssProjectMapper.xml b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
index 5aa9f2a..6171261 100644
--- a/assess-system/src/main/resources/mapper/AssProjectMapper.xml
+++ b/assess-system/src/main/resources/mapper/AssProjectMapper.xml
@@ -35,6 +35,7 @@
<result property="businessName" column="business_name" />
<result property="leaderId" column="leader_id" />
<result property="estimateTypeName" column="estimate_type_name" />
+ <result property="agencyName" column="agency_name" />
<association property="leader" javaType="com.gkhy.assess.system.domain.SysUser" resultMap="userResult" />
<association property="contract" javaType="com.gkhy.assess.system.domain.AssContract" resultMap="contractResult" />
</resultMap>
@@ -55,7 +56,7 @@
p.actual_location,p.location,p.estimate_type,p.filing_date,
p.credit_code,p.report_progress,p.phase,p.state,p.introduction,p.is_review,p.del_flag,p.create_by,p.create_time,
p.update_by,p.update_time,p.remark,d1.label as business_name,d2.label as estimate_type_name,e.leader_id,u.name as leader_name,
- c.id as contract_id,c.contract_money,c.actual_contract_money,
+ c.id as contract_id,c.contract_money,c.actual_contract_money,a.name as agency_name,
(select count(*) from ass_project_material m where m.project_id=p.id and m.file_id is not null) as material_cnt
from ass_project p
left join ass_estimate_task e on e.project_id=p.id
@@ -63,6 +64,7 @@
left join sys_dict_data d1 on d1.id=p.business
left join sys_dict_data d2 on d2.id=p.estimate_type
left join ass_contract c on c.project_id=p.id
+ left join sys_agency a on a.id=p.agency_id
</sql>
diff --git a/assess-system/src/main/resources/mapper/SysAgencyMapper.xml b/assess-system/src/main/resources/mapper/SysAgencyMapper.xml
index 8afaa7e..b7f578b 100644
--- a/assess-system/src/main/resources/mapper/SysAgencyMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysAgencyMapper.xml
@@ -16,6 +16,7 @@
<result property="manager" column="manager" />
<result property="managerPhone" column="manager_phone" />
<result property="certNumber" column="cert_number" />
+ <result property="certPath" column="cert_path" />
<result property="issueDate" column="issue_date" />
<result property="validDate" column="valid_date" />
<result property="assetValue" column="asset_value" />
@@ -41,7 +42,7 @@
<sql id="selectAgencyVo">
select a.id,a.name,a.credit_code,a.attribute,a.province,a.city,a.district,a.address,a.web,a.legal_person,
- a.legal_phone,a.manager,a.manager_phone,a.cert_number,a.issue_date,a.valid_date,a.asset_value,a.work_area,a.archive_area,
+ a.legal_phone,a.manager,a.manager_phone,a.cert_number,a.cert_path,a.issue_date,a.valid_date,a.asset_value,a.work_area,a.archive_area,
a.reg_address,a.business,a.report_path,a.del_flag,a.publication,a.create_time,a.remark,
b.id as user_id,b.username,b.phone
from sys_agency a
diff --git a/assess-system/src/main/resources/mapper/SysUserMapper.xml b/assess-system/src/main/resources/mapper/SysUserMapper.xml
index 5ebd431..af9f852 100644
--- a/assess-system/src/main/resources/mapper/SysUserMapper.xml
+++ b/assess-system/src/main/resources/mapper/SysUserMapper.xml
@@ -155,7 +155,7 @@
</select>
<select id="checkPhoneUnique" resultType="com.gkhy.assess.system.domain.SysUser">
- select id,phone from sys_user where phone=#{phone} and del_flag=0 limit 1
+ select id,phone from sys_user where phone=#{phone} and identity=#{identity} and del_flag=0 limit 1
</select>
<select id="checkEmailUnique" resultType="com.gkhy.assess.system.domain.SysUser">
@@ -163,8 +163,8 @@
</select>
<select id="getUserByUsernamePhone" resultType="com.gkhy.assess.system.domain.SysUser">
- select id,username,name,password,salt,identity,state,status,del_flag,agency_id from sys_user
- where (username=#{username} or phone=#{username}) and del_flag=0
+ select id,username,name,password,salt,identity,id_photo,state,status,del_flag,agency_id from sys_user
+ where (username=#{username} or phone=#{username}) and del_flag=0 and identity=#{identity}
</select>
diff --git a/pom.xml b/pom.xml
index 10f15ac..e6f7a16 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
<mybatis-plus.version>3.5.1</mybatis-plus.version>
<mysql-connector.version>8.0.29</mysql-connector.version>
<java-jwt.version>3.11.0</java-jwt.version>
- <fastjson.version>1.2.76</fastjson.version>
+ <fastjson.version>1.2.83</fastjson.version>
<caffeine.version>2.9.3</caffeine.version>
<kaptcha.version>2.3.2</kaptcha.version>
<commons.io.version>2.13.0</commons.io.version>
--
Gitblit v1.9.2