Commit f7524233 by zhangxingmin

用户服务相关接口开发

parent f9f3a831
package com.yd.user.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelDeptUserService;
import com.yd.user.feign.client.reldeptuser.ApiRelDeptUserFeignClient;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserDelRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportAddRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserImportPageResponse;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 部门-用户关系信息
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/relDeptUser")
@Validated
public class ApiRelDeptUserController implements ApiRelDeptUserFeignClient {
@Autowired
private ApiRelDeptUserService apiRelDeptUserService;
/**
* 租户管理-分配权限-部门配置-用户列表
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelTenantDeptUserPageResponse>> page(ApiRelTenantDeptUserPageRequest request) {
return apiRelDeptUserService.page(request);
}
/**
* 租户管理-分配权限-部门配置-用户列表删除
* @param request
* @return
*/
@Override
public Result del(ApiRelTenantDeptUserDelRequest request) {
return apiRelDeptUserService.del(request);
}
/**
* 租户管理-分配权限-部门配置-用户列表导入分页查询
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelTenantDeptUserImportPageResponse>> importPage(ApiRelTenantDeptUserImportPageRequest request) {
return apiRelDeptUserService.importPage(request);
}
/**
* 租户管理-分配权限-部门配置-用户列表导入添加
* @param request
* @return
*/
@Override
public Result importAdd(ApiRelTenantDeptUserImportAddRequest request) {
return apiRelDeptUserService.importAdd(request);
}
}
package com.yd.user.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelTenantDeptService;
import com.yd.user.feign.client.reltenantdept.ApiRelTenantDeptFeignClient;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListAddRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptListPageResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 租户-部门关系信息(租户管理-部门配置)
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/relTenantDept")
@Validated
public class ApiRelTenantDeptController implements ApiRelTenantDeptFeignClient {
@Autowired
private ApiRelTenantDeptService apiRelTenantDeptService;
/**
* 租户和部门关系分页查询
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelTenantDeptListPageResponse>> page(ApiRelTenantDeptListPageRequest request) {
return apiRelTenantDeptService.page(request);
}
/**
* 租户和部门关系树形列表查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelTenantDeptTreeListResponse>> tree(ApiRelTenantDeptTreeListRequest request) {
return apiRelTenantDeptService.tree(request);
}
/**
* 添加租户和部门列表关系
* @param request
* @return
*/
@Override
public Result addDeptList(ApiRelTenantDeptListAddRequest request) {
return apiRelTenantDeptService.addDeptList(request);
}
/**
* 删除租户和部门关系
* @param id 租户和部门关系表主键id
* @return
*/
@Override
public Result del(Long id) {
return apiRelTenantDeptService.del(id);
}
/**
* 导入-树形部门查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelTenantDeptImportQueryDeptTreeResponse>> importQueryDeptTree(ApiRelTenantDeptImportQueryDeptTreeRequest request) {
return apiRelTenantDeptService.importQueryDeptTree(request);
}
/**
* 导入-树形部门-查询选中的部门id集合
* @param tenantBizId
* @return
*/
@Override
public Result<List<String>> selectedList(String tenantBizId) {
return apiRelTenantDeptService.selectedList(tenantBizId);
}
}
package com.yd.user.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiSysDeptService;
import com.yd.user.feign.client.sysdept.ApiSysDeptFeignClient;
import com.yd.user.feign.request.sysdept.*;
import com.yd.user.feign.response.sysdept.ApiSysDeptCompanyPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptDetailResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import com.yd.user.feign.response.sysmenu.ApiSysMenuPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 部门信息(部门信息)
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/sysDept")
@Validated
public class ApiSysDeptController implements ApiSysDeptFeignClient {
@Autowired
private ApiSysDeptService apiSysDeptService;
/**
* 树形部门列表查询
* @param request
* @return
*/
@Override
public Result<List<ApiSysDeptTreeListResponse>> treeList(ApiSysDeptTreeListRequest request) {
return apiSysDeptService.treeList(request);
}
/**
* 部门分页查询
* @param request
* @return
*/
@Override
public Result<IPage<ApiSysDeptPageResponse>> page(ApiSysDeptPageRequest request) {
return apiSysDeptService.page(request);
}
/**
* 公司分页查询(公司类型)
* @param request
* @return
*/
@Override
public Result<IPage<ApiSysDeptCompanyPageResponse>> companyPage(ApiSysDeptCompanyPageRequest request) {
return apiSysDeptService.companyPage(request);
}
/**
* 获取部门详情
* @param deptBizId 部门唯一标识(业务ID)
* @return
*/
@Override
public Result<ApiSysDeptDetailResponse> detail(String deptBizId) {
return apiSysDeptService.detail(deptBizId);
}
/**
* 添加部门
* @param request
* @return
*/
@Override
public Result add(ApiSysDeptAddRequest request) {
return apiSysDeptService.add(request);
}
/**
* 编辑部门
* @param request
* @return
*/
@Override
public Result edit(ApiSysDeptEditRequest request) {
return apiSysDeptService.edit(request);
}
/**
* 删除部门(逻辑删除) TODO
* @param deptBizId 部门唯一标识(业务ID)
* @return
*/
@Override
public Result del(String deptBizId) {
return apiSysDeptService.del(deptBizId);
}
/**
* 编辑部门状态 TODO
* @param deptBizId 部门唯一标识(业务ID)
* @param status 状态(0:禁用 1:启用)
* @return
*/
@Override
public Result editStatus(String deptBizId, Integer status) {
return apiSysDeptService.editStatus(deptBizId,status);
}
}
...@@ -7,6 +7,7 @@ import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient; ...@@ -7,6 +7,7 @@ import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import com.yd.user.feign.request.sysuser.*; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.response.login.GetLoginInfoResponse; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import com.yd.user.feign.response.login.GetLoginPermissionProjectResponse;
import com.yd.user.feign.response.sysuser.ApiScopePageResponse; import com.yd.user.feign.response.sysuser.ApiScopePageResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse; import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse;
...@@ -14,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.util.List; import java.util.List;
/** /**
...@@ -117,5 +120,32 @@ public class ApiSysUserController implements ApiSysUserFeignClient { ...@@ -117,5 +120,32 @@ public class ApiSysUserController implements ApiSysUserFeignClient {
return apiSysUserService.scopePage(request); return apiSysUserService.scopePage(request);
} }
/**
* 权限-管理端-获取登录后的项目权限信息
* @return
*/
@Override
public Result<GetLoginPermissionProjectResponse> getLoginPermissionProject(String tenantBizId,String projectBizId) {
return apiSysUserService.getLoginPermissionProject(tenantBizId,projectBizId);
}
/**
* 权限-管理端-获取当前登录用户绑定的当前项目用户角色菜单列表
* @return
*/
@Override
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId) {
return apiSysUserService.getProjectMenuRouters(projectBizId);
}
/**
* 权限-管理端-获取当前登录用户是否有权限访问该项目
* @return
*/
@Override
public Result<Boolean> isProjectVisit(String projectBizId) {
return apiSysUserService.isProjectVisit(projectBizId);
}
} }
...@@ -5,14 +5,14 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -5,14 +5,14 @@ import org.springframework.web.bind.annotation.RestController;
/** /**
* <p> * <p>
* 部门-用户关系表(多对多关系) 前端控制器 * 项目-部门关系表 前端控制器
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
@RestController @RestController
@RequestMapping("/relDeptUser") @RequestMapping("/relProjectDept")
public class RelDeptUserController { public class RelProjectDeptController {
} }
package com.yd.user.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 租户-部门关系表(正常来说一对多,加关系表方便扩展) 前端控制器
* </p>
*
* @author zxm
* @since 2025-07-31
*/
@RestController
@RequestMapping("/relTenantDept")
public class RelTenantDeptController {
}
package com.yd.user.api.dto;
import lombok.Data;
/**
* 部门添加和编辑校验入参的DTO
*/
@Data
public class ApiSysDeptAddAndEditReqCheckDto {
/**
* 部门id
*/
private String deptBizId;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
/**
* 是否是超级管理员
*/
private Boolean isAdmin;
/**
* 操作来源 1-添加 2-编辑
*/
private String oprSource;
}
package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserDelRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportAddRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserImportPageResponse;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserPageResponse;
public interface ApiRelDeptUserService {
Result<IPage<ApiRelTenantDeptUserPageResponse>> page(ApiRelTenantDeptUserPageRequest request);
Result del(ApiRelTenantDeptUserDelRequest request);
Result<IPage<ApiRelTenantDeptUserImportPageResponse>> importPage(ApiRelTenantDeptUserImportPageRequest request);
Result importAdd(ApiRelTenantDeptUserImportAddRequest request);
}
package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListAddRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptListPageResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import java.util.List;
public interface ApiRelTenantDeptService {
Result<IPage<ApiRelTenantDeptListPageResponse>> page(ApiRelTenantDeptListPageRequest request);
Result<List<ApiRelTenantDeptTreeListResponse>> tree(ApiRelTenantDeptTreeListRequest request);
Result addDeptList(ApiRelTenantDeptListAddRequest request);
Result del(Long id);
Result<List<ApiRelTenantDeptImportQueryDeptTreeResponse>> importQueryDeptTree(ApiRelTenantDeptImportQueryDeptTreeRequest request);
Result<List<String>> selectedList(String tenantBizId);
Result addSingleRel(String tenantBizId, String deptBizId);
}
package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.feign.request.sysdept.*;
import com.yd.user.feign.response.sysdept.ApiSysDeptCompanyPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptDetailResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import java.util.List;
public interface ApiSysDeptService {
Result<List<ApiSysDeptTreeListResponse>> treeList(ApiSysDeptTreeListRequest request);
Result<IPage<ApiSysDeptPageResponse>> page(ApiSysDeptPageRequest request);
Result<IPage<ApiSysDeptCompanyPageResponse>> companyPage(ApiSysDeptCompanyPageRequest request);
Result<ApiSysDeptDetailResponse> detail(String deptBizId);
Result add(ApiSysDeptAddRequest request);
Result edit(ApiSysDeptEditRequest request);
Result del(String deptBizId);
Result editStatus(String deptBizId, Integer status);
}
...@@ -5,6 +5,7 @@ import com.yd.common.result.Result; ...@@ -5,6 +5,7 @@ import com.yd.common.result.Result;
import com.yd.user.feign.request.sysuser.*; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.response.login.GetLoginInfoResponse; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import com.yd.user.feign.response.login.GetLoginPermissionProjectResponse;
import com.yd.user.feign.response.sysuser.ApiScopePageResponse; import com.yd.user.feign.response.sysuser.ApiScopePageResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse; import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse;
...@@ -30,4 +31,10 @@ public interface ApiSysUserService { ...@@ -30,4 +31,10 @@ public interface ApiSysUserService {
Result<List<ApiLoginMenuInfoResponse>> getMenuRouters(String tenantBizId); Result<List<ApiLoginMenuInfoResponse>> getMenuRouters(String tenantBizId);
Result<IPage<ApiScopePageResponse>> scopePage(ApiScopePageRequest request); Result<IPage<ApiScopePageResponse>> scopePage(ApiScopePageRequest request);
Result<GetLoginPermissionProjectResponse> getLoginPermissionProject(String tenantBizId, String projectBizId);
Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId);
Result<Boolean> isProjectVisit(String projectBizId);
} }
package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiRelDeptUserService;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserDelRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportAddRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserImportPageResponse;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserPageResponse;
import com.yd.user.service.model.RelDeptUser;
import com.yd.user.service.model.RelProjectUser;
import com.yd.user.service.service.IRelDeptUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ApiRelDeptUserServiceImpl implements ApiRelDeptUserService {
@Autowired
private IRelDeptUserService iRelDeptUserService;
/**
* 租户管理-分配权限-部门配置-用户列表
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelTenantDeptUserPageResponse>> page(ApiRelTenantDeptUserPageRequest request) {
Page<ApiRelTenantDeptUserPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiRelTenantDeptUserPageResponse> iPage = iRelDeptUserService.page(page, request);
return Result.success(iPage);
}
/**
* 租户管理-分配权限-部门配置-用户列表删除
* @param request
* @return
*/
@Override
public Result del(ApiRelTenantDeptUserDelRequest request) {
RelDeptUser relDeptUser = iRelDeptUserService.queryOne(request.getId());
if (Objects.isNull(relDeptUser)) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(),ResultCode.NULL_ERROR.getMessage());
}
iRelDeptUserService.removeById(request.getId());
return Result.success();
}
/**
* 租户管理-分配权限-部门配置-用户列表导入分页查询
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelTenantDeptUserImportPageResponse>> importPage(ApiRelTenantDeptUserImportPageRequest request) {
Page<ApiRelTenantDeptUserImportPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiRelTenantDeptUserImportPageResponse> iPage = iRelDeptUserService.importPage(page, request);
return Result.success(iPage);
}
/**
* 租户管理-分配权限-部门配置-用户列表导入添加
* @param request
* @return
*/
@Override
public Result importAdd(ApiRelTenantDeptUserImportAddRequest request) {
List<RelDeptUser> list = new ArrayList<>();
if (!CollectionUtils.isEmpty(request.getUserBizIdList())) {
//用户唯一标识(业务ID) 列表(选中列表)不为空
list = request.getUserBizIdList().stream().map(bizId -> {
RelDeptUser relDeptUser = new RelDeptUser();
relDeptUser.setTenantBizId(request.getTenantBizId());
relDeptUser.setDeptBizId(request.getDeptBizId());
relDeptUser.setUserBizId(bizId);
return relDeptUser;
}).collect(Collectors.toList());
iRelDeptUserService.saveOrUpdateBatch(list);
}
return Result.success();
}
}
package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.TreeUtils;
import com.yd.user.api.service.ApiRelTenantDeptService;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListAddRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptListPageResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import com.yd.user.service.dto.RelTenantDeptDto;
import com.yd.user.service.model.RelTenantDept;
import com.yd.user.service.service.IRelTenantDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ApiRelTenantDeptServiceImpl implements ApiRelTenantDeptService {
@Autowired
private IRelTenantDeptService iRelTenantDeptService;
/**
* 租户和部门关系分页查询
* @param request
* @return
*/
@Override
public Result<IPage<ApiRelTenantDeptListPageResponse>> page(ApiRelTenantDeptListPageRequest request) {
Page<ApiRelTenantDeptListPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiRelTenantDeptListPageResponse> iPage = iRelTenantDeptService.page(page, request);
return Result.success(iPage);
}
/**
* 租户和部门关系树形列表查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelTenantDeptTreeListResponse>> tree(ApiRelTenantDeptTreeListRequest request) {
List<ApiRelTenantDeptTreeListResponse> treeMenu = new ArrayList<>();
//租户和部门关系列表
List<ApiRelTenantDeptTreeListResponse> queryList = iRelTenantDeptService.treeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
//构建部门树形结构
treeMenu = TreeUtils.buildTree(
queryList,
ApiRelTenantDeptTreeListResponse::getDeptBizId, // 获取节点ID
ApiRelTenantDeptTreeListResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
return Result.success(treeMenu);
}
/**
* 添加租户和部门列表关系
* @param request
* @return
*/
@Override
public Result addDeptList(ApiRelTenantDeptListAddRequest request) {
List<RelTenantDept> list = new ArrayList<>();
//先删后增加
iRelTenantDeptService.removeByTenantBizId(request.getTenantBizId());
if (!CollectionUtils.isEmpty(request.getDeptBizIdList())) {
//部门唯一标识(业务ID) 列表(选中列表)不为空
list = request.getDeptBizIdList().stream().map(bizId -> {
RelTenantDept relTenantDept = new RelTenantDept();
relTenantDept.setTenantBizId(request.getTenantBizId());
relTenantDept.setDeptBizId(bizId);
return relTenantDept;
}).collect(Collectors.toList());
iRelTenantDeptService.saveOrUpdateBatch(list);
}
return Result.success();
}
/**
* 删除租户和部门关系
* @param id 租户和部门关系表主键id
* @return
*/
@Override
public Result del(Long id) {
RelTenantDept relTenantDept = iRelTenantDeptService.queryOne(id);
if (Objects.isNull(relTenantDept)) {
//数据不存在
throw new BusinessException(ResultCode.NULL_ERROR.getCode(),ResultCode.NULL_ERROR.getMessage());
}
iRelTenantDeptService.removeById(relTenantDept.getId());
return Result.success();
}
/**
* 导入-树形部门查询
* @param request
* @return
*/
@Override
public Result<List<ApiRelTenantDeptImportQueryDeptTreeResponse>> importQueryDeptTree(ApiRelTenantDeptImportQueryDeptTreeRequest request) {
//TODO 条件搜索部门树后续完善
List<ApiRelTenantDeptImportQueryDeptTreeResponse> treeMenu = new ArrayList<>();
//查询租户和部门关系数据
List<ApiRelTenantDeptImportQueryDeptTreeResponse> queryList = iRelTenantDeptService.importQueryDeptTreeList(request);
if (!CollectionUtils.isEmpty(queryList)) {
//构建部门树形结构
treeMenu = TreeUtils.buildTree(
queryList,
ApiRelTenantDeptImportQueryDeptTreeResponse::getDeptBizId, // 获取节点ID
ApiRelTenantDeptImportQueryDeptTreeResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
return Result.success(treeMenu);
}
/**
* 导入-树形部门-查询选中的部门id集合
* @param tenantBizId
* @return
*/
@Override
public Result<List<String>> selectedList(String tenantBizId) {
List<String> deptBizIdList = new ArrayList<>();
List<RelTenantDept> relTenantDeptList = iRelTenantDeptService.queryList(RelTenantDeptDto.builder()
.tenantBizId(tenantBizId)
.build());
if (!CollectionUtils.isEmpty(relTenantDeptList)) {
deptBizIdList = relTenantDeptList.stream().map(RelTenantDept::getDeptBizId).collect(Collectors.toList());
}
return Result.success(deptBizIdList);
}
/**
* 添加单个租户和部门关系
* @param tenantBizId
* @param deptBizId
* @return
*/
@Override
public Result addSingleRel(String tenantBizId, String deptBizId) {
//新增关系
RelTenantDept relTenantDept = new RelTenantDept();
relTenantDept.setTenantBizId(tenantBizId);
relTenantDept.setDeptBizId(deptBizId);
iRelTenantDeptService.saveOrUpdate(relTenantDept);
return Result.success();
}
}
...@@ -64,6 +64,9 @@ public class ApiSysUserServiceImpl implements ApiSysUserService { ...@@ -64,6 +64,9 @@ public class ApiSysUserServiceImpl implements ApiSysUserService {
private IRelTenantProjectService iRelTenantProjectService; private IRelTenantProjectService iRelTenantProjectService;
@Autowired @Autowired
private IRelProjectUserService iRelProjectUserService;
@Autowired
private ISysProjectService iSysProjectService; private ISysProjectService iSysProjectService;
/** /**
...@@ -363,7 +366,6 @@ public class ApiSysUserServiceImpl implements ApiSysUserService { ...@@ -363,7 +366,6 @@ public class ApiSysUserServiceImpl implements ApiSysUserService {
} }
List<RelUserRole> relUserRoleList = iRelUserRoleService.queryList(RelUserRoleDto.builder() List<RelUserRole> relUserRoleList = iRelUserRoleService.queryList(RelUserRoleDto.builder()
.tenantBizId(sysTenant.getTenantBizId()) .tenantBizId(sysTenant.getTenantBizId())
.userBizId(authUserDto.getUserBizId()) .userBizId(authUserDto.getUserBizId())
...@@ -515,6 +517,176 @@ public class ApiSysUserServiceImpl implements ApiSysUserService { ...@@ -515,6 +517,176 @@ public class ApiSysUserServiceImpl implements ApiSysUserService {
} }
/** /**
* 权限-管理端-获取登录后的项目权限信息
* @return
*/
@Override
public Result<GetLoginPermissionProjectResponse> getLoginPermissionProject(String tenantBizId, String projectBizId) {
//获取Security上下文当前用户的登录信息
AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
GetLoginPermissionProjectResponse response = new GetLoginPermissionProjectResponse();
//当前登录的用户基础信息
ApiLoginUserInfoResponse userInfoResponse = new ApiLoginUserInfoResponse();
SysUser sysUser = iSysUserService.queryOne(authUserDto.getUserBizId());
if (Objects.isNull(sysUser)) {
//用户不存在
throw new BusinessException(ResultCode.USER_NOT_EXISTS.getCode(),ResultCode.USER_NOT_EXISTS.getMessage());
}
BeanUtils.copyProperties(sysUser,userInfoResponse);
response.setApiLoginUserInfoResponse(userInfoResponse);
//当前租户基础信息
ApiLoginTenantInfoResponse apiLoginTenantInfoResponse = null;
SysTenant sysTenant = iSysTenantService.queryOne(tenantBizId);
if (!Objects.isNull(sysTenant)) {
apiLoginTenantInfoResponse = new ApiLoginTenantInfoResponse();
BeanUtils.copyProperties(sysTenant,apiLoginTenantInfoResponse);
response.setApiLoginTenantInfoResponse(apiLoginTenantInfoResponse);
}
//当前项目基础信息
ApiLoginProjectInfoResponse apiLoginProjectInfoResponse = null;
SysProject sysProject = iSysProjectService.queryOne(projectBizId);
if (!Objects.isNull(sysProject)) {
apiLoginProjectInfoResponse = new ApiLoginProjectInfoResponse();
BeanUtils.copyProperties(sysProject,apiLoginProjectInfoResponse);
response.setApiLoginProjectInfoResponse(apiLoginProjectInfoResponse);
}
List<RelUserRole> relUserRoleList = iRelUserRoleService.queryList(RelUserRoleDto.builder()
.projectBizId(projectBizId)
.userBizId(authUserDto.getUserBizId())
.build());
if (!CollectionUtils.isEmpty(relUserRoleList)) {
//项目用户角色编码列表信息
List<String> roleBizIdList = relUserRoleList.stream().map(RelUserRole::getRoleBizId).collect(Collectors.toList());
List<SysRole> sysRoleList = iSysRoleService.queryList(SysRoleDto.builder()
.roleBizIdList(roleBizIdList)
.isExcludeMy(false)
.build());
if (!CollectionUtils.isEmpty(sysRoleList)) {
List<String> roleCodeList = sysRoleList.stream().map(SysRole::getRoleCode).collect(Collectors.toList());
response.setRoles(roleCodeList);
}
//项目用户角色菜单按钮权限列表信息
List<RelRoleMenu> relRoleMenuList = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.projectBizId(projectBizId)
.roleBizIdList(roleBizIdList)
.build());
if (!CollectionUtils.isEmpty(relRoleMenuList)) {
//去重菜单id(多个角色绑定有重复的菜单)
List<String> menuBizIdList = relRoleMenuList.stream().map(RelRoleMenu::getMenuBizId).distinct().collect(Collectors.toList());
//查询按钮权限标识列表
List<SysMenu> anMenuList = iSysMenuService.queryList(SysMenuDto.builder()
.menuBizIdList(menuBizIdList)
.menuType(Integer.valueOf(MenuTypeEnum.AN.getCode()))
.isExcludeMy(false)
.build());
if (!CollectionUtils.isEmpty(anMenuList)) {
List<String> menuPermissionList = anMenuList.stream().map(SysMenu::getPermission).collect(Collectors.toList());
response.setPermissions(menuPermissionList);
}
}
}
return Result.success(response);
}
/**
* 权限-管理端-获取当前登录用户绑定的当前项目用户角色菜单列表
* @return
*/
@Override
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId) {
//获取Security上下文当前用户的登录信息
AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
List<ApiLoginMenuInfoResponse> treeMenu = new ArrayList<>();
List<RelUserRole> relUserRoleList = iRelUserRoleService.queryList(RelUserRoleDto.builder()
.tenantBizId(projectBizId)
.userBizId(authUserDto.getUserBizId())
.build());
if (!CollectionUtils.isEmpty(relUserRoleList)) {
//项目用户角色编码列表信息
List<String> roleBizIdList = relUserRoleList.stream().map(RelUserRole::getRoleBizId).collect(Collectors.toList());
//项目用户角色菜单按钮权限列表信息
List<RelRoleMenu> relRoleMenuList = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.tenantBizId(projectBizId)
.roleBizIdList(roleBizIdList)
.build());
if (!CollectionUtils.isEmpty(relRoleMenuList)) {
//去重菜单id(多个角色绑定有重复的菜单)
List<String> menuBizIdList = relRoleMenuList.stream().map(RelRoleMenu::getMenuBizId).distinct().collect(Collectors.toList());
//项目用户角色菜单列表(树形结构)
List<SysMenu> sysMenuList = iSysMenuService.queryList(SysMenuDto.builder()
.menuBizIdList(menuBizIdList)
.isExcludeMy(false)
.build());
if (!CollectionUtils.isEmpty(sysMenuList)){
List<ApiLoginMenuInfoResponse> apiLoginMenuInfoResponseList = sysMenuList
.stream()
.map(dto -> {
ApiLoginMenuInfoResponse menuInfoResponse = new ApiLoginMenuInfoResponse();
BeanUtils.copyProperties(dto,menuInfoResponse);
return menuInfoResponse;
}).collect(Collectors.toList());
//构建菜单树形结构
treeMenu = TreeUtils.buildTree(
apiLoginMenuInfoResponseList,
ApiLoginMenuInfoResponse::getMenuBizId, // 获取节点ID
ApiLoginMenuInfoResponse::getParentBizId, // 获取父节点ID
(parent, children) -> parent.setChildren(children), // 设置子节点
"0" // 根节点的父ID值
);
}
}
}
return Result.success(treeMenu);
}
/**
* 权限-管理端-获取当前登录用户是否有权限访问该项目
* @return
*/
@Override
public Result<Boolean> isProjectVisit(String projectBizId) {
//获取Security上下文当前用户的登录信息
AuthUserDto authUserDto = SecurityUtil.getCurrentLoginUser();
List<RelProjectUser> relProjectUserList = iRelProjectUserService.queryList(RelProjectUserDto.builder()
.projectBizId(projectBizId)
.userBizId(authUserDto.getUserBizId())
.build());
if (CollectionUtils.isEmpty(relProjectUserList)) {
throw new BusinessException("无项目用户权限,请在当前项目添加项目用户权限!");
}
List<RelUserRole> relUserRoleList = iRelUserRoleService.queryList(RelUserRoleDto.builder()
.projectBizId(projectBizId)
.userBizId(authUserDto.getUserBizId())
.build());
if (CollectionUtils.isEmpty(relUserRoleList)) {
throw new BusinessException("无项目用户角色权限,请在当前项目添加用户角色权限!");
}
List<String> roleBizIdList = relUserRoleList.stream().map(RelUserRole::getRoleBizId).collect(Collectors.toList());
List<RelRoleMenu> relRoleMenuList = iRelRoleMenuService.queryList(RelRoleMenuDto.builder()
.projectBizId(projectBizId)
.roleBizIdList(roleBizIdList)
.build());
if (CollectionUtils.isEmpty(relRoleMenuList)) {
throw new BusinessException("无项目角色权限,请在当前项目添加角色菜单权限!");
}
return Result.success();
}
/**
* 校验用户是否存在 * 校验用户是否存在
* @param userBizId * @param userBizId
* @return * @return
......
package com.yd.user.feign.client.reldeptuser;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.reldeptuser.ApiRelDeptUserFeignFallbackFactory;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserDelRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportAddRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 用户服务:部门-用户关系信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiRelDeptUserFeignFallbackFactory.class)
public interface ApiRelDeptUserFeignClient {
/**
* 租户管理-分配权限-部门配置-用户列表
* @param request
* @return
*/
@PostMapping("/tenant/page")
Result page(@Validated @RequestBody ApiRelTenantDeptUserPageRequest request);
/**
* 租户管理-分配权限-部门配置-用户列表删除
* @param request
* @return
*/
@PostMapping("/tenant/del")
Result del(@Validated @RequestBody ApiRelTenantDeptUserDelRequest request);
/**
* 租户管理-分配权限-部门配置-用户列表导入分页查询
* @param request
* @return
*/
@PostMapping("/tenant/import/page")
Result importPage(@Validated @RequestBody ApiRelTenantDeptUserImportPageRequest request);
/**
* 租户管理-分配权限-部门配置-用户列表导入添加
* @param request
* @return
*/
@PostMapping("/tenant/import/add")
Result importAdd(@Validated @RequestBody ApiRelTenantDeptUserImportAddRequest request);
}
package com.yd.user.feign.client.reltenantdept;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.reltenantdept.ApiRelTenantDeptFeignFallbackFactory;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListAddRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 用户服务-租户部门关系信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiRelTenantDeptFeignFallbackFactory.class)
public interface ApiRelTenantDeptFeignClient {
/**
* 租户和部门关系分页查询
* @param request
* @return
*/
@PostMapping("/page")
Result page(@Validated @RequestBody ApiRelTenantDeptListPageRequest request);
/**
* 租户和部门关系树形列表查询
* @param request
* @return
*/
@PostMapping("/tree")
Result<List<ApiRelTenantDeptTreeListResponse>> tree(@Validated @RequestBody ApiRelTenantDeptTreeListRequest request);
/**
* 添加租户和部门列表关系
* @param request
* @return
*/
@PostMapping("/add/dept/list")
Result addDeptList(@Validated @RequestBody ApiRelTenantDeptListAddRequest request);
/**
* 删除租户和部门关系
* @param id 租户和部门关系表主键id
* @return
*/
@DeleteMapping("/del")
Result del(@NotNull(message = "租户和部门关系表主键id不能为空") @RequestParam(value = "id") Long id);
/**
* 导入-树形部门查询
* @param request
* @return
*/
@PostMapping("/import/query/dept/tree")
Result<List<ApiRelTenantDeptImportQueryDeptTreeResponse>> importQueryDeptTree(@Validated @RequestBody ApiRelTenantDeptImportQueryDeptTreeRequest request);
/**
* 导入-树形部门-查询选中的部门id集合
* @param tenantBizId
* @return
*/
@GetMapping("/import/query/selected/dept/list")
Result<List<String>> selectedList(@NotBlank(message = "租户id不能为空") @RequestParam(value = "tenantBizId") String tenantBizId);
}
package com.yd.user.feign.client.sysdept;
import com.yd.common.result.Result;
import com.yd.user.feign.request.sysdept.*;
import com.yd.user.feign.response.sysdept.ApiSysDeptDetailResponse;
import com.yd.user.feign.fallback.sysdept.ApiSysDeptFeignFallbackFactory;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 用户服务-部门项目信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiSysDeptFeignFallbackFactory.class)
public interface ApiSysDeptFeignClient {
/**
* 树形部门列表查询
* @param request
* @return
*/
@PostMapping("/tree/list")
Result<List<ApiSysDeptTreeListResponse>> treeList(@RequestBody ApiSysDeptTreeListRequest request);
/**
* 部门分页查询
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiSysDeptPageRequest request);
/**
* 公司分页查询(公司类型)
* @param request
* @return
*/
@PostMapping("/company/page")
Result companyPage(@RequestBody ApiSysDeptCompanyPageRequest request);
/**
* 获取部门详情
* @param deptBizId 部门唯一标识(业务ID)
* @return
*/
@GetMapping("/detail")
Result<ApiSysDeptDetailResponse> detail(@NotBlank(message = "部门唯一标识(业务ID)不能为空") @RequestParam(value = "deptBizId") String deptBizId);
/**
* 添加部门
* @param request
* @return
*/
@PostMapping("/add")
Result add(@Validated @RequestBody ApiSysDeptAddRequest request);
/**
* 编辑部门
* @param request
* @return
*/
@PutMapping("/edit")
Result edit(@Validated @RequestBody ApiSysDeptEditRequest request);
/**
* 删除部门(逻辑删除)
* @param deptBizId 部门唯一标识(业务ID)
* @return
*/
@DeleteMapping("/del")
Result del(@NotBlank(message = "部门唯一标识(业务ID)不能为空") @RequestParam(value = "deptBizId") String deptBizId);
/**
* 编辑部门状态
* @param deptBizId 部门唯一标识(业务ID)
* @param status 状态(0:禁用 1:启用)
* @return
*/
@PatchMapping("/edit/status")
Result editStatus(@NotBlank(message = "部门唯一标识(业务ID)不能为空") @RequestParam(value = "deptBizId") String deptBizId,
@NotNull(message = "状态不能为空") @RequestParam(value = "status") Integer status);
}
...@@ -5,6 +5,7 @@ import com.yd.user.feign.fallback.sysuser.ApiSysUserFeignFallbackFactory; ...@@ -5,6 +5,7 @@ import com.yd.user.feign.fallback.sysuser.ApiSysUserFeignFallbackFactory;
import com.yd.user.feign.request.systenant.ApiSysTenantPageRequest; import com.yd.user.feign.request.systenant.ApiSysTenantPageRequest;
import com.yd.user.feign.request.sysuser.*; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.response.login.GetLoginPermissionProjectResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import com.yd.user.feign.response.login.GetLoginInfoResponse; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -91,4 +92,26 @@ public interface ApiSysUserFeignClient { ...@@ -91,4 +92,26 @@ public interface ApiSysUserFeignClient {
*/ */
@PostMapping("/scope/page") @PostMapping("/scope/page")
Result scopePage(@Validated @RequestBody ApiScopePageRequest request); Result scopePage(@Validated @RequestBody ApiScopePageRequest request);
/**
* 权限-管理端-获取登录后的项目权限信息
* @return
*/
@GetMapping("/login/permission/project")
Result<GetLoginPermissionProjectResponse> getLoginPermissionProject(@NotBlank(message = "租户业务id不能为空") @RequestParam(value = "tenantBizId") String tenantBizId,
@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
/**
* 权限-管理端-获取当前登录用户绑定的当前项目用户角色菜单列表
* @return
*/
@GetMapping("/login/permission/project/getMenuRouters")
Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
/**
* 权限-管理端-获取当前登录用户是否有权限访问该项目
* @return
*/
@GetMapping("/login/permission/project/visit")
Result<Boolean> isProjectVisit(@NotBlank(message = "项目业务id不能为空") @RequestParam(value = "projectBizId") String projectBizId);
} }
package com.yd.user.feign.fallback.reldeptuser;
import com.yd.common.result.Result;
import com.yd.user.feign.client.reldeptuser.ApiRelDeptUserFeignClient;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserDelRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportAddRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
/**
* 用户服务-部门-用户关系信息Feign降级处理
*/
@Slf4j
@Component
public class ApiRelDeptUserFeignFallbackFactory implements FallbackFactory<ApiRelDeptUserFeignClient> {
@Override
public ApiRelDeptUserFeignClient create(Throwable cause) {
return new ApiRelDeptUserFeignClient() {
@Override
public Result page(ApiRelTenantDeptUserPageRequest request) {
return null;
}
@Override
public Result del(ApiRelTenantDeptUserDelRequest request) {
return null;
}
@Override
public Result importPage(ApiRelTenantDeptUserImportPageRequest request) {
return null;
}
@Override
public Result importAdd(ApiRelTenantDeptUserImportAddRequest request) {
return null;
}
};
}
}
package com.yd.user.feign.fallback.reltenantdept;
import com.yd.common.result.Result;
import com.yd.user.feign.client.reltenantdept.ApiRelTenantDeptFeignClient;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListAddRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 用户服务-租户部门关系信息Feign降级处理
*/
@Slf4j
@Component
public class ApiRelTenantDeptFeignFallbackFactory implements FallbackFactory<ApiRelTenantDeptFeignClient> {
@Override
public ApiRelTenantDeptFeignClient create(Throwable cause) {
return new ApiRelTenantDeptFeignClient() {
@Override
public Result page(ApiRelTenantDeptListPageRequest request) {
return null;
}
@Override
public Result<List<ApiRelTenantDeptTreeListResponse>> tree(ApiRelTenantDeptTreeListRequest request) {
return null;
}
@Override
public Result addDeptList(ApiRelTenantDeptListAddRequest request) {
return null;
}
@Override
public Result del(Long id) {
return null;
}
@Override
public Result<List<ApiRelTenantDeptImportQueryDeptTreeResponse>> importQueryDeptTree(ApiRelTenantDeptImportQueryDeptTreeRequest request) {
return null;
}
@Override
public Result<List<String>> selectedList(String tenantBizId) {
return null;
}
};
}
}
package com.yd.user.feign.fallback.sysdept;
import com.yd.common.result.Result;
import com.yd.user.feign.client.sysdept.ApiSysDeptFeignClient;
import com.yd.user.feign.request.sysdept.*;
import com.yd.user.feign.response.sysdept.ApiSysDeptDetailResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 用户服务-部门信息Feign降级处理
*/
@Slf4j
@Component
public class ApiSysDeptFeignFallbackFactory implements FallbackFactory<ApiSysDeptFeignClient> {
@Override
public ApiSysDeptFeignClient create(Throwable cause) {
return new ApiSysDeptFeignClient() {
@Override
public Result<List<ApiSysDeptTreeListResponse>> treeList(ApiSysDeptTreeListRequest request) {
return null;
}
@Override
public Result page(ApiSysDeptPageRequest request) {
return null;
}
@Override
public Result companyPage(ApiSysDeptCompanyPageRequest request) {
return null;
}
@Override
public Result<ApiSysDeptDetailResponse> detail(@NotBlank(message = "部门唯一标识(业务ID)不能为空") String deptBizId) {
return null;
}
@Override
public Result add(ApiSysDeptAddRequest request) {
return null;
}
@Override
public Result edit(ApiSysDeptEditRequest request) {
return null;
}
@Override
public Result del(@NotBlank(message = "部门唯一标识(业务ID)不能为空") String deptBizId) {
return null;
}
@Override
public Result editStatus(@NotBlank(message = "部门唯一标识(业务ID)不能为空") String deptBizId, @NotNull(message = "状态不能为空") Integer status) {
return null;
}
};
}
}
...@@ -6,6 +6,7 @@ import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient; ...@@ -6,6 +6,7 @@ import com.yd.user.feign.client.sysuser.ApiSysUserFeignClient;
import com.yd.user.feign.request.sysuser.*; import com.yd.user.feign.request.sysuser.*;
import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse; import com.yd.user.feign.response.login.ApiLoginMenuInfoResponse;
import com.yd.user.feign.response.login.GetLoginInfoResponse; import com.yd.user.feign.response.login.GetLoginInfoResponse;
import com.yd.user.feign.response.login.GetLoginPermissionProjectResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse; import com.yd.user.feign.response.sysuser.ApiSysUserDetailResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
...@@ -74,6 +75,21 @@ public class ApiSysUserFeignFallbackFactory implements FallbackFactory<ApiSysUse ...@@ -74,6 +75,21 @@ public class ApiSysUserFeignFallbackFactory implements FallbackFactory<ApiSysUse
return null; return null;
} }
@Override
public Result<GetLoginPermissionProjectResponse> getLoginPermissionProject(String tenantBizId,String projectBizId) {
return null;
}
@Override
public Result<List<ApiLoginMenuInfoResponse>> getProjectMenuRouters(String projectBizId) {
return null;
}
@Override
public Result<Boolean> isProjectVisit(String projectBizId) {
return null;
}
}; };
} }
} }
package com.yd.user.feign.request.reldeptuser;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class ApiRelTenantDeptUserDelRequest {
/**
* 部门-用户关系主键id
*/
@NotNull(message = "部门-用户关系主键id不能为空")
private Long id;
}
package com.yd.user.feign.request.reldeptuser;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiRelTenantDeptUserImportAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 部门唯一业务ID
*/
@NotBlank(message = "部门唯一业务ID不能为空")
private String deptBizId;
/**
* 选中的唯一业务ID列表
*/
@NotEmpty(message = "选中的唯一业务ID列表不能为空")
private List<String> userBizIdList;
}
package com.yd.user.feign.request.reldeptuser;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiRelTenantDeptUserImportPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 部门唯一业务ID
*/
@NotBlank(message = "部门唯一业务ID不能为空")
private String deptBizId;
/**
* 账号
*/
private String userName;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String mobile;
}
package com.yd.user.feign.request.reldeptuser;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiRelTenantDeptUserPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 部门唯一业务ID
*/
@NotBlank(message = "部门唯一业务ID不能为空")
private String deptBizId;
/**
* 账号
*/
private String userName;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String mobile;
}
package com.yd.user.feign.request.reltenantdept;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiRelTenantDeptImportQueryDeptTreeRequest {
/**
* 租户id
*/
@NotBlank(message = "租户id不能为空")
private String tenantBizId;
/**
* 部门名称
*/
private String deptName;
}
package com.yd.user.feign.request.reltenantdept;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@Data
public class ApiRelTenantDeptListAddRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 部门唯一标识(业务ID) 列表(选中列表)
*/
@NotEmpty(message = "部门唯一标识(业务ID) 列表(选中列表)不能为空")
private List<String> deptBizIdList;
}
package com.yd.user.feign.request.reltenantdept;
import com.yd.common.dto.PageDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiRelTenantDeptListPageRequest extends PageDto {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 部门名称
*/
private String deptName;
}
package com.yd.user.feign.request.reltenantdept;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ApiRelTenantDeptTreeListRequest {
/**
* 租户唯一标识(业务ID)
*/
@NotBlank(message = "租户唯一标识(业务ID)不能为空")
private String tenantBizId;
/**
* 部门名称
*/
private String deptName;
}
package com.yd.user.feign.request.sysdept;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class ApiSysDeptAddRequest {
/**
* 类型(1:部门 2:公司)
*/
@NotNull(message = "部门类型不能为空")
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
@NotBlank(message = "部门名称不能为空")
private String deptName;
/**
* 父部门ID
*/
@NotBlank(message = "父部门ID不能为空")
private String parentBizId;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
@NotNull(message = "状态不能为空")
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
@NotNull(message = "作用域不能为空")
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
}
package com.yd.user.feign.request.sysdept;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiSysDeptCompanyPageRequest extends PageDto {
/**
* 部门名称
*/
private String deptName;
}
package com.yd.user.feign.request.sysdept;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class ApiSysDeptEditRequest {
@NotNull(message = "部门主键id不能为空")
private Long id;
/**
* 部门唯一标识(业务ID)
*/
@NotBlank(message = "部门唯一业务标识不能为空")
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
@NotNull(message = "部门类型不能为空")
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
@NotBlank(message = "部门名称不能为空")
private String deptName;
/**
* 父部门ID
*/
@NotBlank(message = "父部门ID不能为空")
private String parentBizId;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
@NotNull(message = "状态不能为空")
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
@NotNull(message = "作用域不能为空")
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
}
package com.yd.user.feign.request.sysdept;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiSysDeptPageRequest extends PageDto {
/**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 部门名称
*/
private String deptName;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
}
package com.yd.user.feign.request.sysdept;
import lombok.Data;
@Data
public class ApiSysDeptTreeListRequest {
/**
* 当前登录用户所属的租户id(当前页面右上角显示的租户)
*/
private String loginTenantBizId;
/**
* 部门名称
*/
private String deptName;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
}
...@@ -73,6 +73,11 @@ public class ApiSysUserAddRequest { ...@@ -73,6 +73,11 @@ public class ApiSysUserAddRequest {
*/ */
@NotNull(message = "状态不能为空") @NotNull(message = "状态不能为空")
private Integer status; private Integer status;
/**
* 用户属性(1-业务员(销售) 2-签单员)
*/
private Integer attribute;
// //
// /** // /**
// * 用户来源(1:系统创建...) // * 用户来源(1:系统创建...)
......
...@@ -81,6 +81,11 @@ public class ApiSysUserEditRequest { ...@@ -81,6 +81,11 @@ public class ApiSysUserEditRequest {
@NotNull(message = "状态不能为空") @NotNull(message = "状态不能为空")
private Integer status; private Integer status;
/**
* 用户属性(1-业务员(销售) 2-签单员)
*/
private Integer attribute;
// /** // /**
// * 用户来源(1:系统创建...) // * 用户来源(1:系统创建...)
// */ // */
......
...@@ -5,7 +5,7 @@ import lombok.Data; ...@@ -5,7 +5,7 @@ import lombok.Data;
import java.util.List; import java.util.List;
/** /**
* 当前登录用户绑定的租户被分配的菜单集合(当前租户用户菜单集合) * 当前登录用户绑定的租户/项目被分配的菜单集合(当前户/项目用户菜单集合)
*/ */
@Data @Data
public class ApiLoginMenuInfoResponse { public class ApiLoginMenuInfoResponse {
...@@ -41,6 +41,11 @@ public class ApiLoginMenuInfoResponse { ...@@ -41,6 +41,11 @@ public class ApiLoginMenuInfoResponse {
private String path; private String path;
/** /**
* 路由名称
*/
private String routeName;
/**
* 组件路径 * 组件路径
*/ */
private String component; private String component;
......
package com.yd.user.feign.response.login;
import lombok.Data;
import java.util.List;
/**
* 权限-管理端-获取登录后的项目权限信息
*/
@Data
public class GetLoginPermissionProjectResponse {
/**
* 是否是初始密码
*/
private Boolean isDefaultModifyPwd = false;
/**
* 是否是过期密码
*/
private Boolean isPasswordExpired = false;
/**
* 当前登录的用户基础信息
*/
private ApiLoginUserInfoResponse apiLoginUserInfoResponse;
/**
* 当前租户基础信息
*/
private ApiLoginTenantInfoResponse apiLoginTenantInfoResponse;
/**
* 当前项目基础信息
*/
private ApiLoginProjectInfoResponse apiLoginProjectInfoResponse;
/**
* 当前登录用户绑定的当前项目被分配的菜单集合(当前项目用户菜单集合)
*/
private List<ApiLoginMenuInfoResponse> apiLoginMenuInfoResponseList;
/**
* 当前登录用户绑定的当前项目被分配的角色编码集合(当前项目用户角色编码集合)
*/
private List<String> roles;
/**
* 当前登录用户绑定的当前项目被分配的控制页面内的具体操作(按钮级权限)集合(当前项目用户所拥有的所有按钮及权限集合)
*/
private List<String> permissions;
}
package com.yd.user.feign.response.reldeptuser;
import lombok.Data;
@Data
public class ApiRelTenantDeptUserImportPageResponse {
/**
* 用户主键ID
*/
private Long id;
/**
* 用户唯一标识(业务ID)
*/
private String userBizId;
/**
* 账号
*/
private String userName;
/**
* 真实姓名
*/
private String realName;
/**
* 昵称
*/
private String nickName;
/**
* 头像URL
*/
private String avatar;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String mobile;
/**
* 性别(0:未知 1:男 2:女)
*/
private Integer gender;
/**
* 用户属性(1-业务员(销售) 2-签单员)
*/
private Integer attribute;
}
package com.yd.user.feign.response.reldeptuser;
import lombok.Data;
@Data
public class ApiRelTenantDeptUserPageResponse {
/**
* 部门-用户关系主键id
*/
private Long id;
/**
* 租户ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:租户级)
*/
private String tenantBizId;
/**
* 部门唯一业务ID
*/
private String deptBizId;
/**
* 用户唯一业务ID
*/
private String userBizId;
/**
* 账号
*/
private String userName;
/**
* 真实姓名
*/
private String realName;
/**
* 昵称
*/
private String nickName;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String mobile;
/**
* 性别(0:未知 1:男 2:女)
*/
private Integer gender;
/**
* 用户属性(1-业务员(销售) 2-签单员)
*/
private Integer attribute;
}
package com.yd.user.feign.response.reltenantdept;
import lombok.Data;
import java.util.List;
@Data
public class ApiRelTenantDeptImportQueryDeptTreeResponse {
/**
* 部门表主键id
*/
private Long id;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 部门名称
*/
private String deptName;
/**
* 子级部门
*/
private List<ApiRelTenantDeptImportQueryDeptTreeResponse> children;
}
package com.yd.user.feign.response.reltenantdept;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class ApiRelTenantDeptListPageResponse {
/**
* 租户和部门关系主键id
*/
private Long id;
/**
* 租户ID(业务id)
*/
private String tenantBizId;
/**
* 部门主键id
*/
private Long deptId;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
private String deptName;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 子级部门
*/
private List<ApiRelTenantDeptListPageResponse> children = new ArrayList<>();
}
package com.yd.user.feign.response.reltenantdept;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class ApiRelTenantDeptTreeListResponse {
/**
* 租户和部门关系主键id
*/
private Long id;
/**
* 租户ID(业务id)
*/
private String tenantBizId;
/**
* 部门主键id
*/
private Long deptId;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
private String deptName;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 子级部门
*/
private List<ApiRelTenantDeptTreeListResponse> children = new ArrayList<>();
}
package com.yd.user.feign.response.sysdept;
import lombok.Data;
@Data
public class ApiSysDeptCompanyPageResponse {
/**
* 主键id
*/
private Long id;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
private String deptName;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
}
package com.yd.user.feign.response.sysdept;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiSysDeptDetailResponse {
/**
* 部门主键id
*/
private Long id;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
private String deptName;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 父子级列表(点符号拼接)
*/
private String ancestors;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属租户名称
*/
private String tenantName;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
/**
* 所属项目名称
*/
private String projectName;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
package com.yd.user.feign.response.sysdept;
import lombok.Data;
import java.util.List;
@Data
public class ApiSysDeptPageResponse {
/**
* 主键id
*/
private Long id;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
private String deptName;
/**
* 父ID(树绑定的父id, 展示作用)
*/
private String parentId;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 父子级列表(点符号拼接)
*/
private String ancestors;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属租户名称
*/
private String tenantName;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
/**
* 所属项目名称
*/
private String projectName;
/**
* 子级部门
*/
private List<ApiSysDeptPageResponse> children;
}
package com.yd.user.feign.response.sysdept;
import lombok.Data;
import java.util.List;
@Data
public class ApiSysDeptTreeListResponse {
/**
* 主键id
*/
private Long id;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 类型(1:部门 2:公司)
*/
private Integer type;
/**
* 部门属性(0-未知 1-保险 2-中介)
*/
private Integer attribute;
/**
* 部门名称
*/
private String deptName;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 父子级列表(点符号拼接)
*/
private String ancestors;
/**
* 显示顺序
*/
private Integer orderNum;
/**
* 联系电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 作用域(1:系统级(全局) 2:租户级 3:项目级)
*/
private Integer scope;
/**
* 所属租户ID(业务id)
*/
private String tenantBizId;
/**
* 所属租户名称
*/
private String tenantName;
/**
* 所属项目ID(业务id)
*/
private String projectBizId;
/**
* 所属项目名称
*/
private String projectName;
/**
* 子级菜单
*/
private List<ApiSysDeptTreeListResponse> children;
}
...@@ -132,7 +132,7 @@ public class ApiSysMenuDetailResponse { ...@@ -132,7 +132,7 @@ public class ApiSysMenuDetailResponse {
/** /**
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -87,7 +87,7 @@ public class ApiSysProjectDetailResponse { ...@@ -87,7 +87,7 @@ public class ApiSysProjectDetailResponse {
/** /**
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -71,7 +71,7 @@ public class ApiSysRoleDetailResponse { ...@@ -71,7 +71,7 @@ public class ApiSysRoleDetailResponse {
/** /**
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -103,7 +103,7 @@ public class ApiSysTenantDetailResponse { ...@@ -103,7 +103,7 @@ public class ApiSysTenantDetailResponse {
/** /**
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -95,6 +95,11 @@ public class ApiSysUserDetailResponse { ...@@ -95,6 +95,11 @@ public class ApiSysUserDetailResponse {
private Integer sourceType; private Integer sourceType;
/** /**
* 用户属性(1-业务员(销售) 2-签单员)
*/
private Integer attribute;
/**
* 通用备注 * 通用备注
*/ */
private String remark; private String remark;
...@@ -102,7 +107,7 @@ public class ApiSysUserDetailResponse { ...@@ -102,7 +107,7 @@ public class ApiSysUserDetailResponse {
/** /**
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -82,4 +82,8 @@ public class ApiSysUserPageResponse { ...@@ -82,4 +82,8 @@ public class ApiSysUserPageResponse {
*/ */
private LocalDateTime createTime; private LocalDateTime createTime;
/**
* 用户属性(1-业务员(销售) 2-签单员)
*/
private Integer attribute;
} }
package com.yd.user.service.dao; package com.yd.user.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserImportPageResponse;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserPageResponse;
import com.yd.user.service.model.RelDeptUser; import com.yd.user.service.model.RelDeptUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/** /**
* <p> * <p>
...@@ -9,8 +16,13 @@ import com.yd.user.service.model.RelDeptUser; ...@@ -9,8 +16,13 @@ import com.yd.user.service.model.RelDeptUser;
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
public interface RelDeptUserMapper extends BaseMapper<RelDeptUser> { public interface RelDeptUserMapper extends BaseMapper<RelDeptUser> {
IPage<ApiRelTenantDeptUserPageResponse> page(@Param("page") Page<ApiRelTenantDeptUserPageResponse> page,
@Param("request") ApiRelTenantDeptUserPageRequest request);
IPage<ApiRelTenantDeptUserImportPageResponse> importPage(@Param("page") Page<ApiRelTenantDeptUserImportPageResponse> page,
@Param("request") ApiRelTenantDeptUserImportPageRequest request);
} }
package com.yd.user.api.controller; package com.yd.user.service.dao;
import org.springframework.web.bind.annotation.RequestMapping; import com.yd.user.service.model.RelProjectDept;
import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* <p> * <p>
* 部门表 前端控制器 * 项目-部门关系表 Mapper 接口
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
@RestController public interface RelProjectDeptMapper extends BaseMapper<RelProjectDept> {
@RequestMapping("/sysDept")
public class SysDeptController {
} }
package com.yd.user.service.dao; package com.yd.user.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuListPageRequest;
import com.yd.user.feign.request.reltenantmenu.ApiRelTenantMenuTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptListPageResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuImportQueryMenuTreeResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuListPageResponse;
import com.yd.user.feign.response.reltenantmenu.ApiRelTenantMenuTreeListResponse;
import com.yd.user.service.model.RelTenantDept; import com.yd.user.service.model.RelTenantDept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
* 租户-部门关系表(正常来说一对多,加关系表方便扩展) Mapper 接口 * 租户-部门关系表 Mapper 接口
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
public interface RelTenantDeptMapper extends BaseMapper<RelTenantDept> { public interface RelTenantDeptMapper extends BaseMapper<RelTenantDept> {
IPage<ApiRelTenantDeptListPageResponse> page(@Param("page") IPage<ApiRelTenantDeptListPageResponse> page,
@Param("request") ApiRelTenantDeptListPageRequest request);
List<ApiRelTenantDeptTreeListResponse> treeList(@Param("request") ApiRelTenantDeptTreeListRequest request);
List<ApiRelTenantDeptImportQueryDeptTreeResponse> importQueryDeptTreeList(@Param("request") ApiRelTenantDeptImportQueryDeptTreeRequest request);
} }
package com.yd.user.service.dao; package com.yd.user.service.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.sysdept.ApiSysDeptCompanyPageRequest;
import com.yd.user.feign.request.sysdept.ApiSysDeptPageRequest;
import com.yd.user.feign.request.sysmenu.ApiSysMenuPageRequest;
import com.yd.user.feign.response.sysdept.ApiSysDeptCompanyPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import com.yd.user.feign.response.sysmenu.ApiSysMenuPageResponse;
import com.yd.user.feign.response.sysmenu.ApiSysMenuTreeListResponse;
import com.yd.user.service.model.SysDept; import com.yd.user.service.model.SysDept;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +26,17 @@ import com.yd.user.service.model.SysDept; ...@@ -13,4 +26,17 @@ import com.yd.user.service.model.SysDept;
*/ */
public interface SysDeptMapper extends BaseMapper<SysDept> { public interface SysDeptMapper extends BaseMapper<SysDept> {
List<ApiSysDeptTreeListResponse> treeList(@Param("loginTenantBizId") String loginTenantBizId,
@Param("isAdmin") Boolean isAdmin,
@Param("deptName") String deptName,
@Param("projectBizIdList") List<String> projectBizIdList);
IPage<ApiSysDeptPageResponse> page(@Param("page") Page<ApiSysDeptPageResponse> page,
@Param("request") ApiSysDeptPageRequest request,
@Param("isAdmin") Boolean isAdmin,
@Param("projectBizIdList") List<String> projectBizIdList,
@Param("loginTenantBizId") String loginTenantBizId);
IPage<ApiSysDeptCompanyPageResponse> companyPage(@Param("page") Page<ApiSysDeptCompanyPageResponse> page,
@Param("request") ApiSysDeptCompanyPageRequest request);
} }
package com.yd.user.service.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RelProjectUserDto {
/**
* 项目ID(业务id)
*/
private String projectBizId;
/**
* 用户ID(业务id)
*/
private String userBizId;
}
package com.yd.user.service.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RelTenantDeptDto {
/**
* 租户部门关系主键id
*/
private Long id;
/**
* 租户ID(业务id)
*/
private String tenantBizId;
/**
* 部门ID(业务id)
*/
private String deptBizId;
}
package com.yd.user.service.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 部门公共参数对象
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysDeptDto {
/**
* 部门表主键id
*/
private Long id;
/**
* 部门唯一标识(业务ID)
*/
private String deptBizId;
/**
* 部门唯一标识(业务ID)集合
*/
private List<String> deptBizIdList;
/**
* 父部门ID
*/
private String parentBizId;
/**
* 部门名称
*/
private String deptName;
/**
* 查询是否排除当前部门唯一标识数据,默认false不排除,true的话projectBizId必传
*/
@Builder.Default
private Boolean isExcludeMy = false;
}
...@@ -4,12 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType; ...@@ -4,12 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/** /**
* <p> * <p>
...@@ -17,11 +15,10 @@ import java.time.LocalDateTime; ...@@ -17,11 +15,10 @@ import java.time.LocalDateTime;
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
@Getter @Getter
@Setter @Setter
@ToString
@TableName("rel_dept_user") @TableName("rel_dept_user")
public class RelDeptUser implements Serializable { public class RelDeptUser implements Serializable {
...@@ -31,13 +28,25 @@ public class RelDeptUser implements Serializable { ...@@ -31,13 +28,25 @@ public class RelDeptUser implements Serializable {
private Long id; private Long id;
/** /**
* 部门ID(业务id) * 租户ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:租户级)
*/
@TableField("tenant_biz_id")
private String tenantBizId;
/**
* 项目ID(业务id)(冗余字段,目的当前关系是发生在哪个作用域下:项目级)
*/
@TableField("project_biz_id")
private String projectBizId;
/**
* 部门唯一业务ID
*/ */
@TableField("dept_biz_id") @TableField("dept_biz_id")
private String deptBizId; private String deptBizId;
/** /**
* 用户ID(业务id) * 用户唯一业务ID
*/ */
@TableField("user_biz_id") @TableField("user_biz_id")
private String userBizId; private String userBizId;
...@@ -58,7 +67,7 @@ public class RelDeptUser implements Serializable { ...@@ -58,7 +67,7 @@ public class RelDeptUser implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelGroupRole implements Serializable { ...@@ -58,7 +58,7 @@ public class RelGroupRole implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelGroupUser implements Serializable { ...@@ -58,7 +58,7 @@ public class RelGroupUser implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
package com.yd.user.service.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
* 项目-部门关系表
* </p>
*
* @author zxm
* @since 2025-08-25
*/
@Getter
@Setter
@TableName("rel_project_dept")
public class RelProjectDept implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 项目ID(业务id)
*/
@TableField("project_biz_id")
private String projectBizId;
/**
* 部门唯一业务ID
*/
@TableField("dept_biz_id")
private String deptBizId;
/**
* 状态(0:禁用 1:启用)
*/
@TableField("status")
private Integer status;
/**
* 通用备注
*/
@TableField("remark")
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField("is_deleted")
private Integer isDeleted;
/**
* 创建人ID
*/
@TableField("creator_id")
private String creatorId;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
}
...@@ -58,7 +58,7 @@ public class RelProjectMenu implements Serializable { ...@@ -58,7 +58,7 @@ public class RelProjectMenu implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelProjectRole implements Serializable { ...@@ -58,7 +58,7 @@ public class RelProjectRole implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelProjectUser implements Serializable { ...@@ -58,7 +58,7 @@ public class RelProjectUser implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelProjectUserGroup implements Serializable { ...@@ -58,7 +58,7 @@ public class RelProjectUserGroup implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -70,7 +70,7 @@ public class RelRoleMenu implements Serializable { ...@@ -70,7 +70,7 @@ public class RelRoleMenu implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -4,24 +4,21 @@ import com.baomidou.mybatisplus.annotation.IdType; ...@@ -4,24 +4,21 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
/** /**
* <p> * <p>
* 租户-部门关系表(正常来说一对多,加关系表方便扩展) * 租户-部门关系表
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
@Getter @Getter
@Setter @Setter
@ToString
@TableName("rel_tenant_dept") @TableName("rel_tenant_dept")
public class RelTenantDept implements Serializable { public class RelTenantDept implements Serializable {
...@@ -37,7 +34,7 @@ public class RelTenantDept implements Serializable { ...@@ -37,7 +34,7 @@ public class RelTenantDept implements Serializable {
private String tenantBizId; private String tenantBizId;
/** /**
* 部门ID(业务id) * 部门唯一业务ID
*/ */
@TableField("dept_biz_id") @TableField("dept_biz_id")
private String deptBizId; private String deptBizId;
...@@ -58,7 +55,7 @@ public class RelTenantDept implements Serializable { ...@@ -58,7 +55,7 @@ public class RelTenantDept implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelTenantMenu implements Serializable { ...@@ -58,7 +58,7 @@ public class RelTenantMenu implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelTenantProject implements Serializable { ...@@ -58,7 +58,7 @@ public class RelTenantProject implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelTenantRole implements Serializable { ...@@ -58,7 +58,7 @@ public class RelTenantRole implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelTenantUser implements Serializable { ...@@ -58,7 +58,7 @@ public class RelTenantUser implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -58,7 +58,7 @@ public class RelTenantUserGroup implements Serializable { ...@@ -58,7 +58,7 @@ public class RelTenantUserGroup implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -70,7 +70,7 @@ public class RelUserRole implements Serializable { ...@@ -70,7 +70,7 @@ public class RelUserRole implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -43,7 +43,7 @@ public class SysDept implements Serializable { ...@@ -43,7 +43,7 @@ public class SysDept implements Serializable {
private Integer type; private Integer type;
/** /**
* 组织属性(0-未知 1-保险 2-中介) * 部门属性(0-未知 1-保险 2-中介)
*/ */
@TableField("attribute") @TableField("attribute")
private Integer attribute; private Integer attribute;
...@@ -58,7 +58,7 @@ public class SysDept implements Serializable { ...@@ -58,7 +58,7 @@ public class SysDept implements Serializable {
* 父部门ID * 父部门ID
*/ */
@TableField("parent_biz_id") @TableField("parent_biz_id")
private Long parentBizId; private String parentBizId;
/** /**
* 父子级列表(点符号拼接) * 父子级列表(点符号拼接)
...@@ -118,7 +118,7 @@ public class SysDept implements Serializable { ...@@ -118,7 +118,7 @@ public class SysDept implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -64,7 +64,7 @@ public class SysDict implements Serializable { ...@@ -64,7 +64,7 @@ public class SysDict implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -82,7 +82,7 @@ public class SysDictItem implements Serializable { ...@@ -82,7 +82,7 @@ public class SysDictItem implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -112,7 +112,7 @@ public class SysLoginLog implements Serializable { ...@@ -112,7 +112,7 @@ public class SysLoginLog implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -154,7 +154,7 @@ public class SysMenu implements Serializable { ...@@ -154,7 +154,7 @@ public class SysMenu implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -142,7 +142,7 @@ public class SysOperLog implements Serializable { ...@@ -142,7 +142,7 @@ public class SysOperLog implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -70,7 +70,7 @@ public class SysPost implements Serializable { ...@@ -70,7 +70,7 @@ public class SysPost implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -115,7 +115,7 @@ public class SysProject implements Serializable { ...@@ -115,7 +115,7 @@ public class SysProject implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -100,7 +100,7 @@ public class SysRole implements Serializable { ...@@ -100,7 +100,7 @@ public class SysRole implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -139,7 +139,7 @@ public class SysTenant implements Serializable { ...@@ -139,7 +139,7 @@ public class SysTenant implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -130,7 +130,7 @@ public class SysUser implements Serializable { ...@@ -130,7 +130,7 @@ public class SysUser implements Serializable {
private Integer sourceType; private Integer sourceType;
/** /**
* 用户属性(0-未知 1-业务员(销售) 2-签单员) * 用户属性(1-业务员(销售) 2-签单员)
*/ */
@TableField("attribute") @TableField("attribute")
private Integer attribute; private Integer attribute;
...@@ -145,7 +145,7 @@ public class SysUser implements Serializable { ...@@ -145,7 +145,7 @@ public class SysUser implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
...@@ -46,7 +46,7 @@ public class SysUserGroup implements Serializable { ...@@ -46,7 +46,7 @@ public class SysUserGroup implements Serializable {
* 父用户组ID * 父用户组ID
*/ */
@TableField("parent_biz_id") @TableField("parent_biz_id")
private Long parentBizId; private String parentBizId;
/** /**
* 父子级列表(点符号拼接) * 父子级列表(点符号拼接)
...@@ -76,7 +76,7 @@ public class SysUserGroup implements Serializable { ...@@ -76,7 +76,7 @@ public class SysUserGroup implements Serializable {
* 删除标识: 0-正常, 1-删除 * 删除标识: 0-正常, 1-删除
*/ */
@TableField("is_deleted") @TableField("is_deleted")
private Boolean isDeleted; private Integer isDeleted;
/** /**
* 创建人ID * 创建人ID
......
package com.yd.user.service.service; package com.yd.user.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserImportPageResponse;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserPageResponse;
import com.yd.user.service.model.RelDeptUser; import com.yd.user.service.model.RelDeptUser;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -9,8 +15,15 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -9,8 +15,15 @@ import com.baomidou.mybatisplus.extension.service.IService;
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
public interface IRelDeptUserService extends IService<RelDeptUser> { public interface IRelDeptUserService extends IService<RelDeptUser> {
IPage<ApiRelTenantDeptUserPageResponse> page(Page<ApiRelTenantDeptUserPageResponse> page,
ApiRelTenantDeptUserPageRequest request);
RelDeptUser queryOne(Long id);
IPage<ApiRelTenantDeptUserImportPageResponse> importPage(Page<ApiRelTenantDeptUserImportPageResponse> page,
ApiRelTenantDeptUserImportPageRequest request);
} }
package com.yd.user.service.service;
import com.yd.user.service.model.RelProjectDept;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 项目-部门关系表 服务类
* </p>
*
* @author zxm
* @since 2025-08-25
*/
public interface IRelProjectDeptService extends IService<RelProjectDept> {
}
...@@ -6,10 +6,13 @@ import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserListPageRequest ...@@ -6,10 +6,13 @@ import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserListPageRequest
import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserSelectPageRequest; import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserSelectPageRequest;
import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserListPageResponse; import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserListPageResponse;
import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserSelectPageResponse; import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserSelectPageResponse;
import com.yd.user.service.dto.RelProjectUserDto;
import com.yd.user.service.model.RelProjectUser; import com.yd.user.service.model.RelProjectUser;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.user.service.model.RelTenantUser; import com.yd.user.service.model.RelTenantUser;
import java.util.List;
/** /**
* <p> * <p>
* 项目-用户关系表(多对多关系) 服务类 * 项目-用户关系表(多对多关系) 服务类
...@@ -27,4 +30,6 @@ public interface IRelProjectUserService extends IService<RelProjectUser> { ...@@ -27,4 +30,6 @@ public interface IRelProjectUserService extends IService<RelProjectUser> {
ApiRelProjectUserSelectPageRequest request); ApiRelProjectUserSelectPageRequest request);
RelProjectUser queryOne(Long id); RelProjectUser queryOne(Long id);
List<RelProjectUser> queryList(RelProjectUserDto dto);
} }
package com.yd.user.service.service; package com.yd.user.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptListPageResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import com.yd.user.service.dto.RelTenantDeptDto;
import com.yd.user.service.model.RelTenantDept; import com.yd.user.service.model.RelTenantDept;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/** /**
* <p> * <p>
* 租户-部门关系表(正常来说一对多,加关系表方便扩展) 服务类 * 租户-部门关系表 服务类
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
public interface IRelTenantDeptService extends IService<RelTenantDept> { public interface IRelTenantDeptService extends IService<RelTenantDept> {
IPage<ApiRelTenantDeptListPageResponse> page(Page<ApiRelTenantDeptListPageResponse> page,
ApiRelTenantDeptListPageRequest request);
List<ApiRelTenantDeptTreeListResponse> treeList(ApiRelTenantDeptTreeListRequest request);
Boolean removeByTenantBizId(String tenantBizId);
RelTenantDept queryOne(Long id);
List<ApiRelTenantDeptImportQueryDeptTreeResponse> importQueryDeptTreeList(ApiRelTenantDeptImportQueryDeptTreeRequest request);
List<RelTenantDept> queryList(RelTenantDeptDto dto);
} }
package com.yd.user.service.service; package com.yd.user.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.sysdept.ApiSysDeptCompanyPageRequest;
import com.yd.user.feign.request.sysdept.ApiSysDeptPageRequest;
import com.yd.user.feign.request.sysmenu.ApiSysMenuPageRequest;
import com.yd.user.feign.response.sysdept.ApiSysDeptCompanyPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import com.yd.user.feign.response.sysmenu.ApiSysMenuPageResponse;
import com.yd.user.feign.response.sysmenu.ApiSysMenuTreeListResponse;
import com.yd.user.service.dto.SysDeptDto;
import com.yd.user.service.dto.SysMenuDto;
import com.yd.user.service.model.SysDept; import com.yd.user.service.model.SysDept;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yd.user.service.model.SysMenu;
import java.util.List;
/** /**
* <p> * <p>
...@@ -13,4 +28,21 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -13,4 +28,21 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface ISysDeptService extends IService<SysDept> { public interface ISysDeptService extends IService<SysDept> {
List<ApiSysDeptTreeListResponse> treeList(String loginTenantBizId,
Boolean isAdmin,
String deptName,
List<String> projectBizIdList);
IPage<ApiSysDeptPageResponse> page(Page<ApiSysDeptPageResponse> page,
ApiSysDeptPageRequest request,
Boolean isAdmin,
List<String> projectBizIdList,
String loginTenantBizId);
IPage<ApiSysDeptCompanyPageResponse> companyPage(Page<ApiSysDeptCompanyPageResponse> page,
ApiSysDeptCompanyPageRequest request);
SysDept queryOne(String deptBizId);
List<SysDept> queryList(SysDeptDto dto);
} }
package com.yd.user.service.service.impl; package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserImportPageRequest;
import com.yd.user.feign.request.reldeptuser.ApiRelTenantDeptUserPageRequest;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserImportPageResponse;
import com.yd.user.feign.response.reldeptuser.ApiRelTenantDeptUserPageResponse;
import com.yd.user.service.model.RelDeptUser; import com.yd.user.service.model.RelDeptUser;
import com.yd.user.service.dao.RelDeptUserMapper; import com.yd.user.service.dao.RelDeptUserMapper;
import com.yd.user.service.service.IRelDeptUserService; import com.yd.user.service.service.IRelDeptUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -13,10 +18,30 @@ import org.springframework.stereotype.Service; ...@@ -13,10 +18,30 @@ import org.springframework.stereotype.Service;
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
@Service @Service
@Primary
public class RelDeptUserServiceImpl extends ServiceImpl<RelDeptUserMapper, RelDeptUser> implements IRelDeptUserService { public class RelDeptUserServiceImpl extends ServiceImpl<RelDeptUserMapper, RelDeptUser> implements IRelDeptUserService {
@Override
public IPage<ApiRelTenantDeptUserPageResponse> page(Page<ApiRelTenantDeptUserPageResponse> page,
ApiRelTenantDeptUserPageRequest request) {
return baseMapper.page(page,request);
}
/**
* 主键拆查询单个对象
* @param id
* @return
*/
@Override
public RelDeptUser queryOne(Long id) {
return this.getById(id);
}
@Override
public IPage<ApiRelTenantDeptUserImportPageResponse> importPage(Page<ApiRelTenantDeptUserImportPageResponse> page,
ApiRelTenantDeptUserImportPageRequest request) {
return baseMapper.importPage(page,request);
}
} }
package com.yd.user.service.service.impl;
import com.yd.user.service.model.RelProjectDept;
import com.yd.user.service.dao.RelProjectDeptMapper;
import com.yd.user.service.service.IRelProjectDeptService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 项目-部门关系表 服务实现类
* </p>
*
* @author zxm
* @since 2025-08-25
*/
@Service
public class RelProjectDeptServiceImpl extends ServiceImpl<RelProjectDeptMapper, RelProjectDept> implements IRelProjectDeptService {
}
package com.yd.user.service.service.impl; package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserListPageRequest; import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserListPageRequest;
import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserSelectPageRequest; import com.yd.user.feign.request.relprojectuser.ApiRelProjectUserSelectPageRequest;
import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserListPageResponse; import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserListPageResponse;
import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserSelectPageResponse; import com.yd.user.feign.response.relprojectuser.ApiRelProjectUserSelectPageResponse;
import com.yd.user.service.dto.RelProjectUserDto;
import com.yd.user.service.model.RelProjectUser; import com.yd.user.service.model.RelProjectUser;
import com.yd.user.service.dao.RelProjectUserMapper; import com.yd.user.service.dao.RelProjectUserMapper;
import com.yd.user.service.model.RelRoleMenu;
import com.yd.user.service.service.IRelProjectUserService; import com.yd.user.service.service.IRelProjectUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
/** /**
* <p> * <p>
...@@ -55,4 +63,18 @@ public class RelProjectUserServiceImpl extends ServiceImpl<RelProjectUserMapper, ...@@ -55,4 +63,18 @@ public class RelProjectUserServiceImpl extends ServiceImpl<RelProjectUserMapper,
public RelProjectUser queryOne(Long id) { public RelProjectUser queryOne(Long id) {
return this.getById(id); return this.getById(id);
} }
/**
* 查询关系列表
* @param dto
* @return
*/
@Override
public List<RelProjectUser> queryList(RelProjectUserDto dto) {
List<RelProjectUser> list = baseMapper.selectList(new LambdaQueryWrapper<RelProjectUser>()
.eq(StringUtils.isNotBlank(dto.getProjectBizId()),RelProjectUser::getProjectBizId,dto.getProjectBizId())
.eq(StringUtils.isNotBlank(dto.getUserBizId()),RelProjectUser::getUserBizId,dto.getUserBizId())
);
return list;
}
} }
package com.yd.user.service.service.impl; package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptListPageRequest;
import com.yd.user.feign.request.reltenantdept.ApiRelTenantDeptTreeListRequest;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptImportQueryDeptTreeResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptListPageResponse;
import com.yd.user.feign.response.reltenantdept.ApiRelTenantDeptTreeListResponse;
import com.yd.user.service.dto.RelTenantDeptDto;
import com.yd.user.service.model.RelTenantDept; import com.yd.user.service.model.RelTenantDept;
import com.yd.user.service.dao.RelTenantDeptMapper; import com.yd.user.service.dao.RelTenantDeptMapper;
import com.yd.user.service.model.RelTenantMenu;
import com.yd.user.service.service.IRelTenantDeptService; import com.yd.user.service.service.IRelTenantDeptService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.context.annotation.Primary; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/** /**
* <p> * <p>
* 租户-部门关系表(正常来说一对多,加关系表方便扩展) 服务实现类 * 租户-部门关系表 服务实现类
* </p> * </p>
* *
* @author zxm * @author zxm
* @since 2025-07-31 * @since 2025-08-25
*/ */
@Service @Service
@Primary
public class RelTenantDeptServiceImpl extends ServiceImpl<RelTenantDeptMapper, RelTenantDept> implements IRelTenantDeptService { public class RelTenantDeptServiceImpl extends ServiceImpl<RelTenantDeptMapper, RelTenantDept> implements IRelTenantDeptService {
@Override
public IPage<ApiRelTenantDeptListPageResponse> page(Page<ApiRelTenantDeptListPageResponse> page,
ApiRelTenantDeptListPageRequest request) {
return baseMapper.page(page,request);
}
@Override
public List<ApiRelTenantDeptTreeListResponse> treeList(ApiRelTenantDeptTreeListRequest request) {
return baseMapper.treeList(request);
}
/**
* 根据租户id删除关系
* @param tenantBizId
* @return
*/
@Override
public Boolean removeByTenantBizId(String tenantBizId) {
return this.remove(new LambdaQueryWrapper<RelTenantDept>().eq(RelTenantDept::getTenantBizId,tenantBizId));
}
/**
* 查询单个对象
* @param id
* @return
*/
@Override
public RelTenantDept queryOne(Long id) {
return this.getById(id);
}
@Override
public List<ApiRelTenantDeptImportQueryDeptTreeResponse> importQueryDeptTreeList(ApiRelTenantDeptImportQueryDeptTreeRequest request) {
return baseMapper.importQueryDeptTreeList(request);
}
/**
* 根据条件查询列表
* @param dto
* @return
*/
@Override
public List<RelTenantDept> queryList(RelTenantDeptDto dto) {
List<RelTenantDept> list = baseMapper.selectList(new LambdaQueryWrapper<RelTenantDept>()
.eq(!Objects.isNull(dto.getId()),RelTenantDept::getId,dto.getId())
.eq(StringUtils.isNotBlank(dto.getTenantBizId()),RelTenantDept::getTenantBizId,dto.getTenantBizId())
.eq(StringUtils.isNotBlank(dto.getDeptBizId()),RelTenantDept::getDeptBizId,dto.getDeptBizId())
);
return list;
}
} }
package com.yd.user.service.service.impl; package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.sysdept.ApiSysDeptCompanyPageRequest;
import com.yd.user.feign.request.sysdept.ApiSysDeptPageRequest;
import com.yd.user.feign.response.sysdept.ApiSysDeptCompanyPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptPageResponse;
import com.yd.user.feign.response.sysdept.ApiSysDeptTreeListResponse;
import com.yd.user.service.dto.SysDeptDto;
import com.yd.user.service.model.SysDept; import com.yd.user.service.model.SysDept;
import com.yd.user.service.dao.SysDeptMapper; import com.yd.user.service.dao.SysDeptMapper;
import com.yd.user.service.model.SysMenu;
import com.yd.user.service.service.ISysDeptService; import com.yd.user.service.service.ISysDeptService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
/** /**
* <p> * <p>
...@@ -19,4 +34,61 @@ import org.springframework.stereotype.Service; ...@@ -19,4 +34,61 @@ import org.springframework.stereotype.Service;
@Primary @Primary
public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements ISysDeptService { public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements ISysDeptService {
/**
* 条件搜索构建部门树的数据
* @param loginTenantBizId
* @param isAdmin
* @param deptName
* @param projectBizIdList
* @return
*/
@Override
public List<ApiSysDeptTreeListResponse> treeList(String loginTenantBizId,
Boolean isAdmin,
String deptName,
List<String> projectBizIdList) {
return baseMapper.treeList(loginTenantBizId,isAdmin,deptName,projectBizIdList);
}
@Override
public IPage<ApiSysDeptPageResponse> page(Page<ApiSysDeptPageResponse> page,
ApiSysDeptPageRequest request,
Boolean isAdmin,
List<String> projectBizIdList,
String loginTenantBizId) {
return baseMapper.page(page,request,isAdmin,projectBizIdList,loginTenantBizId);
}
@Override
public IPage<ApiSysDeptCompanyPageResponse> companyPage(Page<ApiSysDeptCompanyPageResponse> page,
ApiSysDeptCompanyPageRequest request) {
return baseMapper.companyPage(page,request);
}
/**
* 查询单个对象
* @param deptBizId
* @return
*/
@Override
public SysDept queryOne(String deptBizId) {
return this.getOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getDeptBizId,deptBizId));
}
/**
* 根据条件查询列表
* @param dto
* @return
*/
@Override
public List<SysDept> queryList(SysDeptDto dto) {
List<SysDept> list = baseMapper.selectList(new LambdaQueryWrapper<SysDept>()
.eq(!Objects.isNull(dto.getId()),SysDept::getId,dto.getId())
.eq(StringUtils.isNotBlank(dto.getDeptBizId()) && !dto.getIsExcludeMy(),SysDept::getDeptBizId,dto.getDeptBizId())
.eq(StringUtils.isNotBlank(dto.getDeptName()),SysDept::getDeptName,dto.getDeptName())
.in(!CollectionUtils.isEmpty(dto.getDeptBizIdList()),SysDept::getDeptBizId,dto.getDeptBizIdList())
.ne(dto.getIsExcludeMy(),SysDept::getDeptBizId,dto.getDeptBizId())
);
return list;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment