liuxiaolong
2020-06-16 d80e076c2d45647bbbf82c27c4ad8924283dc708
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package models
 
import (
    "errors"
    "strconv"
    "time"
)
 
var (
    UserList map[string]*User
)
 
func init() {
    UserList = make(map[string]*User)
    u := User{"user_11111", "astaxie", "11111", Profile{"male", 20, "Singapore", "astaxie@gmail.com"}}
    UserList["user_11111"] = &u
}
 
type User struct {
    Id       string
    Username string
    Password string
    Profile  Profile
}
 
type Profile struct {
    Gender  string
    Age     int
    Address string
    Email   string
}
 
func AddUser(u User) string {
    u.Id = "user_" + strconv.FormatInt(time.Now().UnixNano(), 10)
    UserList[u.Id] = &u
    return u.Id
}
 
func GetUser(uid string) (u *User, err error) {
    if u, ok := UserList[uid]; ok {
        return u, nil
    }
    return nil, errors.New("User not exists")
}
 
func GetAllUsers() map[string]*User {
    return UserList
}
 
func UpdateUser(uid string, uu *User) (a *User, err error) {
    if u, ok := UserList[uid]; ok {
        if uu.Username != "" {
            u.Username = uu.Username
        }
        if uu.Password != "" {
            u.Password = uu.Password
        }
        if uu.Profile.Age != 0 {
            u.Profile.Age = uu.Profile.Age
        }
        if uu.Profile.Address != "" {
            u.Profile.Address = uu.Profile.Address
        }
        if uu.Profile.Gender != "" {
            u.Profile.Gender = uu.Profile.Gender
        }
        if uu.Profile.Email != "" {
            u.Profile.Email = uu.Profile.Email
        }
        return u, nil
    }
    return nil, errors.New("User Not Exist")
}
 
func Login(username, password string) bool {
    for _, u := range UserList {
        if u.Username == username && u.Password == password {
            return true
        }
    }
    return false
}
 
func DeleteUser(uid string) {
    delete(UserList, uid)
}