package Admin import ( "fmt" "github.com/beego/beego/v2/adapter/orm" uuid "github.com/satori/go.uuid" "time" ) type Tokey struct { Id int `orm:"column(ID);size(11);auto;pk"` Admin_uuid string `orm:"size(256);null"` // User_tokey string `orm:"size(256);null"` // User_num int `orm:"size(200);null"` // 操作次数 CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新 UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now_add 第一次保存时才设置时间 } func (t *Tokey) TableName() string { return "Tokey" // 数据库名称 // ************** 替换 FormulaList ************** } func init() { //注册模型 orm.RegisterModel(new(Tokey)) } // 验证 TOKEY func Read_Verification_Tokey(User_tokey string) (bool, Tokey) { r := Tokey{} o := orm.NewOrm() qs := o.QueryTable(new(Tokey)) err := qs.Filter("User_tokey",User_tokey).One(&r) if err != nil { fmt.Println(err) return false,r } //println(time.Now().String(),time.Now().Unix()) //println(r.UpdateTime.String(),r.UpdateTime.Unix()) // //println(r.Id,time.Now().Unix() - r.UpdateTime.Unix()) if time.Now().Unix() - r.UpdateTime.Unix() > 60 * 60 * 8 { // 小时 println("User_tokey 过期了") return false,r } r.UpdateTime = time.Now() o.Update(&r, "UpdateTime"); return true,r } // 添加 Tokey func Add_Tokey(Admin_uuid string) (User_tokey string) { o := orm.NewOrm() for true{ User_tokey = uuid.NewV4().String() r := Tokey{User_tokey: User_tokey} err := o.Read(&r, "User_tokey") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名 if err != nil { break; } fmt.Print("申请 TOKEY 重复!重新生成。",User_tokey) } o.Insert(&Tokey{Admin_uuid:Admin_uuid,User_tokey: User_tokey}) return User_tokey }