41 lines
748 B
Go
41 lines
748 B
Go
package repository
|
|
|
|
import (
|
|
"common/db/mysql"
|
|
"context"
|
|
"user/internal/dao/model"
|
|
"user/internal/dao/query"
|
|
)
|
|
|
|
type UserDao struct {
|
|
ctx context.Context
|
|
query *query.Query
|
|
}
|
|
|
|
func NewUserDao(ctx context.Context) *UserDao {
|
|
return &UserDao{
|
|
ctx: ctx,
|
|
query: query.Use(mysql.GetDB("user_db")),
|
|
}
|
|
}
|
|
|
|
func (d *UserDao) FindBySn(sn int64) (*model.User, error) {
|
|
first, err := d.query.User.WithContext(d.ctx).
|
|
Where(d.query.User.Sn.Eq(sn)).
|
|
First()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return first, nil
|
|
}
|
|
|
|
func (d *UserDao) FindByPhone(phone string) (*model.User, error) {
|
|
first, err := d.query.User.WithContext(d.ctx).
|
|
Where(d.query.User.Phone.Eq(phone)).
|
|
First()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return first, nil
|
|
}
|