| | |
| | | } |
| | | roleLambdaQueryWrapper.eq(Role::getObjType,UserExt.getUser().getObjectType()); |
| | | List<Role> list = roleService.list(roleLambdaQueryWrapper); |
| | | // 员工可能是由平台账号创建、后续归属到门店的,原角色不一定属于当前登录人的角色范围。 |
| | | // 编辑时仍需保留该角色作为可选项,避免下拉框无法回显。 |
| | | if (role != null && list.stream().noneMatch(item -> Objects.equals(item.getId(), role.getId()))) { |
| | | list.add(role); |
| | | } |
| | | model.addAttribute("list",list); |
| | | model.addAttribute("language",UserExt.getLanguage()); |
| | | // 部门列表 |
| | |
| | | this.userService.save(objectUser); |
| | | if (!assignedStores.isEmpty()) { |
| | | replaceStoreRelations(objectUser.getId(), assignedStores); |
| | | // 各所选门店同步负责人账号;旧系统仍可通过 storeStaffId 查询主负责人。 |
| | | for (TStore store : assignedStores) { |
| | | store.setStoreStaffId(objectUser.getId()); |
| | | storeService.updateById(store); |
| | | } |
| | | } |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | oldUser.setObjectType(3); |
| | | oldUser.setObjectId(assignedStores.get(0).getId()); |
| | | oldUser.setRoleid("3"); |
| | | for (TStore store : assignedStores) { |
| | | store.setStoreStaffId(oldUser.getId()); |
| | | storeService.updateById(store); |
| | | } |
| | | } else if (Integer.valueOf(3).equals(oldUser.getObjectType())) { |
| | | // 清除旧字段关联,避免已移除的首个门店仍被当作该员工所属门店。 |
| | | oldUser.setObjectId(null); |
| | | } |
| | | } |
| | | // 门店关联会维护员工归属信息,但不能覆盖编辑页明确选择的角色。 |
| | | // 必须在关联处理后写入,否则有门店的员工会被上面的兼容逻辑强制改回角色 3。 |
| | | if (!StringUtils.isEmpty(user.getRoleid())) { |
| | | oldUser.setRoleid(user.getRoleid()); |
| | | } |
| | | this.userService.updateById(oldUser); |
| | | return SUCCESS_TIP; |
| | | } |