up.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package service
  2. import (
  3. "bytes"
  4. "context"
  5. "strconv"
  6. "go-common/app/job/main/growup/model"
  7. "go-common/app/job/main/growup/model/income"
  8. )
  9. func (s *Service) getAllUps(c context.Context, limit int64) (m map[int64]*model.UpInfoVideo, err error) {
  10. var id int64
  11. m = make(map[int64]*model.UpInfoVideo)
  12. for {
  13. var us map[int64]*model.UpInfoVideo
  14. id, us, err = s.dao.UpInfoVideo(c, id, limit)
  15. if err != nil {
  16. return
  17. }
  18. for k, v := range us {
  19. m[k] = v
  20. }
  21. if len(us) < _dbLimit {
  22. break
  23. }
  24. }
  25. return
  26. }
  27. // SyncUpAccount sync up_account to up_tag_year
  28. func (s *Service) SyncUpAccount(c context.Context) (err error) {
  29. var id int64
  30. for {
  31. var um map[int64]*income.UpAccount
  32. um, id, err = s.income.UpAccounts(c, id, 2000)
  33. if err != nil {
  34. return
  35. }
  36. if len(um) == 0 {
  37. break
  38. }
  39. _, err = s.tag.InsertUpYearAccount(c, assembleUpYear(um))
  40. if err != nil {
  41. return
  42. }
  43. }
  44. return
  45. }
  46. func assembleUpYear(ups map[int64]*income.UpAccount) (vals string) {
  47. var buf bytes.Buffer
  48. for mid, info := range ups {
  49. buf.WriteString("(")
  50. buf.WriteString(strconv.FormatInt(mid, 10))
  51. buf.WriteByte(',')
  52. buf.WriteString(strconv.FormatInt(info.TotalIncome, 10))
  53. buf.WriteString(")")
  54. buf.WriteByte(',')
  55. }
  56. if buf.Len() > 0 {
  57. buf.Truncate(buf.Len() - 1)
  58. }
  59. vals = buf.String()
  60. buf.Reset()
  61. return
  62. }