package mysqldao import ( "context" "git.lzcwy.cn/zhengchiliu/zt-online-game-backend/global" "git.lzcwy.cn/zhengchiliu/zt-online-game-backend/internal/mysqlmodel" "gorm.io/gorm" ) type UserDao struct { db *gorm.DB } func NewUserDao() *UserDao { return &UserDao{db: global.MysqlEngine} } func (d *UserDao) UserCreate(ctx context.Context, user *mysqlmodel.User) error { if err := d.db.WithContext(ctx).Create(user).Error; err != nil { return err } return nil } func (d *UserDao) UserUpdateByID(ctx context.Context, user *mysqlmodel.User) error { if err := d.db.WithContext(ctx).Model(&mysqlmodel.User{}).Where("id = ?", user.ID).Updates(user).Error; err != nil { return err } return nil } func (d *UserDao) UserUpdateByUUID(ctx context.Context, user *mysqlmodel.User) error { if err := d.db.WithContext(ctx).Model(&mysqlmodel.User{}).Where("user_uuid = ?", user.UserUUID).Updates(user).Error; err != nil { return err } return nil } func (d *UserDao) UserGetByID(ctx context.Context, id int64) (*mysqlmodel.User, error) { var user mysqlmodel.User if err := d.db.WithContext(ctx).Where("id = ?", id).First(&user).Error; err != nil { return nil, err } return &user, nil } func (d *UserDao) UserGetByWechatOpenID(ctx context.Context, openID string) (*mysqlmodel.User, error) { var user mysqlmodel.User if err := d.db.WithContext(ctx).Where("wechat_open_id = ?", openID).First(&user).Error; err != nil { return nil, err } return &user, nil } func (d *UserDao) UserGetByUUID(ctx context.Context, userUUID string) (*mysqlmodel.User, error) { var user mysqlmodel.User if err := d.db.WithContext(ctx).Where("user_uuid = ?", userUUID).First(&user).Error; err != nil { return nil, err } return &user, nil }