app_permit_repo.go 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package repositories
  2. import (
  3. "fmt"
  4. "xorm.io/xorm"
  5. "xps/datamodels"
  6. "xps/viewmodels"
  7. )
  8. type AppPermitRepo struct {
  9. engine *xorm.Engine
  10. }
  11. func NewAppPermitRepo(engine *xorm.Engine) *AppPermitRepo {
  12. return &AppPermitRepo{
  13. engine: engine,
  14. }
  15. }
  16. func (d *AppPermitRepo) GetList(m map[string]interface{})([]viewmodels.AppPermitInfo, error) {
  17. sqlSelect := ` SELECT A.app_id,
  18. A.role_id,
  19. A.permit_id,
  20. A.permit_title,
  21. A.permit_code,
  22. A.permit_desc,
  23. A.permit_type,
  24. A.root_id,
  25. A.parent_id,
  26. A.sort_no `
  27. sqlFrom := ` FROM app_permit AS A
  28. JOIN app AS B ON (A.app_id = B.app_id) `
  29. sqlWhere := ` WHERE A.deleted_flag = 0 `
  30. if appKey, ok := m["appKey"]; ok {
  31. sqlWhere += " AND B.app_key = '" + fmt.Sprintf("%s", appKey) + "'"
  32. }
  33. if roleId, ok := m["roleId"]; ok {
  34. sqlWhere += " AND A.role_id = " + fmt.Sprintf("%d", roleId)
  35. }
  36. if keywords, ok := m["keywords"]; ok {
  37. sqlWhere += " AND A.permit_title like '%" + fmt.Sprintf("%s", keywords) + "%'"
  38. }
  39. sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
  40. datalist := make([]viewmodels.AppPermitInfo, 0)
  41. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  42. if err != nil {
  43. return nil, err
  44. } else {
  45. return datalist, nil
  46. }
  47. }
  48. func (d *AppPermitRepo) GetListByKey(appKey string, roleId int64)([]viewmodels.AppPermitInfo, error) {
  49. sqlSelect := ` SELECT A.app_id,
  50. A.role_id,
  51. A.permit_id,
  52. A.permit_title,
  53. A.permit_code,
  54. A.permit_desc,
  55. A.permit_type,
  56. A.root_id,
  57. A.parent_id,
  58. A.sort_no `
  59. sqlFrom := ` FROM app_permit AS A
  60. JOIN app AS B ON (A.app_id = B.app_id) `
  61. sqlWhere := ` WHERE A.deleted_flag = 0 `
  62. sqlWhere += ` AND B.app_key = '` + appKey + "'"
  63. sqlWhere += ` AND A.role_id = ` + fmt.Sprintf("%d", roleId)
  64. sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
  65. datalist := make([]viewmodels.AppPermitInfo, 0)
  66. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  67. if err != nil {
  68. return nil, err
  69. } else {
  70. return datalist, nil
  71. }
  72. }
  73. func (d *AppPermitRepo) GetById(appId, roleId, permitId int64)(*viewmodels.AppPermitInfo, error) {
  74. sqlSelect := ` SELECT A.app_id,
  75. A.role_id,
  76. A.permit_id,
  77. A.permit_title,
  78. A.permit_code,
  79. A.permit_desc,
  80. A.permit_type,
  81. A.root_id,
  82. A.parent_id,
  83. A.sort_no `
  84. sqlFrom := ` FROM app_permit AS A
  85. JOIN app AS B ON (A.app_id = B.app_id) `
  86. sqlWhere := ` WHERE A.deleted_flag = 0 `
  87. sqlWhere += fmt.Sprintf(" AND A.app_id = %d ", appId)
  88. sqlWhere += fmt.Sprintf(" AND A.role_id = %d ", roleId)
  89. sqlWhere += fmt.Sprintf(" AND A.permit_id = %d ", permitId)
  90. data := &viewmodels.AppPermitInfo{}
  91. _, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).Limit(1).Get(data)
  92. if err != nil {
  93. return nil, err
  94. } else {
  95. return data, nil
  96. }
  97. }
  98. func (d *AppPermitRepo) Create(data *datamodels.AppPermit) error {
  99. _, err := d.engine.Insert(data)
  100. return err
  101. }
  102. func (d *AppPermitRepo) Update(data *datamodels.AppPermit) error {
  103. appId := data.AppId
  104. roleId := data.RoleId
  105. permitId := data.PermitId
  106. _, err := d.engine.
  107. Where("app_id = ?", appId).
  108. Where("role_id = ?", roleId).
  109. Where("permit_id = ?", permitId).
  110. Update(data)
  111. return err
  112. }
  113. func (d *AppPermitRepo) Delete(appId, roleId, permitId int64) error {
  114. data := &datamodels.AppPermit{}
  115. _, err := d.engine.
  116. Where("app_id = ?", appId).
  117. Where("role_id = ?", roleId).
  118. Where("permit_id = ?", permitId).
  119. Delete(data)
  120. return err
  121. }