作者 yangfu

可见用户分组

... ... @@ -59,6 +59,7 @@ type (
DepartmentListRequest {
Page int `json:"page"`
Size int `json:"size"`
IncludeRootCompany bool `json:"includeRootCompany,optional"` // 包含公司(把公司当作部门作为顶级节点 部门ID:0)
}
DepartmentListResponse {
... ...
... ... @@ -209,7 +209,7 @@ type(
ArticleId int64 `json:"articleId,optional"` // 按文章ID(返回文章可见的用户)
RoleId int64 `json:"roleId,optional"` // 按角色角色关联的用户
Keywords string `json:"keywords,optional"` // 按关键字搜索(名称)
DepartmentId int64 `json:"departmentId,optional"` // 按部门过滤
DepartmentId *int64 `json:"departmentId,optional"` // 按部门过滤
}
MiniUserNewsRequest{
AuthorId int64 `json:"authorId,optional"` // 特定作者ID
... ... @@ -274,7 +274,7 @@ type(
Position string `json:"position"`// 职位
}
Department struct {
Id int64 `json:"id,omitempty"` // 部门ID
Id int64 `json:"id"` // 部门ID
CompanyId int64 `json:"companyId"` // 公司ID
ParentId int64 `json:"parentId"` // 父级ID
Name string `json:"name"` // 部门名称
... ...
... ... @@ -39,6 +39,17 @@ func (l *SystemListLogic) SystemList(req *types.DepartmentListRequest) (resp *ty
Total: total,
List: make([]types.Department, 0),
}
if req.IncludeRootCompany {
company, _ := l.svcCtx.CompanyRepository.FindOne(l.ctx, conn, userToken.CompanyId)
if company != nil {
resp.List = append(resp.List, types.Department{
Id: 0,
CompanyId: company.Id,
ParentId: -1,
Name: company.Name,
})
}
}
for _, item := range list {
to := types.Department{
Id: item.Id,
... ...
... ... @@ -43,11 +43,15 @@ func (l *MiniAtUsersListLogic) MiniAtUsersList(req *types.MiniUsersListRequest)
onlyUsers = article.WhoRead
}
}
if _, users, err = l.svcCtx.UserRepository.FindDepartmentUsers(l.ctx, conn, userToken.CompanyId, domain.NewQueryOptions().
WithKV("name", req.Keywords).WithKV("departmentId", req.DepartmentId).WithFindOnly()); err != nil {
queryOptions := domain.NewQueryOptions().
WithKV("name", req.Keywords).WithFindOnly()
if req.DepartmentId != nil && *req.DepartmentId > 0 {
queryOptions.WithKV("departmentId", *req.DepartmentId)
}
if _, users, err = l.svcCtx.UserRepository.FindDepartmentUsers(l.ctx, conn, userToken.CompanyId, queryOptions); err != nil {
return nil, xerr.NewErrMsgErr("用户列表获取失败", err)
}
if len(onlyUsers) > 0 {
if len(onlyUsers) > 0 || (req.DepartmentId != nil && *req.DepartmentId == 0) {
onlyUsersMap := lo.KeyBy(onlyUsers, func(item int64) int64 {
return item
})
... ... @@ -55,6 +59,11 @@ func (l *MiniAtUsersListLogic) MiniAtUsersList(req *types.MiniUsersListRequest)
if _, ok := onlyUsersMap[item.Id]; ok {
return false
}
if req.DepartmentId != nil && *req.DepartmentId == 0 {
if len(item.Departments) > 0 {
return false
}
}
return true
})
}
... ...
... ... @@ -562,7 +562,7 @@ type MiniUsersListRequest struct {
ArticleId int64 `json:"articleId,optional"` // 按文章ID(返回文章可见的用户)
RoleId int64 `json:"roleId,optional"` // 按角色角色关联的用户
Keywords string `json:"keywords,optional"` // 按关键字搜索(名称)
DepartmentId int64 `json:"departmentId,optional"` // 按部门过滤
DepartmentId *int64 `json:"departmentId,optional"` // 按部门过滤
}
type MiniUserNewsRequest struct {
... ... @@ -632,11 +632,11 @@ type Account struct {
}
type Department struct {
Id int64 `json:"id,omitempty"` // 部门ID
CompanyId int64 `json:"companyId"` // 公司ID
ParentId int64 `json:"parentId"` // 父级ID
Name string `json:"name"` // 部门名称
UserIds []int64 `json:"userIds"` // 部门下的用户
Id int64 `json:"id"` // 部门ID
CompanyId int64 `json:"companyId"` // 公司ID
ParentId int64 `json:"parentId"` // 父级ID
Name string `json:"name"` // 部门名称
UserIds []int64 `json:"userIds"` // 部门下的用户
}
type UserSearchRequest struct {
... ... @@ -1727,8 +1727,9 @@ type DepartmentUpdateRequest struct {
}
type DepartmentListRequest struct {
Page int `json:"page"`
Size int `json:"size"`
Page int `json:"page"`
Size int `json:"size"`
IncludeRootCompany bool `json:"includeRootCompany,optional"` // 包含公司(把公司当作部门作为顶级节点 部门ID:0)
}
type DepartmentListResponse struct {
... ...