【8.1.0】【user-org】更新清空用户绑定机构的接口

pull/60/head
fengshuonan 2024-01-18 16:08:40 +08:00
parent c9744db958
commit 6e405086c1
8 changed files with 83 additions and 3 deletions

View File

@ -77,5 +77,13 @@ public interface SysUserRoleServiceApi {
* @since 2024-01-18 14:06
*/
void removeUserOrgRoleLink(Long userId, Long orgId);
/**
*
*
* @author fengshuonan
* @since 2024-01-18 16:07
*/
void deleteUserAllOrgBind(Long userId);
}

View File

@ -1,5 +1,6 @@
package cn.stylefeng.roses.kernel.sys.modular.user.controller;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
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;
@ -9,7 +10,9 @@ import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.NewUserRoleBindRespon
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.DeleteRequest;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.RoleControlRequest;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.StatusControlRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserOrgRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysRoleAssignService;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@ -31,6 +34,9 @@ public class UserRoleAssignPageController {
@Resource
private SysRoleAssignService sysRoleAssignService;
@Resource
private SysUserOrgService sysUserOrgService;
/**
*
*
@ -79,4 +85,28 @@ public class UserRoleAssignPageController {
return new SuccessResponseData<>();
}
/**
*
*
* @author fengshuonan
* @since 2024-01-18 14:50
*/
@PostResource(name = "添加用户机构的绑定", path = "/sysRoleAssign/addUserOrgBind")
public ResponseData<?> addUserOrgBind(@RequestBody @Validated(BaseRequest.add.class) SysUserOrgRequest sysUserOrgRequest) {
sysUserOrgService.add(sysUserOrgRequest);
return new SuccessResponseData<>();
}
/**
*
*
* @author fengshuonan
* @since 2024-01-18 15:47
*/
@PostResource(name = "删除全部机构绑定", path = "/sysRoleAssign/deleteAllOrgBind")
public ResponseData<?> deleteAllOrgBind(@RequestBody @Validated(BaseRequest.delete.class) SysUserOrgRequest sysUserOrgRequest) {
sysRoleAssignService.clearAllOrgAndRoleBind(sysUserOrgRequest);
return new SuccessResponseData<>();
}
}

View File

@ -21,14 +21,13 @@ public class SysUserOrgRequest extends BaseRequest {
/**
* id
*/
@NotNull(message = "企业员工主键id不能为空", groups = {delete.class})
@ChineseDescription("企业员工主键id")
private Long userOrgId;
/**
* id
*/
@NotNull(message = "用户id不能为空", groups = {add.class})
@NotNull(message = "用户id不能为空", groups = {add.class, delete.class})
@ChineseDescription("用户id")
private Long userId;

View File

@ -4,6 +4,7 @@ import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.NewUserRoleBindRespon
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.DeleteRequest;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.RoleControlRequest;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.newrole.request.StatusControlRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserOrgRequest;
import java.util.List;
@ -47,4 +48,12 @@ public interface SysRoleAssignService {
*/
void removeUserOrgBind(DeleteRequest deleteRequest);
/**
*
*
* @author fengshuonan
* @since 2024-01-18 15:50
*/
void clearAllOrgAndRoleBind(SysUserOrgRequest sysUserOrgRequest);
}

View File

@ -98,4 +98,12 @@ public interface SysUserOrgService extends IService<SysUserOrg>, SysUserOrgServi
*/
void removeUserOrgLink(Long userId, Long orgId);
/**
*
*
* @author fengshuonan
* @since 2024-01-18 15:48
*/
void deleteAllOrgBind(SysUserOrgRequest sysUserOrgRequest);
}

View File

@ -15,6 +15,7 @@ import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserOrg;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserRole;
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.pojo.request.SysUserOrgRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysRoleAssignService;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserRoleService;
@ -131,4 +132,15 @@ public class SysRoleAssignServiceImpl implements SysRoleAssignService {
userRoleCache.remove(String.valueOf(deleteRequest.getUserId()));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void clearAllOrgAndRoleBind(SysUserOrgRequest sysUserOrgRequest) {
// 1. 先清空用户的机构绑定
sysUserOrgService.deleteAllOrgBind(sysUserOrgRequest);
// 2. 再清空用户的所有的带机构的角色绑定
sysUserRoleService.deleteUserAllOrgBind(sysUserOrgRequest.getUserId());
}
}

View File

@ -125,6 +125,12 @@ public class SysUserOrgServiceImpl extends ServiceImpl<SysUserOrgMapper, SysUser
this.remove(sysUserOrgLambdaUpdateWrapper);
}
@Override
public void deleteAllOrgBind(SysUserOrgRequest sysUserOrgRequest) {
LambdaQueryWrapper<SysUserOrg> wrapper = this.createWrapper(sysUserOrgRequest);
this.remove(wrapper);
}
@Override
public List<SysUserOrg> findList(SysUserOrgRequest sysUserOrgRequest) {
LambdaQueryWrapper<SysUserOrg> wrapper = this.createWrapper(sysUserOrgRequest);

View File

@ -250,6 +250,14 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
this.remove(queryWrapper);
}
@Override
public void deleteUserAllOrgBind(Long userId) {
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUserRole::getUserId, userId);
queryWrapper.isNotNull(SysUserRole::getRoleOrgId);
this.remove(queryWrapper);
}
@Override
public SysUserRole getPointUserRole(Long userId, Long roleId, Long orgId) {
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();