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 }