biz_object_oam_params_repo.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package repositories
  2. import (
  3. "errors"
  4. "fmt"
  5. "xorm.io/xorm"
  6. "xps/datamodels"
  7. "xps/viewmodels"
  8. )
  9. type BizObjectOAMParamsRepo struct {
  10. engine *xorm.Engine
  11. }
  12. func NewBizObjectOAMParamsRepo(engine *xorm.Engine) *BizObjectOAMParamsRepo {
  13. return &BizObjectOAMParamsRepo{
  14. engine: engine,
  15. }
  16. }
  17. func (d *BizObjectOAMParamsRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error) {
  18. sqlSelect := ` SELECT A.*,
  19. B.object_title,
  20. B.object_code,
  21. B.object_type,
  22. C.oam_title,
  23. D.attr_title AS target_attr_title,
  24. D.attr_code AS target_attr_code,
  25. R.rule_title `
  26. sqlFrom := ` FROM biz_object_oam_params AS A
  27. LEFT JOIN biz_object AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
  28. LEFT JOIN biz_object_oam AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id) `
  29. sqlWhere := ` WHERE A.deleted_flag = 0 `
  30. if bizId, ok := m["bizId"]; ok {
  31. sqlWhere += fmt.Sprintf(" AND A.biz_id = %d ", bizId)
  32. }
  33. if objectId, ok := m["objectId"]; ok {
  34. sqlWhere += fmt.Sprintf(" AND A.object_id = %d ", objectId)
  35. }
  36. if oamId, ok := m["oamId"]; ok {
  37. sqlWhere += fmt.Sprintf(" AND A.oam_id = %d ", oamId)
  38. }
  39. sqlOrderBy := " ORDER BY A.params_id ASC "
  40. datalist := make([]viewmodels.BizObjectOAMParamsInfo, 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 *BizObjectOAMParamsRepo) GetById(bizId, objectId, oamId, orId int64) (*viewmodels.BizObjectOAMParamsInfo, error) {
  49. sqlSelect := ` SELECT A.*,
  50. B.object_title,
  51. B.object_code,
  52. B.object_type,
  53. C.oam_title,
  54. D.attr_title AS target_attr_title,
  55. D.attr_code AS target_attr_code,
  56. R.rule_title `
  57. sqlFrom := ` FROM biz_object_oam_params AS A
  58. LEFT JOIN biz_object AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
  59. LEFT JOIN biz_object_oam AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id) `
  60. sqlWhere := ` WHERE A.deleted_flag = 0 `
  61. sqlWhere += fmt.Sprintf(" AND A.biz_id = %d ", bizId)
  62. sqlWhere += fmt.Sprintf(" AND A.object_id = %d ", objectId)
  63. sqlWhere += fmt.Sprintf(" AND A.oam_id = %d ", oamId)
  64. sqlWhere += fmt.Sprintf(" AND A.or_id = %d ", orId)
  65. data := &viewmodels.BizObjectOAMParamsInfo{}
  66. has, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).Get(data)
  67. if !has || err != nil {
  68. return nil, err
  69. } else {
  70. return data, nil
  71. }
  72. }
  73. func (d *BizObjectOAMParamsRepo) GetListById(bizId, objectId, oamId int64) ([]viewmodels.BizObjectOAMParamsInfo, error) {
  74. sqlSelect := ` SELECT A.*,
  75. B.object_title,
  76. B.object_code,
  77. B.object_type,
  78. C.oam_title,
  79. D.attr_title AS target_attr_title,
  80. D.attr_code AS target_attr_code,
  81. R.rule_title `
  82. sqlFrom := ` FROM biz_object_oam_params AS A
  83. LEFT JOIN biz_object AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
  84. LEFT JOIN biz_object_oam AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id) `
  85. sqlWhere := ` WHERE A.deleted_flag = 0 `
  86. sqlWhere += fmt.Sprintf(" AND A.biz_id = %d ", bizId)
  87. sqlWhere += fmt.Sprintf(" AND A.object_id = %d ", objectId)
  88. sqlWhere += fmt.Sprintf(" AND A.oam_id = %d ", oamId)
  89. sqlOrderBy := " ORDER BY A.sort_no "
  90. dataList := make([]viewmodels.BizObjectOAMParamsInfo, 0)
  91. err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&dataList)
  92. if err != nil {
  93. return nil, err
  94. } else {
  95. return dataList, nil
  96. }
  97. }
  98. func (d *BizObjectOAMParamsRepo) Create(data *datamodels.BizObjectOAMParams) error {
  99. _, err := d.engine.Insert(data)
  100. return err
  101. }
  102. func (d *BizObjectOAMParamsRepo) Update(data *datamodels.BizObjectOAMParams) error {
  103. bizId := data.BizId
  104. objectId := data.ObjectId
  105. oamId := data.OamId
  106. paramsId := data.ParamsId
  107. _, err := d.engine.
  108. Where("biz_id = ?", bizId).
  109. Where("object_id = ?", objectId).
  110. Where("oam_id = ?", oamId).
  111. Where("params_id = ?", paramsId).
  112. AllCols().
  113. Update(data)
  114. return err
  115. }
  116. func (d *BizObjectOAMParamsRepo) Delete(m map[string]interface{}) error {
  117. bizId, ok1 := m["bizId"]
  118. objectId, ok2 := m["objectId"]
  119. oamId, ok3 := m["oamId"]
  120. paramsId, ok4 := m["paramsId"]
  121. if !ok1 || !ok2 || !ok3 || !ok4 {
  122. return errors.New("数据不完整")
  123. }
  124. data := &datamodels.BizObjectOAMParams{}
  125. _, err := d.engine.
  126. Where("biz_id = ?", bizId).
  127. Where("object_id = ?", objectId).
  128. Where("oam_id = ?", oamId).
  129. Where("params_id = ?", paramsId).
  130. Delete(data)
  131. return err
  132. }
  133. func (d *BizObjectOAMParamsRepo) DeleteByObjectId(bizId, objectId, oamId int64) error {
  134. data := &datamodels.BizObjectOAMParams{}
  135. _, err := d.engine.
  136. Where("biz_id = ?", bizId).
  137. Where("object_id = ?", objectId).
  138. Where("oam_id = ?", oamId).
  139. Delete(data)
  140. return err
  141. }