Merge branch 'dev' of http://gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss into dev
正在显示
10 个修改的文件
包含
251 行增加
和
3 行删除
@@ -33,6 +33,9 @@ service Core { | @@ -33,6 +33,9 @@ service Core { | ||
33 | @doc "用户信息" | 33 | @doc "用户信息" |
34 | @handler miniUserInfo | 34 | @handler miniUserInfo |
35 | post /mini/user/info (MiniUserInfoRequest) returns (MiniUserInfoResponse) | 35 | post /mini/user/info (MiniUserInfoRequest) returns (MiniUserInfoResponse) |
36 | + @doc "用户统计" | ||
37 | + @handler miniUserStatistics | ||
38 | + post /mini/user/statistics (UserStatisticsRequest) returns (UserStatisticsResponse) | ||
36 | @doc "用户审核列表" | 39 | @doc "用户审核列表" |
37 | @handler miniUserAuditList | 40 | @handler miniUserAuditList |
38 | post /mini/user/audit-list (UserSearchRequest)returns(UserSearchResponse) | 41 | post /mini/user/audit-list (UserSearchRequest)returns(UserSearchResponse) |
@@ -41,7 +44,10 @@ service Core { | @@ -41,7 +44,10 @@ service Core { | ||
41 | post /mini/user/audit (MiniUserAuditRequest) | 44 | post /mini/user/audit (MiniUserAuditRequest) |
42 | @doc "部门用户列表" | 45 | @doc "部门用户列表" |
43 | @handler miniUserDepartmentUsers | 46 | @handler miniUserDepartmentUsers |
44 | - post /mini/user/department-users (MiniUserDepartmentUsersRequest)returns (MiniUserInfoResponse) | 47 | + post /mini/user/department-users (MiniUserDepartmentUsersRequest) |
48 | + @doc "用户列表" | ||
49 | + @handler miniUsersList | ||
50 | + post /mini/user/user-list (MiniUsersListRequest) | ||
45 | @doc "关注我的人" | 51 | @doc "关注我的人" |
46 | @handler miniUserFollower | 52 | @handler miniUserFollower |
47 | post /mini/user/follower (MiniUserFollowedSearchRequest)returns(MiniUserFollowedSearchResponse) | 53 | post /mini/user/follower (MiniUserFollowedSearchRequest)returns(MiniUserFollowedSearchResponse) |
@@ -105,6 +111,10 @@ type( | @@ -105,6 +111,10 @@ type( | ||
105 | Departments []*Department `json:"departments"` | 111 | Departments []*Department `json:"departments"` |
106 | Users []*UserItem `json:"users"` | 112 | Users []*UserItem `json:"users"` |
107 | } | 113 | } |
114 | + MiniUsersListRequest{ | ||
115 | + ArticleId int64 `json:"articleId,optional"` // 按文章ID(返回文章可见的用户) | ||
116 | + RoleId int64 `json:"roleId,optional"` // 按角色角色关联的用户 | ||
117 | + } | ||
108 | MiniUserFollowedSearchRequest{ | 118 | MiniUserFollowedSearchRequest{ |
109 | Page int `json:"page,optional"` | 119 | Page int `json:"page,optional"` |
110 | Size int `json:"size,optional"` | 120 | Size int `json:"size,optional"` |
@@ -117,6 +127,7 @@ type( | @@ -117,6 +127,7 @@ type( | ||
117 | Id int64 `json:"id,omitempty"` // 用户ID | 127 | Id int64 `json:"id,omitempty"` // 用户ID |
118 | CompanyId int64 `json:"companyId,omitempty"` // 公司ID | 128 | CompanyId int64 `json:"companyId,omitempty"` // 公司ID |
119 | CompanyName string `json:"companyName,omitempty"` // 公司名称 | 129 | CompanyName string `json:"companyName,omitempty"` // 公司名称 |
130 | + CompanyCode string `json:"companyCode,omitempty"` // 公司编码(邀请码) | ||
120 | //DepartmentId int64 `json:"departmentId,omitempty"` // 部门ID | 131 | //DepartmentId int64 `json:"departmentId,omitempty"` // 部门ID |
121 | //Roles []int64 `json:"roleId,omitempty"` // 角色 | 132 | //Roles []int64 `json:"roleId,omitempty"` // 角色 |
122 | Flag int `json:"flag,omitempty"` // 标识 1:管理员 2:普通用户 (有绑定角色是管理员) | 133 | Flag int `json:"flag,omitempty"` // 标识 1:管理员 2:普通用户 (有绑定角色是管理员) |
@@ -216,6 +227,9 @@ service Core { | @@ -216,6 +227,9 @@ service Core { | ||
216 | @doc "用户统计" | 227 | @doc "用户统计" |
217 | @handler systemUserStatistics | 228 | @handler systemUserStatistics |
218 | post /system/user/statistics (UserStatisticsRequest) returns (UserStatisticsResponse) | 229 | post /system/user/statistics (UserStatisticsRequest) returns (UserStatisticsResponse) |
230 | + @doc "用户列表" | ||
231 | + @handler systemUsersList | ||
232 | + post /system/user/user-list (MiniUsersListRequest) | ||
219 | 233 | ||
220 | @doc "用户详情" | 234 | @doc "用户详情" |
221 | @handler systemUserGet | 235 | @handler systemUserGet |
@@ -149,6 +149,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -149,6 +149,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
149 | }, | 149 | }, |
150 | { | 150 | { |
151 | Method: http.MethodPost, | 151 | Method: http.MethodPost, |
152 | + Path: "/mini/user/statistics", | ||
153 | + Handler: user.MiniUserStatisticsHandler(serverCtx), | ||
154 | + }, | ||
155 | + { | ||
156 | + Method: http.MethodPost, | ||
152 | Path: "/mini/user/audit-list", | 157 | Path: "/mini/user/audit-list", |
153 | Handler: user.MiniUserAuditListHandler(serverCtx), | 158 | Handler: user.MiniUserAuditListHandler(serverCtx), |
154 | }, | 159 | }, |
@@ -164,6 +169,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -164,6 +169,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
164 | }, | 169 | }, |
165 | { | 170 | { |
166 | Method: http.MethodPost, | 171 | Method: http.MethodPost, |
172 | + Path: "/mini/user/user-list", | ||
173 | + Handler: user.MiniUsersListHandler(serverCtx), | ||
174 | + }, | ||
175 | + { | ||
176 | + Method: http.MethodPost, | ||
167 | Path: "/mini/user/follower", | 177 | Path: "/mini/user/follower", |
168 | Handler: user.MiniUserFollowerHandler(serverCtx), | 178 | Handler: user.MiniUserFollowerHandler(serverCtx), |
169 | }, | 179 | }, |
@@ -207,6 +217,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -207,6 +217,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
207 | Handler: user.SystemUserStatisticsHandler(serverCtx), | 217 | Handler: user.SystemUserStatisticsHandler(serverCtx), |
208 | }, | 218 | }, |
209 | { | 219 | { |
220 | + Method: http.MethodPost, | ||
221 | + Path: "/system/user/user-list", | ||
222 | + Handler: user.SystemUsersListHandler(serverCtx), | ||
223 | + }, | ||
224 | + { | ||
210 | Method: http.MethodGet, | 225 | Method: http.MethodGet, |
211 | Path: "/system/user/:id", | 226 | Path: "/system/user/:id", |
212 | Handler: user.SystemUserGetHandler(serverCtx), | 227 | Handler: user.SystemUserGetHandler(serverCtx), |
1 | +package user | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
5 | + "net/http" | ||
6 | + | ||
7 | + "github.com/zeromicro/go-zero/rest/httpx" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/user" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
11 | +) | ||
12 | + | ||
13 | +func MiniUserStatisticsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||
14 | + return func(w http.ResponseWriter, r *http.Request) { | ||
15 | + var req types.UserStatisticsRequest | ||
16 | + if err := httpx.Parse(r, &req); err != nil { | ||
17 | + httpx.ErrorCtx(r.Context(), w, err) | ||
18 | + return | ||
19 | + } | ||
20 | + | ||
21 | + l := user.NewSystemUserStatisticsLogic(r.Context(), svcCtx) | ||
22 | + resp, err := l.SystemUserStatistics(&req) | ||
23 | + result.HttpResult(r, w, resp, err) | ||
24 | + } | ||
25 | +} |
1 | +package user | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
5 | + "net/http" | ||
6 | + | ||
7 | + "github.com/zeromicro/go-zero/rest/httpx" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/user" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
11 | +) | ||
12 | + | ||
13 | +func MiniUsersListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||
14 | + return func(w http.ResponseWriter, r *http.Request) { | ||
15 | + var req types.MiniUsersListRequest | ||
16 | + if err := httpx.Parse(r, &req); err != nil { | ||
17 | + httpx.ErrorCtx(r.Context(), w, err) | ||
18 | + return | ||
19 | + } | ||
20 | + | ||
21 | + l := user.NewMiniAtUsersListLogic(r.Context(), svcCtx) | ||
22 | + resp, err := l.MiniAtUsersList(&req) | ||
23 | + result.HttpResult(r, w, resp, err) | ||
24 | + } | ||
25 | +} |
1 | +package user | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
5 | + "net/http" | ||
6 | + | ||
7 | + "github.com/zeromicro/go-zero/rest/httpx" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/user" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
11 | +) | ||
12 | + | ||
13 | +func SystemUsersListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||
14 | + return func(w http.ResponseWriter, r *http.Request) { | ||
15 | + var req types.MiniUsersListRequest | ||
16 | + if err := httpx.Parse(r, &req); err != nil { | ||
17 | + httpx.ErrorCtx(r.Context(), w, err) | ||
18 | + return | ||
19 | + } | ||
20 | + | ||
21 | + l := user.NewMiniAtUsersListLogic(r.Context(), svcCtx) | ||
22 | + resp, err := l.MiniAtUsersList(&req) | ||
23 | + result.HttpResult(r, w, resp, err) | ||
24 | + } | ||
25 | +} |
@@ -42,14 +42,21 @@ func (l *MiniUserInfoLogic) MiniUserInfo(req *types.MiniUserInfoRequest) (resp * | @@ -42,14 +42,21 @@ func (l *MiniUserInfoLogic) MiniUserInfo(req *types.MiniUserInfoRequest) (resp * | ||
42 | if _, roles, err = l.svcCtx.RoleRepository.Find(l.ctx, conn, domain.IndexCompanyId(user.CompanyId)().MustWithKV("ids", user.Roles)); err != nil { | 42 | if _, roles, err = l.svcCtx.RoleRepository.Find(l.ctx, conn, domain.IndexCompanyId(user.CompanyId)().MustWithKV("ids", user.Roles)); err != nil { |
43 | return nil, xerr.NewErrMsgErr("角色不存在", err) | 43 | return nil, xerr.NewErrMsgErr("角色不存在", err) |
44 | } | 44 | } |
45 | + | ||
45 | resp = &types.MiniUserInfoResponse{ | 46 | resp = &types.MiniUserInfoResponse{ |
46 | User: &types.UserItem{ | 47 | User: &types.UserItem{ |
47 | - Id: user.Id, | ||
48 | - Name: user.Name, | 48 | + Id: user.Id, |
49 | + Name: user.Name, | ||
50 | + Avatar: user.Avatar, | ||
51 | + Position: user.Position, | ||
49 | }, | 52 | }, |
50 | Accounts: make([]types.Account, 0), | 53 | Accounts: make([]types.Account, 0), |
51 | Auths: make([]types.Auth, 0), | 54 | Auths: make([]types.Auth, 0), |
52 | } | 55 | } |
56 | + if company, _ := domain.LazyLoad(companyMap, l.ctx, conn, user.CompanyId, l.svcCtx.CompanyRepository.FindOne); company != nil { | ||
57 | + resp.User.CompanyName = company.Name | ||
58 | + resp.User.CompanyCode = company.Code | ||
59 | + } | ||
53 | _, accounts, err = l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().MustWithKV("phone", user.Phone).MustWithKV("auditStatus", []int{domain.UserAuditStatusPassed})) | 60 | _, accounts, err = l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().MustWithKV("phone", user.Phone).MustWithKV("auditStatus", []int{domain.UserAuditStatusPassed})) |
54 | if err != nil { | 61 | if err != nil { |
55 | return nil, xerr.NewErrMsgErr("用户不存在", err) | 62 | return nil, xerr.NewErrMsgErr("用户不存在", err) |
1 | +package user | ||
2 | + | ||
3 | +import ( | ||
4 | + "context" | ||
5 | + | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
8 | + | ||
9 | + "github.com/zeromicro/go-zero/core/logx" | ||
10 | +) | ||
11 | + | ||
12 | +type MiniUserStatisticsLogic struct { | ||
13 | + logx.Logger | ||
14 | + ctx context.Context | ||
15 | + svcCtx *svc.ServiceContext | ||
16 | +} | ||
17 | + | ||
18 | +func NewMiniUserStatisticsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MiniUserStatisticsLogic { | ||
19 | + return &MiniUserStatisticsLogic{ | ||
20 | + Logger: logx.WithContext(ctx), | ||
21 | + ctx: ctx, | ||
22 | + svcCtx: svcCtx, | ||
23 | + } | ||
24 | +} | ||
25 | + | ||
26 | +func (l *MiniUserStatisticsLogic) MiniUserStatistics(req *types.UserStatisticsRequest) (resp *types.UserStatisticsResponse, err error) { | ||
27 | + // todo: add your logic here and delete this line | ||
28 | + | ||
29 | + return | ||
30 | +} |
1 | +package user | ||
2 | + | ||
3 | +import ( | ||
4 | + "context" | ||
5 | + "github.com/samber/lo" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" | ||
8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | ||
9 | + | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
11 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
12 | + | ||
13 | + "github.com/zeromicro/go-zero/core/logx" | ||
14 | +) | ||
15 | + | ||
16 | +type MiniAtUsersListLogic struct { | ||
17 | + logx.Logger | ||
18 | + ctx context.Context | ||
19 | + svcCtx *svc.ServiceContext | ||
20 | +} | ||
21 | + | ||
22 | +func NewMiniAtUsersListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MiniAtUsersListLogic { | ||
23 | + return &MiniAtUsersListLogic{ | ||
24 | + Logger: logx.WithContext(ctx), | ||
25 | + ctx: ctx, | ||
26 | + svcCtx: svcCtx, | ||
27 | + } | ||
28 | +} | ||
29 | + | ||
30 | +func (l *MiniAtUsersListLogic) MiniAtUsersList(req *types.MiniUsersListRequest) (resp interface{}, err error) { | ||
31 | + var ( | ||
32 | + conn = l.svcCtx.DefaultDBConn() | ||
33 | + article *domain.Article | ||
34 | + users []*domain.User | ||
35 | + userToken = contextdata.GetUserTokenFromCtx(l.ctx) | ||
36 | + onlyUsers []int64 | ||
37 | + ) | ||
38 | + if req.ArticleId != 0 { | ||
39 | + if article, err = l.svcCtx.ArticleRepository.FindOne(l.ctx, conn, req.ArticleId); err != nil { | ||
40 | + return nil, xerr.NewErrMsgErr("用户列表获取失败", err) | ||
41 | + } | ||
42 | + if article.TargetUser == domain.ArticleTargetLimit && len(article.WhoRead) > 0 { | ||
43 | + onlyUsers = article.WhoRead | ||
44 | + } | ||
45 | + } | ||
46 | + if _, users, err = l.svcCtx.UserRepository.FindDepartmentUsers(l.ctx, conn, userToken.CompanyId, domain.NewQueryOptions().WithFindOnly()); err != nil { | ||
47 | + return nil, xerr.NewErrMsgErr("用户列表获取失败", err) | ||
48 | + } | ||
49 | + if len(onlyUsers) > 0 { | ||
50 | + onlyUsersMap := lo.KeyBy(onlyUsers, func(item int64) int64 { | ||
51 | + return item | ||
52 | + }) | ||
53 | + users = lo.Filter(users, func(item *domain.User, index int) bool { | ||
54 | + if _, ok := onlyUsersMap[item.Id]; ok { | ||
55 | + return false | ||
56 | + } | ||
57 | + return true | ||
58 | + }) | ||
59 | + } | ||
60 | + var list = make([]*domain.User, 0) | ||
61 | + lo.ForEach(users, func(item *domain.User, index int) { | ||
62 | + list = append(list, &domain.User{ | ||
63 | + Id: item.Id, | ||
64 | + Name: item.Name, | ||
65 | + PinYinName: item.PinYinName, | ||
66 | + }) | ||
67 | + }) | ||
68 | + return map[string]interface{}{ | ||
69 | + "list": list, | ||
70 | + }, nil | ||
71 | +} |
1 | +package user | ||
2 | + | ||
3 | +import ( | ||
4 | + "context" | ||
5 | + | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
8 | + | ||
9 | + "github.com/zeromicro/go-zero/core/logx" | ||
10 | +) | ||
11 | + | ||
12 | +type SystemUsersListLogic struct { | ||
13 | + logx.Logger | ||
14 | + ctx context.Context | ||
15 | + svcCtx *svc.ServiceContext | ||
16 | +} | ||
17 | + | ||
18 | +func NewSystemUsersListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SystemUsersListLogic { | ||
19 | + return &SystemUsersListLogic{ | ||
20 | + Logger: logx.WithContext(ctx), | ||
21 | + ctx: ctx, | ||
22 | + svcCtx: svcCtx, | ||
23 | + } | ||
24 | +} | ||
25 | + | ||
26 | +func (l *SystemUsersListLogic) SystemUsersList(req *types.MiniUsersListRequest) error { | ||
27 | + // todo: add your logic here and delete this line | ||
28 | + | ||
29 | + return nil | ||
30 | +} |
@@ -325,6 +325,11 @@ type MiniUserDepartmentUsersResponse struct { | @@ -325,6 +325,11 @@ type MiniUserDepartmentUsersResponse struct { | ||
325 | Users []*UserItem `json:"users"` | 325 | Users []*UserItem `json:"users"` |
326 | } | 326 | } |
327 | 327 | ||
328 | +type MiniUsersListRequest struct { | ||
329 | + ArticleId int64 `json:"articleId,optional"` // 按文章ID(返回文章可见的用户) | ||
330 | + RoleId int64 `json:"roleId,optional"` // 按角色角色关联的用户 | ||
331 | +} | ||
332 | + | ||
328 | type MiniUserFollowedSearchRequest struct { | 333 | type MiniUserFollowedSearchRequest struct { |
329 | Page int `json:"page,optional"` | 334 | Page int `json:"page,optional"` |
330 | Size int `json:"size,optional"` | 335 | Size int `json:"size,optional"` |
@@ -339,6 +344,7 @@ type UserItem struct { | @@ -339,6 +344,7 @@ type UserItem struct { | ||
339 | Id int64 `json:"id,omitempty"` // 用户ID | 344 | Id int64 `json:"id,omitempty"` // 用户ID |
340 | CompanyId int64 `json:"companyId,omitempty"` // 公司ID | 345 | CompanyId int64 `json:"companyId,omitempty"` // 公司ID |
341 | CompanyName string `json:"companyName,omitempty"` // 公司名称 | 346 | CompanyName string `json:"companyName,omitempty"` // 公司名称 |
347 | + CompanyCode string `json:"companyCode,omitempty"` // 公司编码(邀请码) | ||
342 | Flag int `json:"flag,omitempty"` // 标识 1:管理员 2:普通用户 (有绑定角色是管理员) | 348 | Flag int `json:"flag,omitempty"` // 标识 1:管理员 2:普通用户 (有绑定角色是管理员) |
343 | Name string `json:"name,omitempty"` // 名称 | 349 | Name string `json:"name,omitempty"` // 名称 |
344 | Avatar string `json:"avatar,omitempty"` // 头像 | 350 | Avatar string `json:"avatar,omitempty"` // 头像 |
-
请 注册 或 登录 后发表评论