cache.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package telecom
  2. import (
  3. "context"
  4. "fmt"
  5. "go-common/library/cache/redis"
  6. "go-common/library/ecode"
  7. "go-common/library/log"
  8. )
  9. const (
  10. _phoneKey = "phone_%d"
  11. _payKey = "pay_%d"
  12. )
  13. // AddPhoneCode
  14. func (d *Dao) AddPhoneCode(c context.Context, phone int, captcha string) (res int, err error) {
  15. conn := d.phoneRds.Get(c)
  16. defer conn.Close()
  17. key := fmt.Sprintf(_phoneKey, phone)
  18. if _, err = redis.String(conn.Do("SET", key, captcha)); err != nil {
  19. log.Error("telecom_AddPhoneCode add conn.Do SET error(%v)", err)
  20. return
  21. }
  22. if res, err = redis.Int(conn.Do("EXPIRE", key, d.phoneKeyExpired)); err != nil {
  23. log.Error("telecom_AddPhoneCode add conn.Do EXPIRE error(%v)", err)
  24. return
  25. }
  26. return
  27. }
  28. // PhoneCode
  29. func (d *Dao) PhoneCode(c context.Context, phone int) (captcha string, err error) {
  30. conn := d.phoneRds.Get(c)
  31. defer conn.Close()
  32. key := fmt.Sprintf(_phoneKey, phone)
  33. if captcha, err = redis.String(conn.Do("GET", key)); err != nil {
  34. log.Error("telecom_get conn.Do GET error(%v)", err)
  35. err = ecode.NotModified
  36. return
  37. }
  38. return
  39. }
  40. // AddPayPhone add phone and requestNo
  41. func (d *Dao) AddPayPhone(c context.Context, requestNo int64, phone string) (res int, err error) {
  42. conn := d.phoneRds.Get(c)
  43. defer conn.Close()
  44. key := fmt.Sprintf(_payKey, requestNo)
  45. if _, err = redis.String(conn.Do("SET", key, phone)); err != nil {
  46. log.Error("telecom_AddPhoneCode add conn.Do SET error(%v)", err)
  47. return
  48. }
  49. if res, err = redis.Int(conn.Do("EXPIRE", key, d.payKeyExpired)); err != nil {
  50. log.Error("telecom_AddPhoneCode add conn.Do EXPIRE error(%v)", err)
  51. return
  52. }
  53. return
  54. }
  55. // PayPhone requestNo by phone
  56. func (d *Dao) PayPhone(c context.Context, requestNo int64) (phone string, err error) {
  57. conn := d.phoneRds.Get(c)
  58. defer conn.Close()
  59. key := fmt.Sprintf(_payKey, requestNo)
  60. if phone, err = redis.String(conn.Do("GET", key)); err != nil {
  61. log.Error("telecom_get conn.Do GET requestNo(%v) error(%v)", requestNo, err)
  62. err = ecode.NothingFound
  63. return
  64. }
  65. return
  66. }