You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kratos/examples/transaction/ent/internal/data/transaction.go

59 lines
1.0 KiB

package data
import (
"context"
"strconv"
"github.com/go-kratos/kratos/examples/transaction/ent/internal/biz"
"github.com/go-kratos/kratos/v2/log"
)
type userRepo struct {
data *Data
log *log.Helper
}
type cardRepo struct {
data *Data
log *log.Helper
}
func (u *userRepo) CreateUser(ctx context.Context, m *biz.User) (int, error) {
user, err := u.data.User(ctx).
Create().
SetName(m.Name).
SetEmail(m.Email).
Save(ctx)
if err != nil {
return 0, err
}
return user.ID, nil
}
// NewUserRepo .
func NewUserRepo(data *Data, logger log.Logger) biz.UserRepo {
return &userRepo{
data: data,
log: log.NewHelper(logger),
}
}
func (c *cardRepo) CreateCard(ctx context.Context, id int) (int, error) {
card, err := c.data.Card(ctx).
Create().
SetMoney("1000").
SetUserID(strconv.Itoa(id)).
Save(ctx)
if err != nil {
return 0, err
}
return card.ID, nil
}
func NewCardRepo(data *Data, logger log.Logger) biz.CardRepo {
return &cardRepo{
data: data,
log: log.NewHelper(logger),
}
}