update:数据同步分发机构岗位绑定关系
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -29,6 +29,7 @@ import com.zt.plat.module.system.dal.mysql.dept.UserPostMapper;
|
||||
import com.zt.plat.module.system.dal.mysql.user.AdminUserMapper;
|
||||
import com.zt.plat.module.system.enums.user.PasswordStrategyEnum;
|
||||
import com.zt.plat.module.system.enums.user.UserSourceEnum;
|
||||
import com.zt.plat.module.system.mq.producer.databus.DatabusChangeProducer;
|
||||
import com.zt.plat.module.system.service.dept.DeptService;
|
||||
import com.zt.plat.module.system.service.dept.PostService;
|
||||
import com.zt.plat.module.system.service.permission.PermissionService;
|
||||
@@ -93,11 +94,10 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
|
||||
@Resource
|
||||
private ConfigApi configApi;
|
||||
|
||||
@Resource
|
||||
private com.zt.plat.module.system.mq.producer.databus.DatabusChangeProducer databusChangeProducer;
|
||||
@Resource
|
||||
private UserDeptService userDeptService;
|
||||
@Resource
|
||||
private DatabusChangeProducer databusChangeProducer;
|
||||
|
||||
@Override
|
||||
@GlobalTransactional(rollbackFor = Exception.class)
|
||||
@@ -128,7 +128,6 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
if (user.getUserSource() == null) {
|
||||
user.setUserSource(UserSourceEnum.EXTERNAL.getSource());
|
||||
}
|
||||
user.setWorkcode(normalizeWorkcode(createReqVO.getWorkcode()));
|
||||
PasswordStrategyEnum passwordStrategy = determinePasswordStrategy(user.getUserSource());
|
||||
user.setAvatar(normalizeAvatarValue(createReqVO.getAvatar()));
|
||||
user.setPassword(encodePassword(createReqVO.getPassword(), passwordStrategy));
|
||||
@@ -144,10 +143,10 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId)));
|
||||
}
|
||||
|
||||
// 2.4 发布用户创建事件
|
||||
// 3. 发送用户创建消息到MQ(供Databus消费转发)
|
||||
databusChangeProducer.sendUserCreatedMessage(user);
|
||||
|
||||
// 3. 记录操作日志上下文
|
||||
// 4. 记录操作日志上下文
|
||||
LogRecordContext.putVariable("user", user);
|
||||
return user.getId();
|
||||
}
|
||||
@@ -238,13 +237,13 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
// 2.3 更新岗位
|
||||
updateUserPost(updateReqVO, updateObj);
|
||||
|
||||
// 2.4 发布用户更新事件(重新查询获取完整数据)
|
||||
// 3. 发送用户更新消息到MQ(供Databus消费转发)
|
||||
AdminUserDO updatedUser = userMapper.selectById(updateObj.getId());
|
||||
if (updatedUser != null) {
|
||||
databusChangeProducer.sendUserUpdatedMessage(updatedUser);
|
||||
}
|
||||
|
||||
// 3. 记录操作日志上下文
|
||||
// 4. 记录操作日志上下文
|
||||
LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(oldUser, UserSaveReqVO.class));
|
||||
LogRecordContext.putVariable("user", oldUser);
|
||||
}
|
||||
@@ -333,10 +332,10 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
// 2.2 删除用户岗位
|
||||
userPostMapper.deleteByUserId(id);
|
||||
|
||||
// 2.3 发布用户删除事件
|
||||
// 3. 发送用户删除消息到MQ(供Databus消费转发)
|
||||
databusChangeProducer.sendUserDeletedMessage(id, user.getTenantId());
|
||||
|
||||
// 3. 记录操作日志上下文
|
||||
// 4. 记录操作日志上下文
|
||||
LogRecordContext.putVariable("user", user);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.zt.plat.framework.security.core.LoginUser;
|
||||
import com.zt.plat.module.system.dal.dataobject.userdept.UserDeptDO;
|
||||
import com.zt.plat.module.system.dal.mysql.userdept.UserDeptMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -23,18 +24,29 @@ import static com.zt.plat.module.system.enums.ErrorCodeConstants.USER_DEPT_NOT_E
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@Validated
|
||||
public class UserDeptServiceImpl implements UserDeptService {
|
||||
|
||||
@Resource
|
||||
private UserDeptMapper userDeptMapper;
|
||||
@Resource
|
||||
private com.zt.plat.module.system.mq.producer.databus.DatabusUserDeptChangeProducer databusUserDeptChangeProducer;
|
||||
|
||||
@Override
|
||||
public Long createUserDept(UserDeptDO createReqVO) {
|
||||
// 插入
|
||||
UserDeptDO userDept = BeanUtils.toBean(createReqVO, UserDeptDO.class);
|
||||
userDeptMapper.insert(userDept);
|
||||
|
||||
// 发送用户-部门关系创建消息
|
||||
try {
|
||||
databusUserDeptChangeProducer.sendUserDeptCreatedMessage(userDept);
|
||||
} catch (Exception e) {
|
||||
log.error("[createUserDept] 发送用户-部门关系创建消息失败", e);
|
||||
}
|
||||
|
||||
// 返回
|
||||
return userDept.getId();
|
||||
}
|
||||
@@ -46,14 +58,34 @@ public class UserDeptServiceImpl implements UserDeptService {
|
||||
// 更新
|
||||
UserDeptDO updateObj = BeanUtils.toBean(updateReqVO, UserDeptDO.class);
|
||||
userDeptMapper.updateById(updateObj);
|
||||
|
||||
// 发送用户-部门关系更新消息
|
||||
try {
|
||||
databusUserDeptChangeProducer.sendUserDeptUpdatedMessage(updateObj);
|
||||
} catch (Exception e) {
|
||||
log.error("[updateUserDept] 发送用户-部门关系更新消息失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteUserDept(Long id) {
|
||||
// 校验存在
|
||||
validateUserDeptExists(id);
|
||||
|
||||
// 查询完整对象(删除前查询,删除后无法查询)
|
||||
UserDeptDO userDept = userDeptMapper.selectById(id);
|
||||
|
||||
// 删除
|
||||
userDeptMapper.deleteById(id);
|
||||
|
||||
// 发送用户-部门关系删除消息
|
||||
if (userDept != null) {
|
||||
try {
|
||||
databusUserDeptChangeProducer.sendUserDeptDeletedMessage(userDept);
|
||||
} catch (Exception e) {
|
||||
log.error("[deleteUserDept] 发送用户-部门关系删除消息失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,6 +143,16 @@ public class UserDeptServiceImpl implements UserDeptService {
|
||||
Long tenantId = Optional.ofNullable(getLoginUser()).orElse(new LoginUser()).getTenantId();
|
||||
list.forEach(item -> item.setTenantId(tenantId));
|
||||
userDeptMapper.insertBatch(list);
|
||||
|
||||
// 发送用户-部门关系创建消息(为每个关系发送)
|
||||
for (UserDeptDO userDept : list) {
|
||||
try {
|
||||
databusUserDeptChangeProducer.sendUserDeptCreatedMessage(userDept);
|
||||
} catch (Exception e) {
|
||||
log.error("[batchCreateUserDept] 发送用户-部门关系创建消息失败, userId={}, deptId={}",
|
||||
userDept.getUserId(), userDept.getDeptId(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user