xieb
2023-10-19 1dd5d8f8a616f5cf3caa7828d46989c7d3dcafc4
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<>();