package department import ( "context" "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" "github.com/zeromicro/go-zero/core/logx" ) type SystemGetLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewSystemGetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SystemGetLogic { return &SystemGetLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *SystemGetLogic) SystemGet(req *types.DepartmentGetRequest) (resp *types.DepartmentGetResponse, err error) { var userToken = contextdata.GetUserTokenFromCtx(l.ctx) var conn = l.svcCtx.DefaultDBConn() department, err := l.svcCtx.DepartmentRepository.FindOne(l.ctx, conn, req.Id) if err != nil { return nil, xerr.NewErrMsg("数据不存在") } // 部门下的用户 _, users, err := l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().WithFindOnly(). WithKV("companyId", userToken.CompanyId). WithKV("auditStatus", domain.UserAuditStatusPassed). WithKV("departmentId", department.Id)) if err != nil { return nil, err } var userIds = make([]int64, 0) for i := range users { userIds = append(userIds, users[i].Id) } resp = &types.DepartmentGetResponse{ Department: types.Department{ Id: department.Id, CompanyId: department.CompanyId, ParentId: department.ParentId, Name: department.Name, UserIds: userIds, }, } return resp, nil }