49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package task
|
|
|
|
import (
|
|
"context"
|
|
"nova_task/internal/pkg/errs"
|
|
|
|
"nova_task/internal/svc"
|
|
"nova_task/internal/types"
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
)
|
|
|
|
type GetCommunityListLogic struct {
|
|
logx.Logger
|
|
ctx context.Context
|
|
svcCtx *svc.ServiceContext
|
|
}
|
|
|
|
// 获取社区列表
|
|
func NewGetCommunityListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetCommunityListLogic {
|
|
return &GetCommunityListLogic{
|
|
Logger: logx.WithContext(ctx),
|
|
ctx: ctx,
|
|
svcCtx: svcCtx,
|
|
}
|
|
}
|
|
|
|
func (l *GetCommunityListLogic) GetCommunityList() (*types.GetCommunityListResp, error) {
|
|
cs, err := l.svcCtx.CommunityModel.All(l.ctx)
|
|
if err != nil {
|
|
l.Errorw("get community list error", logx.Field("err", err))
|
|
return nil, errs.New(errs.ErrDatabaseOperate, err)
|
|
}
|
|
|
|
var communityList []types.Community
|
|
for _, c := range cs {
|
|
communityList = append(communityList, types.Community{
|
|
Id: c.Id,
|
|
Title: c.Title,
|
|
Logo: c.Logo,
|
|
Description: c.Description,
|
|
StartAt: c.StartAt.Time.Unix(),
|
|
EndAt: c.EndAt.Time.Unix(),
|
|
})
|
|
}
|
|
|
|
return &types.GetCommunityListResp{CommunityList: communityList}, nil
|
|
}
|