|
@@ -0,0 +1,113 @@
|
|
|
|
|
+package helpers
|
|
|
|
|
+
|
|
|
|
|
+import (
|
|
|
|
|
+ "fmt"
|
|
|
|
|
+ "github.com/astaxie/beego"
|
|
|
|
|
+ "github.com/go-redis/redis"
|
|
|
|
|
+ "time"
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+//保存keyValue
|
|
|
|
|
+func SetRedisValue(key, value string, durTime int) {
|
|
|
|
|
+ db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ client := redis.NewClient(&redis.Options{
|
|
|
|
|
+ Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
|
|
+ Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
|
|
+ DB: db, //使用默认数据库
|
|
|
|
|
+ })
|
|
|
|
|
+ beego.BeeLogger.Info("Connect redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
|
|
+ defer client.Close() //最后关闭
|
|
|
|
|
+ _, err = client.Ping().Result()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ var t time.Duration
|
|
|
|
|
+ if durTime == 90 {
|
|
|
|
|
+ t = 90 * time.Minute
|
|
|
|
|
+ }
|
|
|
|
|
+ client.Set(key, value, t) //忽略错误
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//获取keyValue
|
|
|
|
|
+func GetRedisValue(key string) (bool, string) {
|
|
|
|
|
+ db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return false, ""
|
|
|
|
|
+ }
|
|
|
|
|
+ client := redis.NewClient(&redis.Options{
|
|
|
|
|
+ Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
|
|
+ Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
|
|
+ DB: db, //使用默认数据库
|
|
|
|
|
+ })
|
|
|
|
|
+ beego.BeeLogger.Info("Connect redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
|
|
+ defer client.Close() //最后关闭
|
|
|
|
|
+ _, err = client.Ping().Result()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return false, ""
|
|
|
|
|
+ }
|
|
|
|
|
+ str := client.Get(key).String()
|
|
|
|
|
+ return true, str
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//保存redis队列
|
|
|
|
|
+func ThrowInRedisList(key, value string) {
|
|
|
|
|
+ db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ client := redis.NewClient(&redis.Options{
|
|
|
|
|
+ Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
|
|
+ Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
|
|
+ DB: db, //使用默认数据库
|
|
|
|
|
+ })
|
|
|
|
|
+ beego.BeeLogger.Info("Connect redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
|
|
+ defer client.Close() //最后关闭
|
|
|
|
|
+ _, err = client.Ping().Result()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ client.LPush(key, value) //rpush则在尾部插入
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//从redis队列剔除
|
|
|
|
|
+func ThrowOutRedisList(key, value string) {
|
|
|
|
|
+ db, err := beego.AppConfig.Int("AliRedisDb")
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ client := redis.NewClient(&redis.Options{
|
|
|
|
|
+ Addr: beego.AppConfig.String("AliRedisHost"),
|
|
|
|
|
+ Password: beego.AppConfig.String("AliRedisPwd"), //默认空密码
|
|
|
|
|
+ DB: db, //使用默认数据库
|
|
|
|
|
+ })
|
|
|
|
|
+ beego.BeeLogger.Info("Connect redis name (%s), pwd=%s", beego.AppConfig.String("AliRedisHost"), beego.AppConfig.String("AliRedisPwd"))
|
|
|
|
|
+ defer client.Close() //最后关闭
|
|
|
|
|
+ _, err = client.Ping().Result()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ beego.BeeLogger.Error("%s", err)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ client.LRem(key, 0, value)
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func GetKeyByOrderId(orderId string) string {
|
|
|
|
|
+ return fmt.Sprintf("mall:order:info:%s", orderId)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+//所有未支付普通订单加入队列,用作倒计到时取消
|
|
|
|
|
+func GetOrderCancelList() string {
|
|
|
|
|
+ return fmt.Sprintf("mall:cancelorder")
|
|
|
|
|
+}
|