61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package dao
|
|
|
|
import (
|
|
"chat/rdm"
|
|
"chat/user"
|
|
"chat/utils"
|
|
"context"
|
|
"errors"
|
|
"strconv"
|
|
)
|
|
|
|
var Ctx context.Context
|
|
|
|
func init() {
|
|
Ctx = context.Background()
|
|
}
|
|
|
|
func UserInfo(id int) *user.User {
|
|
rd := rdm.GetRdm()
|
|
ctx := context.Background()
|
|
key := user.GetUserKey(id)
|
|
u := rd.HGetAll(ctx, key).Val()
|
|
return map2user(u)
|
|
}
|
|
|
|
func map2user(hash map[string]string) *user.User {
|
|
id, _ := strconv.Atoi(hash["id"])
|
|
sex, _ := strconv.Atoi(hash["sex"])
|
|
return &user.User{
|
|
Id: id,
|
|
Name: hash["name"],
|
|
Sex: int8(sex),
|
|
Password: hash["password"],
|
|
}
|
|
}
|
|
|
|
func AddUser(u user.User) error {
|
|
getRdm := rdm.GetRdm()
|
|
if u.Name == "" {
|
|
return errors.New("user name can't be empty")
|
|
}
|
|
if u.Password == "" {
|
|
return errors.New("user password can't be empty")
|
|
}
|
|
|
|
if utils.IsContain(u.Sex, []int8{1, 2}) < 0 {
|
|
return errors.New("user name can't be empty")
|
|
}
|
|
|
|
r := getRdm.HMSet(Ctx, user.GetUserKey(u.Id), map[string]interface{}{
|
|
"id": strconv.Itoa(u.Id),
|
|
"name": u.Name,
|
|
"password": u.Password,
|
|
"sex": strconv.Itoa(int(u.Sex)),
|
|
})
|
|
if e := r.Err(); e != nil {
|
|
return e
|
|
}
|
|
return nil
|
|
}
|