【8.1.0】【user-org】更新用户机构的绑定状态

pull/60/head
fengshuonan 2024-01-18 10:40:58 +08:00
parent 536eed620c
commit 6d10637a8e
7 changed files with 73 additions and 4 deletions

View File

@ -13,6 +13,12 @@ import javax.validation.constraints.NotNull;
@Data
public class StatusControlRequest {
/**
* id
*/
@NotNull(message = "用户id")
private Long userId;
/**
* id
*/

View File

@ -1,12 +1,15 @@
package cn.stylefeng.roses.kernel.sys.modular.user.controller;
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.NewUserRoleBindResponse;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.StatusControlRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysRoleAssignService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@ -38,4 +41,16 @@ public class UserRoleAssignPageController {
return new SuccessResponseData<>(list);
}
/**
*
*
* @author fengshuonan
* @since 2024-01-18 9:31
*/
@PostResource(name = "修改用户针对某个公司的是否启用状态", path = "/sysRoleAssign/changeStatus")
public ResponseData<?> changeStatus(@RequestBody @Validated StatusControlRequest statusControlRequest) {
sysRoleAssignService.changeUserBindStatus(statusControlRequest);
return new SuccessResponseData<>();
}
}

View File

@ -16,7 +16,7 @@ public enum SysUserOrgExceptionEnum implements AbstractExceptionEnum {
/**
*
*/
SYS_USER_ORG_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"),
SYS_USER_ORG_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "用户机构信息查询结果不存在"),
/**
* orgIdpositionIdmainFlag

View File

@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.sys.modular.user.service;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.NewUserRoleBindResponse;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.StatusControlRequest;
import java.util.List;
@ -20,4 +21,12 @@ public interface SysRoleAssignService {
*/
List<NewUserRoleBindResponse> getUserAssignList(Long userId);
/**
* `
*
* @author fengshuonan
* @since 2024-01-18 9:34
*/
void changeUserBindStatus(StatusControlRequest statusControlRequest);
}

View File

@ -82,4 +82,12 @@ public interface SysUserOrgService extends IService<SysUserOrg>, SysUserOrgServi
*/
void updateUserOrg(Long userId, List<SysUserOrg> userOrgList);
/**
*
*
* @author fengshuonan
* @since 2024-01-18 10:36
*/
SysUserOrg getUserOrgInfo(Long userId, Long orgId);
}

View File

@ -1,10 +1,15 @@
package cn.stylefeng.roses.kernel.sys.modular.user.service.impl;
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.SysRoleServiceApi;
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleDTO;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.NewUserRoleBindResponse;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.UserRoleDTO;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.StatusControlRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserOrg;
import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserOrgExceptionEnum;
import cn.stylefeng.roses.kernel.sys.modular.user.factory.RoleAssignFactory;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysRoleAssignService;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService;
@ -43,8 +48,7 @@ public class SysRoleAssignServiceImpl implements SysRoleAssignService {
List<NewUserRoleBindResponse> baseResponse = RoleAssignFactory.createBaseResponse(userOrgList);
// 3. 获取系统中所有的业务角色type=15以及所有的公司角色type=20
List<SysRoleDTO> businessRoleAndCompanyRole = sysRoleServiceApi.getBusinessRoleAndCompanyRole(
userOrgList.stream().map(UserOrgDTO::getCompanyId).collect(Collectors.toList()));
List<SysRoleDTO> businessRoleAndCompanyRole = sysRoleServiceApi.getBusinessRoleAndCompanyRole(userOrgList.stream().map(UserOrgDTO::getCompanyId).collect(Collectors.toList()));
// 4. 组装每个机构下的角色信息下拉列表
RoleAssignFactory.fillRoleSelectList(baseResponse, businessRoleAndCompanyRole);
@ -56,4 +60,23 @@ public class SysRoleAssignServiceImpl implements SysRoleAssignService {
return RoleAssignFactory.fillRoleBind(baseResponse, userLinkedOrgRoleList);
}
@Override
public void changeUserBindStatus(StatusControlRequest statusControlRequest) {
// 1. 获取用户所属机构的信息
SysUserOrg userOrgInfo = sysUserOrgService.getUserOrgInfo(statusControlRequest.getUserId(), statusControlRequest.getOrgId());
if (userOrgInfo == null) {
throw new ServiceException(SysUserOrgExceptionEnum.SYS_USER_ORG_NOT_EXISTED);
}
// 2. 修改用户所属机构的状态
if (statusControlRequest.getCheckedFlag()) {
userOrgInfo.setStatusFlag(StatusEnum.ENABLE.getCode());
} else {
userOrgInfo.setStatusFlag(StatusEnum.DISABLE.getCode());
}
this.sysUserOrgService.updateById(userOrgInfo);
}
}

View File

@ -97,6 +97,14 @@ public class SysUserOrgServiceImpl extends ServiceImpl<SysUserOrgMapper, SysUser
this.saveBatch(sysUserOrgResult);
}
@Override
public SysUserOrg getUserOrgInfo(Long userId, Long orgId) {
LambdaQueryWrapper<SysUserOrg> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysUserOrg::getUserId, userId);
wrapper.eq(SysUserOrg::getOrgId, orgId);
return this.getOne(wrapper, false);
}
@Override
public List<SysUserOrg> findList(SysUserOrgRequest sysUserOrgRequest) {
LambdaQueryWrapper<SysUserOrg> wrapper = this.createWrapper(sysUserOrgRequest);