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