memcache.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package telecom
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/app/interface/main/app-wall/model/telecom"
  6. "go-common/library/cache/memcache"
  7. "go-common/library/log"
  8. )
  9. const (
  10. _prefix = "telecom_%d"
  11. _preorderid = "telecom_orderid_%d"
  12. )
  13. func keyTelecom(userphone int) string {
  14. return fmt.Sprintf(_prefix, userphone)
  15. }
  16. func keyTelecomOrderID(orderID int64) string {
  17. return fmt.Sprintf(_preorderid, orderID)
  18. }
  19. // AddTelecomCache
  20. func (d *Dao) AddTelecomCache(c context.Context, userphone int, u *telecom.OrderInfo) (err error) {
  21. var (
  22. key = keyTelecom(userphone)
  23. conn = d.mc.Get(c)
  24. )
  25. if err = conn.Set(&memcache.Item{Key: key, Object: u, Flags: memcache.FlagJSON, Expiration: d.expire}); err != nil {
  26. log.Error("addTelecomCache d.mc.Set(%s,%v) error(%v)", key, u, err)
  27. }
  28. conn.Close()
  29. return
  30. }
  31. // TelecomCache
  32. func (d *Dao) TelecomCache(c context.Context, userphone int) (u *telecom.OrderInfo, err error) {
  33. var (
  34. key = keyTelecom(userphone)
  35. conn = d.mc.Get(c)
  36. r *memcache.Item
  37. )
  38. defer conn.Close()
  39. if r, err = conn.Get(key); err != nil {
  40. if err == memcache.ErrNotFound {
  41. err = nil
  42. return
  43. }
  44. log.Error("telecomCache MemchDB.Get(%s) error(%v)", key, err)
  45. return
  46. }
  47. if err = conn.Scan(r, &u); err != nil {
  48. log.Error("r.Scan(%s) error(%v)", r.Value, err)
  49. }
  50. return
  51. }
  52. // AddTelecomOrderIDCache
  53. func (d *Dao) AddTelecomOrderIDCache(c context.Context, orderID int64, u *telecom.OrderInfo) (err error) {
  54. var (
  55. key = keyTelecomOrderID(orderID)
  56. conn = d.mc.Get(c)
  57. )
  58. if err = conn.Set(&memcache.Item{Key: key, Object: u, Flags: memcache.FlagJSON, Expiration: d.expire}); err != nil {
  59. log.Error("addTelecomCache d.mc.Set(%s,%v) error(%v)", key, u, err)
  60. }
  61. conn.Close()
  62. return
  63. }
  64. // TelecomOrderIDCache
  65. func (d *Dao) TelecomOrderIDCache(c context.Context, orderID int64) (u *telecom.OrderInfo, err error) {
  66. var (
  67. key = keyTelecomOrderID(orderID)
  68. conn = d.mc.Get(c)
  69. r *memcache.Item
  70. )
  71. defer conn.Close()
  72. if r, err = conn.Get(key); err != nil {
  73. if err == memcache.ErrNotFound {
  74. err = nil
  75. return
  76. }
  77. log.Error("telecomCache MemchDB.Get(%s) error(%v)", key, err)
  78. return
  79. }
  80. if err = conn.Scan(r, &u); err != nil {
  81. log.Error("r.Scan(%s) error(%v)", r.Value, err)
  82. }
  83. return
  84. }