From eccad5a129106377a275be4f7cdc58e99e9b95d4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 21 七月 2026 13:45:14 +0800
Subject: [PATCH] feat(mes): 实现库存移库功能
---
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java | 44 +++++++++++++++++++++++++++++++++++++++++---
1 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
index 84e3bb6..9f46412 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
@@ -25,6 +25,7 @@
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
+import cn.iocoder.yudao.module.system.mq.producer.user.AdminUserProducer;
import cn.iocoder.yudao.module.system.service.dept.DeptService;
import cn.iocoder.yudao.module.system.service.dept.PostService;
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
@@ -88,6 +89,9 @@
@Resource
private ConfigApi configApi;
+ @Resource
+ private AdminUserProducer adminUserProducer;
+
@Override
@Transactional(rollbackFor = Exception.class)
@LogRecord(type = SYSTEM_USER_TYPE, subType = SYSTEM_USER_CREATE_SUB_TYPE, bizNo = "{{#user.id}}",
@@ -112,6 +116,10 @@
if (CollectionUtil.isNotEmpty(user.getPostIds())) {
userPostMapper.insertBatch(convertList(user.getPostIds(),
postId -> new UserPostDO().setUserId(user.getId()).setPostId(postId)));
+ }
+ // 2.3 鍒嗛厤鐢ㄦ埛瑙掕壊
+ if (CollUtil.isNotEmpty(createReqVO.getRoleIds())) {
+ permissionService.assignUserRole(user.getId(), createReqVO.getRoleIds());
}
// 3. 璁板綍鎿嶄綔鏃ュ織涓婁笅鏂�
@@ -158,6 +166,8 @@
userMapper.updateById(updateObj);
// 2.2 鏇存柊宀椾綅
updateUserPost(updateReqVO, updateObj);
+ // 2.3 鏄电О / 澶村儚鍙樺寲鏃讹紝鍙戦�佹秷鎭緵涓嬫父璁㈤槄锛堝 IM 妯″潡鎺� FRIEND_INFO_UPDATED锛�
+ publishUserProfileUpdatedIfChanged(oldUser, updateReqVO.getNickname(), updateReqVO.getAvatar());
// 3. 璁板綍鎿嶄綔鏃ュ織涓婁笅鏂�
LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(oldUser, UserSaveReqVO.class));
@@ -188,12 +198,30 @@
@Override
public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) {
- // 鏍¢獙姝g‘鎬�
- validateUserExists(id);
+ // 1. 鏍¢獙姝g‘鎬�
+ AdminUserDO oldUser = validateUserExists(id);
validateEmailUnique(id, reqVO.getEmail());
validateMobileUnique(id, reqVO.getMobile());
- // 鎵ц鏇存柊
+
+ // 2. 鎵ц鏇存柊
userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id));
+
+ // 3. 鏄电О / 澶村儚鍙樺寲鏃讹紝鍙戦�佹秷鎭緵涓嬫父璁㈤槄锛堝 IM 妯″潡鎺� FRIEND_INFO_UPDATED锛�
+ publishUserProfileUpdatedIfChanged(oldUser, reqVO.getNickname(), reqVO.getAvatar());
+ }
+
+ /**
+ * 浠呭綋 nickname 鎴� avatar 璺熸棫鍊间笉涓�鑷存椂锛屽彂閫� AdminUserProfileUpdateMessage
+ */
+ private void publishUserProfileUpdatedIfChanged(AdminUserDO oldUser, String newNickname, String newAvatar) {
+ boolean nicknameChanged = newNickname != null && !ObjUtil.equal(oldUser.getNickname(), newNickname);
+ boolean avatarChanged = newAvatar != null && !ObjUtil.equal(oldUser.getAvatar(), newAvatar);
+ if (!nicknameChanged && !avatarChanged) {
+ return;
+ }
+ adminUserProducer.sendUserProfileUpdateMessage(oldUser.getId(),
+ nicknameChanged ? newNickname : null,
+ avatarChanged ? newAvatar : null);
}
@Override
@@ -329,6 +357,11 @@
}
return userMapper.selectByIds(ids);
}
+
+ public List<AdminUserDO> getUserListAll() {
+ return userMapper.selectList();
+ }
+
@Override
public void validateUserList(Collection<Long> ids) {
@@ -535,6 +568,11 @@
}
@Override
+ public List<AdminUserDO> getDeptUsers(Collection<Long> deptIds) {
+ return userMapper.selectListByDeptIds(deptIds);
+ }
+
+ @Override
public boolean isPasswordMatch(String rawPassword, String encodedPassword) {
return passwordEncoder.matches(rawPassword, encodedPassword);
}
--
Gitblit v1.9.3