From 57f74a1f33a57bfb07e0e6ae637a3455ebb30380 Mon Sep 17 00:00:00 2001 From: shenzhuan Date: Wed, 19 Oct 2022 17:28:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E7=82=B9=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user-service/common/config.go | 61 ++++++++++++++++--- user-service/common/utils.go | 54 ++++++++++++++++ .../domain/repository/user_repository.go | 23 +++++-- .../domain/service/user_data_service.go | 16 ++++- user-service/go.mod | 3 + user-service/go.sum | 25 ++++++++ user-service/handler/user.go | 12 ++++ user-service/main.go | 13 +++- 8 files changed, 190 insertions(+), 17 deletions(-) create mode 100644 user-service/common/utils.go diff --git a/user-service/common/config.go b/user-service/common/config.go index d2b8157..dd7b636 100644 --- a/user-service/common/config.go +++ b/user-service/common/config.go @@ -1,6 +1,9 @@ package common import ( + "context" + "fmt" + "github.com/go-redis/redis/v8" "log" "os" "time" @@ -35,14 +38,15 @@ func GetConsulConfig(url string, fileKey string) (*viper.Viper, error) { } **/ -// type MySQLConfig struct { -// Host string `json:"host"` -// Post string `json:"port"` -// User string `json:"user"` -// Pwd string `json:"pwd"` -// Database string `json:"database"` -// } - +// type MySQLConfig struct { +// Host string `json:"host"` +// Post string `json:"port"` +// User string `json:"user"` +// Pwd string `json:"pwd"` +// Database string `json:"database"` +// } +// +// 获取 MySQL配置 func GetMysqlFromConsul(vip *viper.Viper) (db *gorm.DB, err error) { newLogger := logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), @@ -60,3 +64,44 @@ func GetMysqlFromConsul(vip *viper.Viper) (db *gorm.DB, err error) { return db, nil } + +/** +{ + "addr": "192.168.100.131", + "password": "", + "DB": "0", + "poolSize": "30", + "minIdleConn": "30" +} +*/ +// 获取redis 配置 +func GetRedisFromConsul(vip *viper.Viper) (red *redis.Client, err error) { + red = redis.NewClient(&redis.Options{ + Addr: vip.GetString("addr"), + Password: vip.GetString("password"), + DB: vip.GetInt("DB"), + PoolSize: vip.GetInt("poolSize"), + MinIdleConns: vip.GetInt("minIdleConn"), + }) + //集群 + clusterClients := redis.NewClusterClient( + &redis.ClusterOptions{ + Addrs: []string{"192.168.100.131:6380", "192.168.100.131:6381", "192.168.100.131:6382"}, + }) + fmt.Println(clusterClients) + return red, nil +} + +// 设置用户登录信息 +func SetUserToken(red *redis.Client, key string, val []byte, timeTTL time.Duration) { + red.Set(context.Background(), key, val, timeTTL) +} + +// 获取用户登录信息 +func GetUserToken(red *redis.Client, key string) string { + res, err := red.Get(context.Background(), key).Result() + if err != nil { + log.Print("GetUserToken err ", err) + } + return res +} diff --git a/user-service/common/utils.go b/user-service/common/utils.go new file mode 100644 index 0000000..5568ebe --- /dev/null +++ b/user-service/common/utils.go @@ -0,0 +1,54 @@ +package common + +import ( + "math" +) + +/* + @Auth:ShenZ + @Description: 用于UUID 加密算法 +*/ + +func StringToArray(intput string) []int { + output := []int{} + for _, v := range intput { + output = append(output, int(v)) + } + for i, j := 0, len(output)-1; i < j; i, j = i+1, j-1 { + output[i], output[j] = output[j], output[i] + } + return output +} +func GetInput(intput string) <-chan int { + out := make(chan int) + go func() { + for _, b := range StringToArray(intput) { + out <- b + } + close(out) + }() + return out +} +func SQ(in <-chan int) <-chan int { + out := make(chan int) + var base, i float64 = 2, 0 + go func() { + for n := range in { + out <- (n - 48) * int(math.Pow(base, i)) + i++ + } + close(out) + }() + return out +} + +func ToInt(intput string) int { + //intput := "101010101110110" + c := GetInput(intput) + out := SQ(c) + sum := 0 + for o := range out { + sum += o + } + return sum +} diff --git a/user-service/domain/repository/user_repository.go b/user-service/domain/repository/user_repository.go index 6c4816b..79dc8e6 100644 --- a/user-service/domain/repository/user_repository.go +++ b/user-service/domain/repository/user_repository.go @@ -2,7 +2,10 @@ package repository import ( "errors" + "github.com/go-redis/redis/v8" + "gouser/common" "gouser/domain/model" + "time" "gorm.io/gorm" ) @@ -16,19 +19,22 @@ import ( //接口 type IUserRepository interface { Login(int32, string, int32, string) (*model.User, error) + SetUserToken(key string, val []byte, timeTTL time.Duration) + GetUserToken(key string) string } -//创建实例 -func NewUserRepository(db *gorm.DB) IUserRepository { - return &UserRepository{mysqlDB: db} +// 创建实例 +func NewUserRepository(db *gorm.DB, red *redis.Client) IUserRepository { + return &UserRepository{mysqlDB: db, red: red} } -//数据DB +// 数据DB type UserRepository struct { mysqlDB *gorm.DB + red *redis.Client } -//重写接口方法 +// 重写接口方法 func (u *UserRepository) Login(clientId int32, phone string, systemId int32, verificationCode string) (user *model.User, err error) { user = &model.User{} if clientId == 0 && systemId == 0 && verificationCode == "6666" { @@ -45,3 +51,10 @@ func (u *UserRepository) Login(clientId int32, phone string, systemId int32, ver return user, errors.New("参数不匹配") } } +func (u *UserRepository) SetUserToken(key string, val []byte, timeTTL time.Duration) { + common.SetUserToken(u.red, key, val, timeTTL) +} + +func (u *UserRepository) GetUserToken(key string) string { + return common.GetUserToken(u.red, key) +} diff --git a/user-service/domain/service/user_data_service.go b/user-service/domain/service/user_data_service.go index 2d0daf3..e017f45 100644 --- a/user-service/domain/service/user_data_service.go +++ b/user-service/domain/service/user_data_service.go @@ -3,10 +3,13 @@ package service import ( "gouser/domain/model" "gouser/domain/repository" + "time" ) type IUserDataService interface { Login(int32, string, int32, string) (*model.User, error) + SetUserToken(key string, val []byte, timeTTL time.Duration) + GetUserToken(key string) string } type UserDataService struct { userRepository repository.IUserRepository @@ -16,14 +19,23 @@ func NewUserDataService(userRepository repository.IUserRepository) IUserDataServ return &UserDataService{userRepository: userRepository} } -//重写接口方法 +// 重写接口方法 func (u *UserDataService) Login(clientId int32, phone string, systemId int32, verificationCode string) (user *model.User, err error) { return u.userRepository.Login(clientId, phone, systemId, verificationCode) } -/* clientId, _ := strconv.Atoi(c.Request.FormValue("clientId")) +/* + clientId, _ := strconv.Atoi(c.Request.FormValue("clientId")) + phone := c.Request.FormValue("phone") systemId, _ := strconv.Atoi(c.Request.FormValue("systemId")) verificationCode := c.Request.FormValue("verificationCode") */ +func (u *UserDataService) SetUserToken(key string, val []byte, timeTTL time.Duration) { + u.userRepository.SetUserToken(key, val, timeTTL) +} + +func (u *UserDataService) GetUserToken(key string) string { + return u.userRepository.GetUserToken(key) +} diff --git a/user-service/go.mod b/user-service/go.mod index 87a77d2..6f020c4 100644 --- a/user-service/go.mod +++ b/user-service/go.mod @@ -23,6 +23,7 @@ require ( require ( github.com/asim/go-micro/plugins/registry/consul/v4 v4.7.0 github.com/gin-gonic/gin v1.8.1 + github.com/go-redis/redis/v8 v8.11.5 github.com/spf13/viper v1.12.0 gorm.io/driver/mysql v1.3.5 ) @@ -36,9 +37,11 @@ require ( github.com/acomagu/bufpipe v1.0.3 // indirect github.com/armon/go-metrics v0.3.10 // indirect github.com/bitly/go-simplejson v0.5.0 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/emirpasic/gods v1.12.0 // indirect github.com/fatih/color v1.13.0 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect diff --git a/user-service/go.sum b/user-service/go.sum index 338d6d8..d3dffee 100644 --- a/user-service/go.sum +++ b/user-service/go.sum @@ -131,8 +131,11 @@ github.com/c-bata/go-prompt v0.2.5/go.mod h1:vFnjEGDIIA/Lib7giyE4E9c50Lvl8j0S+7F github.com/cenkalti/backoff/v4 v4.1.0/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -182,6 +185,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deepmap/oapi-codegen v1.3.11/go.mod h1:suMvK7+rKlx3+tpa8ByptmvoXbAV70wERKTOGH3hLp0= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= @@ -261,10 +266,13 @@ github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/j github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= github.com/go-playground/validator/v10 v10.10.0 h1:I7mrTYv78z8k8VXa/qJlOlEXn/nBh+BF8dHX5nt/dr0= github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= +github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= +github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobs/pretty v0.0.0-20180724170744-09732c25a95b/go.mod h1:Xo4aNUOrJnVruqWQJBtW6+bTBDTniY8yZum5rF3b5jw= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= @@ -356,6 +364,7 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -596,13 +605,24 @@ github.com/nrdcg/dnspod-go v0.4.0/go.mod h1:vZSoFSFeQVm2gWLMkyX61LZ8HI3BaqtHZWgP github.com/nrdcg/goinwx v0.8.1/go.mod h1:tILVc10gieBp/5PMvbcYeXM6pVQ+c9jxDZnpaR1UW7c= github.com/nrdcg/namesilo v0.2.1/go.mod h1:lwMvfQTyYq+BbjJd30ylEG4GPSS6PII0Tia4rRpRiyw= github.com/nrdcg/porkbun v0.1.1/go.mod h1:JWl/WKnguWos4mjfp4YizvvToigk9qpQwrodOk+CPoA= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= +github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= @@ -905,6 +925,7 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= @@ -921,6 +942,7 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -991,6 +1013,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1032,6 +1055,7 @@ golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210216224549-f992740a1bac/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1148,6 +1172,7 @@ golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82u golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= diff --git a/user-service/handler/user.go b/user-service/handler/user.go index b719312..3029bfa 100644 --- a/user-service/handler/user.go +++ b/user-service/handler/user.go @@ -8,6 +8,7 @@ import ( "gouser/domain/service" "gouser/proto" "log" + "strconv" "time" ) @@ -23,6 +24,7 @@ func (u *User) Login(ctx context.Context, loginRequest *proto.LoginRequest, logi } fmt.Println(">>>>>>>>>>>>> login success :", userInfo) UserForResp(userInfo, loginResp) + u.UserDataService.SetUserToken(strconv.Itoa(int(userInfo.ID)), []byte(loginResp.Token), time.Duration(1)*time.Hour) return nil } @@ -46,3 +48,13 @@ func UserForResp(userModel *model.User, resp *proto.LoginResp) *proto.LoginResp resp.User.UnionId = userModel.UnionId return resp } + +//func (u *User) GetUserToken(ctx context.Context, loginRequest *proto.LoginRequest, loginResp *proto.LoginResp) bool { +// userInfo, err := u.UserDataService.GetUserToken() +// if err != nil { +// return err +// } +// fmt.Println(">>>>>>>>>>>>> login success :", userInfo) +// UserForResp(userInfo, loginResp) +// return nil +//} diff --git a/user-service/main.go b/user-service/main.go index 8e16454..c81d5d4 100644 --- a/user-service/main.go +++ b/user-service/main.go @@ -18,6 +18,7 @@ const ( consulStr = "http://192.168.100.131:8500" consulReistStr = "192.168.100.131:8500" fileKey = "mysql-user" + redisKey = "redis" ) func main() { @@ -39,10 +40,18 @@ func main() { micro.Version("v1"), micro.Registry(consulReg), ) - //2.初始化db + //2.初始化db & redis + //mysql db, _ := common.GetMysqlFromConsul(consulConfig) + //redis + consulRedisConfig, err := common.GetConsulConfig(consulStr, redisKey) + red, _ := common.GetRedisFromConsul(consulRedisConfig) + //测试 缓存 + //common.SetUserToken(red, "uuid1111", []byte("tokenxxx"), time.Duration(1)*time.Hour) + //val := common.GetUserToken(red, "uuid1111") + //fmt.Println(">>>>>>>>>>>>>>>>>>>>> ", val) //3.创建服务实例 - userDataService := service.NewUserDataService(repository.NewUserRepository(db)) + userDataService := service.NewUserDataService(repository.NewUserRepository(db, red)) //4.注册handler proto.RegisterLoginHandler(repcService.Server(), &handler.User{userDataService})