50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"gitea.timerzz.com/kedaya_haitao/pusher/biz/dal/postgres"
|
|
"gitea.timerzz.com/kedaya_haitao/pusher/kitex_gen/config"
|
|
push "gitea.timerzz.com/kedaya_haitao/pusher/kitex_gen/push"
|
|
)
|
|
|
|
type ListService struct {
|
|
ctx context.Context
|
|
} // NewListService new ListService
|
|
func NewListService(ctx context.Context) *ListService {
|
|
return &ListService{ctx: ctx}
|
|
}
|
|
|
|
// Run create note info
|
|
func (s *ListService) Run(req *push.ListPusherRequest) (resp *push.ListPusherResponse, err error) {
|
|
// Finish your business logic.
|
|
tx := postgres.DB
|
|
if req.Keyword != "" {
|
|
tx = tx.Where("name LIKE ? or remark LIKE ?", fmt.Sprintf("%%%s%%", req.Keyword), fmt.Sprintf("%%%s%%", req.Keyword))
|
|
}
|
|
resp = new(push.ListPusherResponse)
|
|
|
|
if err = tx.Model(&config.PusherConfig{}).Find(&resp.List).Error; err != nil {
|
|
return nil, fmt.Errorf("查询总数失败:%v", err)
|
|
}
|
|
resp.Total = int64(len(resp.List))
|
|
if req.All || resp.Total == 0 {
|
|
return
|
|
}
|
|
|
|
// 查询列表
|
|
if req.Page < 1 {
|
|
req.Page = 1
|
|
}
|
|
if req.Size < 1 {
|
|
req.Size = 10
|
|
}
|
|
offset := (req.Page - 1) * int64(req.Size)
|
|
|
|
if err = tx.Order("created_at desc").Limit(int(req.Size)).Offset(int(offset)).
|
|
Find(&resp.List).Error; err != nil {
|
|
return nil, fmt.Errorf("查询列表失败:%v", err)
|
|
}
|
|
return
|
|
}
|