dao.cache.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. // Code generated by $GOPATH/src/go-common/app/tool/cache/gen. DO NOT EDIT.
  2. /*
  3. Package dao is a generated cache proxy package.
  4. It is generated from:
  5. type _cache interface {
  6. // cache: -nullcache=&model.Order{ID:-1} -check_null_code=$!=nil&&$.ID==-1
  7. OrderUser(c context.Context, id int64) (*model.Order, error)
  8. // cache: -nullcache=&model.Asset{ID:-1} -check_null_code=$!=nil&&$.ID==-1 -singleflight=true
  9. Asset(c context.Context, oid int64, otype string, currency string) (*model.Asset, error)
  10. // cache: -nullcache=&model.AggrIncomeUser{Total:-1} -check_null_code=$!=nil&&$.Total==-1
  11. AggrIncomeUser(c context.Context, mid int64) (*model.AggrIncomeUser, error)
  12. // cache: -nullcache=&model.AggrIncomeUserMonthly{TotalPayTimes:-1} -check_null_code=$!=nil&&$.TotalPayTimes==-1
  13. AggrIncomeUserMonthly(c context.Context, mid int64, ver string) (*model.AggrIncomeUserMonthly, error)
  14. }
  15. */
  16. package dao
  17. import (
  18. "context"
  19. "go-common/app/service/main/ugcpay/model"
  20. "go-common/library/net/metadata"
  21. "go-common/library/stat/prom"
  22. "golang.org/x/sync/singleflight"
  23. )
  24. var _ _cache
  25. var cacheSingleFlights = [1]*singleflight.Group{{}}
  26. // OrderUser get data from cache if miss will call source method, then add to cache.
  27. func (d *Dao) OrderUser(c context.Context, id string) (res *model.Order, err error) {
  28. addCache := true
  29. res, err = d.CacheOrderUser(c, id)
  30. if err != nil {
  31. addCache = false
  32. err = nil
  33. }
  34. defer func() {
  35. if res != nil && res.ID == -1 {
  36. res = nil
  37. }
  38. }()
  39. if res != nil {
  40. prom.CacheHit.Incr("OrderUser")
  41. return
  42. }
  43. prom.CacheMiss.Incr("OrderUser")
  44. res, err = d.RawOrderUser(c, id)
  45. if err != nil {
  46. return
  47. }
  48. miss := res
  49. if miss == nil {
  50. miss = &model.Order{ID: -1}
  51. }
  52. if !addCache {
  53. return
  54. }
  55. d.cache.Save(func() {
  56. d.AddCacheOrderUser(metadata.WithContext(c), id, miss)
  57. })
  58. return
  59. }
  60. // Asset get data from cache if miss will call source method, then add to cache.
  61. func (d *Dao) Asset(c context.Context, id int64, otype string, currency string) (res *model.Asset, err error) {
  62. addCache := true
  63. res, err = d.CacheAsset(c, id, otype, currency)
  64. if err != nil {
  65. addCache = false
  66. err = nil
  67. }
  68. defer func() {
  69. if res != nil && res.ID == -1 {
  70. res = nil
  71. }
  72. }()
  73. if res != nil {
  74. prom.CacheHit.Incr("Asset")
  75. return
  76. }
  77. var rr interface{}
  78. sf := d.cacheSFAsset(id, otype, currency)
  79. rr, err, _ = cacheSingleFlights[0].Do(sf, func() (r interface{}, e error) {
  80. prom.CacheMiss.Incr("Asset")
  81. r, e = d.RawAsset(c, id, otype, currency)
  82. return
  83. })
  84. res = rr.(*model.Asset)
  85. if err != nil {
  86. return
  87. }
  88. miss := res
  89. if miss == nil {
  90. miss = &model.Asset{ID: -1}
  91. }
  92. if !addCache {
  93. return
  94. }
  95. d.cache.Save(func() {
  96. d.AddCacheAsset(metadata.WithContext(c), id, otype, currency, miss)
  97. })
  98. return
  99. }
  100. // // AggrIncomeUser get data from cache if miss will call source method, then add to cache.
  101. // func (d *Dao) AggrIncomeUser(c context.Context, mid int64, currency string) (res *model.AggrIncomeUser, err error) {
  102. // addCache := true
  103. // res, err = d.CacheAggrIncomeUser(c, mid, currency)
  104. // if err != nil {
  105. // addCache = false
  106. // err = nil
  107. // }
  108. // defer func() {
  109. // if res != nil && res.MID == -1 {
  110. // res = nil
  111. // }
  112. // }()
  113. // if res != nil {
  114. // prom.CacheHit.Incr("AggrIncomeUser")
  115. // return
  116. // }
  117. // prom.CacheMiss.Incr("AggrIncomeUser")
  118. // res, err = d.RawAggrIncomeUser(c, mid, currency)
  119. // if err != nil {
  120. // return
  121. // }
  122. // miss := res
  123. // if miss == nil {
  124. // miss = &model.AggrIncomeUser{MID: -1}
  125. // }
  126. // if !addCache {
  127. // return
  128. // }
  129. // d.cache.Save(func() {
  130. // d.AddCacheAggrIncomeUser(metadata.WithContext(c), mid, currency, miss)
  131. // })
  132. // return
  133. // }
  134. // // AggrIncomeUseAssetList get data from cache if miss will call source method, then add to cache.
  135. // func (d *Dao) AggrIncomeUseAssetList(c context.Context, mid int64, currency string, ver int64) (res []*model.AggrIncomeUserAsset, err error) {
  136. // addCache := true
  137. // res, err = d.CacheAggrIncomeUserAssetList(c, mid, currency, ver)
  138. // if err != nil {
  139. // addCache = false
  140. // err = nil
  141. // }
  142. // defer func() {
  143. // if res != nil && len(res) == 0 {
  144. // res = nil
  145. // }
  146. // }()
  147. // if res != nil {
  148. // prom.CacheHit.Incr("AggrIncomeUseAssetList")
  149. // return
  150. // }
  151. // prom.CacheMiss.Incr("AggrIncomeUseAssetList")
  152. // res, err = d.RawAggrIncomeUserAssetList(c, mid, currency, ver)
  153. // if err != nil {
  154. // return
  155. // }
  156. // miss := res
  157. // if miss == nil {
  158. // miss = make([]*model.AggrIncomeUserAsset, 0)
  159. // }
  160. // if !addCache {
  161. // return
  162. // }
  163. // d.cache.Save(func() {
  164. // d.AddCacheAggrIncomeUserAssetList(metadata.WithContext(c), mid, currency, ver, miss)
  165. // })
  166. // return
  167. // }