From 3f0ae61c5c91fc657af679255ad6a0e685aa94c9 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Fri, 17 Feb 2023 16:51:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=94=A8=E5=85=AC=E5=85=B1=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _const/enum/match_e/enum.go | 2 +- _const/enum/res_e/enum.go | 2 +- _const/enum/user_e/user.go | 2 +- _const/mdc.go | 22 - _const/redis_key/user_k/keys.go | 2 +- _const/util.go | 102 ---- domain/cache/modelRedis.go | 2 +- domain/cache/user_c/user.go | 4 +- domain/ctx.go | 13 - domain/event.go | 9 - domain/model.go | 55 -- domain/model/common/cache_medal.go | 6 +- domain/model/res_m/country.go | 4 +- domain/model/res_m/medal.go | 2 +- domain/model/res_m/nameplate.go | 2 +- domain/model/res_m/resMultiText.go | 2 +- domain/model/user_m/matchCharm.go | 4 +- domain/model/user_m/matchWealth.go | 4 +- domain/model/user_m/medal.go | 4 +- domain/model/user_m/nameplate.go | 4 +- domain/model/user_m/user.go | 4 +- domain/model/user_m/vip.go | 4 +- go.mod | 9 +- go.sum | 11 + main.go | 12 +- mycontext/context.go | 84 ---- myerr/code.go | 2 +- mylogrus/log.go | 93 ---- mylogrus/log_unix.go | 54 -- mylogrus/log_windows.go | 31 -- protocol/biz.proto | 19 - protocol/userCenter.proto | 99 ---- protocol/userProxy.proto | 313 ------------ protocol/video.proto | 16 - req/jwt/jwt.go | 2 +- req/request.go | 23 +- resource/config/config.go | 779 ----------------------------- resource/consul/consul.go | 112 ----- resource/consul/watch.go | 129 ----- resource/mysql/entity.go | 116 ----- resource/mysql/logger.go | 114 ----- resource/mysql/mysql.go | 57 --- resource/mysql/types.go | 93 ---- resource/redisCli/redis.go | 33 -- resp/response.go | 7 +- route/errorHandle.go | 9 +- route/middleHandle.go | 21 +- route/redis_r/scan.go | 8 +- route/user_r/user.go | 6 +- 49 files changed, 89 insertions(+), 2418 deletions(-) delete mode 100755 _const/mdc.go delete mode 100755 _const/util.go delete mode 100755 domain/ctx.go delete mode 100755 domain/event.go delete mode 100755 domain/model.go delete mode 100755 mycontext/context.go delete mode 100755 mylogrus/log.go delete mode 100755 mylogrus/log_unix.go delete mode 100755 mylogrus/log_windows.go delete mode 100755 protocol/biz.proto delete mode 100755 protocol/userCenter.proto delete mode 100755 protocol/userProxy.proto delete mode 100755 protocol/video.proto delete mode 100755 resource/config/config.go delete mode 100755 resource/consul/consul.go delete mode 100755 resource/consul/watch.go delete mode 100755 resource/mysql/entity.go delete mode 100755 resource/mysql/logger.go delete mode 100755 resource/mysql/mysql.go delete mode 100755 resource/mysql/types.go delete mode 100755 resource/redisCli/redis.go diff --git a/_const/enum/match_e/enum.go b/_const/enum/match_e/enum.go index fd1cea2..d67fb52 100755 --- a/_const/enum/match_e/enum.go +++ b/_const/enum/match_e/enum.go @@ -1,6 +1,6 @@ package match_e -import "hilo-user/resource/mysql" +import "git.hilo.cn/hilo-common/resource/mysql" /****************************/ type MatchDetailDataChange mysql.NumAll diff --git a/_const/enum/res_e/enum.go b/_const/enum/res_e/enum.go index 24a8bf0..4e6f79d 100755 --- a/_const/enum/res_e/enum.go +++ b/_const/enum/res_e/enum.go @@ -1,6 +1,6 @@ package res_e -import "hilo-user/resource/mysql" +import "git.hilo.cn/hilo-common/resource/mysql" type MsgIdType = uint diff --git a/_const/enum/user_e/user.go b/_const/enum/user_e/user.go index ef154f7..971af4d 100755 --- a/_const/enum/user_e/user.go +++ b/_const/enum/user_e/user.go @@ -1,6 +1,6 @@ package user_e -import "hilo-user/resource/mysql" +import "git.hilo.cn/hilo-common/resource/mysql" type ThirdPartyType = mysql.Type diff --git a/_const/mdc.go b/_const/mdc.go deleted file mode 100755 index 6b8e45d..0000000 --- a/_const/mdc.go +++ /dev/null @@ -1,22 +0,0 @@ -package _const - -const ( - TRACEID = "traceId" - USERID = "userId" - EXTERNAL_ID = "externalId" - CODE = "code" - NICK = "nick" - AVATAR = "avatar" - COUNTRY = "country" - EXTERNALID1 = "externalId1" - EXTERNALID2 = "externalId2" - MGRID = "mgrId" - DEVICETYPE = "deviceType" - DEVICEVERSION = "deviceVersion" - APP_VERSION = "appVersion" - ACTION_RESULt = "actionResult" - URL = "url" - METHOD = "method" - IMEI = "imei" - LANGUAGE = "language" -) diff --git a/_const/redis_key/user_k/keys.go b/_const/redis_key/user_k/keys.go index 5fdb1cc..c8af465 100755 --- a/_const/redis_key/user_k/keys.go +++ b/_const/redis_key/user_k/keys.go @@ -2,8 +2,8 @@ package user_k import ( "fmt" + "git.hilo.cn/hilo-common/resource/mysql" "hilo-user/_const/redis_key" - "hilo-user/resource/mysql" ) const ( diff --git a/_const/util.go b/_const/util.go deleted file mode 100755 index b4a94de..0000000 --- a/_const/util.go +++ /dev/null @@ -1,102 +0,0 @@ -package _const - -import ( - "encoding/json" - "fmt" - "hilo-user/mylogrus" - "hilo-user/resource/config" - "net" - "runtime/debug" - "strings" - "time" -) - -const DEFAULT_LANG = "en" -const DATETIME_FORMAT = "2006-01-02 15:04:05" -const DATE_FORMAT = "2006-01-02" -const DefaultAvatarMan = "hilo/manager/ea48b62d54a24a709de3c38702c89995.png" - -func GetZeroTime(t time.Time) time.Time { - return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) -} - -// 取最近的一个星期n -func GetLastDayOfWeek(t time.Time, n time.Weekday) time.Time { - weekDay := t.Weekday() - // 校正日期 - if weekDay < n { - weekDay = 7 - n + weekDay - } else { - weekDay = weekDay - n - } - return t.AddDate(0, 0, -(int(weekDay))) -} - -// 补全url,区分处理oss和aws两种情况 -func MakeFullUrl(url string) string { - if strings.HasPrefix(url, config.GetConfigOss().OSS_CDN) || strings.HasPrefix(url, config.GetConfigAws().AWS_CDN) { - return url - } else if strings.HasPrefix(url, "nextvideo/") { - return config.GetConfigOss().OSS_CDN + url - } else if strings.HasPrefix(url, config.GetConfigAws().AWS_DIR) { - return config.GetConfigAws().AWS_CDN + url - } else { - return url - } -} - -// 去除slice中的重复元素 -func UniqueSliceUInt64(sliceIn []uint64) []uint64 { - sliceOut := make([]uint64, 0, len(sliceIn)) - m := make(map[uint64]struct{}, len(sliceIn)) - for _, i := range sliceIn { - if _, ok := m[i]; !ok { - m[i] = struct{}{} - sliceOut = append(sliceOut, i) - } - } - return sliceOut -} - -func ToString(s interface{}) (string, error) { - b, err := json.Marshal(s) - if err != nil { - return "", nil - } - return string(b), nil -} - -func SliceToMapUInt64(s []uint64) map[uint64]struct{} { - m := make(map[uint64]struct{}, len(s)) - for _, i := range s { - m[i] = struct{}{} - } - return m -} - -func GetClientIp() (string, error) { - addrs, err := net.InterfaceAddrs() - - if err != nil { - return "", err - } - - for _, address := range addrs { - // 检查ip地址判断是否回环地址 - if ipNet, ok := address.(*net.IPNet); ok && ipNet.IP.IsGlobalUnicast() { - //if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { - if ipNet.IP.To4() != nil { - return ipNet.IP.String(), nil - } - - } - } - return "", fmt.Errorf("can not find the client ip address") -} - -func CheckGoPanic() { - if r := recover(); r != nil { - //打印错误堆栈信息 - mylogrus.MyLog.Errorf("ACTION PANIC: %v, stack: %v", r, string(debug.Stack())) - } -} diff --git a/domain/cache/modelRedis.go b/domain/cache/modelRedis.go index 8282dc2..73f2ad4 100755 --- a/domain/cache/modelRedis.go +++ b/domain/cache/modelRedis.go @@ -2,7 +2,7 @@ package cache import ( "encoding/json" - "hilo-user/domain" + "git.hilo.cn/hilo-common/domain" "math/rand" "time" ) diff --git a/domain/cache/user_c/user.go b/domain/cache/user_c/user.go index bcb9ce7..39321ad 100755 --- a/domain/cache/user_c/user.go +++ b/domain/cache/user_c/user.go @@ -1,15 +1,15 @@ package user_c import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" redisV8 "github.com/go-redis/redis/v8" "github.com/jinzhu/copier" "hilo-user/_const/redis_key/user_k" - "hilo-user/domain" "hilo-user/domain/cache" "hilo-user/domain/model/user_m" "hilo-user/myerr" "hilo-user/myerr/bizerr" - "hilo-user/resource/mysql" ) // 获取用户简要信息 diff --git a/domain/ctx.go b/domain/ctx.go deleted file mode 100755 index 071e311..0000000 --- a/domain/ctx.go +++ /dev/null @@ -1,13 +0,0 @@ -package domain - -import ( - "github.com/go-redis/redis/v8" - "gorm.io/gorm" - "hilo-user/mycontext" -) - -type CtxAndDb struct { - Db *gorm.DB - *mycontext.MyContext - Redis *redis.Client -} diff --git a/domain/event.go b/domain/event.go deleted file mode 100755 index 97af5d7..0000000 --- a/domain/event.go +++ /dev/null @@ -1,9 +0,0 @@ -package domain - -//异步执行的接口 -type AsyncEvent interface { - AsyncDo(model *Model, eventData interface{}, n int) error - AsyncSize() int - AsyncNoTxDo(model *Model, eventData interface{}, n int) error - AsyncNoTxSize() int -} diff --git a/domain/model.go b/domain/model.go deleted file mode 100755 index 1a043fe..0000000 --- a/domain/model.go +++ /dev/null @@ -1,55 +0,0 @@ -package domain - -import ( - "gorm.io/gorm" - "hilo-user/mycontext" - "hilo-user/resource/mysql" - "hilo-user/resource/redisCli" -) - -type Model struct { - *CtxAndDb `gorm:"-"` -} - -func CreateModel(ctxAndDb *CtxAndDb) *Model { - return &Model{CtxAndDb: ctxAndDb} -} - -func CreateModelContext(myContext *mycontext.MyContext) *Model { - return &Model{ - CtxAndDb: &CtxAndDb{ - Db: mysql.Db, - MyContext: myContext, - Redis: redisCli.GetRedis(), - }, - } -} - -func CreateModelNil() *Model { - return &Model{ - CtxAndDb: &CtxAndDb{ - Db: mysql.Db, - MyContext: mycontext.CreateMyContext(nil), - Redis: redisCli.GetRedis(), - }, - } -} - -func (m *Model) DB() *gorm.DB { - return m.Db.WithContext(m) -} - -// 包装事务 -// 注意:需要使用新的model -func (m *Model) Transaction(f func(*Model) error) error { - // 公用context - // 新的db - txModel := CreateModelContext(m.MyContext) - txModel.Db = m.Db.Begin().WithContext(m) - err := f(txModel) - if err != nil { - txModel.Db.Rollback() - return err - } - return txModel.Db.Commit().Error -} diff --git a/domain/model/common/cache_medal.go b/domain/model/common/cache_medal.go index 162f9e3..bedae2c 100755 --- a/domain/model/common/cache_medal.go +++ b/domain/model/common/cache_medal.go @@ -3,11 +3,11 @@ package common import ( "context" "encoding/json" + "git.hilo.cn/hilo-common/mylogrus" + "git.hilo.cn/hilo-common/resource/mysql" + "git.hilo.cn/hilo-common/resource/redisCli" "hilo-user/_const/redis_key" "hilo-user/myerr" - "hilo-user/mylogrus" - "hilo-user/resource/mysql" - "hilo-user/resource/redisCli" "time" ) diff --git a/domain/model/res_m/country.go b/domain/model/res_m/country.go index 104a271..988b0fd 100755 --- a/domain/model/res_m/country.go +++ b/domain/model/res_m/country.go @@ -1,11 +1,11 @@ package res_m import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" "hilo-user/_const/enum/res_e" - "hilo-user/domain" "hilo-user/myerr" - "hilo-user/resource/mysql" ) type ResCountry struct { diff --git a/domain/model/res_m/medal.go b/domain/model/res_m/medal.go index 256d0da..fe7a16b 100755 --- a/domain/model/res_m/medal.go +++ b/domain/model/res_m/medal.go @@ -1,9 +1,9 @@ package res_m import ( + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" "hilo-user/_const/enum/res_e" - "hilo-user/resource/mysql" ) type ResMedal struct { diff --git a/domain/model/res_m/nameplate.go b/domain/model/res_m/nameplate.go index ac7c361..dd7199c 100644 --- a/domain/model/res_m/nameplate.go +++ b/domain/model/res_m/nameplate.go @@ -1,8 +1,8 @@ package res_m import ( + "git.hilo.cn/hilo-common/resource/mysql" "hilo-user/_const/enum/res_e" - "hilo-user/resource/mysql" ) type ResNameplate struct { diff --git a/domain/model/res_m/resMultiText.go b/domain/model/res_m/resMultiText.go index 9178ccf..59e2ded 100755 --- a/domain/model/res_m/resMultiText.go +++ b/domain/model/res_m/resMultiText.go @@ -1,10 +1,10 @@ package res_m import ( + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" "hilo-user/_const/enum/res_e" "hilo-user/myerr" - "hilo-user/resource/mysql" ) type ResMultiText struct { diff --git a/domain/model/user_m/matchCharm.go b/domain/model/user_m/matchCharm.go index 2c7383e..c4789ab 100755 --- a/domain/model/user_m/matchCharm.go +++ b/domain/model/user_m/matchCharm.go @@ -1,11 +1,11 @@ package user_m import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" "hilo-user/_const/enum/match_e" - "hilo-user/domain" "hilo-user/myerr" - "hilo-user/resource/mysql" ) /** diff --git a/domain/model/user_m/matchWealth.go b/domain/model/user_m/matchWealth.go index bceb1b0..04a0ed8 100755 --- a/domain/model/user_m/matchWealth.go +++ b/domain/model/user_m/matchWealth.go @@ -1,11 +1,11 @@ package user_m import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" "hilo-user/_const/enum/match_e" - "hilo-user/domain" "hilo-user/myerr" - "hilo-user/resource/mysql" ) /** diff --git a/domain/model/user_m/medal.go b/domain/model/user_m/medal.go index c0afb1b..aa0184a 100755 --- a/domain/model/user_m/medal.go +++ b/domain/model/user_m/medal.go @@ -1,12 +1,12 @@ package user_m import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "github.com/sirupsen/logrus" "gorm.io/gorm" - "hilo-user/domain" "hilo-user/domain/model/common" "hilo-user/domain/model/res_m" - "hilo-user/resource/mysql" "time" ) diff --git a/domain/model/user_m/nameplate.go b/domain/model/user_m/nameplate.go index 604f789..be2f577 100644 --- a/domain/model/user_m/nameplate.go +++ b/domain/model/user_m/nameplate.go @@ -1,8 +1,8 @@ package user_m import ( - "hilo-user/domain" - "hilo-user/resource/mysql" + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "time" ) diff --git a/domain/model/user_m/user.go b/domain/model/user_m/user.go index c806c27..a749131 100755 --- a/domain/model/user_m/user.go +++ b/domain/model/user_m/user.go @@ -1,11 +1,11 @@ package user_m import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "hilo-user/_const/enum/user_e" - "hilo-user/domain" "hilo-user/myerr" "hilo-user/myerr/bizerr" - "hilo-user/resource/mysql" ) //用户信息 diff --git a/domain/model/user_m/vip.go b/domain/model/user_m/vip.go index c24a4a0..1b469a4 100755 --- a/domain/model/user_m/vip.go +++ b/domain/model/user_m/vip.go @@ -1,10 +1,10 @@ package user_m import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" "hilo-user/_const/enum/user_e" - "hilo-user/domain" - "hilo-user/resource/mysql" "time" ) diff --git a/go.mod b/go.mod index 872c557..69c679a 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,8 @@ module hilo-user go 1.17 +replace git.hilo.cn/hilo-common => ../hilo-common + require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/dgrijalva/jwt-go v3.2.0+incompatible @@ -25,6 +27,7 @@ require ( ) require ( + git.hilo.cn/hilo-common v0.0.0-00010101000000-000000000000 // indirect github.com/KyleBanks/depth v1.2.1 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect @@ -40,11 +43,12 @@ require ( github.com/go-playground/locales v0.13.0 // indirect github.com/go-playground/universal-translator v0.17.0 // indirect github.com/go-playground/validator/v10 v10.2.0 // indirect - github.com/golang/protobuf v1.3.3 // indirect + github.com/golang/protobuf v1.5.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.1 // indirect github.com/hashicorp/go-hclog v0.12.0 // indirect github.com/hashicorp/go-immutable-radix v1.0.0 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v0.5.0 // indirect github.com/hashicorp/serf v0.9.3 // indirect github.com/jinzhu/inflection v1.0.0 // indirect @@ -62,8 +66,9 @@ require ( github.com/modern-go/reflect2 v1.0.1 // indirect github.com/ugorji/go/codec v1.1.7 // indirect golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 // indirect - golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect + golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect golang.org/x/text v0.3.6 // indirect golang.org/x/tools v0.0.0-20190907020128-2ca718005c18 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index 244d2e0..9467601 100644 --- a/go.sum +++ b/go.sum @@ -71,8 +71,11 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/hashicorp/consul/api v1.7.0 h1:tGs8Oep67r8CcA2Ycmb/8BLBcJ70St44mF2X10a/qPg= github.com/hashicorp/consul/api v1.7.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg= @@ -99,6 +102,8 @@ github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdv github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= @@ -254,6 +259,8 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -266,6 +273,10 @@ golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190907020128-2ca718005c18 h1:xFbv3LvlvQAmbNJFCBKRv1Ccvnh9FVsW0FX2kTWWowE= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= diff --git a/main.go b/main.go index c663d1c..0cfe92a 100755 --- a/main.go +++ b/main.go @@ -2,18 +2,20 @@ package main import ( "fmt" - "hilo-user/resource/consul" + "git.hilo.cn/hilo-common/resource/consul" "hilo-user/route" ) const ( - PORT = 9040 + PORT = 9040 + RegisterName = "hiloUser" + RegisterTag = "用户中心" ) func main() { //cron.Init() // 开启定时任务 //event_s.EventInit() // 注册事件(内部事件+mysql拟kafka) - r := route.InitRouter() // 注册路由 - consul.RegisterToConsul(PORT) // 服务注册 - r.Run(fmt.Sprintf(":%d", PORT)) // 启动服务 + r := route.InitRouter() // 注册路由 + consul.RegisterToConsul(PORT, RegisterName, RegisterTag) // 服务注册 + r.Run(fmt.Sprintf(":%d", PORT)) // 启动服务 } diff --git a/mycontext/context.go b/mycontext/context.go deleted file mode 100755 index ffbd37c..0000000 --- a/mycontext/context.go +++ /dev/null @@ -1,84 +0,0 @@ -package mycontext - -import ( - "context" - uuid "github.com/satori/go.uuid" - "github.com/sirupsen/logrus" - "hilo-user/_const" - "hilo-user/mylogrus" - "strconv" - "strings" -) - -/** - * 主要是完成日志打印 - * @param - * @return - **/ - -type MyContext struct { - context.Context - Log *logrus.Entry - Cxt map[string]interface{} -} - -func CreateMyContextWith(traceId interface{}) *MyContext { - cxt := map[string]interface{}{} - cxt[_const.TRACEID] = traceId - return CreateMyContext(cxt) -} - -func CreateMyContext(ctx map[string]interface{}) *MyContext { - var traceId string - if traceIdTemp, ok := ctx[_const.TRACEID]; ok { - traceId, ok = traceIdTemp.(string) - } else { - traceId = strings.Replace(uuid.NewV4().String(), "-", "", -1) - } - - var userId string - if userIdTemp, ok := ctx[_const.USERID]; ok { - userId = strconv.FormatUint(userIdTemp.(uint64), 10) - } - - var deviceTypeStr string - if deviceTypeTemp, ok := ctx[_const.DEVICETYPE]; ok { - deviceTypeStr, ok = deviceTypeTemp.(string) - } - - var sAppVersion string - if appVersionTmp, ok := ctx[_const.APP_VERSION]; ok { - sAppVersion, ok = appVersionTmp.(string) - } - - var url string - if urlTmp, ok := ctx[_const.URL]; ok { - url, ok = urlTmp.(string) - } - - var method string - if methodTmp, ok := ctx[_const.METHOD]; ok { - method, ok = methodTmp.(string) - } - _ctx := context.WithValue(context.Background(), "traceId", traceId) - _ctx = context.WithValue(_ctx, "userId", userId) - return &MyContext{ - Context: _ctx, - Log: CreateContextLog(userId, traceId, deviceTypeStr, sAppVersion, url, method), - Cxt: ctx, - } -} - -/** - * 创建上下文的日志 - **/ -func CreateContextLog(userId string, traceId string, deviceType string, deviceVersion string, url string, method string) *logrus.Entry { - return mylogrus.MyLog.WithFields(logrus.Fields{ - _const.USERID: userId, - _const.TRACEID: traceId, - _const.DEVICETYPE: deviceType, - _const.APP_VERSION: deviceVersion, - _const.URL: url, - _const.METHOD: method, - }) -} diff --git a/myerr/code.go b/myerr/code.go index c602c5b..4e739c7 100755 --- a/myerr/code.go +++ b/myerr/code.go @@ -2,8 +2,8 @@ package myerr import ( "fmt" + "git.hilo.cn/hilo-common/mylogrus" "github.com/pkg/errors" - "hilo-user/mylogrus" "strconv" ) diff --git a/mylogrus/log.go b/mylogrus/log.go deleted file mode 100755 index c647383..0000000 --- a/mylogrus/log.go +++ /dev/null @@ -1,93 +0,0 @@ -package mylogrus - -import ( - rotatelogs "github.com/lestrrat-go/file-rotatelogs" - "github.com/rifflock/lfshook" - "github.com/sirupsen/logrus" - "io" - "os" - "path/filepath" - "time" -) - -const logDir = "/var/log/hilo/" - -var filenamePrefix string -var MyLog = logrus.New() - -func Info(v interface{}) { - MyLog.Info("") -} - -func init() { - filenamePrefix = logDir + filepath.Base(os.Args[0]) + "." - // stderr日志重定向 - MyLog.SetOutput(os.Stdout) - RewriteStderrFile() - - MyLog.SetFormatter(&logrus.TextFormatter{ - ForceQuote: false, - DisableQuote: true, - TimestampFormat: "2006-01-02 15:04:05.000", - FullTimestamp: true, - }) - hook := lfshook.NewHook(lfshook.WriterMap{ - logrus.DebugLevel: getLevelWrite(logrus.DebugLevel), - logrus.InfoLevel: getLevelWrite(logrus.InfoLevel), - logrus.WarnLevel: getLevelWrite(logrus.WarnLevel), - logrus.ErrorLevel: getLevelWrite(logrus.ErrorLevel), - logrus.FatalLevel: getLevelWrite(logrus.FatalLevel), - logrus.PanicLevel: getLevelWrite(logrus.PanicLevel), - }, &logrus.TextFormatter{ForceQuote: false, DisableQuote: true, TimestampFormat: time.RFC3339Nano}) - MyLog.AddHook(hook) - MyLog.SetLevel(logrus.InfoLevel) - MyLog.SetReportCaller(true) -} - -func GetInfoLog() io.Writer { - return getLevelWrite(logrus.InfoLevel) -} - -func getLevelWrite(level logrus.Level) io.Writer { - var name string - switch level { - case logrus.DebugLevel: - name = "debug.log" - case logrus.InfoLevel: - name = "info.log" - case logrus.WarnLevel: - name = "warn.log" - case logrus.ErrorLevel: - name = "error.log" - case logrus.FatalLevel: - name = "fatal.log" - case logrus.PanicLevel: - name = "panic.log" - } - name = filenamePrefix + name - writer, err := rotatelogs.New( - name+".%Y%m%d%H", - rotatelogs.WithLinkName(name), // 生成软链,指向最新日志文件 - rotatelogs.WithMaxAge(7*24*time.Hour), // 文件最大保存时间 - rotatelogs.WithRotationTime(time.Hour), // 日志切割时间间隔 - ) - if err != nil { - MyLog.Fatal("Failed to create log file:", err.Error()) - } - return writer -} - -func GetSqlLog() io.Writer { - var name string = "sql.log" - name = filenamePrefix + name - writer, err := rotatelogs.New( - name+".%Y%m%d%H", - rotatelogs.WithLinkName(name), // 生成软链,指向最新日志文件 - rotatelogs.WithMaxAge(7*24*time.Hour), // 文件最大保存时间 - rotatelogs.WithRotationTime(time.Hour), // 日志切割时间间隔 - ) - if err != nil { - MyLog.Fatal("Failed to create log file:", err.Error()) - } - return writer -} diff --git a/mylogrus/log_unix.go b/mylogrus/log_unix.go deleted file mode 100755 index aba4c9f..0000000 --- a/mylogrus/log_unix.go +++ /dev/null @@ -1,54 +0,0 @@ -//go:build !windows -// +build !windows - -package mylogrus - -import ( - "fmt" - "os" - "path/filepath" - "runtime" - "syscall" - "time" -) - -var stdErrFileHandler *os.File - -func RewriteStderrFile() { - filename := logDir + filepath.Base(os.Args[0]) + ".stderr.log" - //if runtime.GOOS == "darwin" { // mac本地调试 - // filename = "./log/hilo/" + filepath.Base(os.Args[0]) + ".stderr.log" - //} - if exits, _ := pathExists(filename); exits { - os.Rename(filename, filename+"_"+time.Now().Format("20060102150405")) - } - - file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) - if err != nil { - fmt.Println(err) - return - } - stdErrFileHandler = file //把文件句柄保存到全局变量,避免被GC回收 - - if err = syscall.Dup2(int(file.Fd()), int(os.Stderr.Fd())); err != nil { - fmt.Println(err) - return - } - // 内存回收前关闭文件描述符 - runtime.SetFinalizer(stdErrFileHandler, func(fd *os.File) { - fd.Close() - }) - - return -} - -func pathExists(path string) (bool, error) { - _, err := os.Stat(path) - if err == nil { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} diff --git a/mylogrus/log_windows.go b/mylogrus/log_windows.go deleted file mode 100755 index 59a1fcc..0000000 --- a/mylogrus/log_windows.go +++ /dev/null @@ -1,31 +0,0 @@ -//go:build windows -// +build windows - -package mylogrus - -import ( - "os" - "path/filepath" - "time" -) - -func RewriteStderrFile() { - filename := logDir + filepath.Base(os.Args[0]) + ".stderr.log" - if exits, _ := pathExists(filename); exits { - os.Rename(filename, filename+"_"+time.Now().Format("20060102150405")) - } - - file, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) - MyLog.Errorf("stderr log in:%v,err:%v", file, err) -} - -func pathExists(path string) (bool, error) { - _, err := os.Stat(path) - if err == nil { - return true, nil - } - if os.IsNotExist(err) { - return false, nil - } - return false, err -} diff --git a/protocol/biz.proto b/protocol/biz.proto deleted file mode 100755 index 68b1461..0000000 --- a/protocol/biz.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -package biz; - -option go_package = "protocol/biz"; - -/* id = 1 */ -message BizMessage { - uint32 type = 2; - string payLoad = 3; -} - -/* id = 2 */ -message BizMessageRsp { - uint32 status = 1; -} - -service Transmitter { - rpc process(BizMessage) returns (BizMessageRsp) {} -} \ No newline at end of file diff --git a/protocol/userCenter.proto b/protocol/userCenter.proto deleted file mode 100755 index 10535b3..0000000 --- a/protocol/userCenter.proto +++ /dev/null @@ -1,99 +0,0 @@ -syntax = "proto3"; -package userCenter; - -option go_package = "protocol/userCenter"; - -/* id = 1 */ -message RouteMessage { - uint64 uid = 1; - uint32 msgType = 2; - bytes payLoad = 3; -} - -/* id = 2 */ -message RouteMessageRsp { - uint32 status = 1; -} - -/* id = 3 */ -message LoginMessage { - string proxyAddr = 1; // userProxy的地址:ip:port - string token = 2; - string clientAddr = 3; // 客户端地址(websocket):ip:port -} - -/* id = 4 */ -message LoginMessageRsp { - uint32 status = 1; - uint64 uid = 2; -} - -/* id = 5 */ -message LogoutMessage { - string clientAddr = 1; // 客户端地址(websocket):ip:port - uint64 uid = 2; -} - -/* id = 6 */ -message LogoutMessageRsp { - uint32 status = 1; -} - -/* id = 7 */ -message MulticastMessage { - repeated uint64 uids = 1; - uint32 msgType = 2; - bytes payLoad = 3; -} - -/* id = 8 */ -message MulticastMessageRsp { - repeated uint64 failedUids = 1; -} - -/* id = 9 */ -message KickMessage { - uint64 uid = 1; - string addr = 2; -} - -/* id = 10 */ -message KickMessageRsp { - uint32 status = 1; -} - -/* id = 11 */ -message BroadcastMessage { - uint32 msgType = 2; - bytes payLoad = 3; -} - -/* id = 12 */ -message BroadcastMessageRsp { - repeated uint64 failedUids = 1; -} - -/* id = 13 */ -message BizMessage { - uint64 uid = 1; - uint32 msgType = 2; - string payLoad = 3; -} - -/* id = 14 */ -message BizMessageRsp { - uint32 status = 1; -} - -service Router { - rpc route(RouteMessage) returns (RouteMessageRsp) {} - rpc kickUser(KickMessage) returns (KickMessageRsp) {} -} - -service User { - rpc login(LoginMessage) returns (LoginMessageRsp) {} - rpc logout(LogoutMessage) returns (LogoutMessageRsp) {} - rpc multicast(MulticastMessage) returns (MulticastMessageRsp) {} - rpc broadcast(BroadcastMessage) returns (BroadcastMessageRsp) {} - rpc transmit(BizMessage) returns (BizMessageRsp) {} -} \ No newline at end of file diff --git a/protocol/userProxy.proto b/protocol/userProxy.proto deleted file mode 100755 index 2b38852..0000000 --- a/protocol/userProxy.proto +++ /dev/null @@ -1,313 +0,0 @@ -syntax = "proto3"; - -package userProxy; - -option go_package = "protocol/userProxy"; - -/* id = 1 登录*/ -message Login { - string token = 1; -} - -/* id = 2 登录的回应 */ -message LoginRsp { - uint32 status = 1; -} - -/* id = 3 客户端心跳 */ -message HeartBeat { - string externalUid = 1; -} - -/* id = 4 客户端心跳的回应 */ -message HeartBeatRsp { - uint32 status = 1; -} - -/* id = 7 客户端上行消息 */ -message BizRequest { - uint32 type = 1; - string payLoad = 2; -} - -/* id = 8 客户端上行消息的应答 */ -message BizResponse { - uint32 status = 1; -} - -/* id == 100 匹配结果通知 waitDuration:开始/下一个时间 matchUniqueId:匹配一对的唯一标识码, status:是否是落单 singleWaitTimeInSec:单方等待连接最长时间 dualWaitTimeInSec:双方连接中最长时间*/ -message MatchSuccess { - string localUserId = 1; - string remoteUserId = 2; - uint32 waitDuration = 3; - string matchUniqueId = 4; - bool status = 5; - uint32 singleWaitTimeInSec = 6; - uint32 dualWaitTimeInSec = 7; -} - -/* id == 101 匹配后用户选择结果通知, failType: 只有status=2 才有值,其它为0,failType=1:等待时间到了,拒绝 failType=2:主动拒绝 */ -message MatchConfirm { - uint32 status = 1; - string channelId = 2; - string token = 3; - string localUserId = 4; - string remoteUserId = 5; - uint32 remoteAgoraId = 6; - uint32 callDuration = 7; - uint32 localAgoraId = 8; - uint32 diamondBalance = 9; - string matchUniqueId = 10; - uint32 failType = 11; -} - -/* id == 102 视频通话准备 */ -message CallReady { - uint64 startTimestamp = 1; - uint64 endTimestamp = 2; - uint64 callDuration = 3; - string channelId = 4; - uint64 remainDiamond = 5; -} - -/* id == 103 礼物加时 */ -message AddTimeGift { - uint32 giftId = 1; - string token = 2; - uint32 duration = 3; - uint64 endTimestamp = 4; - string channelId = 5; - bool isSender = 6; - uint32 giftNum = 7; - string iconUrl = 8; - string svgaUrl = 9; - string senderAvatar = 10; - string receiverAvatar = 11; -} - -/* id == 104 免费加时 */ -message AddTimeFree { - string token = 1; - uint32 duration = 2; - uint64 endTimestamp = 3; - string channelId = 4; - uint32 senderAgoraId = 5; -} - -/* id == 105 退出 */ -message ConnectsQuit { - uint64 from_user_id = 1; -} - -/* id == 106 连接状态 */ -message ConnectStatus { - uint64 from_user_id = 1; - float user_diamonds = 2; - bool diamonds_enough = 3; -} - -/* id == 107 ??? */ -message ConnectsCall { - uint64 from_user_id = 1; - string rong_room_name = 2; - bool is_join = 3; -} - -/* id == 108 */ -message ConnectCommon { - string rong_room_name = 1; - uint64 from_user_id = 2; - string extra = 3; - string message = 4; -} - -/* id == 109 召回授权弹框 */ -message RecallWindow { -} - -/* id == 110 视频发送 status:(1:接收到邀请, 2:接收到对方同意, 3:双方拒绝(还没接通), 4:对方挂断(接通后)diamondBalance 只有status=2,才出现)*/ -message Video { - string videoUniqueId = 1; - string channelId = 2; - uint32 localAgoraId = 3; - uint32 remoteAgoraId = 4; - string agoraToken = 5; - string sendUserId = 6; - string receiveUserId = 7; - uint32 status = 8; - uint32 diamondBalance = 9; -} - -/* id == 111 视频通话准备 */ -message VideoCallReady { - uint64 startTimestamp = 1; - uint64 endTimestamp = 2; - uint64 callDuration = 3; - string channelId = 4; - uint64 remainDiamond = 5; -} - -/* id == 112 互相喜欢 */ -message LikeEach { - string remoteUserId = 1; -} - -/* id == 113 喜欢我 */ -message LikeMe { - string remoteUserId = 1; - string remoteNick = 2; - string channelId = 3; -} - -/* id == 114 日常进入app,获取钻石 */ -message DailyInAppDiamond { - uint32 diamondNum = 1; -} - -/* id == 115 横幅 */ -message GlobalGiftBanner { - uint32 bannerLevel = 1; - uint64 giftId = 2; - uint32 giftNum = 3; - string sendUserId = 4; - string receiveUserId = 5; - string groupId = 6; - string sendUserCode = 7; - string sendUserAvatar = 8; - string sendUserNick = 9; - string receiveUserNick = 10; - string giftPicUrl = 11; -} - -/* id == 116 横幅的回应,用来测量RTT */ -message GlobalGiftBannerRsp { - uint32 bannerLevel = 1; - uint64 giftId = 2; - uint32 giftNum = 3; - string sendUserId = 4; - string receiveUserId = 5; - string groupId = 6; -} - -/*id==117 幸运转盘通知,客户端重新拉取查询, type:客户端不用理*/ -message LuckyWheel { - string groupId = 1; - uint32 type = 2; -} - -/* id == 118 幸运转盘获胜者全服广播 */ -message LuckyWheelBanner { - uint32 diamondNum = 1; - string sendUserId = 2; - string groupId = 3; - string nick = 4; - string code = 5; - string avatar = 6; -} - -/* id == 119 幸运转盘钻石变化 */ -message LuckyWheelDiamondChange { - string groupId = 1; -} - -/* id == 120 服务器配置变更 */ -message ConfigChange { - uint32 type = 1; -} - -/* id == 121 全局火箭横幅 */ -message GlobalRocketNotice { - string groupId = 1; - string period = 2; - uint32 round = 3; - uint32 stage = 4; - string topUserIcon = 5; - string nick = 6; - string code = 7; - string avatar = 8; -} - -/* id == 122 群发功能弹窗 */ -message GroupSendNotice { - string senderExtId = 1; - string senderCode = 2; - uint32 senderSex = 3; - string senderAvatar = 4; - string text = 5; - string groupName = 6; - string groupCode = 7; - string groupAvatar = 8; - uint32 userInNum = 9; // 最近进入房间的人数 - string groupId = 10; -} - -/* id == 123 全球消息 */ -message GlobalBroadcast { - string senderExtId = 1; - string senderCode = 2; - uint32 senderSex = 3; - string senderAvatar = 4; - string senderNick = 5; - string msg = 6; - string groupId = 7; - uint32 senderNobleLevel = 8; -} - -/* id == 124 全球消息 */ -message MicTaskFinish { - string userId = 1; - uint32 diamond = 2; -} - -/* id == 125 水果机开奖通知 */ -message FruitMachine { - string date = 1; - uint32 round = 2; -} - -/* id == 126 贵族变化 */ -message NobleChange { -} - -/* id == 127 加入群组成功 */ -message JoinGroup { - string groupId = 1; - string externalId = 2; -} - -/* id == 128 1对1视频1分钟加时成功 */ -message VideoTimeMinuteSuccess { - string token = 1; - uint32 duration = 2; - uint64 endTimestamp = 3; - string channelId = 4; - uint32 senderAgoraId = 5; - string videoUniqueId = 6; - bool isSend = 7; - uint32 sendRemainDiamond = 8; -} - -/* id == 129 1对1视频1分钟加时询问检查 */ -message VideoTimeMinuteCheck { - string videoUniqueId = 1; - uint32 diamond = 2; - string uuid = 3; -} - -/* id == 130 1对1视频,错过 */ -message VideoMiss { - uint32 totalNum = 1; -} - -/* id == 131 进房,群组活动信息 */ -message GroupActivity { - string ActivityId = 1;// id - uint64 StartAt = 2; // 开始时间戳,东八区时间戳 - uint64 EndAt = 3; // 结束时间戳,东八区时间戳 - string Banner = 4; // banner url - int32 AcType = 5; // 类型1.游戏2.比赛3.排队4.诗歌 - string Theme = 6; // 活动主题 - int32 PersonNum = 7; // 订阅人数 - bool IsSubscribe = 8; // 我是否订阅该活动 - string GroupId = 9; // 群id -} \ No newline at end of file diff --git a/protocol/video.proto b/protocol/video.proto deleted file mode 100755 index a0f7ed0..0000000 --- a/protocol/video.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -package video; - -option go_package = "protocol/video"; - -/* id = 1 视频加时 */ -message VideoMinuteConfirm { - string videoUid = 1; - string externalId = 2; -} - -/* id = 2 视频加时的应答 */ -message VideoMinuteConfirmRsp { - uint32 status = 1; -} - diff --git a/req/jwt/jwt.go b/req/jwt/jwt.go index 3fd84a8..7a92193 100755 --- a/req/jwt/jwt.go +++ b/req/jwt/jwt.go @@ -1,9 +1,9 @@ package jwt import ( + "git.hilo.cn/hilo-common/resource/config" "github.com/dgrijalva/jwt-go" "hilo-user/myerr" - "hilo-user/resource/config" "time" ) diff --git a/req/request.go b/req/request.go index acf5d9c..498f8a1 100755 --- a/req/request.go +++ b/req/request.go @@ -1,18 +1,17 @@ package req import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/mycontext" + "git.hilo.cn/hilo-common/resource/mysql" "github.com/gin-gonic/gin" - "hilo-user/_const" - "hilo-user/domain" "hilo-user/domain/cache/user_c" "hilo-user/domain/model/res_m" - "hilo-user/mycontext" "hilo-user/myerr/bizerr" - "hilo-user/resource/mysql" ) func GetUserId(c *gin.Context) (mysql.ID, error) { - if userIdStr, ok := c.Keys[_const.USERID]; ok { + if userIdStr, ok := c.Keys[mycontext.USERID]; ok { userId := userIdStr.(uint64) return userId, nil } @@ -21,10 +20,10 @@ func GetUserId(c *gin.Context) (mysql.ID, error) { // 获取userId和externalId func GetUserIdAndExtId(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID, string, error) { - if userIdStr, ok := c.Keys[_const.USERID]; ok { + if userIdStr, ok := c.Keys[mycontext.USERID]; ok { userId := userIdStr.(uint64) - externalId, ok := c.Get(_const.EXTERNAL_ID) + externalId, ok := c.Get(mycontext.EXTERNAL_ID) if ok { return userId, externalId.(string), nil } else { @@ -40,11 +39,11 @@ func GetUserIdAndExtId(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID // 获取userId和ExtId和code func GetUserIdExtIdCode(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID, string, string, error) { - if userIdStr, ok := c.Keys[_const.USERID]; ok { + if userIdStr, ok := c.Keys[mycontext.USERID]; ok { userId := userIdStr.(uint64) - userCode, ok1 := c.Get(_const.CODE) - externalId, ok2 := c.Get(_const.EXTERNAL_ID) + userCode, ok1 := c.Get(mycontext.CODE) + externalId, ok2 := c.Get(mycontext.EXTERNAL_ID) if ok1 && ok2 { return userId, externalId.(string), userCode.(string), nil } else { @@ -60,10 +59,10 @@ func GetUserIdExtIdCode(c *gin.Context, myContext *mycontext.MyContext) (mysql.I // 获取userId和LANGUAGE func GetUserIdLang(c *gin.Context, myContext *mycontext.MyContext) (mysql.ID, string, error) { - if userIdStr, ok := c.Keys[_const.USERID]; ok { + if userIdStr, ok := c.Keys[mycontext.USERID]; ok { userId := userIdStr.(uint64) - lang, ok := c.Get(_const.LANGUAGE) + lang, ok := c.Get(mycontext.LANGUAGE) if ok { return userId, lang.(string), nil } else { diff --git a/resource/config/config.go b/resource/config/config.go deleted file mode 100755 index 1cf356e..0000000 --- a/resource/config/config.go +++ /dev/null @@ -1,779 +0,0 @@ -package config - -import ( - "github.com/joho/godotenv" - "gopkg.in/ini.v1" - "hilo-user/mylogrus" - "os" - "runtime" - "strconv" -) - -// 数据库的配置 -type MysqlConfig struct { - MYSQL_HOST string - MYSQL_USERNAME string - MYSQL_PASSWORD string - MYSQL_DB string -} - -type MysqlCodeConfig struct { - MYSQL_HOST string - MYSQL_USERNAME string - MYSQL_PASSWORD string - MYSQL_DB string -} - -// redis配置 -type RedisConfig struct { - REDIS_HOST string - REDIS_PASSWORD string -} - -// jwt -type JwtConfig struct { - SECRET string - ISSUER_API string - ISSUER_MGR string - EXPIRE string -} - -// jwt -type GameJwtConfig struct { - SECRET string - ISSUER_CLIENT string - ISSUER_SERVER string - EXPIRE string -} - -// oss -type OssConfig struct { - OSS_ACCESS_KEY_ID string - OSS_ACCESS_KEY_SECRET string - OSS_ROLE_ARN string - OSS_END_POINT string - OSS_BUCKET string - OSS_CDN string - OSS_EXPIRED_TIME uint - OSS_STS_POINT string - OSS_STS string - OSS_STS_AES string -} - -// aws -type AwsConfig struct { - AWS_BUCKET string - AWS_CDN string - AWS_DIR string - CONFIDENCE float32 -} - -// APP -type AppConfig struct { - BIZ_SECRET string - WEB_SECRET string - OPERATION_SECRET string - SUPERUSER string - OFFICIAL_GROUP string - MINIMAL_VERSION_ANDROID int - MINIMAL_VERSION_IOS int - MODERATE string -} - -// googlePay 配置信息 -type GooglePayConfig struct { - JsonKey []byte -} - -// 融云 -type RongyunConfig struct { - RONG_CLOUD_APP_KEY string - RONG_CLOUD_APP_SECRET string - RONG_CLOUD_URL string -} - -// 腾讯云 -type TencentyunConfig struct { - TENCENTYUN_APP_ID int - TENCENTYUN_KEY string - TX_OVERSEA_APP_ID int - TX_OVERSEA_KEY string -} - -// emas -type EmasConfig struct { - ANDROID_APP_KEY string - ANDROID_APP_SECRET string - REGION_ID string - ACCESS_KEY_ID string - ACCESS_KEY_SECRET string - IOS_APP_KEY string - IOS_APP_SECRET string - APNS string -} - -// 声网 -type AgoraConfig struct { - APP_ID string - APP_CERTIFICATE string - CUSTOMER_KEY string - CUSTOMER_SECRET string -} - -// 匹配的配置 -type MatchConfig struct { - //一开始匹配的默认时长(单位:秒) - MATCH_FREE_TIME int - //一开始匹配的默认时长(单位:秒)VIP - MATCH_FREE_TIME_VIP int - //免费加时的时长 (单位:秒) - MATCH_ADD_TIME_FREE int - //匹配的声网的延迟加时(单位:秒) - MATCH_AGORA_TIME int - //匹配周期(单位:秒) - MATCH_CYCLE int - //过期时间(单位:秒),用户redisCache时间 - MATCH_USER_EXPIRES int - //pb match_success中, wait_duration 开始/下一个时间(单位:秒) - MATCH_SUCCESS_WAIT_DURATION uint32 - //pb match_success中, single_wait_time_in_sec 单方等待连接最长时间(单位:秒) - MATCH_SUCCESS_SINGLE_WAIT_TIME_IN_SEC uint32 - //pb match_success中, dual_wait_time_in_sec 双方连接中最长时间(单位:秒) - MATCH_SUCCESS_DUAL_WAIT_TIME_IN_SEC uint32 -} - -// 在线 -type OnlineConfig struct { - //在线周期 - ONLINE_CYCLE int - //在线过期时间 - ONLINE_USER_EXPIRES int -} - -// 1对1视频 -type VideoConfig struct { - VIDEO_DAILY_FREE_NUM int - //一开始匹配的默认时长(单位:秒) - VIDEO_FREE_TIME int - //一开始匹配的默认时长(单位:秒),vip - VIDEO_FREE_TIME_VIP int - //免费加时的时长 (单位:秒) - VIDEO_ADD_TIME_FREE int - //声网的延迟加时(单位:秒) - VIDEO_AGORA_TIME int - //1分钟视频,普通用户价格 - VIDEO_MINUTE_NORMAL int - //1分钟视频,公会用户价格 - VIDEO_MINUTE_UNION int -} - -// 会话 -type SessionConfig struct { - SESSION_DAILY_FREE_NUM int - GUILD_USER_HELLO_DAY int -} - -type BeanConfig struct { - DIAMOND_BEAN_RATE int -} - -type H5Config struct { - USER_LEVEL string - GROUP_SUPPORT string - LUCKY_WHEEL string - WEEKLY_STAR string - WEEKLY_CP string - COUNTRY_STAR string - NOBLE_BUY_IOS string - GUILD_DATA_URL string - MGR_GUILD_DATA_URL string - RANKING_PINK_DIAMOND_URL string -} - -type GroupImConfig struct { - MSG_SORT_EXPIRE int - MSG_SORT_SNAP int - MSG_PARALLEL_SIZE int -} - -type GradeConfig struct { - //魅力速度 - CHARM_SPEED_VIP int - //活跃 - ACTITY_SPEED_VIP int - //财富 - WEALTH_SPEED_VIP int -} - -type LikeConfig struct { - //喜欢人数 - I_LIKE_NUM int - //喜欢人数VIP - I_LIKE_NUM_VIP int - //喜欢人数贵族 - I_LIKE_NUM_NOBLE int -} - -type ApplePayConfig struct { - PASSWORD string -} - -type RegisterConfig struct { - IMEI_TOTAL int - IMEI_OAUTH int - ACCOUNT_IP int - ACCOUNT_IP_DURATION int -} - -type BannerConfig struct { - GIFT_BANNER_LEVEL1 int - GIFT_BANNER_LEVEL2 int - GIFT_BANNER_LEVEL3 int -} - -type DiamondConfig struct { - DAILY_LOGIN_IMEI_LIMIT int - DAILY_LOGIN_IP_LIMIT int - PRIVATE_GIFT_RETURN int - NEW_USER_INVITE_AWARD uint32 -} - -type LuckWheelConfig struct { - MINIMAL_PARTICIPANT int // 轮盘开始最少需要的参与人数 - WAIT_TIMELONG int // 等待轮盘开始的时长(分钟) - WINNER_DIAMOND_BANNER int //全服广播钻石门槛 -} - -// 自定义主题 -type GroupCustomThemeConfig struct { - PIC_LIMIT int //图片数量 - DAY int //有效天数 -} - -type GiftConfig struct { - WALL_DIAMOND int //上礼物墙,礼物钻石金额 -} - -type DailyConfig struct { - LOGIN_COMMON int - LOGIN_VIP int -} - -type FruitTycoonConfig struct { - BIG_WINNER_THRESDHOLD uint - BIG_WINNER_LOW uint - BIG_WINNER_HIGH uint - POOL_RATIO uint32 - WATERMELON_RATIO uint32 -} - -type ActivityConfig struct { - COUNTRY_STAR_POOL_RATIO uint32 - COUNTRY_STAR_ORDINARY_RATIO uint32 -} - -type CheckoutConfig struct { - URL string - AUTHORIZATION string - H5 string - HILO_SECRET_KEY string -} - -type RiskControlConfig struct { - USER_QPS_LIMIT int64 - USER_URL_QPS_LIMIT int64 -} - -type PayerMaxConfig struct { - URL string - KEY string - MERCHANT_ID string - BIZ_TYPE string - VERSION string - FRONT_CALLBACK_URL string - SHOW_RESULT string - EXPIRE_TIME string - LANGUAGE string -} - -type SudConfig struct { - API_LIST string -} - -type URLConfig struct { - BIZ_HTTP string -} - -const ( - LOCAL string = "local" - DEBUG string = "debug" - RELEASE string = "release" -) - -var mysqlConfigData MysqlConfig -var mysqlCodeConfigData MysqlCodeConfig -var redisConfigData RedisConfig -var jwtConfigData JwtConfig -var userJwtConfigData GameJwtConfig -var appConfigData AppConfig -var ossConfigData OssConfig -var awsConfigData AwsConfig -var googlePayData GooglePayConfig -var rongyunData RongyunConfig -var tencentyunData TencentyunConfig -var emasData EmasConfig -var agora AgoraConfig -var matchData MatchConfig -var onlineData OnlineConfig -var sessionData SessionConfig -var videoData VideoConfig -var beanData BeanConfig -var h5Data H5Config -var groupImData GroupImConfig -var gradeData GradeConfig -var likeData LikeConfig -var applePayData ApplePayConfig -var registerData RegisterConfig -var bannerConfig BannerConfig -var diamondConfig DiamondConfig -var luckyWheelConfig LuckWheelConfig -var groupCustomThemeConfig GroupCustomThemeConfig -var giftConfig GiftConfig -var dailyConfig DailyConfig -var fruitTycoonConfig FruitTycoonConfig -var activityConfig ActivityConfig -var checkoutConfig CheckoutConfig -var riskControl RiskControlConfig -var payerMaxConfig PayerMaxConfig -var mode string -var master bool -var sudConfig SudConfig -var urlConfig URLConfig - -func GetConfigMysql() MysqlConfig { - return mysqlConfigData -} - -func GetConfigMysqlCode() MysqlCodeConfig { - return mysqlCodeConfigData -} - -func GetConfigRedis() RedisConfig { - return redisConfigData -} - -func GetConfigJWT() JwtConfig { - return jwtConfigData -} - -func GetConfigGameJWT() GameJwtConfig { - return userJwtConfigData -} - -func GetConfigApp() AppConfig { - return appConfigData -} - -func GetConfigOss() OssConfig { - return ossConfigData -} - -func GetConfigAws() AwsConfig { - return awsConfigData -} - -func GetConfigGooglePay() GooglePayConfig { - return googlePayData -} - -func GetMode() string { - return mode -} - -func AppIsRelease() bool { - return GetMode() == RELEASE -} - -func AppIsLocal() bool { - return GetMode() == LOCAL -} - -func IsMaster() bool { - return master -} - -func GetOssCDN() string { - return ossConfigData.OSS_CDN -} - -func GetRongyunAppKey() string { - return rongyunData.RONG_CLOUD_APP_KEY -} - -func GetRongyunAppSecret() string { - return rongyunData.RONG_CLOUD_APP_SECRET -} - -func GetRongyunUrl() string { - return rongyunData.RONG_CLOUD_URL -} - -func GetTencentyunAppId() int { - return tencentyunData.TENCENTYUN_APP_ID -} - -func GetTencentyunKey() string { - return tencentyunData.TENCENTYUN_KEY -} - -func GetTxOverSeaAppId() int { - return tencentyunData.TX_OVERSEA_APP_ID -} - -func GetTxOverSeaAppKey() string { - return tencentyunData.TX_OVERSEA_KEY -} - -func GetEmasRegionId() string { - return emasData.REGION_ID -} - -func GetEmasAccessKeyId() string { - return emasData.ACCESS_KEY_ID -} - -func GetEmasAccessKeySecret() string { - return emasData.ACCESS_KEY_SECRET -} - -func GetEmasAndroidAppKey() string { - return emasData.ANDROID_APP_KEY -} - -func GetEmasIosAppKey() string { - return emasData.IOS_APP_KEY -} - -func GetEmasApns() string { - return emasData.APNS -} - -func GetAgoraAppId() string { - return agora.APP_ID -} - -func GetAgoraAppCertificate() string { - return agora.APP_CERTIFICATE -} - -func GetAgoraCustomerKey() string { - return agora.CUSTOMER_KEY -} - -func GetAgoraCustomerSecret() string { - return agora.CUSTOMER_SECRET -} - -func GetMatchConfig() *MatchConfig { - return &matchData -} - -func GetOnlineConfig() *OnlineConfig { - return &onlineData -} - -func GetSessionConfig() SessionConfig { - return sessionData -} - -func GetVideoConfig() VideoConfig { - return videoData -} - -func GetBeanConfig() BeanConfig { - return beanData -} - -func GetH5Config() H5Config { - return h5Data -} - -func GetGroupImConfig() GroupImConfig { - return groupImData -} - -func GetGradeConfig() GradeConfig { - return gradeData -} - -func GetLikeConfig() LikeConfig { - return likeData -} - -func GetApplePayConfig() ApplePayConfig { - return applePayData -} - -func GetRegisterConfig() RegisterConfig { - return registerData -} - -func GetBannerConfig() BannerConfig { - return bannerConfig -} - -func GetDiamondConfig() DiamondConfig { - return diamondConfig -} - -func GetLuckyWheelConfig() LuckWheelConfig { - return luckyWheelConfig -} - -func GetGroupCustomThemeConfig() GroupCustomThemeConfig { - return groupCustomThemeConfig -} - -func GetGiftConfig() GiftConfig { - return giftConfig -} - -func GetDailyConfig() DailyConfig { - return dailyConfig -} - -func GetFruitTycoonConfig() FruitTycoonConfig { - return fruitTycoonConfig -} - -func GetActivityConfig() ActivityConfig { - return activityConfig -} - -func GetCheckoutConfig() CheckoutConfig { - return checkoutConfig -} - -func GetRiskControlConfig() RiskControlConfig { - return riskControl -} - -func GetPayerMaxConfig() PayerMaxConfig { - return payerMaxConfig -} - -func GetSudConfig() SudConfig { - return sudConfig -} - -func GetUrlConfig() URLConfig { - return urlConfig -} - -func init() { - str, _ := os.Getwd() - mylogrus.MyLog.Info(str) - - envDir := ".env" - - //加载环境变量 - if err := godotenv.Load(envDir); err != nil { - mylogrus.MyLog.Fatalf("Error loading .env err:%v", err) - } - - //获取环境变量 - mode = os.Getenv("MODE") - var err error - master, _ = strconv.ParseBool(os.Getenv("MASTER")) - mylogrus.MyLog.Infof("My role is %t", master) - - iniDir := mode + ".ini" - if runtime.GOOS == "darwin" { // mac本地调试 - iniDir = "/var/log/hilo/" + iniDir - } - //根据环境变量获取具体的配置,实现多环境配置 - //var conf *ini.File - conf, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, iniDir) - if err != nil { - mylogrus.MyLog.Fatal(err) - } - - //加载mysql的配置 - if err := conf.Section("DATABASE").MapTo(&mysqlConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("DATABASECODE").MapTo(&mysqlCodeConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("REDIS").MapTo(&redisConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("JWT").MapTo(&jwtConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("GAMEJWT").MapTo(&userJwtConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("APP").MapTo(&appConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - mylogrus.MyLog.Infof("APP: %+v", appConfigData) - } - - if err := conf.Section("OSS").MapTo(&ossConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("AWS").MapTo(&awsConfigData); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - if awsConfigData.CONFIDENCE <= 50 { - awsConfigData.CONFIDENCE = 80 - } - mylogrus.MyLog.Infof("AWS: %+v", awsConfigData) - } - - if err := conf.Section("RONGYUN").MapTo(&rongyunData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("TENCENTYUN").MapTo(&tencentyunData); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - mylogrus.MyLog.Info("TENCENTYUN: ", tencentyunData) - } - - if err := conf.Section("EMAS").MapTo(&emasData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("AGORA").MapTo(&agora); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("MATCH").MapTo(&matchData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("ONLINE").MapTo(&onlineData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("SESSION").MapTo(&sessionData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("VIDEO").MapTo(&videoData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("BEAN").MapTo(&beanData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("H5").MapTo(&h5Data); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("GROUPIM").MapTo(&groupImData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("GRADE").MapTo(&gradeData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("LIKE").MapTo(&likeData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("APPLEPAY").MapTo(&applePayData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("REGISTER").MapTo(®isterData); err != nil { - mylogrus.MyLog.Fatal(err) - } - - if err := conf.Section("BANNER").MapTo(&bannerConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("DIAMOND").MapTo(&diamondConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - if diamondConfig.NEW_USER_INVITE_AWARD <= 0 { - diamondConfig.NEW_USER_INVITE_AWARD = 5000 - } - } - if err := conf.Section("LUCKY_WHEEL").MapTo(&luckyWheelConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("GROUP_CUSTOM_THEME").MapTo(&groupCustomThemeConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("GIFT").MapTo(&giftConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("DAILY").MapTo(&dailyConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("CHECKOUT").MapTo(&checkoutConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("PAYER_MAX").MapTo(&payerMaxConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("FRUIT_TYCOON").MapTo(&fruitTycoonConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - // 防止未配置或配置错误 - if fruitTycoonConfig.BIG_WINNER_LOW <= 0 { - fruitTycoonConfig.BIG_WINNER_LOW = 10000 - } - if fruitTycoonConfig.BIG_WINNER_HIGH <= 0 { - fruitTycoonConfig.BIG_WINNER_HIGH = 20000 - } - if fruitTycoonConfig.POOL_RATIO <= 0 || fruitTycoonConfig.POOL_RATIO > 100 { - fruitTycoonConfig.POOL_RATIO = 20 - } - if fruitTycoonConfig.WATERMELON_RATIO <= 0 || fruitTycoonConfig.WATERMELON_RATIO > 100 { - fruitTycoonConfig.WATERMELON_RATIO = 70 - } - mylogrus.MyLog.Infof("FRUIT_TYCOON: %+v", fruitTycoonConfig) - } - - if err := conf.Section("ACTIVITY").MapTo(&activityConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - // 防止未配置或配置错误 - if activityConfig.COUNTRY_STAR_POOL_RATIO <= 0 { - activityConfig.COUNTRY_STAR_POOL_RATIO = 20 - } - if activityConfig.COUNTRY_STAR_ORDINARY_RATIO <= 0 { - activityConfig.COUNTRY_STAR_ORDINARY_RATIO = 20 - } - mylogrus.MyLog.Infof("ACTIVITY: %+v", activityConfig) - } - - if err := conf.Section("RISK_CONTROL").MapTo(&riskControl); err != nil { - mylogrus.MyLog.Fatal(err) - } else { - if riskControl.USER_QPS_LIMIT <= 0 { - riskControl.USER_QPS_LIMIT = 128 - } - if riskControl.USER_URL_QPS_LIMIT <= 0 { - riskControl.USER_URL_QPS_LIMIT = 64 - } - mylogrus.MyLog.Infof("RISK_CONTROL: %+v", riskControl) - } - if err := conf.Section("SUD").MapTo(&sudConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } - if err := conf.Section("URL").MapTo(&urlConfig); err != nil { - mylogrus.MyLog.Fatal(err) - } -} diff --git a/resource/consul/consul.go b/resource/consul/consul.go deleted file mode 100755 index 56eb51e..0000000 --- a/resource/consul/consul.go +++ /dev/null @@ -1,112 +0,0 @@ -package consul - -import ( - "fmt" - "github.com/hashicorp/consul/api" - "hilo-user/_const" - "hilo-user/mylogrus" - "net/http" - "os" - "time" -) - -const ( - RegisterName = "hiloUser" - RegisterTag = "用户中心" -) - -// 异步注册到consul -func RegisterToConsul(port int) { - go register(port, false) - go selfCheck(port) -} - -func consulCheck(w http.ResponseWriter, r *http.Request) { - _, _ = fmt.Fprintln(w, "consulCheck") -} - -func register(port int, retry bool) { - client, err := api.NewClient(api.DefaultConfig()) //非默认情况下需要设置实际的参数 - if err != nil { - mylogrus.MyLog.Errorf("RegisterToConsul Fail:%v", err) - return - } - if client == nil { - mylogrus.MyLog.Errorf("Fail to get consul client.") - return - } - mylogrus.MyLog.Infof("RegisterToConsul:%v-%v", client, err) - checkPort := port + 1000 - registration := new(api.AgentServiceRegistration) - hostName, _ := os.Hostname() - registration.ID = fmt.Sprintf("%s-%s", RegisterName, hostName) - registration.Name = RegisterName - registration.Port = port - registration.Tags = []string{RegisterTag} - - myIp, myNodeName := "", "" - if localIp, err := _const.GetClientIp(); err != nil { - mylogrus.MyLog.Fatalln("local ip not found", err) - } else { - myIp = localIp - } - mylogrus.MyLog.Infof("My ip is %s, nodeName: %s\n", myIp, myNodeName) - - registration.Address = myIp - registration.Check = &api.AgentServiceCheck{ - HTTP: fmt.Sprintf("http://localhost:%d%s", checkPort, "/check"), - Timeout: "3s", - Interval: "5s", - DeregisterCriticalServiceAfter: "30s", //check失败后30秒删除本服务 - } - err = client.Agent().ServiceRegister(registration) - if err != nil { - mylogrus.MyLog.Errorf("register server error :%v ", err) - return - } - if !retry { - http.HandleFunc("/check", consulCheck) - if err = http.ListenAndServe(fmt.Sprintf(":%d", checkPort), nil); err != nil { - mylogrus.MyLog.Warnf("check server error :%v ", err) - return - } - } -} - -// 自愈检查 -// 启动后每一分钟检查一次 -// 首次启动不执行 -func selfCheck(port int) { - ticker := time.NewTicker(time.Minute) - defer ticker.Stop() - for { - select { - case <-ticker.C: - client, err := api.NewClient(api.DefaultConfig()) //非默认情况下需要设置实际的参数 - if err != nil { - mylogrus.MyLog.Errorf("RegisterToConsul Fail:%v", err) - break - } - if client == nil { - mylogrus.MyLog.Errorf("Fail to get consul client.") - break - } - cataLog := client.Catalog() - if cataLog == nil { - mylogrus.MyLog.Errorf("No catalog.") - break - } - services, _, err := cataLog.Service(RegisterName, "", nil) - if err != nil { - mylogrus.MyLog.Errorf("%v", err) - break - } - if len(services) == 0 { - mylogrus.MyLog.Errorf("%s not found.", RegisterName) - go register(port, true) // 重新注册 - } else { - mylogrus.MyLog.Infof("%s check success %v", RegisterName, services[0]) - } - } - } -} diff --git a/resource/consul/watch.go b/resource/consul/watch.go deleted file mode 100755 index f117a4b..0000000 --- a/resource/consul/watch.go +++ /dev/null @@ -1,129 +0,0 @@ -package consul - -import ( - "fmt" - consulapi "github.com/hashicorp/consul/api" - "github.com/hashicorp/consul/api/watch" - "hilo-user/mylogrus" - "sync" -) - -type ServiceCallback func(serviceStatus map[string]map[string][]string) // service->status->addrs - -// 定义watcher -type Watcher struct { - Address string // consul agent 的地址:"127.0.0.1:8500" - Wp *watch.Plan // 总的Services变化对应的Plan - watchers map[string]*watch.Plan // 对已经进行监控的service作个记录 - RWMutex *sync.RWMutex -} - -// 将consul新增的service加入,并监控 -func (w *Watcher) registerServiceWatcher(serviceName string, callback ServiceCallback) error { - // watch endpoint 的请求参数,具体见官方文档:https://www.consul.io/docs/dynamic-app-config/watches#service - wp, err := watch.Parse(map[string]interface{}{ - "type": "service", - "service": serviceName, - }) - if err != nil { - return err - } - - // 定义service变化后所执行的程序(函数)handler - wp.Handler = func(idx uint64, data interface{}) { - switch d := data.(type) { - case []*consulapi.ServiceEntry: - var serviceStatus = make(map[string]map[string][]string) - for _, i := range d { - if data, ok := serviceStatus[i.Service.Service]; ok { - data[i.Checks.AggregatedStatus()] = append(data[i.Checks.AggregatedStatus()], fmt.Sprintf("%s:%d", i.Service.Address, i.Service.Port)) - } else { - serviceStatus[i.Service.Service] = make(map[string][]string) - serviceStatus[i.Service.Service][i.Checks.AggregatedStatus()] = append(serviceStatus[i.Service.Service][i.Checks.AggregatedStatus()], - fmt.Sprintf("%s:%d", i.Service.Address, i.Service.Port)) - } - } - // 回传到外面 - callback(serviceStatus) - mylogrus.MyLog.Infof("consul service status: %s", serviceStatus) - } - } - // 启动监控 - go wp.Run(w.Address) - // 对已启动监控的service作一个记录 - w.RWMutex.Lock() - w.watchers[serviceName] = wp - w.RWMutex.Unlock() - - return nil -} - -func newWatcher(watchType string, opts map[string]string, consulAddr string, callback ServiceCallback) (*Watcher, error) { - var options = map[string]interface{}{ - "type": watchType, - } - // 组装请求参数。(监控类型不同,其请求参数不同) - for k, v := range opts { - options[k] = v - } - - wp, err := watch.Parse(options) - if err != nil { - return nil, err - } - - w := &Watcher{ - Address: consulAddr, - Wp: wp, - watchers: make(map[string]*watch.Plan), - RWMutex: new(sync.RWMutex), - } - - wp.Handler = func(idx uint64, data interface{}) { - switch d := data.(type) { - // 这里只实现了对services的监控,其他监控的data类型判断参考:https://github.com/dmcsorley/avast/blob/master/consul.go - // services - case map[string][]string: - for i := range d { - // 如果该service已经加入到ConsulRegistry的services里监控了,就不再加入 或者i 为 "consul"的字符串 - // 为什么会多一个consul,参考官方文档services监听的返回值:https://www.consul.io/docs/dynamic-app-config/watches#services - if _, ok := w.watchers[i]; ok || i == "consul" { - continue - } - w.registerServiceWatcher(i, callback) - } - - // 从总的services变化中找到不再监控的service并停止 - w.RWMutex.RLock() - watches := w.watchers - w.RWMutex.RUnlock() - - // remove unknown services from watchers - for i, svc := range watches { - if _, ok := d[i]; !ok { - svc.Stop() - delete(watches, i) - } - } - default: - mylogrus.MyLog.Errorf("不能判断监控的数据类型: %v", &d) - } - } - - return w, nil -} - -func RegisterWatcher(watchType string, opts map[string]string, consulAddr string, callback ServiceCallback) error { - w, err := newWatcher(watchType, opts, consulAddr, callback) - if err != nil { - mylogrus.MyLog.Error(err) - return err - } - defer w.Wp.Stop() - if err = w.Wp.Run(consulAddr); err != nil { - mylogrus.MyLog.Errorf("RegisterWatcher err: %v", err) - return err - } - - return nil -} diff --git a/resource/mysql/entity.go b/resource/mysql/entity.go deleted file mode 100755 index 89823de..0000000 --- a/resource/mysql/entity.go +++ /dev/null @@ -1,116 +0,0 @@ -package mysql - -import "time" - -type EntityI interface { - GetID() ID - //用于判断数据是否进行持久化 - IsLazyLoad() bool - //默认值为false true:代表要移除数据 - CheckDel() bool - //检查是否唯一键冲突,依旧更新 - CheckOnDuplicateKeyUPDATE() bool - //检查是否唯一键冲突,则不插入 - CheckOnDuplicateKeyIGNORE() bool - //更新乐观锁 默认值为false true:乐观锁更新 - CheckUpdateVersion() bool - //更新条件. - CheckUpdateCondition() bool - //获取版本号 - GetUpdateVersionBefore() uint - //更新情况 - GetUpdateCondition() string - //save 动作排除字段 - GetOmit() []string -} -type Entity struct { - ID ID `gorm:"primary_key"` - CreatedTime time.Time `gorm:"->"` - UpdatedTime time.Time `gorm:"->"` - lazyLoad bool `gorm:"-"` - del bool `gorm:"-"` - onDuplicateKeyUPDATE bool `gorm:"-"` - onDuplicateKeyIGNORE bool `gorm:"-"` - updateVersionFlag bool `gorm:"-"` - updateVersionBefore uint `gorm:"-"` - updateCondition string `gorm:"-"` - omit []string `gorm:"-"` //更新排除 - updateColumns map[string]interface{} `gorm:"-"` //更新字段 -} - -func (t *Entity) GetID() ID { - return t.ID -} - -func (t *Entity) IsLazyLoad() bool { - return t.lazyLoad -} - -func (t *Entity) SetLasyLoad() { - t.lazyLoad = true -} - -func (t *Entity) SetDel() { - t.del = true -} - -func (t *Entity) CheckDel() bool { - return t.del -} - -func (t *Entity) SetOnDuplicateKeyUPDATE() { - t.onDuplicateKeyUPDATE = true -} - -func (t *Entity) SetOnDuplicateKeyIGNORE() { - t.onDuplicateKeyIGNORE = true -} - -func (t *Entity) CheckOnDuplicateKeyUPDATE() bool { - return t.onDuplicateKeyUPDATE -} - -func (t *Entity) CheckOnDuplicateKeyIGNORE() bool { - return t.onDuplicateKeyIGNORE -} - -func (t *Entity) SetCheckUpdateVersionBefore(versionBefore uint) { - t.updateVersionBefore = versionBefore - t.updateVersionFlag = true -} - -func (t *Entity) SetCheckUpdateCondition(condition string) { - t.updateCondition = condition -} - -func (t *Entity) CheckUpdateVersion() bool { - return t.updateVersionFlag -} - -func (t *Entity) CheckUpdateCondition() bool { - return t.updateCondition != "" -} - -func (t *Entity) GetUpdateCondition() string { - return t.updateCondition -} - -func (t *Entity) GetUpdateVersionBefore() uint { - return t.updateVersionBefore -} - -func (t *Entity) GetOmit() []string { - return t.omit -} - -func (t *Entity) SetOmit(omit []string) { - t.omit = omit -} - -func (t *Entity) SetUpdateColumns(updateColumns map[string]interface{}) { - t.updateColumns = updateColumns -} - -func (t *Entity) GetUpdateColumns() map[string]interface{} { - return t.updateColumns -} diff --git a/resource/mysql/logger.go b/resource/mysql/logger.go deleted file mode 100755 index d15c2b5..0000000 --- a/resource/mysql/logger.go +++ /dev/null @@ -1,114 +0,0 @@ -package mysql - -import ( - "context" - "fmt" - . "gorm.io/gorm/logger" - "gorm.io/gorm/utils" - "time" -) - -func MyNew(writer Writer, config Config) Interface { - var ( - infoStr = "%s[info] " - warnStr = "%s[warn] " - errStr = "%s[error] " - traceStr = "%s[%.3fms] [rows:%v] %s" - traceWarnStr = "%s %s[%.3fms] [rows:%v] %s" - traceErrStr = "%s %s[%.3fms] [rows:%v] %s" - ) - - //if config.Colorful { - // infoStr = Green + "%s\n" + Reset + Green + "[info] " + Reset - // warnStr = BlueBold + "%s\n" + Reset + Magenta + "[warn] " + Reset - // errStr = Magenta + "%s\n" + Reset + Red + "[error] " + Reset - // traceStr = Green + "%s\n" + Reset + Yellow + "[%.3fms] " + BlueBold + "[rows:%v]" + Reset + " %s" - // traceWarnStr = Green + "%s " + Yellow + "%s\n" + Reset + RedBold + "[%.3fms] " + Yellow + "[rows:%v]" + Magenta + " %s" + Reset - // traceErrStr = RedBold + "%s " + MagentaBold + "%s\n" + Reset + Yellow + "[%.3fms] " + BlueBold + "[rows:%v]" + Reset + " %s" - //} - myTraceStr := " traceId:%v userId:%v" - infoStr += myTraceStr - warnStr += myTraceStr - errStr += myTraceStr - traceStr += myTraceStr - traceWarnStr += myTraceStr - traceErrStr += myTraceStr - - return &myLogger{ - Writer: writer, - Config: config, - infoStr: infoStr, - warnStr: warnStr, - errStr: errStr, - traceStr: traceStr, - traceWarnStr: traceWarnStr, - traceErrStr: traceErrStr, - } -} - -type myLogger struct { - Writer - Config - infoStr, warnStr, errStr string - traceStr, traceErrStr, traceWarnStr string -} - -// LogMode log mode -func (l *myLogger) LogMode(level LogLevel) Interface { - newlogger := *l - newlogger.LogLevel = level - return &newlogger -} - -// Info print info -func (l myLogger) Info(ctx context.Context, msg string, data ...interface{}) { - if l.LogLevel >= Info { - l.Printf(l.infoStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...) - } -} - -// Warn print warn messages -func (l myLogger) Warn(ctx context.Context, msg string, data ...interface{}) { - if l.LogLevel >= Warn { - l.Printf(l.warnStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...) - } -} - -// Error print error messages -func (l myLogger) Error(ctx context.Context, msg string, data ...interface{}) { - if l.LogLevel >= Error { - l.Printf(l.errStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...) - } -} - -// Trace print sql message -func (l myLogger) Trace(ctx context.Context, begin time.Time, fc func() (string, int64), err error) { - traceId, userId := ctx.Value("traceId"), ctx.Value("userId") - if l.LogLevel > Silent { - elapsed := time.Since(begin) - switch { - case err != nil && l.LogLevel >= Error: - sql, rows := fc() - if rows == -1 { - l.Printf(l.traceErrStr, utils.FileWithLineNum(), err, float64(elapsed.Nanoseconds())/1e6, "-", sql, traceId, userId) - } else { - l.Printf(l.traceErrStr, utils.FileWithLineNum(), err, float64(elapsed.Nanoseconds())/1e6, rows, sql, traceId, userId) - } - case elapsed > l.SlowThreshold && l.SlowThreshold != 0 && l.LogLevel >= Warn: - sql, rows := fc() - slowLog := fmt.Sprintf("SLOW SQL >= %v", l.SlowThreshold) - if rows == -1 { - l.Printf(l.traceWarnStr, utils.FileWithLineNum(), slowLog, float64(elapsed.Nanoseconds())/1e6, "-", sql, traceId, userId) - } else { - l.Printf(l.traceWarnStr, utils.FileWithLineNum(), slowLog, float64(elapsed.Nanoseconds())/1e6, rows, sql, traceId, userId) - } - case l.LogLevel == Info: - sql, rows := fc() - if rows == -1 { - l.Printf(l.traceStr, utils.FileWithLineNum(), float64(elapsed.Nanoseconds())/1e6, "-", sql, traceId, userId) - } else { - l.Printf(l.traceStr, utils.FileWithLineNum(), float64(elapsed.Nanoseconds())/1e6, rows, sql, traceId, userId) - } - } - } -} diff --git a/resource/mysql/mysql.go b/resource/mysql/mysql.go deleted file mode 100755 index e633144..0000000 --- a/resource/mysql/mysql.go +++ /dev/null @@ -1,57 +0,0 @@ -package mysql - -import ( - "fmt" - _ "github.com/go-sql-driver/mysql" //加载mysql驱动 - _ "github.com/joho/godotenv/autoload" - "gorm.io/driver/mysql" - "gorm.io/gorm" - "gorm.io/gorm/logger" - "gorm.io/gorm/schema" - "hilo-user/mylogrus" - "hilo-user/resource/config" - "log" - "net/url" - "time" -) - -var Db *gorm.DB - -func init() { - var err error - mysqlConfigData := config.GetConfigMysql() - options := "?charset=utf8mb4&parseTime=True&loc=Local&time_zone=" + url.QueryEscape("'+8:00'") - dsn := "" + mysqlConfigData.MYSQL_USERNAME + ":" + mysqlConfigData.MYSQL_PASSWORD + "@(" + mysqlConfigData.MYSQL_HOST + ")/" + mysqlConfigData.MYSQL_DB + options - - sqlLogger := logger.Default.LogMode(logger.Info) - if file := mylogrus.GetSqlLog(); file != nil { - //sqlLogger = logger.New(log.New(file, "\r\n", log.Ldate|log.Lmicroseconds), logger.Config{ - sqlLogger = MyNew(log.New(file, "", log.Ldate|log.Lmicroseconds), logger.Config{ - SlowThreshold: 200 * time.Millisecond, - LogLevel: logger.Info, - Colorful: false, - }) - } - - Db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ - Logger: sqlLogger, - NamingStrategy: schema.NamingStrategy{ - SingularTable: true, - }, - }) - if err != nil { - log.Fatalf("mysql connect error %v", err) - } else { - log.Println("mysql connect success") - } - - if Db.Error != nil { - fmt.Printf("database error %v", Db.Error) - } - - if d, err := Db.DB(); err == nil { - d.SetConnMaxLifetime(time.Minute * 30) // 连接可复用的最大时间。 - d.SetMaxIdleConns(20) // 空闲连接数 - d.SetMaxOpenConns(20) // 最大连接数 - } -} diff --git a/resource/mysql/types.go b/resource/mysql/types.go deleted file mode 100755 index abe5549..0000000 --- a/resource/mysql/types.go +++ /dev/null @@ -1,93 +0,0 @@ -package mysql - -import "strconv" - -/** -基于PDM,建立统计的数据domain结构。注意,不要选择0, 因为go的int默认值为0 -*/ - -//主键ID -type ID = uint64 - -//性别 -type Sex = uint8 - -//加减 -type AddReduce = uint8 - -//拥有 -type YesNo = uint8 - -//短描述 -type Str = string - -//时间戳 -type Time = int64 - -//状态 -type UserYesNo = uint8 - -//平台 -type Platform = uint8 - -//多枚举类型 -type Type = uint8 - -//数量 -type Num = uint32 - -//时间戳 -type Timestamp = uint64 - -//排序 -type Index = uint16 - -//数量,并且用到-1作为特殊标记位 -type NumAll = int - -//开启关闭 -type OpenClose = uint8 - -//逻辑删除 -type LogicDel = uint8 - -//设备 -type Device = uint8 - -type PeriodType = uint8 - -type FinishYesNo = uint8 - -//性别 -const ( - MAN Sex = 1 - WOMAN Sex = 2 - EMPTY Sex = 0 -) - -//yes no -const ( - YES YesNo = 1 - NO YesNo = 2 -) - -const ( - OPEN OpenClose = 1 - CLOSE OpenClose = 2 -) - -//加,减 -const ( - ADD AddReduce = 1 - REDUCE AddReduce = 2 - NilAddREDUCE AddReduce = 3 -) - -const ( - USER UserYesNo = 1 - NOUSER UserYesNo = 2 -) - -func TypeToString(t Type) string { - return strconv.Itoa(int(t)) -} diff --git a/resource/redisCli/redis.go b/resource/redisCli/redis.go deleted file mode 100755 index 292fd3b..0000000 --- a/resource/redisCli/redis.go +++ /dev/null @@ -1,33 +0,0 @@ -package redisCli - -import ( - "context" - "github.com/go-redis/redis/v8" - "hilo-user/mylogrus" - "hilo-user/resource/config" -) - -var RedisClient *redis.Client - -func init() { - RedisClient = redis.NewClient(&redis.Options{ - Addr: config.GetConfigRedis().REDIS_HOST, - Password: config.GetConfigRedis().REDIS_PASSWORD, // no password set - DB: 0, // use default DB - PoolSize: 20, - MinIdleConns: 20, - }) - mylogrus.MyLog.Infoln(config.GetConfigRedis().REDIS_HOST) - mylogrus.MyLog.Infoln(config.GetConfigRedis().REDIS_PASSWORD) - pong, err := RedisClient.Ping(context.Background()).Result() - if err != nil { - mylogrus.MyLog.Warn(err) - mylogrus.MyLog.Fatal("redis db0 connect fail") - } else { - mylogrus.MyLog.Info("redis db0 connection success - ", pong) - } -} - -func GetRedis() *redis.Client { - return RedisClient -} diff --git a/resp/response.go b/resp/response.go index 72c0ac5..7b5ada5 100755 --- a/resp/response.go +++ b/resp/response.go @@ -2,9 +2,8 @@ package resp import ( "encoding/json" + "git.hilo.cn/hilo-common/mycontext" "github.com/gin-gonic/gin" - "hilo-user/_const" - "hilo-user/mycontext" "hilo-user/myerr" "net/http" ) @@ -113,13 +112,13 @@ func ResponseErrWithString(c *gin.Context, msg interface{}) { } func printResponseBody(c *gin.Context, response interface{}) { - traceId, _ := c.Get(_const.TRACEID) + traceId, _ := c.Get(mycontext.TRACEID) if _traceId, ok := traceId.(string); ok { c.Header("X-Trace-ID", _traceId) } var userId uint64 = 0 - if strUserId, ok := c.Get(_const.USERID); ok { + if strUserId, ok := c.Get(mycontext.USERID); ok { userId = strUserId.(uint64) } diff --git a/route/errorHandle.go b/route/errorHandle.go index 3db853a..c95b89e 100755 --- a/route/errorHandle.go +++ b/route/errorHandle.go @@ -1,12 +1,11 @@ package route import ( + "git.hilo.cn/hilo-common/mycontext" + "git.hilo.cn/hilo-common/resource/config" "github.com/gin-gonic/gin" - "hilo-user/_const" - "hilo-user/mycontext" "hilo-user/myerr" "hilo-user/req" - "hilo-user/resource/config" "hilo-user/resp" ) @@ -30,9 +29,9 @@ func wrapper(handler HandlerFunc) func(c *gin.Context) { if myContext == nil { myContext = mycontext.CreateMyContext(nil) } - c.Set(_const.ACTION_RESULt, true) + c.Set(mycontext.ACTION_RESULt, true) if err != nil { - c.Set(_const.ACTION_RESULt, false) + c.Set(mycontext.ACTION_RESULt, false) reqUri := c.Request.RequestURI method := c.Request.Method userId, _ := req.GetUserId(c) diff --git a/route/middleHandle.go b/route/middleHandle.go index 1e6eb2e..ace0016 100755 --- a/route/middleHandle.go +++ b/route/middleHandle.go @@ -2,14 +2,13 @@ package route import ( "bytes" + "git.hilo.cn/hilo-common/mycontext" + "git.hilo.cn/hilo-common/mylogrus" + "git.hilo.cn/hilo-common/resource/config" "github.com/gin-gonic/gin" - "hilo-user/_const" - "hilo-user/mycontext" "hilo-user/myerr/bizerr" - "hilo-user/mylogrus" "hilo-user/req" "hilo-user/req/jwt" - "hilo-user/resource/config" "hilo-user/resp" "io/ioutil" "runtime/debug" @@ -78,8 +77,8 @@ func JWTApiHandle(c *gin.Context) { } } - c.Set(_const.USERID, claims.UserId) - c.Set(_const.EXTERNAL_ID, claims.ExternalId) + c.Set(mycontext.USERID, claims.UserId) + c.Set(mycontext.EXTERNAL_ID, claims.ExternalId) c.Writer.Header().Add("token", newToken) c.Next() @@ -93,16 +92,16 @@ func LoggerHandle(c *gin.Context) { method := c.Request.Method traceId := genTraceId() reqUri := c.Request.RequestURI - c.Set(_const.TRACEID, traceId) + c.Set(mycontext.TRACEID, traceId) // header := c.Request.Header //类型 devicetype := header.Get("Devicetype") - c.Set(_const.DEVICETYPE, devicetype) + c.Set(mycontext.DEVICETYPE, devicetype) appVersion := header.Get("Appversion") - c.Set(_const.APP_VERSION, appVersion) - c.Set(_const.URL, reqUri) - c.Set(_const.METHOD, method) + c.Set(mycontext.APP_VERSION, appVersion) + c.Set(mycontext.URL, reqUri) + c.Set(mycontext.METHOD, method) userId, _ := req.GetUserId(c) diff --git a/route/redis_r/scan.go b/route/redis_r/scan.go index a9e567b..be2c417 100755 --- a/route/redis_r/scan.go +++ b/route/redis_r/scan.go @@ -3,12 +3,12 @@ package redis_r import ( "context" "fmt" + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/mycontext" + "git.hilo.cn/hilo-common/mylogrus" + "git.hilo.cn/hilo-common/resource/config" "github.com/gin-gonic/gin" "github.com/go-redis/redis/v8" - "hilo-user/domain" - "hilo-user/mycontext" - "hilo-user/mylogrus" - "hilo-user/resource/config" "strconv" "strings" "time" diff --git a/route/user_r/user.go b/route/user_r/user.go index 171ff4e..5b30e42 100644 --- a/route/user_r/user.go +++ b/route/user_r/user.go @@ -1,15 +1,15 @@ package user_r import ( + "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/mycontext" + "git.hilo.cn/hilo-common/resource/mysql" "github.com/gin-gonic/gin" - "hilo-user/domain" "hilo-user/domain/model/res_m" "hilo-user/domain/model/user_m" - "hilo-user/mycontext" "hilo-user/myerr" "hilo-user/myerr/bizerr" "hilo-user/req" - "hilo-user/resource/mysql" "hilo-user/resp" ) -- 2.22.0