Tokey.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package Admin
  2. import (
  3. "fmt"
  4. "github.com/beego/beego/v2/adapter/orm"
  5. uuid "github.com/satori/go.uuid"
  6. "time"
  7. )
  8. type Tokey struct {
  9. Id int `orm:"column(ID);size(11);auto;pk"`
  10. Admin_uuid string `orm:"size(256);null"` //
  11. User_tokey string `orm:"size(256);null"` //
  12. User_num int `orm:"size(200);null"` // 操作次数
  13. CreateTime time.Time `orm:"column(create_time);type(timestamp);null;auto_now_add"` //auto_now 每次 model 保存时都会对时间自动更新
  14. UpdateTime time.Time `orm:"column(update_time);type(timestamp);null;auto_now"` //auto_now_add 第一次保存时才设置时间
  15. }
  16. func (t *Tokey) TableName() string {
  17. return "Tokey" // 数据库名称 // ************** 替换 FormulaList **************
  18. }
  19. func init() {
  20. //注册模型
  21. orm.RegisterModel(new(Tokey))
  22. }
  23. // 验证 TOKEY
  24. func Read_Verification_Tokey(User_tokey string) (bool, Tokey) {
  25. r := Tokey{}
  26. o := orm.NewOrm()
  27. qs := o.QueryTable(new(Tokey))
  28. err := qs.Filter("User_tokey",User_tokey).One(&r)
  29. if err != nil {
  30. fmt.Println(err)
  31. return false,r
  32. }
  33. //println(time.Now().String(),time.Now().Unix())
  34. //println(r.UpdateTime.String(),r.UpdateTime.Unix())
  35. //
  36. //println(r.Id,time.Now().Unix() - r.UpdateTime.Unix())
  37. if time.Now().Unix() - r.UpdateTime.Unix() > 60 * 60 * 8 { // 小时
  38. println("User_tokey 过期了")
  39. return false,r
  40. }
  41. r.UpdateTime = time.Now()
  42. o.Update(&r, "UpdateTime");
  43. return true,r
  44. }
  45. // 添加 Tokey
  46. func Add_Tokey(Admin_uuid string) (User_tokey string) {
  47. o := orm.NewOrm()
  48. for true{
  49. User_tokey = uuid.NewV4().String()
  50. r := Tokey{User_tokey: User_tokey}
  51. err := o.Read(&r, "User_tokey") // o.Read(&r,"Tokey") 如果不是 主键 就得指定字段名
  52. if err != nil {
  53. break;
  54. }
  55. fmt.Print("申请 TOKEY 重复!重新生成。",User_tokey)
  56. }
  57. o.Insert(&Tokey{Admin_uuid:Admin_uuid,User_tokey: User_tokey})
  58. return User_tokey
  59. }