user-base
This commit is contained in:
parent
ddc8848a8d
commit
dd818f008c
|
|
@ -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"`
|
||||
}
|
||||
|
|
@ -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()
|
||||
}
|
||||
Loading…
Reference in New Issue