user.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package restful
  2. import (
  3. "fmt"
  4. "github.com/pkg/errors"
  5. )
  6. type User struct {
  7. Id int `xorm:"not null pk autoincr INT(10)"`
  8. Username string `xorm:"default '''' comment('账号') VARCHAR(50)"`
  9. Password string `xorm:"default '''' comment('密码') VARCHAR(50)"`
  10. Empid int `xorm:"default -1 INT(11)"`
  11. Sort int `xorm:"default 0 INT(11)"`
  12. Enable int `xorm:"default 1 TINYINT(4)"`
  13. CreatedOn int `xorm:"default NULL comment('创建时间') INT(11)"`
  14. ModifiedOn int `xorm:"default NULL comment('更新时间') INT(11)"`
  15. DeletedOn int `xorm:"default 0 comment('删除时间戳') INT(11)"`
  16. // Imei string `xorm:"imei"`
  17. }
  18. /*
  19. type UserRole struct {
  20. Id int `xorm:"not null pk autoincr INT(10)"`
  21. UserId int `xorm:"default NULL comment('用户ID') INT(11)"`
  22. RoleId int `xorm:"default NULL comment('角色ID') INT(11)"`
  23. DeletedOn int `xorm:"default 0 comment('删除时间戳') INT(11)"`
  24. }
  25. type Role struct {
  26. Id int `xorm:"not null pk autoincr INT(10)"`
  27. Name string `xorm:"default '''' comment('名字') VARCHAR(50)"`
  28. Sort int `xorm:"default 0 INT(11)"`
  29. Enable int `xorm:"default 1 TINYINT(4)"`
  30. CreatedOn int `xorm:"default NULL comment('创建时间') INT(11)"`
  31. ModifiedOn int `xorm:"default NULL comment('更新时间') INT(11)"`
  32. DeletedOn int `xorm:"default 0 comment('删除时间戳') INT(11)"`
  33. }
  34. */
  35. func CheckUser(username, password string) (bool, error) {
  36. has, err := Engine.Exist(&User{Username: username, Password: password})
  37. return has, err
  38. }
  39. func GetUserInfo(username string) map[string]interface{} {
  40. fmt.Println("=====GetUserInfo=====", username)
  41. valuesMap, err := Engine.SQL("SELECT * FROM `user` WHERE `username` = ? and `enable` >0 ", username).Query().List()
  42. if err != nil {
  43. return nil
  44. }
  45. if len(valuesMap) > 0 {
  46. valuesMap2, err := Engine.SQL("SELECT r.`name`,r.`id` FROM `user` u JOIN `role` r ON r.id=u.`roleid` WHERE r.`enable`>0 AND u.username=?", username).Query().List()
  47. if err == nil {
  48. valuesMap[0]["role"] = valuesMap2
  49. }
  50. return valuesMap[0]
  51. }
  52. return nil
  53. }
  54. func CheckUserFace(username, imei string, typein int) error {
  55. tx := Engine.NewSession()
  56. err := tx.Begin()
  57. defer func() {
  58. switch {
  59. case err != nil:
  60. if tx != nil {
  61. tx.Rollback()
  62. }
  63. default:
  64. if tx != nil {
  65. err = tx.Commit()
  66. }
  67. }
  68. if tx != nil {
  69. tx.Close()
  70. }
  71. }()
  72. valuesMap1, err := tx.SQL("SELECT * FROM `tmr` WHERE `imei` = ?", imei).Query().List()
  73. if err != nil {
  74. return err
  75. }
  76. if len(valuesMap1) == 0 {
  77. return errors.New("TMR设备不存在")
  78. }
  79. valuesMap, err := tx.SQL("SELECT * FROM `user` WHERE `username` = ? and `enable` >0 and pastureid = (SELECT pastureid FROM tmr WHERE imei = ?) ", username, imei).Query().List()
  80. if err != nil {
  81. return err
  82. }
  83. if len(valuesMap) == 0 {
  84. return errors.New("用户不存在")
  85. }
  86. if len(valuesMap) > 0 && len(valuesMap1) > 0 {
  87. _, err := Engine.SQL(`INSERT INTO emprecord(pastureid,imei,empid,empcode,empname,TYPE,recordtime)
  88. SELECT tmr.pastureid,tmr.imei, driver.id,driver.drivercode,driver.drivername,?,NOW() FROM tmr
  89. JOIN driver ON driver.drivercode=? AND driver.pastureid=tmr.pastureid AND tmr.imei=?`, typein, username, imei).Query().List()
  90. if err != nil {
  91. return err
  92. }
  93. return nil
  94. }
  95. return err
  96. }
  97. /*
  98. func GetByName(username string) (User, error) {
  99. user := &User{Username:username}
  100. has, err := engine.Get(user)
  101. var valuesMap1 = make(map[string]string)
  102. engine.Find(&User{Username: username,Password:password})
  103. has, err := db.Sql("select * from article where id=?", 2).Get(&valuesMap1)
  104. has, err := engine.Exist(&User{Username: username})
  105. err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users)
  106. has, err := engine.Where("Username = ?", username).Get(&user)
  107. return has, err
  108. }*/
  109. // func CheckImei(username, imei string) (bool, error) {
  110. // has, err := Engine.Exist(&User{Username: username, Imei: imei})
  111. // return has, err
  112. // }