parent
957ef3c89d
commit
914bb2ff02
@ -1,29 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/opentracing/opentracing-go"
|
|
||||||
jaeger "github.com/uber/jaeger-client-go"
|
|
||||||
"github.com/uber/jaeger-client-go/config"
|
|
||||||
"io"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
/*
|
|
||||||
@Auth:ShenZ
|
|
||||||
@Description: Jaeger的实列化方法
|
|
||||||
*/
|
|
||||||
func NewTracer(serviceName string, addr string) (opentracing.Tracer, io.Closer, error) {
|
|
||||||
cfg := &config.Configuration{
|
|
||||||
ServiceName: serviceName,
|
|
||||||
Sampler: &config.SamplerConfig{
|
|
||||||
Type: jaeger.SamplerTypeConst,
|
|
||||||
Param: 1,
|
|
||||||
},
|
|
||||||
Reporter: &config.ReporterConfig{
|
|
||||||
BufferFlushInterval: 1 * time.Second,
|
|
||||||
LogSpans: true,
|
|
||||||
LocalAgentHostPort: addr,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return cfg.NewTracer()
|
|
||||||
}
|
|
@ -1,107 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"github.com/go-redis/redis/v8"
|
|
||||||
"log"
|
|
||||||
"os"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/spf13/viper"
|
|
||||||
_ "github.com/spf13/viper/remote"
|
|
||||||
"gorm.io/driver/mysql"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
"gorm.io/gorm/logger"
|
|
||||||
)
|
|
||||||
|
|
||||||
func GetConsulConfig(url string, fileKey string) (*viper.Viper, error) {
|
|
||||||
conf := viper.New()
|
|
||||||
conf.AddRemoteProvider("consul", url, fileKey)
|
|
||||||
conf.SetConfigType("json")
|
|
||||||
err := conf.ReadRemoteConfig()
|
|
||||||
if err != nil {
|
|
||||||
log.Println("viper conf err :", err)
|
|
||||||
//}else {
|
|
||||||
//log.Println("viper conf :", conf)
|
|
||||||
}
|
|
||||||
return conf, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
{
|
|
||||||
"host": "192.168.137.131",
|
|
||||||
"port": "3306",
|
|
||||||
"user": "root",
|
|
||||||
"pwd": "mashibing123",
|
|
||||||
"database": "user_center"
|
|
||||||
}
|
|
||||||
**/
|
|
||||||
|
|
||||||
// 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),
|
|
||||||
logger.Config{
|
|
||||||
SlowThreshold: time.Second,
|
|
||||||
LogLevel: logger.Info,
|
|
||||||
Colorful: true,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
str := vip.GetString("user") + ":" + vip.GetString("pwd") + "@tcp(" + vip.GetString("host") + ":" + vip.GetString("port") + ")/" + vip.GetString("database") + "?charset=utf8mb4&parseTime=True&loc=Local"
|
|
||||||
db, errr := gorm.Open(mysql.Open(str), &gorm.Config{Logger: newLogger}) //"root:mashibing123@tcp(8.142.25.43:3306)/user_center?charset=utf8mb4&parseTime=True&loc=Local"), &gorm.Config{Logger: newLogger})
|
|
||||||
if errr != nil {
|
|
||||||
log.Println("db err :", errr)
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
module git.mashibing.com/msb_47094/utils
|
|
||||||
|
|
||||||
go 1.19
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/go-redis/redis/v8 v8.11.5
|
|
||||||
github.com/spf13/viper v1.13.0
|
|
||||||
github.com/uber/jaeger-client-go v2.30.0+incompatible
|
|
||||||
gorm.io/driver/mysql v1.4.3
|
|
||||||
gorm.io/gorm v1.24.0
|
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
|
||||||
cloud.google.com/go v0.100.2 // indirect
|
|
||||||
cloud.google.com/go/compute v1.6.1 // indirect
|
|
||||||
cloud.google.com/go/firestore v1.6.1 // indirect
|
|
||||||
github.com/HdrHistogram/hdrhistogram-go v1.1.2 // indirect
|
|
||||||
github.com/armon/go-metrics v0.3.10 // 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/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
|
||||||
github.com/fatih/color v1.13.0 // indirect
|
|
||||||
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
|
||||||
github.com/go-sql-driver/mysql v1.6.0 // indirect
|
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
|
||||||
github.com/google/go-cmp v0.5.8 // indirect
|
|
||||||
github.com/googleapis/gax-go/v2 v2.4.0 // indirect
|
|
||||||
github.com/hashicorp/consul/api v1.12.0 // indirect
|
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
|
||||||
github.com/hashicorp/go-hclog v1.2.0 // indirect
|
|
||||||
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
|
|
||||||
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
|
|
||||||
github.com/hashicorp/golang-lru v0.5.4 // indirect
|
|
||||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
|
||||||
github.com/hashicorp/serf v0.9.7 // indirect
|
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
|
||||||
github.com/magiconair/properties v1.8.6 // indirect
|
|
||||||
github.com/mattn/go-colorable v0.1.12 // indirect
|
|
||||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
|
||||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
|
||||||
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
||||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
|
|
||||||
github.com/opentracing/opentracing-go v1.2.0 // indirect
|
|
||||||
github.com/pelletier/go-toml v1.9.5 // indirect
|
|
||||||
github.com/pelletier/go-toml/v2 v2.0.5 // indirect
|
|
||||||
github.com/pkg/errors v0.9.1 // indirect
|
|
||||||
github.com/sagikazarmark/crypt v0.6.0 // indirect
|
|
||||||
github.com/spf13/afero v1.8.2 // indirect
|
|
||||||
github.com/spf13/cast v1.5.0 // indirect
|
|
||||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
|
||||||
github.com/subosito/gotenv v1.4.1 // indirect
|
|
||||||
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
|
||||||
go.etcd.io/etcd/api/v3 v3.5.4 // indirect
|
|
||||||
go.etcd.io/etcd/client/pkg/v3 v3.5.4 // indirect
|
|
||||||
go.etcd.io/etcd/client/v2 v2.305.4 // indirect
|
|
||||||
go.etcd.io/etcd/client/v3 v3.5.4 // indirect
|
|
||||||
go.opencensus.io v0.23.0 // indirect
|
|
||||||
go.uber.org/atomic v1.7.0 // indirect
|
|
||||||
go.uber.org/multierr v1.6.0 // indirect
|
|
||||||
go.uber.org/zap v1.17.0 // indirect
|
|
||||||
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect
|
|
||||||
golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect
|
|
||||||
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
|
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
|
|
||||||
golang.org/x/text v0.3.7 // indirect
|
|
||||||
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect
|
|
||||||
google.golang.org/api v0.81.0 // indirect
|
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
|
||||||
google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd // indirect
|
|
||||||
google.golang.org/grpc v1.46.2 // indirect
|
|
||||||
google.golang.org/protobuf v1.28.0 // indirect
|
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
|
|
||||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
||||||
)
|
|
@ -1,33 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"crypto/md5"
|
|
||||||
"encoding/hex"
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
//小写
|
|
||||||
func Md5Encode(data string) string {
|
|
||||||
h := md5.New()
|
|
||||||
h.Write([]byte(data))
|
|
||||||
tempStr := h.Sum(nil)
|
|
||||||
return hex.EncodeToString(tempStr)
|
|
||||||
}
|
|
||||||
|
|
||||||
//大写
|
|
||||||
func MD5Encode(data string) string {
|
|
||||||
return strings.ToUpper(Md5Encode(data))
|
|
||||||
}
|
|
||||||
|
|
||||||
//加密
|
|
||||||
func MakePassword(plainpwd, salt string) string {
|
|
||||||
return Md5Encode(plainpwd + salt)
|
|
||||||
}
|
|
||||||
|
|
||||||
//解密
|
|
||||||
func ValidPassword(plainpwd, salt string, password string) bool {
|
|
||||||
md := Md5Encode(plainpwd + salt)
|
|
||||||
fmt.Println(md + " " + password)
|
|
||||||
return md == password
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
)
|
|
||||||
|
|
||||||
type H struct {
|
|
||||||
Code string
|
|
||||||
Message string
|
|
||||||
TraceId string
|
|
||||||
Data interface{}
|
|
||||||
Rows interface{}
|
|
||||||
Total interface{}
|
|
||||||
SkyWalkingDynamicField string
|
|
||||||
}
|
|
||||||
|
|
||||||
func Resp(w http.ResponseWriter, code string, data interface{}, message string) {
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
w.WriteHeader(http.StatusOK)
|
|
||||||
h := H{
|
|
||||||
Code: code,
|
|
||||||
Data: data,
|
|
||||||
Message: message,
|
|
||||||
}
|
|
||||||
ret, err := json.Marshal(h)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
w.Write(ret)
|
|
||||||
}
|
|
||||||
|
|
||||||
func RespList(w http.ResponseWriter, code string, data interface{}, message string, rows interface{}, total interface{}, skyWalkingDynamicField string) {
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
w.WriteHeader(http.StatusOK)
|
|
||||||
h := H{
|
|
||||||
Code: code,
|
|
||||||
Data: data,
|
|
||||||
Message: message,
|
|
||||||
Rows: rows,
|
|
||||||
Total: total,
|
|
||||||
SkyWalkingDynamicField: skyWalkingDynamicField,
|
|
||||||
}
|
|
||||||
ret, err := json.Marshal(h)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
w.Write(ret)
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
200 OKLoginSuccessVO
|
|
||||||
201 Created
|
|
||||||
401 Unauthorized
|
|
||||||
403 Forbidden
|
|
||||||
404 Not Found
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
func RespOK(w http.ResponseWriter, data interface{}, message string) {
|
|
||||||
Resp(w, "SUCCESS", data, message)
|
|
||||||
}
|
|
||||||
func RespFail(w http.ResponseWriter, data interface{}, message string) {
|
|
||||||
Resp(w, "TOKEN_FAIL", data, message)
|
|
||||||
}
|
|
||||||
func RespListOK(w http.ResponseWriter, data interface{}, message string, rows interface{}, total interface{}, skyWalkingDynamicField string) {
|
|
||||||
RespList(w, "SUCCESS", data, message, rows, total, skyWalkingDynamicField)
|
|
||||||
}
|
|
||||||
func RespListFail(w http.ResponseWriter, data interface{}, message string, rows interface{}, total interface{}, skyWalkingDynamicField string) {
|
|
||||||
RespList(w, "TOKEN_FAIL", data, message, rows, total, skyWalkingDynamicField)
|
|
||||||
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
package common
|
|
||||||
|
|
||||||
import (
|
|
||||||
"math"
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
/*
|
|
||||||
@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
|
|
||||||
}
|
|
||||||
|
|
||||||
// int 转 二进制的字符串
|
|
||||||
func ConverToBinary(n int) string {
|
|
||||||
res := ""
|
|
||||||
for ; n > 0; n /= 2 {
|
|
||||||
lsb := n % 2
|
|
||||||
res = strconv.Itoa(lsb) + res
|
|
||||||
}
|
|
||||||
return res
|
|
||||||
}
|
|
Loading…
Reference in new issue