/
selectscreenprojectlistlogic.go
60 lines (51 loc) · 1.71 KB
/
selectscreenprojectlistlogic.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package screenlogic
import (
"context"
"github.com/zeromicro/go-zero/core/logx"
"github.com/ch3nnn/goview-gozero/pkg/math"
"github.com/ch3nnn/goview-gozero/service/screen/internal/dal/query"
"github.com/ch3nnn/goview-gozero/service/screen/internal/svc"
"github.com/ch3nnn/goview-gozero/service/screen/pb"
)
// SelectScreenProjectListLogic 业务逻辑上下文
type SelectScreenProjectListLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
// NewSelectScreenProjectListLogic 新建业务逻辑上下文
func NewSelectScreenProjectListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SelectScreenProjectListLogic {
return &SelectScreenProjectListLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx).WithFields(
logx.Field("service", svcCtx.Config.Name),
logx.Field("method", "Screen.SelectScreenProjectList"),
),
}
}
// SelectScreenProjectList 大屏信息列表
func (l *SelectScreenProjectListLogic) SelectScreenProjectList(in *pb.SelectScreenProjectListReq) (*pb.SelectScreenProjectListResp, error) {
projects, count, err := query.ScreenProject.WithContext(l.ctx).FindByPage(int((in.Page-1)*in.PageSize), int(in.PageSize))
if err != nil {
return nil, err
}
results := make([]*pb.ScreenProject, len(projects))
for i, project := range projects {
results[i] = &pb.ScreenProject{
Id: project.ID,
Name: project.Name,
State: project.State,
UserId: project.UserID,
IndexImg: project.IndexImg,
Remark: project.Remark,
IsDel: project.IsDel == 1,
CreateAt: project.CreateAt.Unix(),
}
}
return &pb.SelectScreenProjectListResp{
Count: count,
PageCount: math.Ceil(count, in.PageSize),
Results: results,
}, nil
}