user-base

This commit is contained in:
tcq 2024-01-31 16:13:33 +08:00
parent ddc8848a8d
commit dd818f008c
2 changed files with 69 additions and 0 deletions

27
model/user-model.go Normal file
View File

@ -0,0 +1,27 @@
package model
import (
"time"
"gorm.io/gorm"
)
/*
通过分库来区别不同版本的产品-现在的demo逻辑
用户在后台注册,前台扫码登录,组织ID肯定存在(后期如果开放注册-组织ID可以不存在)
*/
type User struct {
ID uint `gorm:"primarykey"`
UserName string `gorm:"column:user_name;type:varchar(30);comment:用户名"`
NickName string `gorm:"column:nick_name;type:varchar(40);comment:昵称"`
OpenID string `gorm:"column:openid;type:varchar(100);not null;index;comment:公众号openid" json:"-"`
Avatar string `gorm:"column:avatar;type:varchar(300);comment:头像地址"`
Mobile string `gorm:"column:mobile;type:varchar(12);not null;index ;comment:手机号"`
Email string `gorm:"column:email;type:varchar(30);comment:email"`
ProjectID string `gorm:"column:project_id;type:varchar(40);comment:项目ID"` //项目 Id admin项目 Id 为 0
Role string `gorm:"column:role;type:varchar(15);not null;default:guest;comment:角色类型"` // sys、so、admin
CreatedAt time.Time `gorm:"autoCreateTime"`
UpdatedAt time.Time `gorm:"autoUpdateTime"`
DeletedAt gorm.DeletedAt `gorm:"index"`
}

42
utils/snowflake.go Normal file
View File

@ -0,0 +1,42 @@
package utils
import (
"errors"
"time"
sf "github.com/bwmarrin/snowflake"
)
const (
_dafaultStartTime = "2023-12-31" // 默认开始时间
)
var node *sf.Node
// Init 雪花算法组件初始化,正常应该把雪花算法当成一个独立的服务部署
// startTime 开始时间
// machineID 机器id
func Init(startTime string, machineID int64) (err error) {
if machineID < 0 {
return errors.New("snowflake need machineID")
}
if len(startTime) == 0 {
startTime = _dafaultStartTime
}
var st time.Time
st, err = time.Parse("2006-01-02", startTime)
if err != nil {
return
}
sf.Epoch = st.UnixNano() / 1000000 // 时间戳的开始时间默认从1970年开始计算
node, err = sf.NewNode(machineID) // 机器编号最多1024
return
}
func GenID() int64 {
return node.Generate().Int64()
}
func GenIDStr() string {
return node.Generate().String()
}