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 --- service/userService.go | 72 ++++++++++++++++++++++++++--------- 1 files changed, 53 insertions(+), 19 deletions(-) diff --git a/service/userService.go b/service/userService.go index 5bd2303..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 { @@ -46,10 +46,18 @@ IsDelete: false, } if _, e := u.Insert();e ==nil { + var plateNos = make([]string, 0) + hikVehicles := carSv.GetVehicleListByPerson(u.Id) + + if hikVehicles != nil { + for _,up := range hikVehicles { + plateNos = append(plateNos, up.PlateNo) + } + } return true, &vo.UserInfo{ UserId: u.Id, PhoneNum: phoneNum, - PlateNos: []string{}, + PlateNos: plateNos, }, nil } else { fmt.Println("u.Insert err:", e) @@ -127,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