package mysql
import (
orm "duoduo/database"
"duoduo/tools"
"errors"
)
type User struct {
CreateTime string `gorm:"column:create_time" json:"createTime"`
OpenID string `gorm:"column:open_id" json:"openId"`
Phone string `gorm:"column:phone" json:"phone"`
Pid string `gorm:"column:pid" json:"pid"`
UpdateTime string `gorm:"column:update_time" json:"updateTime"`
NickName string `gorm:"column:nick_name" json:"nickName"`
AvatarUrl string `gorm:"column:avatar_url" json:"avatarUrl"`
OpenIdOne string `gorm:"column:open_id_1" json:"openIdOne"`
OpenIdTwo string `gorm:"column:open_id_2" json:"openIdTwo"`
Admin int `gorm:"column:admin" json:"admin"` //1-管理员
AliPay string `gorm:"column:ali_pay" json:"aliPay"` //
WxPay string `gorm:"column:wx_pay" json:"wxPay"`
}
type UserName struct {
CreateTime string `gorm:"column:create_time" json:"createTime"`
OpenID string `gorm:"column:open_id" json:"openId"`
Phone string `gorm:"column:phone" json:"phone"`
Pid string `gorm:"column:pid" json:"pid"`
UpdateTime string `gorm:"column:update_time" json:"updateTime"`
NickName string `gorm:"column:nick_name" json:"nickName"`
AvatarUrl string `gorm:"column:avatar_url" json:"avatarUrl"`
OpenIdOne string `gorm:"column:open_id_1" json:"openIdOne"`
OpenIdTwo string `gorm:"column:open_id_2" json:"openIdTwo"`
Id int `gorm:"column:id" json:"id"`
Admin int `gorm:"column:admin" json:"admin"` //1-管理员 2-超级管理员
AliPay string `gorm:"column:ali_pay" json:"aliPay"` //
WxPay string `gorm:"column:wx_pay" json:"wxPay"`
}
// TableName sets the insert table name for this struct type
func (u *User) TableName() string {
return "user"
}
func (u *User) GetNum() int {
var count int
tableCount := orm.Eloquent.Table(u.TableName()).Where("open_id = ? ", u.OpenID)
tableCount.Count(&count)
return count
}
func (u *User) Get() (UserName, error) {
var doc UserName
err := orm.Eloquent.Select("id,pid,nick_name,avatar_url,open_id_1,open_id_2,admin,wx_pay,ali_pay").Where("open_id = ? ", u.OpenID).Table(u.TableName()).First(&doc).Error
if err != nil {
return doc, err
}
return doc, nil
}
func (u *User) Create() (User, error) {
var doc User
result := orm.Eloquent.Table(u.TableName()).Create(&u)
if result.Error != nil {
err := result.Error
return doc, err
}
doc = *u
return doc, nil
}
func (u *User) Update() (update User, err error) {
if err := orm.Eloquent.Table(u.TableName()).Model(&update).Where("open_id = ? ", u.OpenID).Updates(
map[string]interface{}{
"pid": u.Pid,
"update_time": tools.GetCurrntTimeStr()}).Error; err != nil {
return update, err
}
return update, nil
}
func (u *User) UpdateName() (update User, err error) {
if err := orm.Eloquent.Table(u.TableName()).Model(&update).Where("open_id = ? ", u.OpenID).Updates(
map[string]interface{}{
"nick_name": u.NickName,
"avatar_url": u.AvatarUrl,
"update_time": tools.GetCurrntTimeStr()}).Error; err != nil {
return update, err
}
return update, nil
}
//list 接口使用
func (u *User) GetOrderOpenIdList(pageSize int, pageIndex int, status int) ([]UserName, int, error) {
var doc []UserName
table := orm.Eloquent.Table(u.TableName())
if status == 1 {
table = table.Where("open_id_1 = ? ", u.OpenID)
} else if status == 2 {
table = table.Where("open_id_2 = ? ", u.OpenID)
} else {
return nil, 0, errors.New("status err")
}
//table = table.Where("open_id = ? ", o.OpenId)
var count int
if err := table.Select("id,nick_name,avatar_url,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time").Order("id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil {
return nil, 0, err
}
table.Count(&count)
return doc, count, nil
}