57 lines
1.0 KiB
Go
57 lines
1.0 KiB
Go
package model
|
|
|
|
func AddWechatUser(user *WechatUser) error {
|
|
_ = engine.Ping()
|
|
_, err := engine.InsertOne(user)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return err
|
|
}
|
|
|
|
func WechatUserCount(openID string) int {
|
|
_ = engine.Ping()
|
|
count, err := engine.Where("open_id=?", openID).Count(new(WechatUser))
|
|
if err != nil {
|
|
return 0
|
|
}
|
|
return int(count)
|
|
}
|
|
|
|
func UpdateWechatUser(user *WechatUser) error {
|
|
_ = engine.Ping()
|
|
if WechatUserCount(user.OpenId) < 1 {
|
|
err := AddWechatUser(user)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else {
|
|
_, err := engine.Where("open_id=?", user.OpenId).Update(user)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func FindWechatUser(openID string) (*WechatUser, error) {
|
|
_ = engine.Ping()
|
|
w := new(WechatUser)
|
|
_, err := engine.Where("open_id=?", openID).Get(w)
|
|
if err != nil {
|
|
return w, err
|
|
}
|
|
return w, err
|
|
}
|
|
|
|
func QueryWechatUser() ([]*WechatUser, error) {
|
|
var (
|
|
users []*WechatUser
|
|
)
|
|
_, err := engine.Table(new(WechatUser)).Query(&users)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return users, err
|
|
}
|