charge_ratio.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package income
  2. import (
  3. "context"
  4. incomeD "go-common/app/job/main/growup/dao/income"
  5. model "go-common/app/job/main/growup/model/income"
  6. )
  7. // ChargeRatioSvr charge ratio service
  8. type ChargeRatioSvr struct {
  9. dao *incomeD.Dao
  10. }
  11. // NewChargeRatioSvr new charge ratio service
  12. func NewChargeRatioSvr(dao *incomeD.Dao) *ChargeRatioSvr {
  13. return &ChargeRatioSvr{dao: dao}
  14. }
  15. // ArchiveChargeRatio get av charge ratio
  16. func (p *ChargeRatioSvr) ArchiveChargeRatio(c context.Context, limit int64) (rs map[int]map[int64]*model.ArchiveChargeRatio, err error) {
  17. rs = make(map[int]map[int64]*model.ArchiveChargeRatio)
  18. var id int64
  19. for {
  20. var ros map[int]map[int64]*model.ArchiveChargeRatio
  21. ros, id, err = p.dao.ArchiveChargeRatio(c, id, limit)
  22. if err != nil {
  23. return
  24. }
  25. if len(ros) == 0 {
  26. break
  27. }
  28. for ctype, m := range ros {
  29. if _, ok := rs[ctype]; ok {
  30. for aid, ratio := range m {
  31. rs[ctype][aid] = ratio
  32. }
  33. } else {
  34. rs[ctype] = m
  35. }
  36. }
  37. }
  38. return
  39. }
  40. // UpChargeRatio get up charge ratio
  41. func (p *ChargeRatioSvr) UpChargeRatio(c context.Context, limit int64) (rs map[int]map[int64]*model.UpChargeRatio, err error) {
  42. rs = make(map[int]map[int64]*model.UpChargeRatio)
  43. var id int64
  44. for {
  45. var ros map[int]map[int64]*model.UpChargeRatio
  46. ros, id, err = p.dao.UpChargeRatio(c, id, limit)
  47. if err != nil {
  48. return
  49. }
  50. if len(ros) == 0 {
  51. break
  52. }
  53. for ctype, m := range ros {
  54. if _, ok := rs[ctype]; ok {
  55. for mid, ratio := range m {
  56. rs[ctype][mid] = ratio
  57. }
  58. } else {
  59. rs[ctype] = m
  60. }
  61. }
  62. }
  63. return
  64. }