app_permit_repo.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package repositories
  2. import (
  3. "fmt"
  4. "xorm.io/xorm"
  5. "xps/datamodel"
  6. "xps/viewmodel"
  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{})([]viewmodel.AppPermitInfo, error) {
  17. sqlSelect := ` SELECT A.app_id,
  18. B.app_title,
  19. A.role_id,
  20. A.permit_id,
  21. A.permit_title,
  22. A.permit_code,
  23. A.permit_desc,
  24. A.permit_type,
  25. A.root_id,
  26. A.parent_id,
  27. A.sort_no `
  28. sqlFrom := ` FROM app_permit AS A
  29. JOIN app AS B ON (A.app_id = B.app_id) `
  30. sqlWhere := ` WHERE A.deleted_flag = 0 `
  31. if appKey, ok := m["appKey"]; ok {
  32. sqlWhere += " AND B.app_key = '" + fmt.Sprintf("%s", appKey) + "'"
  33. }
  34. if appId, ok := m["appId"]; ok {
  35. sqlWhere += " AND A.app_id = " + fmt.Sprintf("%d", appId)
  36. }
  37. if roleId, ok := m["roleId"]; ok {
  38. sqlWhere += " AND A.role_id = " + fmt.Sprintf("%d", roleId)
  39. }
  40. if keywords, ok := m["keywords"]; ok {
  41. sqlWhere += " AND A.permit_title like '%" + fmt.Sprintf("%s", keywords) + "%'"
  42. }
  43. sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
  44. datalist := make([]viewmodel.AppPermitInfo, 0)
  45. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  46. if err != nil {
  47. return nil, err
  48. } else {
  49. return datalist, nil
  50. }
  51. }
  52. func (d *AppPermitRepo) GetListById(appId, roleId int64)([]viewmodel.AppPermitInfo, error) {
  53. sqlSelect := ` SELECT A.app_id,
  54. B.app_title,
  55. A.role_id,
  56. A.permit_id,
  57. A.permit_title,
  58. A.permit_code,
  59. A.permit_desc,
  60. A.permit_type,
  61. A.root_id,
  62. A.parent_id,
  63. A.sort_no `
  64. sqlFrom := ` FROM app_permit AS A
  65. JOIN app AS B ON (A.app_id = B.app_id) `
  66. sqlWhere := ` WHERE A.deleted_flag = 0 `
  67. sqlWhere += fmt.Sprintf(" AND A.app_id = %d ", appId)
  68. sqlWhere += fmt.Sprintf(" AND A.role_id = %d ", roleId)
  69. sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
  70. datalist := make([]viewmodel.AppPermitInfo, 0)
  71. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  72. if err != nil {
  73. return nil, err
  74. } else {
  75. return datalist, nil
  76. }
  77. }
  78. func (d *AppPermitRepo) GetListByKey(appKey string, roleId int64)([]viewmodel.AppPermitInfo, error) {
  79. sqlSelect := ` SELECT A.app_id,
  80. A.role_id,
  81. A.permit_id,
  82. A.permit_title,
  83. A.permit_code,
  84. A.permit_desc,
  85. A.permit_type,
  86. A.root_id,
  87. A.parent_id,
  88. A.sort_no `
  89. sqlFrom := ` FROM app_permit AS A
  90. JOIN app AS B ON (A.app_id = B.app_id) `
  91. sqlWhere := ` WHERE A.deleted_flag = 0 `
  92. sqlWhere += ` AND B.app_key = '` + appKey + "'"
  93. sqlWhere += ` AND A.role_id = ` + fmt.Sprintf("%d", roleId)
  94. sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
  95. datalist := make([]viewmodel.AppPermitInfo, 0)
  96. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  97. if err != nil {
  98. return nil, err
  99. } else {
  100. return datalist, nil
  101. }
  102. }
  103. func (d *AppPermitRepo) GetById(appId, roleId, permitId int64)(*viewmodel.AppPermitInfo, error) {
  104. sqlSelect := ` SELECT A.app_id,
  105. A.role_id,
  106. A.permit_id,
  107. A.permit_title,
  108. A.permit_code,
  109. A.permit_desc,
  110. A.permit_type,
  111. A.root_id,
  112. A.parent_id,
  113. A.sort_no `
  114. sqlFrom := ` FROM app_permit AS A
  115. JOIN app AS B ON (A.app_id = B.app_id) `
  116. sqlWhere := ` WHERE A.deleted_flag = 0 `
  117. sqlWhere += fmt.Sprintf(" AND A.app_id = %d ", appId)
  118. sqlWhere += fmt.Sprintf(" AND A.role_id = %d ", roleId)
  119. sqlWhere += fmt.Sprintf(" AND A.permit_id = %d ", permitId)
  120. data := &viewmodel.AppPermitInfo{}
  121. _, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).Limit(1).Get(data)
  122. if err != nil {
  123. return nil, err
  124. } else {
  125. return data, nil
  126. }
  127. }
  128. func (d *AppPermitRepo) Create(data *datamodel.AppPermit) error {
  129. _, err := d.engine.Insert(data)
  130. return err
  131. }
  132. func (d *AppPermitRepo) Update(data *datamodel.AppPermit) error {
  133. appId := data.AppId
  134. roleId := data.RoleId
  135. permitId := data.PermitId
  136. _, err := d.engine.
  137. Where("app_id = ?", appId).
  138. Where("role_id = ?", roleId).
  139. Where("permit_id = ?", permitId).
  140. Update(data)
  141. return err
  142. }
  143. func (d *AppPermitRepo) Delete(appId, roleId, permitId int64) error {
  144. data := &datamodel.AppPermit{}
  145. _, err := d.engine.
  146. Where("app_id = ?", appId).
  147. Where("role_id = ?", roleId).
  148. Where("permit_id = ?", permitId).
  149. Delete(data)
  150. return err
  151. }