From aa6fd3986a72524dea1547f2b1cce85ea71228bd Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 19 Oct 2023 17:16:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java | 64 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 1 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
index f6607be..63fb876 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
@@ -17,6 +17,9 @@
package cn.gistack.system.user.service.impl;
+import cn.gistack.pwd.dto.CBCResultDTO;
+import cn.gistack.pwd.dto.ResultDTO;
+import cn.gistack.pwd.fegin.IPwdClient;
import cn.gistack.system.cache.DictCache;
import cn.gistack.system.cache.ParamCache;
import cn.gistack.system.cache.SysCache;
@@ -29,9 +32,12 @@
import cn.gistack.system.user.excel.UserExcel;
import cn.gistack.system.user.mapper.UserMapper;
import cn.gistack.system.user.service.IUserDeptService;
+import cn.gistack.system.user.service.IUserEncipherService;
import cn.gistack.system.user.service.IUserOauthService;
import cn.gistack.system.user.service.IUserService;
+import cn.gistack.system.user.supo.UserSUPO;
import cn.gistack.system.user.vo.UserVO;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -76,6 +82,10 @@
private final ISysClient sysClient;
private final BladeTenantProperties tenantProperties;
+ private final IPwdClient pwdClient;
+
+ private final IUserEncipherService userEncipherService;
+
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(User user) {
@@ -106,6 +116,47 @@
return save(user) && submitUserDept(user);
}
+ public Boolean encryptUserInfo(User user){
+ UserSUPO userSUPO = new UserSUPO();
+ userSUPO.setPhone(user.getPhone());
+ userSUPO.setRoleId(user.getRoleId());
+ userSUPO.setDeptId(user.getDeptId());
+
+ String message = JSONObject.toJSONString(userSUPO);
+
+ R<CBCResultDTO> cbcRres = pwdClient.getCBCMacEncipher(message);
+ if (cbcRres.getCode() != 200){
+ return false;
+ }
+ CBCResultDTO data = cbcRres.getData();
+ String keyIndex = data.getKeyIndex();
+ String maced = data.getMaced();
+ String sm4IV = data.getSm4IV();
+
+ user.setKeyindexs(keyIndex);
+ user.setMaced(maced);
+ user.setSm4iv(sm4IV);
+
+ R<ResultDTO> encryptRes = pwdClient.getEncrypt(sm4IV, keyIndex, message);
+ if (encryptRes.getCode() != 200){
+ return false;
+ }
+ user.setEncdata(encryptRes.getData().getData());
+
+ return true;
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean save(User entity) {
+ //对User进行加密
+ encryptUserInfo(entity);
+ boolean saveUser = super.save(entity);
+ boolean saveUserEncipher = userEncipherService.save(new UserEncipher(entity));
+ return saveUserEncipher && saveUser;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateUser(User user) {
@@ -126,6 +177,17 @@
public boolean updateUserInfo(User user) {
user.setPassword(null);
return updateById(user);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean updateById(User entity) {
+
+ encryptUserInfo(entity);
+ boolean updateUser = super.updateById(entity);
+ boolean updateUserEncipher = userEncipherService.updateById(new UserEncipher(entity));
+
+ return updateUser&&updateUserEncipher;
}
private boolean submitUserDept(User user) {
@@ -328,7 +390,7 @@
if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) {
throw new ServiceException("不能删除本账号!");
}
- return deleteLogic(Func.toLongList(userIds));
+ return deleteLogic(Func.toLongList(userIds)) && userEncipherService.deleteLogic(Func.toLongList(userIds));
}
@Override
--
Gitblit v1.9.3