From 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 19 Oct 2023 15:01:43 +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 |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 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..a4cea02 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;
@@ -31,7 +34,9 @@
 import cn.gistack.system.user.service.IUserDeptService;
 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 +81,8 @@
 	private final ISysClient sysClient;
 	private final BladeTenantProperties tenantProperties;
 
+	private final IPwdClient pwdClient;
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean submit(User user) {
@@ -106,6 +113,44 @@
 		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
+	public boolean save(User entity) {
+		//对User进行加密
+		encryptUserInfo(entity);
+		return super.save(entity);
+	}
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean updateUser(User user) {
@@ -128,6 +173,14 @@
 		return updateById(user);
 	}
 
+	@Override
+	public boolean updateById(User entity) {
+
+		encryptUserInfo(entity);
+
+		return super.updateById(entity);
+	}
+
 	private boolean submitUserDept(User user) {
 		List<Long> deptIdList = Func.toLongList(user.getDeptId());
 		List<UserDept> userDeptList = new ArrayList<>();

--
Gitblit v1.9.3