diff --git a/repository/user.go b/repository/user.go index bf73949..0524fae 100644 --- a/repository/user.go +++ b/repository/user.go @@ -52,33 +52,35 @@ func (_UserRepository) FindUserByID(uid string) (*model.User, error) { return _postProcessSingle(user, has, err) } -func (_UserRepository) ListUserDetail(keyword string, userType int, userState *bool, page int) ([]*model.JoinedUserDetail, int64, error) { +func (_UserRepository) ListUserDetail(keyword string, userType int, userState *bool, page int) ([]model.JoinedUserDetail, int64, error) { var cond = builder.NewCond() if len(keyword) != 0 { keywordCond := builder.NewCond(). - Or(builder.Like{"user.username", keyword}). - Or(builder.Like{"user_detail.name", keyword}) + Or(builder.Like{"u.username", keyword}). + Or(builder.Like{"d.name", keyword}) cond = cond.And(keywordCond) } if userType != -1 { - cond = cond.And(builder.Eq{"user.type": userType}) + cond = cond.And(builder.Eq{"u.type": userType}) } if userState != nil { - cond = cond.And(builder.Eq{"user.enabled": *userState}) + cond = cond.And(builder.Eq{"u.enabled": *userState}) } startItem := (page - 1) * config.ServiceSettings.ItemsPageSize total, err := global.DBConn. - Join("INNER", "user_detail", "user_detail.id=user.id"). + Table("user_detail").Alias("d"). + Join("INNER", []string{"user", "u"}, "d.id=u.id"). Where(cond). - Count() + Count(&model.User{}) if err != nil { return nil, -1, err } - users := make([]*model.JoinedUserDetail, 0) + users := make([]model.JoinedUserDetail, 0) err = global.DBConn. - Join("INNER", "user_detail", "user_detail.id=user.id"). + Table("user_detail").Alias("d"). + Join("INNER", []string{"user", "u"}, "d.id=u.id"). Where(cond). Limit(config.ServiceSettings.ItemsPageSize, startItem). - Find(users) + Find(&users) return users, total, err }