mc.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package dao
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/app/job/main/passport-user/model"
  6. "go-common/library/cache/memcache"
  7. "go-common/library/log"
  8. )
  9. func ubKey(mid int64) string {
  10. return fmt.Sprintf("ub_%d", mid)
  11. }
  12. func utKey(mid int64) string {
  13. return fmt.Sprintf("ut_%d", mid)
  14. }
  15. func ueKey(mid int64) string {
  16. return fmt.Sprintf("ue_%d", mid)
  17. }
  18. func uroKey(mid int64) string {
  19. return fmt.Sprintf("uro_%d", mid)
  20. }
  21. func usqKey(mid int64) string {
  22. return fmt.Sprintf("usq_%d", mid)
  23. }
  24. func qqKey(mid int64) string {
  25. return fmt.Sprintf("utb_qq_%d", mid)
  26. }
  27. func sinaKey(mid int64) string {
  28. return fmt.Sprintf("utb_sina_%d", mid)
  29. }
  30. // SetUserBaseCache set user base to cache
  31. func (d *Dao) SetUserBaseCache(c context.Context, ub *model.UserBase) (err error) {
  32. key := ubKey(ub.Mid)
  33. conn := d.mc.Get(c)
  34. defer conn.Close()
  35. item := &memcache.Item{Key: key, Object: ub.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  36. if err = conn.Set(item); err != nil {
  37. log.Error("fail to set user base to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  38. }
  39. return
  40. }
  41. // SetUserTelCache set user tel to cache
  42. func (d *Dao) SetUserTelCache(c context.Context, ut *model.UserTel) (err error) {
  43. key := utKey(ut.Mid)
  44. conn := d.mc.Get(c)
  45. defer conn.Close()
  46. item := &memcache.Item{Key: key, Object: ut.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  47. if err = conn.Set(item); err != nil {
  48. log.Error("fail to set user tel to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  49. }
  50. return
  51. }
  52. // SetUserEmailCache set user email to cache
  53. func (d *Dao) SetUserEmailCache(c context.Context, ue *model.UserEmail) (err error) {
  54. key := ueKey(ue.Mid)
  55. conn := d.mc.Get(c)
  56. defer conn.Close()
  57. item := &memcache.Item{Key: key, Object: ue.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  58. if err = conn.Set(item); err != nil {
  59. log.Error("fail to set user email to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  60. }
  61. return
  62. }
  63. // SetUserRegOriginCache set user reg origin to cache
  64. func (d *Dao) SetUserRegOriginCache(c context.Context, uro *model.UserRegOrigin) (err error) {
  65. key := uroKey(uro.Mid)
  66. conn := d.mc.Get(c)
  67. defer conn.Close()
  68. item := &memcache.Item{Key: key, Object: uro.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  69. if err = conn.Set(item); err != nil {
  70. log.Error("fail to set user reg origin to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  71. }
  72. return
  73. }
  74. // SetUserSafeQuestionCache set user safe question to cache
  75. func (d *Dao) SetUserSafeQuestionCache(c context.Context, usq *model.UserSafeQuestion) (err error) {
  76. key := usqKey(usq.Mid)
  77. conn := d.mc.Get(c)
  78. defer conn.Close()
  79. item := &memcache.Item{Key: key, Object: usq.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  80. if err = conn.Set(item); err != nil {
  81. log.Error("fail to set user safe question to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  82. }
  83. return
  84. }
  85. // SetUserThirdBindQQCache set user third bind qq to cache
  86. func (d *Dao) SetUserThirdBindQQCache(c context.Context, utb *model.UserThirdBind) (err error) {
  87. key := qqKey(utb.Mid)
  88. conn := d.mc.Get(c)
  89. defer conn.Close()
  90. item := &memcache.Item{Key: key, Object: utb.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  91. if err = conn.Set(item); err != nil {
  92. log.Error("fail to set user third bind qq to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  93. }
  94. return
  95. }
  96. // SetUserThirdBindSinaCache set user third bind sina to cache
  97. func (d *Dao) SetUserThirdBindSinaCache(c context.Context, utb *model.UserThirdBind) (err error) {
  98. key := sinaKey(utb.Mid)
  99. conn := d.mc.Get(c)
  100. defer conn.Close()
  101. item := &memcache.Item{Key: key, Object: utb.ConvertToProto(), Flags: memcache.FlagProtobuf, Expiration: d.mcExpire}
  102. if err = conn.Set(item); err != nil {
  103. log.Error("fail to set user third bind sina to mc, key(%s) expire(%d) error(%+v)", key, d.mcExpire, err)
  104. }
  105. return
  106. }
  107. // DelUserBaseCache del user base cache
  108. func (d *Dao) DelUserBaseCache(c context.Context, mid int64) (err error) {
  109. key := ubKey(mid)
  110. conn := d.mc.Get(c)
  111. defer conn.Close()
  112. if err = conn.Delete(key); err != nil {
  113. if err == memcache.ErrNotFound {
  114. err = nil
  115. return
  116. }
  117. log.Error("fail to del user base cache, key(%s) error(%+v)", key, err)
  118. }
  119. return
  120. }
  121. // DelUserTelCache del user tel cache
  122. func (d *Dao) DelUserTelCache(c context.Context, mid int64) (err error) {
  123. key := utKey(mid)
  124. conn := d.mc.Get(c)
  125. defer conn.Close()
  126. if err = conn.Delete(key); err != nil {
  127. if err == memcache.ErrNotFound {
  128. err = nil
  129. return
  130. }
  131. log.Error("fail to del user tel cache, key(%s) error(%+v)", key, err)
  132. }
  133. return
  134. }
  135. // DelUserEmailCache del user email cache
  136. func (d *Dao) DelUserEmailCache(c context.Context, mid int64) (err error) {
  137. key := ueKey(mid)
  138. conn := d.mc.Get(c)
  139. defer conn.Close()
  140. if err = conn.Delete(key); err != nil {
  141. if err == memcache.ErrNotFound {
  142. err = nil
  143. return
  144. }
  145. log.Error("fail to del user email cache, key(%s) error(%+v)", key, err)
  146. }
  147. return
  148. }
  149. // DelUserThirdBindQQCache del user third bind qq cache
  150. func (d *Dao) DelUserThirdBindQQCache(c context.Context, mid int64) (err error) {
  151. key := qqKey(mid)
  152. conn := d.mc.Get(c)
  153. defer conn.Close()
  154. if err = conn.Delete(key); err != nil {
  155. if err == memcache.ErrNotFound {
  156. err = nil
  157. return
  158. }
  159. log.Error("fail to del user third bind qq cache, key(%s) error(%+v)", key, err)
  160. }
  161. return
  162. }
  163. // DelUserThirdBindSinaCache del user third bind sina cache
  164. func (d *Dao) DelUserThirdBindSinaCache(c context.Context, mid int64) (err error) {
  165. key := sinaKey(mid)
  166. conn := d.mc.Get(c)
  167. defer conn.Close()
  168. if err = conn.Delete(key); err != nil {
  169. if err == memcache.ErrNotFound {
  170. err = nil
  171. return
  172. }
  173. log.Error("fail to del user third bind sina cache, key(%s) error(%+v)", key, err)
  174. }
  175. return
  176. }
  177. // pingMC
  178. func (d *Dao) pingMC(c context.Context) (err error) {
  179. conn := d.mc.Get(c)
  180. item := memcache.Item{Key: "ping", Value: []byte{1}, Expiration: d.mcExpire}
  181. err = conn.Set(&item)
  182. conn.Close()
  183. return
  184. }