Commit ef31119a1aa4befaf2e788309c1d656c8ecbae75

Authored by 王家文
1 parent 35c0874e
Exists in master and in 1 other branch dev-wjw

refactor♻️:项目目录重构

common/svconst/consts.go 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +package svconst
common/svconst/vars.go 0 → 100644
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
  1 +package svconst
  2 +
  3 +var (
  4 + AppName = ""
  5 +)
common/svlog/ali-log.go 0 → 100644
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
  1 +package svlog
  2 +
  3 +import (
  4 + "apigame/util/util-lx/lxalilog"
  5 + "fmt"
  6 + "github.com/astaxie/beego"
  7 + lalilog "github.com/lixu-any/go-tools/ali/log"
  8 +)
  9 +
  10 +func InitAliLog(appName string) {
  11 +
  12 + //初始化阿里云日志
  13 + logm, _ := beego.AppConfig.GetSection("alilog")
  14 + lxalilog.InitAliLog(lxalilog.MapAlilogConfig{
  15 + Endpoint: logm["endpoint"],
  16 + AccessKeyId: logm["accesskeyid"],
  17 + AccessKeySecret: logm["accesskeysecret"],
  18 + Project: logm["project"],
  19 + AppNaame: appName,
  20 + On: logm["on"],
  21 + Debug: logm["debug"],
  22 + TableError: "api_code_merge",
  23 + TableDebug: logm["tabledebug"],
  24 + Env: beego.AppConfig.String("env"),
  25 + })
  26 +
  27 + lalilog.InitAliLog(lalilog.MapAlilogConfig{
  28 + Endpoint: logm["endpoint"],
  29 + AccessKeyId: logm["accesskeyid"],
  30 + AccessKeySecret: logm["accesskeysecret"],
  31 + Project: logm["project"],
  32 + On: logm["on"],
  33 + Debug: logm["debug"],
  34 + TableError: logm["tableerror"],
  35 + TableDebug: logm["tabledebug"],
  36 + Env: beego.AppConfig.String("env"),
  37 + })
  38 +
  39 + fmt.Println(appName + " alilog init success")
  40 +}
common/svlog/log.go 0 → 100644
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
  1 +package svlog
  2 +
  3 +import (
  4 + "apigame/common/svconst"
  5 + "apigame/util/util-lx/lxbeego"
  6 + "fmt"
  7 + "github.com/astaxie/beego"
  8 +)
  9 +
  10 +func Init() {
  11 +
  12 + // 初始化日志文件
  13 + conf, _ := beego.AppConfig.GetSection("log")
  14 + conf["filename"] = conf["path"] + "api.log"
  15 +
  16 + if err := lxbeego.Inits(conf); err != nil {
  17 + fmt.Println("svlog.Inits Error::" + err.Error())
  18 + }
  19 +
  20 + fmt.Println(svconst.AppName + " svlog init success")
  21 +}
common/svredis/index.go 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +package svredis
  2 +
  3 +import (
  4 + "apigame/common/svconst"
  5 + "apigame/util/utstring"
  6 + "apigame/util/zredis"
  7 + "fmt"
  8 + "github.com/astaxie/beego"
  9 + "github.com/mitchellh/mapstructure"
  10 +)
  11 +
  12 +type RedisConfig struct {
  13 + Host string `json:"host"`
  14 + Port string `json:"port"`
  15 + Pwd string `json:"pwd"`
  16 + Db string `json:"Db"`
  17 + Prefix string `json:"prefix"`
  18 +}
  19 +
  20 +func Init() bool {
  21 + //初始化Redis
  22 + confText, _ := beego.AppConfig.GetSection("redis")
  23 + var conf RedisConfig
  24 + err := mapstructure.Decode(confText, &conf)
  25 + if err != nil {
  26 + fmt.Println("svredis.Init mapstructure.Decode Error::" + err.Error())
  27 + }
  28 + zredis.Init(conf.Host+":"+conf.Port, conf.Pwd, utstring.StringToInt(conf.Db))
  29 + if !zredis.Check() {
  30 + return false
  31 + }
  32 +
  33 + fmt.Println(svconst.AppName + " redis init success")
  34 + return true
  35 +}
