package mysql import ( "gorm.io/gorm" "myschools.me/heritage/heritage-api/model" ) func UserByUserName(userName *string) (*model.User, error) { db, err := newDB() if err != nil { return nil, err } var u model.User if err := db.Where("user_name = ?", *userName).First(&u).Error; err != nil { if err != gorm.ErrRecordNotFound { return nil, nil } } return &u, nil } // 获取单个用户信息,用户存在与否根据返回结果判断 func UserFirst(userID *string) (*model.User, error) { db, err := newDB() if err != nil { return nil, err } var u model.User if err := db.Where("id = ?", *userID).First(&u).Error; err != nil { if err != gorm.ErrRecordNotFound { return nil, err } } return &u, nil } func UserCount() (*int64, error) { db, err := newDB() if err != nil { return nil, err } var count int64 if err := db.Model(&model.User{}).Count(&count).Error; err != nil { return nil, err } return &count, nil } func UserCreate(obj *model.User) (*model.User, error) { db, err := newDB() if err != nil { return nil, err } if err := db.Create(obj).Error; err != nil { return nil, err } return obj, nil } func UserList(page, pageSize int, username *string) ([]model.User, int64, error) { db, err := newDB() if err != nil { return nil, 0, err } if username != nil && *username != "" { db = db.Where("user_name LIKE ?", "%"+*username+"%") } var users []model.User var total int64 // 统计总数 if err := db.Model(&model.User{}).Count(&total).Error; err != nil { return nil, 0, err } // 分页查询 offset := (page - 1) * pageSize if err := db.Offset(offset).Limit(pageSize).Find(&users).Error; err != nil { return nil, 0, err } return users, total, nil } // 用户更新,可以更新所有项,不作限制,由service层判断 func UserUpdate(userID *string, obj map[string]any) error { db, err := newDB() if err != nil { return err } return db.Model(&model.User{}).Where("id = ?", *userID).Updates(obj).Error }