| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | private final ISysClient sysClient; |
| | | private final BladeTenantProperties tenantProperties; |
| | | |
| | | private final IPwdClient pwdClient; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean submit(User user) { |
| | |
| | | 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) { |
| | |
| | | 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<>(); |