From 61a10d29390848c9bf71e889d1c1d75ba8a94a55 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期三, 29 七月 2020 15:02:41 +0800
Subject: [PATCH] rm redis, use local cache

---
 go.sum                 |    2 -
 cache/redis.go         |   50 ++++++++++++------------
 go.mod                 |    3 -
 service/userService.go |   62 ++++++++++++++++++++++---------
 4 files changed, 70 insertions(+), 47 deletions(-)

diff --git a/cache/redis.go b/cache/redis.go
index af658ee..4d55345 100644
--- a/cache/redis.go
+++ b/cache/redis.go
@@ -1,26 +1,26 @@
 package cache
-
-import (
-	"fmt"
-	"github.com/astaxie/beego"
-	redigo "github.com/gomodule/redigo/redis"
-)
-
-var pool *redigo.Pool
-
-func init() {
-	redisHost := beego.AppConfig.String("redisIp")
-	redisPort,_ := beego.AppConfig.Int("redisPort")
-	poolSize := 20
-	pool = redigo.NewPool(func() (redigo.Conn, error) {
-		c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%d", redisHost, redisPort))
-		if err != nil {
-			return nil, err
-		}
-		return c, nil
-	}, poolSize)
-}
-
-func Get() redigo.Conn {
-	return pool.Get()
-}
\ No newline at end of file
+//
+//import (
+//	"fmt"
+//	"github.com/astaxie/beego"
+//	redigo "github.com/gomodule/redigo/redis"
+//)
+//
+//var pool *redigo.Pool
+//
+//func init() {
+//	redisHost := beego.AppConfig.String("redisIp")
+//	redisPort,_ := beego.AppConfig.Int("redisPort")
+//	poolSize := 20
+//	pool = redigo.NewPool(func() (redigo.Conn, error) {
+//		c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%d", redisHost, redisPort))
+//		if err != nil {
+//			return nil, err
+//		}
+//		return c, nil
+//	}, poolSize)
+//}
+//
+//func Get() redigo.Conn {
+//	return pool.Get()
+//}
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 3081d91..5496fcc 100644
--- a/go.mod
+++ b/go.mod
@@ -7,8 +7,7 @@
 	github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
     github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190808125512-07798873deee
 	github.com/astaxie/beego v1.12.1
-	github.com/go-sql-driver/mysql v1.4.1
-	github.com/gomodule/redigo v2.0.0+incompatible
+	github.com/mattn/go-sqlite3 v1.10.0
 	github.com/robfig/cron v1.2.0
 	github.com/satori/go.uuid v1.2.0
 	github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
diff --git a/go.sum b/go.sum
index 69621f4..84f170d 100644
--- a/go.sum
+++ b/go.sum
@@ -56,14 +56,12 @@
 github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
 github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
-github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
 github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
diff --git a/service/userService.go b/service/userService.go
index a3e643f..9ca0963 100644
--- a/service/userService.go
+++ b/service/userService.go
@@ -1,15 +1,15 @@
 package service
 
 import (
-	"car-service/cache"
 	"car-service/extend/util"
 	"car-service/models"
 	"car-service/vo"
 	"errors"
 	"fmt"
 	"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
-	"github.com/gomodule/redigo/redis"
 	"github.com/satori/go.uuid"
+	"sync"
+	"time"
 )
 
 type UserService struct {
@@ -135,26 +135,52 @@
 	return false
 }
 
+type CodCache struct {
+	phoneNum    string
+	cod 		string
+	ex 			time.Time
+}
+var codMap = make(map[string]CodCache)
+var codLock sync.RWMutex
 func add2Cache(phoneNum string, code string) {
 	//鍐欏埌redis缂撳瓨涓�
-	c := cache.Get()
-	defer c.Close()
-
-	reply, err := c.Do("SET", phoneNum, code, "EX", 5 * 60)//瓒呮椂浜斿垎閽�
-	if err != nil {
-		fmt.Println("鍐欏叆redis澶辫触")
-	} else {
-		fmt.Println("鍐欏叆redis鎴愬姛,reply:", reply)
+	//c := cache.Get()
+	//defer c.Close()
+	//
+	//reply, err := c.Do("SET", phoneNum, code, "EX", 5 * 60)//瓒呮椂浜斿垎閽�
+	//if err != nil {
+	//	fmt.Println("鍐欏叆redis澶辫触")
+	//} else {
+	//	fmt.Println("鍐欏叆redis鎴愬姛,reply:", reply)
+	//}
+	codLock.Lock()
+	defer codLock.Unlock()
+	expireTime := time.Now().Add(time.Minute * 5)
+	codMap[phoneNum] = CodCache{
+		phoneNum:phoneNum,
+		cod: code,
+		ex:expireTime,
 	}
 }
 func existCode(phoneNum string) (bool,string) {
-	c := cache.Get()
-	defer c.Close()
-
-	r, err := redis.String(c.Do("GET", phoneNum))
-	if err != nil {
-		fmt.Println("existCode err:", err)
-		return false,""
+	//c := cache.Get()
+	//defer c.Close()
+	//
+	//r, err := redis.String(c.Do("GET", phoneNum))
+	//if err != nil {
+	//	fmt.Println("existCode err:", err)
+	//	return false,""
+	//}
+	//return true,r
+	codLock.Lock()
+	defer codLock.Unlock()
+	if cache,exist := codMap[phoneNum];exist {
+		if cache.ex.Before(time.Now()) {//宸茶繃鏈�
+			return false, ""
+		} else {
+			return true, cache.cod
+		}
+	} else {
+		return false, ""
 	}
-	return true,r
 }
\ No newline at end of file

--
Gitblit v1.8.0