demo.go 1.67 KB
Newer Older
kzkzzzz's avatar
kzkzzzz committed
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
package biz

import (
	"context"
	"github.com/go-kratos/kratos/v2/log"
	"gokratos-base/app/service/demo/internal/model"
)

// DemoRepo is a Greater repo.
type DemoRepo interface {
	Save(ctx context.Context, m *model.Demo) error
	Update(ctx context.Context, m *model.Demo) error
	GetByID(ctx context.Context, id int) (res *model.Demo, err error)
	List(ctx context.Context, limit, offset int) (res []*model.Demo, err error)
	DeleteByID(ctx context.Context, id int) (err error)
}

// DemoUseCase is a Demo useCase.
type DemoUseCase struct {
	repo DemoRepo
	log  *log.Helper
}

type ListReq struct {
	Page int
	Size int
}

// NewDemoUseCase new a Demo useCase.
func NewDemoUseCase(repo DemoRepo) *DemoUseCase {
	return &DemoUseCase{
		repo: repo,
		log:  log.NewHelper(log.GetLogger()),
	}
}

// CreateDemo creates a Demo, and returns the new Demo.
func (uc *DemoUseCase) CreateDemo(ctx context.Context, m *model.Demo) error {
	return uc.repo.Save(ctx, m)
}

func (uc *DemoUseCase) UpdateDemo(ctx context.Context, m *model.Demo) error {
	return uc.repo.Update(ctx, m)
}

func (uc *DemoUseCase) GetDemo(ctx context.Context, id int) (*model.Demo, error) {
	uc.log.WithContext(ctx).Info("qqqqqqqqqqqqqqqq")

	m, err := uc.repo.GetByID(ctx, id)
	if err != nil {
		return nil, err
	}

	return m, nil

}

func (uc *DemoUseCase) ListDemo(ctx context.Context, req *ListReq) ([]*model.Demo, error) {
	if req.Page <= 0 {
		req.Page = 1
	}

	if req.Size <= 0 {
		req.Size = 20
	}

	if req.Size >= 100 {
		req.Size = 100
	}

	offset := (req.Page - 1) * req.Size

	return uc.repo.List(ctx, req.Size, offset)
}

func (uc *DemoUseCase) DeleteDemo(ctx context.Context, id int) error {
	return uc.repo.DeleteByID(ctx, int(id))
}