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 | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 110 insertions(+), 4 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 8d5523a..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<>();
@@ -141,10 +194,34 @@
return userDeptService.saveBatch(userDeptList);
}
+ /**
+ * 自定义分页查询
+ * @param page
+ * @param user
+ * @param deptId
+ * @param tenantId
+ * @return
+ */
@Override
- public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
- List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
+ public IPage<UserVO> selectUserPage(IPage<UserVO> page, UserVO user, Long deptId, String tenantId) {
+ List<Long> deptIdList = new ArrayList<>();
+ if (null!=user.getIsDept()) {
+ deptIdList.add(deptId);
+ }else {
+ deptIdList = SysCache.getDeptChildIds(deptId);
+ }
return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId));
+ }
+
+ @Override
+ public List<UserVO> getAllUser(UserVO user, Long deptId, String tenantId) {
+ List<Long> deptIdList = new ArrayList<>();
+ if (null!=user.getIsDept()) {
+ deptIdList.add(deptId);
+ }else {
+ deptIdList = SysCache.getDeptChildIds(deptId);
+ }
+ return baseMapper.getAllUser(user, deptIdList, tenantId);
}
@Override
@@ -198,8 +275,11 @@
@Override
public UserInfo userInfo(String tenantId, String account, UserEnum userEnum) {
- User user = baseMapper.getUser(tenantId, account);
- return buildUserInfo(user, userEnum);
+ List<User> list = baseMapper.selectUserByPhoneOrAccount(tenantId, account);
+ if (list.size()>0){
+ return buildUserInfo(list.get(0), userEnum);
+ }
+ return buildUserInfo(null, userEnum);
}
private UserInfo buildUserInfo(User user) {
@@ -435,4 +515,30 @@
return baseMapper.customizeGetList(user);
}
+ /**
+ * 根据手机号码查询用户信息
+ * @param tenantId
+ * @param phone
+ * @return
+ */
+ @Override
+ public List<User> userInfoByPhone(String tenantId, String phone) {
+ return list(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getPhone, phone).eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+ }
+
+ /**
+ * 根据手机号码或者账户查询用户信息
+ * @param tenantId 租户id
+ * @param key 账户或者手机号
+ * @return
+ */
+ @Override
+ public List<User> userInfoByPhoneOrAccount(String tenantId, String key) {
+ return baseMapper.selectUserByPhoneOrAccount(tenantId,key);
+ }
+
+ @Override
+ public List<User> getUserByPhoneIds(String phoneIds) {
+ return baseMapper.getUserByPhoneIds(phoneIds);
+ }
}
--
Gitblit v1.9.3