From d3e4b81d25bc075a4759b0babf113ad5329aa6d4 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 13 Mar 2024 10:41:02 +0800
Subject: [PATCH] 用户新增根据行政区划获取系统用户接口

---
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 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..539467f 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
@@ -488,4 +550,13 @@
 	public List<User> getUserByPhoneIds(String phoneIds) {
 		return baseMapper.getUserByPhoneIds(phoneIds);
 	}
+
+	@Override
+	public int getSysUserNum(String adCode) {
+		List<Long> deptIdList = new ArrayList<>();
+			deptIdList = SysCache.getDeptChildIds(Long.parseLong(adCode));
+
+		int number = baseMapper.getSysUserNum(deptIdList);
+		return number;
+	}
 }

--
Gitblit v1.9.3