Login.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package controllers
  2. import (
  3. "Cold_Api/controllers/lib"
  4. "Cold_Api/models/Account"
  5. "Cold_Api/models/System"
  6. "fmt"
  7. beego "github.com/beego/beego/v2/server/web"
  8. "github.com/mssola/user_agent"
  9. "time"
  10. )
  11. type AdminController struct {
  12. beego.Controller
  13. }
  14. func (c *AdminController) Login() {
  15. c.TplName = "login.html"
  16. }
  17. // 获取用户登录信息
  18. func (c *AdminController) GetUserLoginInfo() map[string]interface{} {
  19. //Ipaddr ip地址
  20. //Browser 浏览器
  21. //Os 系统
  22. //Platform 固件
  23. l := make(map[string]interface{})
  24. ua := user_agent.New(c.Ctx.Request.UserAgent())
  25. l["ipaddr"] = c.Ctx.Input.IP()
  26. l["remark"] = c.Ctx.Request.UserAgent()
  27. browserName, browserVersion := ua.Browser()
  28. l["browser"] = browserName + " " + browserVersion
  29. l["os"] = ua.OS()
  30. l["platform"] = ua.Platform()
  31. return l
  32. }
  33. func (c *AdminController) Login_verification() {
  34. Admin_user := c.GetString("bzd_username")
  35. Admin_pass := c.GetString("bzd_password")
  36. println("Login_verification", Admin_user, Admin_pass)
  37. err, admin_r := Account.Read_AdminLogin_verification(Admin_user, Admin_pass)
  38. fmt.Println("Login_verification", err, admin_r)
  39. if err != nil {
  40. c.Data["json"] = lib.JSONS{Code: 202, Msg: "账号密码错误!"}
  41. } else {
  42. if admin_r.T_pid > 0 {
  43. company, _ := Account.Read_Company_ById(admin_r.T_pid)
  44. if len(company.T_expirationTime) > 0 {
  45. expirationTime, _ := lib.TimeStrToTime(company.T_expirationTime + " 23:59:59")
  46. if time.Now().After(expirationTime.AddDate(0, 1, 0)) {
  47. AdminList := Account.Read_Admin_List_T_pids(admin_r.T_pid)
  48. var Admin_ []Account.Admin_
  49. for _, v := range AdminList {
  50. Admin_ = append(Admin_, Account.Admin_RToAdmin_(v))
  51. }
  52. type Info struct {
  53. Admin []Account.Admin_ // 专属管理员
  54. CompanyExpirationTime string
  55. }
  56. var info Info
  57. info.Admin = Admin_
  58. info.CompanyExpirationTime = company.T_expirationTime
  59. c.Data["json"] = lib.JSONS{Code: 220, Msg: "合同已到期,登录失败", Data: info}
  60. c.ServeJSON()
  61. return
  62. }
  63. }
  64. }
  65. User_tokey := Account.Add_Tokey_Set(admin_r.T_uuid)
  66. //fmt.Println("User_tokey:登录", User_tokey)
  67. c.Ctx.SetCookie("User_tokey", User_tokey, time.Second*60*60)
  68. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK!", Data: User_tokey}
  69. System.Add_UserLogs_T(admin_r.T_uuid, "登陆", "用户登陆", c.GetUserLoginInfo())
  70. }
  71. c.ServeJSON()
  72. return
  73. }
  74. func (c *AdminController) Info() {
  75. // 验证登录
  76. b_, user_r := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  77. if !b_ {
  78. c.Data["json"] = lib.JSONS{Code: 202, Msg: "no"}
  79. c.ServeJSON()
  80. return
  81. }
  82. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok", Data: Account.AdminToAdmin_R(user_r)}
  83. c.ServeJSON()
  84. return
  85. }