biz_object_mapping_repo.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package repositories
  2. import (
  3. "fmt"
  4. "xorm.io/xorm"
  5. "xps/datamodels"
  6. "xps/viewmodels"
  7. )
  8. type BizObjectMappingRepo struct {
  9. engine *xorm.Engine
  10. }
  11. func NewBizObjectMappingRepo(engine *xorm.Engine) *BizObjectMappingRepo {
  12. return &BizObjectMappingRepo{
  13. engine: engine,
  14. }
  15. }
  16. func (d *BizObjectMappingRepo) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
  17. limit := m["limit"].(int)
  18. page := m["page"].(int)
  19. sqlSelect := ` SELECT A.* `
  20. sqlFrom := ` FROM biz_object_mapping AS A `
  21. sqlWhere := ` WHERE A.deleted_flag = 0 `
  22. if keywords, ok := m["keywords"]; ok {
  23. sqlWhere += ` AND A.object_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
  24. }
  25. sqlCount := ` SELECT COUNT(*) `
  26. total, err1 := d.engine.SQL(sqlCount + sqlFrom + sqlWhere).Count(new(viewmodels.BizObjectMappingInfo))
  27. if err1 != nil {
  28. return nil, err1
  29. }
  30. sqlOrderBy := " ORDER BY A.sort_no "
  31. pageStart := (page - 1) * limit
  32. sqlLimit := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
  33. datalist := make([]viewmodels.BizObjectMappingInfo, 0)
  34. err2 := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy + sqlLimit).Find(&datalist)
  35. if err2 != nil {
  36. return nil, err2
  37. }
  38. pageResult := &viewmodels.PageResult{}
  39. pageResult.Data = datalist
  40. pageResult.Total = total
  41. pageResult.PageSize = limit
  42. pageResult.Page = page
  43. return pageResult, nil
  44. }
  45. func (d *BizObjectMappingRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectMappingInfo, error) {
  46. sqlSelect := ` SELECT A.* `
  47. sqlFrom := ` FROM biz_object_mapping AS A `
  48. sqlWhere := ` WHERE A.deleted_flag = 0 `
  49. if keywords, ok := m["keywords"]; ok {
  50. sqlWhere += ` AND A.object_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
  51. }
  52. sqlOrderBy := " ORDER BY A.sort_no "
  53. datalist := make([]viewmodels.BizObjectMappingInfo, 0)
  54. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  55. if err != nil {
  56. return nil, err
  57. } else {
  58. return datalist, nil
  59. }
  60. }
  61. func (d *BizObjectMappingRepo) GetAll() ([]viewmodels.BizObjectMappingInfo, error) {
  62. sqlSelect := ` SELECT A.* `
  63. sqlFrom := ` FROM biz_object_mapping AS A `
  64. sqlWhere := ` WHERE A.deleted_flag = 0 `
  65. sqlOrderBy := ` ORDER BY A.sort_no `
  66. datalist := make([]viewmodels.BizObjectMappingInfo, 0)
  67. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  68. if err != nil {
  69. return nil, err
  70. } else {
  71. return datalist, nil
  72. }
  73. }
  74. func (d *BizObjectMappingRepo) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectMappingInfo, error) {
  75. sqlSelect := ` SELECT A.* `
  76. sqlFrom := ` FROM biz_object_mapping AS A `
  77. sqlWhere := ` WHERE A.deleted_flag = 0 `
  78. sqlWhere += fmt.Sprintf(" AND A.biz_id = %d", bizId)
  79. sqlWhere += fmt.Sprintf(" AND A.object_id = %d", objectId)
  80. sqlOrderBy := " ORDER BY A.sort_no "
  81. datalist := make([]viewmodels.BizObjectMappingInfo, 0)
  82. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
  83. if err != nil {
  84. return nil, err
  85. } else {
  86. return datalist, nil
  87. }
  88. }
  89. func (d *BizObjectMappingRepo) GetById(bizId, objectId, mappingId int64) (*viewmodels.BizObjectMappingInfo, error) {
  90. data := &viewmodels.BizObjectMappingInfo{}
  91. ok, err := d.engine.
  92. Where("biz_id = ?", bizId).
  93. Where("object_id = ?", objectId).
  94. Where("mapping_id = ?", mappingId).
  95. Get(data)
  96. if !ok && err == nil {
  97. return nil, err
  98. } else {
  99. return data, nil
  100. }
  101. }
  102. func (d *BizObjectMappingRepo) Create(data *datamodels.BizObjectMapping) error {
  103. _, err := d.engine.Insert(data)
  104. return err
  105. }
  106. func (d *BizObjectMappingRepo) Update(data *datamodels.BizObjectMapping) error {
  107. bizId := data.BizId
  108. objectId := data.ObjectId
  109. mappingId := data.MappingId
  110. _, err := d.engine.
  111. Where("biz_id = ?", bizId).
  112. Where("object_id = ?", objectId).
  113. Where("mapping_id = ?", mappingId).
  114. Update(data)
  115. return err
  116. }
  117. func (d *BizObjectMappingRepo) Delete(m map[string]interface{}) error {
  118. bizId := m["bizId"].(int64)
  119. objectId := m["objectId"].(int64)
  120. mappingId := m["mappingId"].(int64)
  121. data := &datamodels.BizObjectMapping{}
  122. _, err := d.engine.
  123. Where("biz_id = ?", bizId).
  124. Where("object_id = ?", objectId).
  125. Where("mapping_id = ?", mappingId).
  126. Delete(data)
  127. return err
  128. }
  129. func (d *BizObjectMappingRepo) DeleteByObjectId(bizId, objectId int64) error {
  130. data := &datamodels.BizObjectMapping{}
  131. _, err := d.engine.
  132. Where("biz_id = ?", bizId).
  133. Where("object_id = ?", objectId).
  134. Delete(data)
  135. return err
  136. }