common/zconst/consts.go
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -package zconst  
common/zconst/vars.go
@@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
1 -package zconst  
2 -  
3 -var (  
4 - AppName = ""  
5 -)  
common/zlog/ali-log.go
@@ -1,40 +0,0 @@ @@ -1,40 +0,0 @@
1 -package zlog  
2 -  
3 -import (  
4 - "apigame/util/util-lx/lxalilog"  
5 - "fmt"  
6 - "github.com/astaxie/beego"  
7 - lalilog "github.com/lixu-any/go-tools/ali/log"  
8 -)  
9 -  
10 -func InitAliLog(appName string) {  
11 -  
12 - //初始化阿里云日志  
13 - logm, _ := beego.AppConfig.GetSection("alilog")  
14 - lxalilog.InitAliLog(lxalilog.MapAlilogConfig{  
15 - Endpoint: logm["endpoint"],  
16 - AccessKeyId: logm["accesskeyid"],  
17 - AccessKeySecret: logm["accesskeysecret"],  
18 - Project: logm["project"],  
19 - AppNaame: appName,  
20 - On: logm["on"],  
21 - Debug: logm["debug"],  
22 - TableError: "api_code_merge",  
23 - TableDebug: logm["tabledebug"],  
24 - Env: beego.AppConfig.String("env"),  
25 - })  
26 -  
27 - lalilog.InitAliLog(lalilog.MapAlilogConfig{  
28 - Endpoint: logm["endpoint"],  
29 - AccessKeyId: logm["accesskeyid"],  
30 - AccessKeySecret: logm["accesskeysecret"],  
31 - Project: logm["project"],  
32 - On: logm["on"],  
33 - Debug: logm["debug"],  
34 - TableError: logm["tableerror"],  
35 - TableDebug: logm["tabledebug"],  
36 - Env: beego.AppConfig.String("env"),  
37 - })  
38 -  
39 - fmt.Println(appName + " alilog init success")  
40 -}  
common/zlog/log.go
@@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
1 -package zlog  
2 -  
3 -import (  
4 - "apigame/common/zconst"  
5 - "apigame/util/util-lx/lxbeego"  
6 - "fmt"  
7 - "github.com/astaxie/beego"  
8 -)  
9 -  
10 -func Init() {  
11 -  
12 - // 初始化日志文件  
13 - logconfig, _ := beego.AppConfig.GetSection("log")  
14 - logconfig["filename"] = logconfig["path"] + "api.log"  
15 -  
16 - if err := lxbeego.Inits(logconfig); err != nil {  
17 - fmt.Println("lxbeelog.Inits Error::" + err.Error())  
18 - }  
19 -  
20 - fmt.Println(zconst.AppName + " beelog init success")  
21 -}  
common/zredis/index.go
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -package zredis  
@@ -11,22 +11,6 @@ func Inits() (err error) { @@ -11,22 +11,6 @@ func Inits() (err error) {
11 11
12 appname := beego.AppConfig.String("appname") 12 appname := beego.AppConfig.String("appname")
13 13
14 - ////初始化Redis  
15 - //redisconfig, _ := beego.AppConfig.GetSection("redis")  
16 - //var mredisconfig lxredis.MapRedisConfig  
17 - //err = mapstructure.Decode(redisconfig, &mredisconfig)  
18 - //if err != nil {  
19 - // fmt.Println(" mapstructure.Decode Error::" + err.Error())  
20 - //} else {  
21 - // err = lxredis.InitRedis(mredisconfig)  
22 - // if err != nil {  
23 - // fmt.Println(" lxredis.InitRedis Error::" + err.Error())  
24 - // return err  
25 - // }  
26 - //}  
27 - //  
28 - //fmt.Println(appname + " redis init success")  
29 -  
30 //初始化MYSQL 14 //初始化MYSQL
31 var conns []lxmysql.MapMysqlConn 15 var conns []lxmysql.MapMysqlConn
32 16
@@ -8,7 +8,9 @@ require ( @@ -8,7 +8,9 @@ require (
8 github.com/astaxie/beego v1.12.3 8 github.com/astaxie/beego v1.12.3
9 github.com/garyburd/redigo v1.6.4 9 github.com/garyburd/redigo v1.6.4
10 github.com/go-sql-driver/mysql v1.7.0 10 github.com/go-sql-driver/mysql v1.7.0
  11 + github.com/gomodule/redigo v2.0.0+incompatible
11 github.com/lixu-any/go-tools v0.0.0-20221128094643-07d54c69e9bf 12 github.com/lixu-any/go-tools v0.0.0-20221128094643-07d54c69e9bf
  13 + github.com/mitchellh/mapstructure v1.1.2
12 gorm.io/driver/mysql v1.5.6 14 gorm.io/driver/mysql v1.5.6
13 gorm.io/gorm v1.25.9 15 gorm.io/gorm v1.25.9
14 ) 16 )
@@ -156,6 +156,7 @@ github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0 @@ -156,6 +156,7 @@ github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0
156 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 156 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
157 github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 157 github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
158 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= 158 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
  159 +github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
159 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= 160 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
160 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 161 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
161 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 162 github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -251,6 +252,7 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI @@ -251,6 +252,7 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI
251 github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= 252 github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
252 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= 253 github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
253 github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 254 github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
  255 +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
254 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 256 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
255 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 257 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
256 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= 258 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
1 package main 1 package main
2 2
3 import ( 3 import (
4 - "apigame/common/zconst"  
5 - "apigame/common/zlog" 4 + "apigame/common/svconst"
  5 + "apigame/common/svlog"
  6 + "apigame/common/svredis"
6 "apigame/dto" 7 "apigame/dto"
7 _ "apigame/routers" 8 _ "apigame/routers"
8 "apigame/service/cardholder" 9 "apigame/service/cardholder"
@@ -36,13 +37,16 @@ func main() { @@ -36,13 +37,16 @@ func main() {
36 37
37 func Init() { 38 func Init() {
38 39
39 - zconst.AppName = beego.AppConfig.String("appname") 40 + svconst.AppName = beego.AppConfig.String("appname")
40 41
41 - zlog.Init() 42 + svlog.Init()
  43 + svlog.InitAliLog(svconst.AppName)
42 44
43 - _ = dto.Inits() 45 + if !svredis.Init() {
  46 + return
  47 + }
44 48
45 - zlog.InitAliLog(zconst.AppName) 49 + _ = dto.Inits()
46 50
47 // 初始化配置 51 // 初始化配置
48 cardholder.Init() 52 cardholder.Init()
service/cardholder/logic.go
@@ -6,9 +6,9 @@ import ( @@ -6,9 +6,9 @@ import (
6 "apigame/service/constd" 6 "apigame/service/constd"
7 "apigame/util/util-lx/lxalilog" 7 "apigame/util/util-lx/lxalilog"
8 "apigame/util/util-lx/lxtime" 8 "apigame/util/util-lx/lxtime"
9 - "apigame/util/utjson"  
10 "apigame/util/utslice" 9 "apigame/util/utslice"
11 "apigame/util/utstring" 10 "apigame/util/utstring"
  11 + "apigame/util/zjson"
12 ) 12 )
13 13
14 // SaveData 存储数据 14 // SaveData 存储数据
@@ -229,7 +229,7 @@ func DoOpen(gameId string, @@ -229,7 +229,7 @@ func DoOpen(gameId string,
229 { 229 {
230 recordBase := dto.NewCardHolderRecordBase(gameData.Uid, sequenceId, cohort, config.Id, gameData.Details.Round) 230 recordBase := dto.NewCardHolderRecordBase(gameData.Uid, sequenceId, cohort, config.Id, gameData.Details.Round)
231 dto.SaveRecord(gameId, dto.NewCardHolderRecordOpen(recordBase, 231 dto.SaveRecord(gameId, dto.NewCardHolderRecordOpen(recordBase,
232 - openMode, utstring.StringToInt(confCardholder.Id), utjson.JsonString(newCards))) 232 + openMode, utstring.StringToInt(confCardholder.Id), zjson.Str(newCards)))
233 } 233 }
234 234
235 return 235 return
util/zjson/json.go 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +package zjson
  2 +
  3 +import "encoding/json"
  4 +
  5 +func Byte(obj any) (buf []byte) {
  6 + jsons, err := json.Marshal(obj)
  7 + if err == nil {
  8 + buf = jsons
  9 + } else {
  10 + }
  11 + return
  12 +}
  13 +
  14 +func Str(obj any) (text string) {
  15 + jsons, err := json.Marshal(obj)
  16 + if err == nil {
  17 + text = string(jsons)
  18 + } else {
  19 + }
  20 + return
  21 +}
  22 +
  23 +func Obj(text string, obj any) (err error) {
  24 + err = json.Unmarshal([]byte(text), &obj)
  25 + if err != nil {
  26 +
  27 + }
  28 + return
  29 +}
util/zredis/handler.go 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +package zredis
  2 +
  3 +import (
  4 + "fmt"
  5 + "github.com/gomodule/redigo/redis"
  6 +)
  7 +
  8 +func Check() bool {
  9 + if pool == nil {
  10 + fmt.Println("redis pool nil")
  11 + }
  12 + conn := pool.Get()
  13 + defer AutoClose(conn)
  14 +
  15 + _, err := redis.Int64(conn.Do("GET", "test"))
  16 + if err != nil {
  17 + if err == redis.ErrNil {
  18 + //fmt.Println("redis.ErrNil")
  19 + } else {
  20 + fmt.Println("err", err)
  21 + fmt.Println("redis conn error",
  22 + "_addr", _addr,
  23 + "_pass", _pass,
  24 + "_db", _db)
  25 + return false
  26 + }
  27 + }
  28 +
  29 + return true
  30 +}
util/zredis/hash.go 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +package zredis
  2 +
  3 +import (
  4 + "github.com/gomodule/redigo/redis"
  5 +)
  6 +
  7 +// HSet HSet
  8 +func HSet(conn redis.Conn, tableName, key, value any) error {
  9 + _, err := conn.Do("HSET", tableName, key, value)
  10 + return err
  11 +}
  12 +
  13 +// HGet HGet
  14 +func HGet(conn redis.Conn, tableName, key any) any {
  15 + reply, err := conn.Do("HGET", tableName, key)
  16 + if err != nil {
  17 + return nil
  18 + }
  19 + return reply
  20 +}
  21 +
  22 +// HGetInt64 HGetInt64
  23 +func HGetInt64(conn redis.Conn, tableName, key any) int64 {
  24 + reply, err := redis.Int64(conn.Do("HGET", tableName, key))
  25 + if err == nil {
  26 + return reply
  27 + }
  28 + return 0
  29 +}
util/zredis/hash_data.go 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +package zredis
  2 +
  3 +import (
  4 + "apigame/util/zjson"
  5 + "github.com/gomodule/redigo/redis"
  6 +)
  7 +
  8 +// HSetData HSetData
  9 +func HSetData(conn redis.Conn, value IData) error {
  10 + _, err := conn.Do("HSET", value.TableName(), value.DbKey(), value.ToString())
  11 + return err
  12 +}
  13 +
  14 +// HGetData HSetData
  15 +func HGetData(conn redis.Conn, value IData) IData {
  16 + text, err := redis.String(conn.Do("HGET", value.TableName(), value.DbKey()))
  17 + if err == nil {
  18 + errJson := zjson.Obj(text, value)
  19 + if errJson != nil {
  20 + return nil
  21 + }
  22 + }
  23 + return value
  24 +}
util/zredis/interface.go 0 → 100644
@@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
  1 +package zredis
  2 +
  3 +type IData interface {
  4 + TableName() (text string)
  5 + DbKey() (text string)
  6 + ToString() (text string)
  7 +}
util/zredis/kv.go 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +package zredis
  2 +
  3 +import (
  4 + "github.com/gomodule/redigo/redis"
  5 +)
  6 +
  7 +func Increment(key string) int64 {
  8 + conn := GetConn()
  9 + if conn == nil {
  10 + return 0
  11 + }
  12 + defer conn.Close()
  13 +
  14 + value, err := redis.Int64(conn.Do("INCR", key))
  15 + if err == nil {
  16 + return value
  17 + }
  18 + return 0
  19 +}
util/zredis/redis.go 0 → 100644
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +package zredis
  2 +
  3 +import (
  4 + "github.com/gomodule/redigo/redis"
  5 + "time"
  6 +)
  7 +
  8 +var (
  9 + _addr string
  10 + _pass string
  11 + _db int
  12 +)
  13 +var pool *redis.Pool
  14 +
  15 +func Init(addr, pass string, db int) {
  16 +
  17 + _addr, _pass, _db = addr, pass, db
  18 +
  19 + pool = &redis.Pool{
  20 + MaxActive: 10240,
  21 + MaxIdle: 10240, // Maximum number of idle connections in the pool.
  22 + IdleTimeout: 240 * time.Second, // Close connections after remaining idle for this duration
  23 + Dial: dial,
  24 + Wait: true,
  25 + }
  26 +}
  27 +
  28 +func dial() (redis.Conn, error) {
  29 + conn, err := redis.Dial("tcp", _addr,
  30 + redis.DialPassword(_pass),
  31 + redis.DialDatabase(_db),
  32 + redis.DialConnectTimeout(5*time.Second),
  33 + redis.DialReadTimeout(5*time.Second),
  34 + redis.DialWriteTimeout(5*time.Second),
  35 + )
  36 + return conn, err
  37 +}
  38 +
  39 +func GetConn() redis.Conn {
  40 + if pool == nil {
  41 + return nil
  42 + }
  43 + return pool.Get()
  44 +}
  45 +
  46 +func AutoClose(conn redis.Conn) {
  47 + err := conn.Close()
  48 + if err != nil {
  49 + }
  50 +}