|
|
@@ -74,35 +74,35 @@ func GetAllUsers(startIdx int, num int) (users []*User, err error) {
|
|
|
}
|
|
|
|
|
|
func SearchUsers(keyword string, group string) ([]*User, error) {
|
|
|
- var users []*User
|
|
|
- var err error
|
|
|
-
|
|
|
- // 尝试将关键字转换为整数ID
|
|
|
- keywordInt, err := strconv.Atoi(keyword)
|
|
|
- if err == nil {
|
|
|
- // 如果转换成功,按照ID和可选的组别搜索用户
|
|
|
- query := DB.Unscoped().Omit("password").Where("`id` = ?", keywordInt)
|
|
|
- if group != "" {
|
|
|
- query = query.Where("`group` = ?", group) // 使用反引号包围group
|
|
|
- }
|
|
|
- err = query.Find(&users).Error
|
|
|
- if err != nil || len(users) > 0 {
|
|
|
- return users, err
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- err = nil
|
|
|
-
|
|
|
- query := DB.Unscoped().Omit("password")
|
|
|
- likeCondition := "`username` LIKE ? OR `email` LIKE ? OR `display_name` LIKE ?"
|
|
|
- if group != "" {
|
|
|
- query = query.Where("("+likeCondition+") AND `group` = ?", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", group)
|
|
|
- } else {
|
|
|
- query = query.Where(likeCondition, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
|
|
|
- }
|
|
|
- err = query.Find(&users).Error
|
|
|
-
|
|
|
- return users, err
|
|
|
+ var users []*User
|
|
|
+ var err error
|
|
|
+
|
|
|
+ // 尝试将关键字转换为整数ID
|
|
|
+ keywordInt, err := strconv.Atoi(keyword)
|
|
|
+ if err == nil {
|
|
|
+ // 如果转换成功,按照ID和可选的组别搜索用户
|
|
|
+ query := DB.Unscoped().Omit("password").Where("`id` = ?", keywordInt)
|
|
|
+ if group != "" {
|
|
|
+ query = query.Where("`group` = ?", group) // 使用反引号包围group
|
|
|
+ }
|
|
|
+ err = query.Find(&users).Error
|
|
|
+ if err != nil || len(users) > 0 {
|
|
|
+ return users, err
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ err = nil
|
|
|
+
|
|
|
+ query := DB.Unscoped().Omit("password")
|
|
|
+ likeCondition := "`username` LIKE ? OR `email` LIKE ? OR `display_name` LIKE ?"
|
|
|
+ if group != "" {
|
|
|
+ query = query.Where("("+likeCondition+") AND `group` = ?", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", group)
|
|
|
+ } else {
|
|
|
+ query = query.Where(likeCondition, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
|
|
|
+ }
|
|
|
+ err = query.Find(&users).Error
|
|
|
+
|
|
|
+ return users, err
|
|
|
}
|
|
|
|
|
|
func GetUserById(id int, selectAll bool) (*User, error) {
|
|
|
@@ -244,7 +244,7 @@ func (user *User) Update(updatePassword bool) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
-func (user *User) UpdateAll(updatePassword bool) error {
|
|
|
+func (user *User) Edit(updatePassword bool) error {
|
|
|
var err error
|
|
|
if updatePassword {
|
|
|
user.Password, err = common.Password2Hash(user.Password)
|
|
|
@@ -254,7 +254,13 @@ func (user *User) UpdateAll(updatePassword bool) error {
|
|
|
}
|
|
|
newUser := *user
|
|
|
DB.First(&user, user.Id)
|
|
|
- err = DB.Model(user).Select("*").Updates(newUser).Error
|
|
|
+ err = DB.Model(user).Updates(map[string]interface{}{
|
|
|
+ "username": newUser.Username,
|
|
|
+ "password": newUser.Password,
|
|
|
+ "display_name": newUser.DisplayName,
|
|
|
+ "group": newUser.Group,
|
|
|
+ "quota": newUser.Quota,
|
|
|
+ }).Error
|
|
|
if err == nil {
|
|
|
if common.RedisEnabled {
|
|
|
_ = common.RedisSet(fmt.Sprintf("user_group:%d", user.Id), user.Group, time.Duration(UserId2GroupCacheSeconds)*time.Second)
|