role_models.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package models
  2. import (
  3. "errors"
  4. "fmt"
  5. "xugu_license/internal/global"
  6. )
  7. type RoleInfo struct {
  8. Id int
  9. Name string
  10. Permissions string
  11. }
  12. func CreateRole(r *RoleInfo) error {
  13. tx, err := global.XuguDB.Begin()
  14. if err != nil {
  15. return fmt.Errorf("begin transaction: %v", err)
  16. }
  17. defer func() {
  18. if err != nil {
  19. tx.Rollback()
  20. } else {
  21. err = tx.Commit()
  22. }
  23. }()
  24. _, err = tx.Exec(`
  25. INSERT INTO RolePermissions (name, permissions) VALUES (?, ?)
  26. `, r.Name, r.Permissions)
  27. if err != nil {
  28. fmt.Println("CreateRole", err)
  29. return err
  30. }
  31. return nil
  32. }
  33. // func ChenckRole(name string) (bool, error) {
  34. // // 根据user_id从数据库查询数据
  35. // rows, err := global.XuguDB.Query("select ID,USERNAME,PASSWORD,TELEPHONE,EMAIL,ROLE from lic_USER where id = ? ", uid)
  36. // if err != nil {
  37. // return nil, errors.New(" rows user not found")
  38. // }
  39. // for rows.Next() {
  40. // err = rows.Scan(&u.Id, &u.Username, &u.Password, &u.Telephone, &u.Email, &u.Role)
  41. // if err != nil {
  42. // fmt.Println("rows.Scan err: ", err)
  43. // return nil, errors.New("rows.Next user not found")
  44. // }
  45. // }
  46. // defer rows.Close()
  47. // fmt.Println("u: ", u)
  48. // u.PrepareGive()
  49. // return &u, nil
  50. // }
  51. func GetRoleInfo(name string) ([]RoleInfo, error) {
  52. // 根据user_id从数据库查询数据
  53. if name != "" {
  54. rows, err := global.XuguDB.Query("select * from RolePermissions where name = ? ", name)
  55. if err != nil {
  56. return nil, errors.New(" rows user not found")
  57. }
  58. var rIs []RoleInfo
  59. for rows.Next() {
  60. var r RoleInfo
  61. err = rows.Scan(&r.Id, &r.Name, &r.Permissions)
  62. if err != nil {
  63. fmt.Println("rows.Scan err: ", err)
  64. return nil, errors.New("rows.Next user not found")
  65. }
  66. rIs = append(rIs, r)
  67. }
  68. defer rows.Close()
  69. return rIs, nil
  70. } else {
  71. rows, err := global.XuguDB.Query("select * from RolePermissions;")
  72. if err != nil {
  73. return nil, errors.New(" rows user not found")
  74. }
  75. var rIs []RoleInfo
  76. for rows.Next() {
  77. var r RoleInfo
  78. err = rows.Scan(&r.Id, &r.Name, &r.Permissions)
  79. if err != nil {
  80. fmt.Println("rows.Scan err: ", err)
  81. return nil, errors.New("rows.Next user not found")
  82. }
  83. rIs = append(rIs, r)
  84. }
  85. defer rows.Close()
  86. return rIs, nil
  87. }
  88. }
  89. func UpdateRole(r *RoleInfo) error {
  90. tx, err := global.XuguDB.Begin()
  91. if err != nil {
  92. return fmt.Errorf("begin transaction: %v", err)
  93. }
  94. defer func() {
  95. if err != nil {
  96. tx.Rollback()
  97. } else {
  98. err = tx.Commit()
  99. }
  100. }()
  101. _, err = tx.Exec(`
  102. UPDATE RolePermissions SET NAME =? ,permissions =? WHERE Id =?;
  103. `, r.Name, r.Permissions, r.Id)
  104. if err != nil {
  105. fmt.Println("UpdateRole", err)
  106. return err
  107. }
  108. return nil
  109. }
  110. func DeleteRole(name string) error {
  111. tx, err := global.XuguDB.Begin()
  112. if err != nil {
  113. return fmt.Errorf("begin transaction: %v", err)
  114. }
  115. defer func() {
  116. if err != nil {
  117. tx.Rollback()
  118. } else {
  119. err = tx.Commit()
  120. }
  121. }()
  122. //DELETE FROM LicenseApplication WHERE UniqueID = ?", uniqueID
  123. _, err = tx.Exec(`
  124. DELETE FROM RolePermissions WHERE NAME =?;
  125. `, name)
  126. if err != nil {
  127. fmt.Println("DeleteRole", err)
  128. return err
  129. }
  130. return nil
  131. }