From 52d3189521cc8decd5c0da115d9a4880155c6a4f Mon Sep 17 00:00:00 2001 From: "583641232@qq.com" <583641232@qq.com> Date: Tue, 30 Jul 2024 17:30:26 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=97=A5=E5=B8=B8=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CollectionInformationController.java | 4 +- .../controller/system/SysLoginController.java | 16 ++++++++ cas-admin/src/main/resources/application.yml | 8 +--- cas-admin/src/main/resources/logback-plus.xml | 2 +- .../domain/CollectionInformation.java | 2 +- .../datacenter/service/IndexInitService.java | 5 ++- .../system/service/SysLoginService.java | 40 +++++++++++++++++++ 7 files changed, 66 insertions(+), 11 deletions(-) diff --git a/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/CollectionInformationController.java b/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/CollectionInformationController.java index 9c77ac8..c9c538d 100644 --- a/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/CollectionInformationController.java +++ b/cas-admin/src/main/java/com/inscloudtech/web/controller/datacenter/CollectionInformationController.java @@ -130,7 +130,7 @@ public class CollectionInformationController extends BaseController { * 导入日常收集信息 */ @PostMapping(value = "/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R importData(@RequestPart("file") MultipartFile file, String caseId) { + public R importData(@RequestPart("file") MultipartFile file,@RequestPart("caseId") String caseId) { boolean result = false; String importResultStr = ""; int importCount = 0; @@ -147,7 +147,7 @@ public class CollectionInformationController extends BaseController { }catch (Exception e){ importResultStr = e.getMessage(); } - iSysOssService.upload2Local(importCount,importResultStr,file,caseId,"PLATE_NUMBER_INFO"); + iSysOssService.upload2Local(importCount,importResultStr,file,caseId,"COLLECTION_INFORMATION"); return result ? R.ok() : R.fail(importResultStr); } diff --git a/cas-admin/src/main/java/com/inscloudtech/web/controller/system/SysLoginController.java b/cas-admin/src/main/java/com/inscloudtech/web/controller/system/SysLoginController.java index d0ca503..3d25fb2 100644 --- a/cas-admin/src/main/java/com/inscloudtech/web/controller/system/SysLoginController.java +++ b/cas-admin/src/main/java/com/inscloudtech/web/controller/system/SysLoginController.java @@ -57,6 +57,22 @@ public class SysLoginController { return R.ok(ajax); } + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @SaIgnore + @PostMapping("/login/test") + public R> login4Test(@Validated @RequestBody LoginBody loginBody) { + + // 生成令牌 + Map ajax = loginService.login4Test(loginBody.getUsername(), loginBody.getPassword()); + + return R.ok(ajax); + } + /** * 短信登录 diff --git a/cas-admin/src/main/resources/application.yml b/cas-admin/src/main/resources/application.yml index d8f61de..a85c542 100644 --- a/cas-admin/src/main/resources/application.yml +++ b/cas-admin/src/main/resources/application.yml @@ -231,14 +231,10 @@ springdoc: persistAuthorization: true #这里定义了两个分组,可定义多个,也可以不定义 group-configs: - - group: 1.演示模块 - packages-to-scan: com.inscloudtech.demo +# - group: 1.演示模块 +# packages-to-scan: com.inscloudtech.demo - group: 2.系统模块 packages-to-scan: com.inscloudtech.web - - group: 3.代码生成模块 - packages-to-scan: com.inscloudtech.generator - - group: 4.编码库存计划模块 - packages-to-scan: com.inscloudtech.code # 防止XSS攻击 xss: diff --git a/cas-admin/src/main/resources/logback-plus.xml b/cas-admin/src/main/resources/logback-plus.xml index 4e25aa9..0b9022a 100644 --- a/cas-admin/src/main/resources/logback-plus.xml +++ b/cas-admin/src/main/resources/logback-plus.xml @@ -128,5 +128,5 @@ - + diff --git a/cas-system/src/main/java/com/inscloudtech/datacenter/domain/CollectionInformation.java b/cas-system/src/main/java/com/inscloudtech/datacenter/domain/CollectionInformation.java index e71f1ee..9fdb87d 100644 --- a/cas-system/src/main/java/com/inscloudtech/datacenter/domain/CollectionInformation.java +++ b/cas-system/src/main/java/com/inscloudtech/datacenter/domain/CollectionInformation.java @@ -86,7 +86,6 @@ public class CollectionInformation extends BaseEntity { @ExcelProperty("行为信息") @UpdateValueLog(fieldName = "行为信息") @IndexField(fieldType = FieldType.KEYWORD_TEXT, analyzer = "ngram_analyzer") - private String actionInfo; /** @@ -99,6 +98,7 @@ public class CollectionInformation extends BaseEntity { private String remark; @DeduplicationField + @IndexField(fieldType = FieldType.KEYWORD) private String caseId; @IndexField(fieldType = FieldType.KEYWORD) diff --git a/cas-system/src/main/java/com/inscloudtech/datacenter/service/IndexInitService.java b/cas-system/src/main/java/com/inscloudtech/datacenter/service/IndexInitService.java index be2affe..1c1c8f5 100644 --- a/cas-system/src/main/java/com/inscloudtech/datacenter/service/IndexInitService.java +++ b/cas-system/src/main/java/com/inscloudtech/datacenter/service/IndexInitService.java @@ -32,6 +32,9 @@ public class IndexInitService { public static final String PLATE_NUMBER_INDEX = "dc_plate_number"; public static final String PLATE_NUMBER_MAPPING = "{\"properties\":{\"plateNumber\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"sourceFile\":{\"type\":\"keyword\"},\"bsHolder\":{\"type\":\"keyword\"},\"hasDeal\":{\"type\":\"byte\"},\"sourceContent\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"holder\":{\"type\":\"keyword\"},\"bankName\":{\"type\":\"keyword\"},\"caseId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"createBy\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"createTime\":{\"type\":\"date\",\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\"},\"remark\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"updateBy\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"updateTime\":{\"type\":\"date\",\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\"}}}"; + public static final String COLLECTION_INFORMATION_INDEX = "dc_collection_information"; + public static final String COLLECTION_INFORMATION_MAPPING = "{\"properties\":{\"analysisResultId\":{\"type\":\"keyword\"},\"caseId\":{\"type\":\"keyword\"},\"createBy\":{\"type\":\"keyword\"},\"createTime\":{\"type\":\"date\",\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\"},\"informationSources\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"name\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"basicInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"relationInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"assetsInfo\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"remark\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"updateBy\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"updateTime\":{\"type\":\"date\",\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\"}}}"; + public static final String OTHER_ASSETS_INDEX = "dc_other_assets"; public static final String OTHER_ASSETS_MAPPING = "{\"properties\":{\"analysisResultId\":{\"type\":\"long\"},\"bgc\":{\"type\":\"keyword\"},\"caseId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"content\":{\"type\":\"text\"},\"createBy\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"createTime\":{\"type\":\"date\",\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\"},\"originalName\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"ossId\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"remark\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"result\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"updateBy\":{\"type\":\"text\",\"fields\":{\"keyword\":{\"type\":\"keyword\",\"ignore_above\":256}}},\"updateTime\":{\"type\":\"date\",\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\"}}}"; @@ -66,7 +69,7 @@ public class IndexInitService { result.put(OPER_UPDATE_LOG_INDEX,OPER_UPDATE_LOG_MAPPING); result.put(LOGIN_RECORD_INDEX,LOGIN_RECORD_MAPPING); result.put(PLATE_NUMBER_INDEX,PLATE_NUMBER_MAPPING); - + result.put(COLLECTION_INFORMATION_INDEX,COLLECTION_INFORMATION_MAPPING); return result; } diff --git a/cas-system/src/main/java/com/inscloudtech/system/service/SysLoginService.java b/cas-system/src/main/java/com/inscloudtech/system/service/SysLoginService.java index 9b1099b..4087c13 100644 --- a/cas-system/src/main/java/com/inscloudtech/system/service/SysLoginService.java +++ b/cas-system/src/main/java/com/inscloudtech/system/service/SysLoginService.java @@ -350,4 +350,44 @@ public class SysLoginService { RedisUtils.deleteObject(errorKey); } + public Map login4Test(String username, String password) { + Map ajax = new HashMap<>(); + + SysUser tempUser = userMapper.selectOne(new LambdaQueryWrapper() + .select(SysUser::getUserName, SysUser::getStatus, SysUser::getNickName) + .eq(SysUser::getUserName, username)); + if (ObjectUtil.isNull(tempUser)) { + log.info("登录用户:{} 不存在.", username); + throw new UserException("user.not.exists", username); + } else if (UserStatus.DISABLE.getCode().equals(tempUser.getStatus())) { + log.info("登录用户:{} 已被停用.", username); + throw new UserException("user.blocked", username); + } + SysUser user = userMapper.selectUserByUserName(username); + + checkLogin(LoginType.PASSWORD, username, () -> !BCrypt.checkpw(password, user.getPassword())); + // 此处可根据登录用户的数据不同 自行创建 loginUser + LoginUser loginUser = buildLoginUser(user); + // 生成token + LoginHelper.loginByDevice(loginUser, DeviceType.PC); + + recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")); + recordLoginInfo(user.getUserId(), username); + + ajax.put(Constants.TOKEN, StpUtil.getTokenValue()); + ajax.put("origPasswdStatus", user.getOrigPasswdStatus()); + ajax.put("type", Constants.USER_TYPE_OTHER); + List roles = user.getRoles(); + if(CollectionUtil.isNotEmpty(roles)){ + Set roleIds = roles.stream().filter(item -> item.getRoleId() != null).map(SysRole::getRoleId).collect(Collectors.toSet()); + if (roleIds.contains(Constants.LEADER_ROLE_ID)) { + ajax.put("type", Constants.USER_TYPE_LEADER); + } else if (roleIds.contains(Constants.INVESTIGATOR_ROLE_ID)) { + ajax.put("type", Constants.USER_TYPE_INVESTIGATOR); + } else { + ajax.put("type", Constants.USER_TYPE_OTHER); + } + } + return ajax; + } }