|
...
|
...
|
@@ -5,6 +5,8 @@ import ( |
|
|
|
|
|
|
|
"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/xerr"
|
|
|
|
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
|
|
)
|
|
...
|
...
|
@@ -23,8 +25,54 @@ func NewMiniUserLikeArticleLogic(ctx context.Context, svcCtx *svc.ServiceContext |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 获取点赞的人员列表
|
|
|
|
func (l *MiniUserLikeArticleLogic) MiniUserLikeArticle(req *types.MiniUserLikeArticleRequest) (resp *types.MiniUserLikeArticleResponse, err error) {
|
|
|
|
// todo: add your logic here and delete this line
|
|
|
|
var conn = l.svcCtx.DefaultDBConn()
|
|
|
|
queryOption := domain.NewQueryOptions().
|
|
|
|
WithOffsetLimit(req.Page, req.Size).
|
|
|
|
MustWithKV("articleId", req.ArticleId).
|
|
|
|
MustWithKV("commentId", 0)
|
|
|
|
cnt, flagList, err := l.svcCtx.UserLoveFlagRepository.Find(l.ctx, conn, queryOption)
|
|
|
|
if err != nil {
|
|
|
|
return nil, xerr.NewErrMsgErr("获取人员列表失败", err)
|
|
|
|
}
|
|
|
|
uidList := []int64{}
|
|
|
|
for _, val := range flagList {
|
|
|
|
uidList = append(uidList, val.UserId)
|
|
|
|
}
|
|
|
|
queryOption = domain.NewQueryOptions().
|
|
|
|
WithFindOnly().
|
|
|
|
MustWithKV("ids", uidList)
|
|
|
|
|
|
|
|
return
|
|
|
|
// 获取人员列表
|
|
|
|
_, userList, err := l.svcCtx.UserRepository.Find(l.ctx, conn, queryOption)
|
|
|
|
if err != nil {
|
|
|
|
return nil, xerr.NewErrMsgErr("获取人员列表失败", err)
|
|
|
|
}
|
|
|
|
userMap := map[int64]*domain.User{}
|
|
|
|
for i := range userList {
|
|
|
|
if userList[i].CompanyId != req.CompanyId {
|
|
|
|
return nil, xerr.NewErrMsg("操作失败")
|
|
|
|
}
|
|
|
|
userMap[userList[i].Id] = userList[i]
|
|
|
|
}
|
|
|
|
resp = &types.MiniUserLikeArticleResponse{
|
|
|
|
Total: cnt,
|
|
|
|
List: make([]types.WhichUserLikeArticle, len(flagList)),
|
|
|
|
}
|
|
|
|
for i, val := range flagList {
|
|
|
|
item := types.WhichUserLikeArticle{
|
|
|
|
ArticleId: val.ArticleId,
|
|
|
|
UserId: val.UserId,
|
|
|
|
Name: "[用户已被清除]",
|
|
|
|
Avatar: "",
|
|
|
|
CreatedAt: val.CreatedAt,
|
|
|
|
}
|
|
|
|
if u, ok := userMap[val.UserId]; ok {
|
|
|
|
item.Name = u.Name
|
|
|
|
item.Avatar = u.Avatar
|
|
|
|
}
|
|
|
|
resp.List[i] = item
|
|
|
|
}
|
|
|
|
return resp, nil
|
|
|
|
} |
...
|
...
|
|