2023-04-24 17:19:41 +08:00
|
|
|
package repository
|
|
|
|
|
|
|
|
import (
|
|
|
|
"Lee-WineList/client"
|
|
|
|
"Lee-WineList/model/entity"
|
|
|
|
"errors"
|
|
|
|
"git.echol.cn/loser/logger/log"
|
|
|
|
"gorm.io/gorm"
|
|
|
|
)
|
|
|
|
|
|
|
|
type user struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
// User ...
|
|
|
|
func User() *user {
|
|
|
|
return &user{}
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetUser 查询单个用户信息
|
|
|
|
func (user) GetUser(user *entity.User) (err error) {
|
|
|
|
return client.MySQL.Take(&user, user).Error
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetOrCreate 查询或创建用户
|
|
|
|
func (user) GetOrCreate(user *entity.User) (err error) {
|
2023-04-27 15:56:12 +08:00
|
|
|
//err = client.MySQL.Take(&user, user).Error
|
|
|
|
err = client.MySQL.Model(&user).Where("phone = ?", user.Phone).First(&user).Error
|
2023-04-24 17:19:41 +08:00
|
|
|
if err == nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
// 如果是没查询到记录,则创建用户
|
|
|
|
if err == gorm.ErrRecordNotFound {
|
|
|
|
// 用户不存在,创建用户
|
|
|
|
if err = client.MySQL.Create(&user).Error; err != nil {
|
|
|
|
log.Errorf("账号创建失败: %v", err)
|
|
|
|
err = errors.New("登录失败")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
// CheckUnionIdIsExist 检查UnionId和OpenId是否存在
|
|
|
|
func (user) CheckUnionIdIsExist(unionId, openId string) bool {
|
|
|
|
var count int64
|
2023-04-27 15:56:12 +08:00
|
|
|
err := client.MySQL.Model(&entity.User{}).Where("wechat_union_id = ? and wechat_open_id = ?", unionId, openId).Count(&count).Error
|
2023-04-24 17:19:41 +08:00
|
|
|
if err != nil {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return count > 0
|
|
|
|
}
|
|
|
|
|
|
|
|
// UpdateUserInfo 更新普通用户信息
|
|
|
|
func (user) UpdateUserInfo(e *entity.User) (err error) {
|
|
|
|
return client.MySQL.Updates(&e).Error
|
|
|
|
}
|