Commit 2af431f167ec77590723808bad2d09f0f3d15d05

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

doc:项目目录和功能文档

README.md 0 → 100644
... ... @@ -0,0 +1,22 @@
  1 +
  2 +## 项目目录结构
  3 +
  4 +| 项目目录 | 目录说明 |
  5 +|-------------|----------|
  6 +| api-common | 公共模块 |
  7 +| conf | beego配置 |
  8 +| controllers | 控制器 |
  9 +| dto | 数据库存储对象 |
  10 +| models | 与客户端传输对象 |
  11 +| routers | 路由 |
  12 +| sdk | SDK |
  13 +| service | 游戏服务器逻辑 |
  14 +| sign | 签名 |
  15 +| util | 公共库 |
  16 +| lx-util | 公共库(李旭) |
  17 +
  18 +## 游戏和游戏功能列表
  19 +
  20 +| 功能模块名 | 所属游戏 | 所属功能 | 负责人 |
  21 +|---------------|------|------|-----|
  22 +| ht-cardholder | 海滩 | 卡包卡牌 | 王家文 |
... ...
lx-util/lxbeego/log.go
... ... @@ -1,51 +0,0 @@
1   -package lxbeego
2   -
3   -import (
4   - "encoding/json"
5   - "gitee.com/lxgow/lxconv"
6   - "github.com/astaxie/beego"
7   - "github.com/astaxie/beego/logs"
8   - "strings"
9   -)
10   -
11   -// beego logs 封装
12   -
13   -// Inits 初始化设置
14   -func Inits(config map[string]string) (err error) {
15   -
16   - var newConfig = make(map[string]interface{})
17   -
18   - for k, v := range config {
19   - newConfig[k] = v
20   - }
21   -
22   - if config["level"] != "" {
23   - newConfig["level"] = lxconv.ToInt64(config["level"])
24   - }
25   -
26   - if config["maxdays"] != "" {
27   - newConfig["maxdays"] = lxconv.ToInt64(config["maxdays"])
28   - }
29   -
30   - if config["maxlines"] != "" {
31   - newConfig["maxlines"] = lxconv.ToInt64(config["maxlines"])
32   - }
33   -
34   - if config["rotate"] != "" {
35   - newConfig["rotate"] = lxconv.ToBool(config["rotate"])
36   - }
37   -
38   - bdata, _ := json.Marshal(newConfig)
39   -
40   - err = logs.SetLogger(logs.AdapterFile, string(bdata))
41   -
42   - if err != nil {
43   - return err
44   - }
45   -
46   - if strings.ToLower(config["dellogger"]) == "true" {
47   - _ = beego.BeeLogger.DelLogger("console")
48   - }
49   -
50   - return
51   -}
lx-util/lxbeego/request.go
... ... @@ -1,83 +0,0 @@
1   -package lxbeego
2   -
3   -import (
4   - "crypto/tls"
5   - "github.com/astaxie/beego/httplib"
6   - "io/ioutil"
7   - "strings"
8   -)
9   -
10   -func PostBody(apiurl string, data map[string]interface{}) (content []byte, httpcode int, err error) {
11   -
12   - req := httplib.Post(apiurl)
13   -
14   - if strings.Contains(apiurl, "https://") {
15   - req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
16   - }
17   -
18   - req.JSONBody(data)
19   -
20   - resp, err := req.Response()
21   -
22   - if err != nil {
23   - return
24   - }
25   -
26   - httpcode = resp.StatusCode
27   -
28   - content, err = ioutil.ReadAll(resp.Body)
29   -
30   - resp.Body.Close()
31   -
32   - return
33   -}
34   -
35   -func PostParam(apiurl string, data map[string]string) (content []byte, httpcode int, err error) {
36   -
37   - req := httplib.Post(apiurl)
38   -
39   - if strings.Contains(apiurl, "https://") {
40   - req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
41   - }
42   -
43   - for k, v := range data {
44   - req.Param(k, v)
45   - }
46   -
47   - resp, err := req.Response()
48   -
49   - if err != nil {
50   - return
51   - }
52   -
53   - httpcode = resp.StatusCode
54   -
55   - content, err = ioutil.ReadAll(resp.Body)
56   -
57   - resp.Body.Close()
58   -
59   - return
60   -}
61   -
62   -func Get(apiurl string) (content []byte, httpcode int, err error) {
63   -
64   - req := httplib.Get(apiurl)
65   -
66   - if strings.Contains(apiurl, "https://") {
67   - req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
68   - }
69   -
70   - resp, err := req.Response()
71   -
72   - if err != nil {
73   - return
74   - }
75   -
76   - httpcode = resp.StatusCode
77   -
78   - content, err = ioutil.ReadAll(resp.Body)
79   -
80   - resp.Body.Close()
81   -
82   - return
83   -}
lx-util/lxredis/hash.go
... ... @@ -1,182 +0,0 @@
1   -package lxredis
2   -
3   -import redigo "github.com/garyburd/redigo/redis"
4   -
5   -// hash
6   -// 创建时间:2023/12/14 14:21
7   -// 创建人:lixu
8   -
9   -// HashExists 存在的否
10   -func (con *LXredis) HashExists(minikey string) (isxists bool, err error) {
11   -
12   - var (
13   - nname string
14   - nums int64
15   - )
16   -
17   - if con.Prefix != "" {
18   - nname = con.Prefix + con.Name
19   - } else {
20   - nname = LXREDISCONFIG.Prefix + con.Name
21   - }
22   -
23   - redis := GetLxRedis()
24   -
25   - defer redis.Close()
26   -
27   - if con.Db != "" {
28   - if _, err = redis.Do("SELECT", con.Db); err != nil {
29   - return
30   - }
31   - }
32   -
33   - nums, err = redigo.Int64(redis.Do("HEXISTS", nname, minikey))
34   - if err != nil {
35   - return
36   - }
37   -
38   - if nums < 1 {
39   - return
40   - }
41   - isxists = true
42   -
43   - return
44   -}
45   -
46   -// HashSet 设置
47   -func (con *LXredis) HashSet(minikey string) (err error) {
48   -
49   - var (
50   - nname string
51   - )
52   -
53   - if con.Prefix != "" {
54   - nname = con.Prefix + con.Name
55   - } else {
56   - nname = LXREDISCONFIG.Prefix + con.Name
57   - }
58   -
59   - redis := GetLxRedis()
60   -
61   - defer redis.Close()
62   -
63   - if con.Db != "" {
64   - if _, err = redis.Do("SELECT", con.Db); err != nil {
65   - return
66   - }
67   - }
68   -
69   - _, err = redis.Do("HMSET", nname, minikey, con.Val)
70   -
71   - return
72   -}
73   -
74   -// HashGet 获取
75   -func (con *LXredis) HashGet(minikey string) (content string, err error) {
76   -
77   - var (
78   - nname string
79   - )
80   -
81   - if con.Prefix != "" {
82   - nname = con.Prefix + con.Name
83   - } else {
84   - nname = LXREDISCONFIG.Prefix + con.Name
85   - }
86   -
87   - redis := GetLxRedis()
88   -
89   - defer redis.Close()
90   -
91   - if con.Db != "" {
92   - if _, err = redis.Do("SELECT", con.Db); err != nil {
93   - return
94   - }
95   - }
96   -
97   - content, err = redigo.String(redis.Do("HGET", nname, minikey))
98   -
99   - return
100   -}
101   -
102   -// HashGetAll 获取
103   -func (con *LXredis) HashGetAll() (content []string, err error) {
104   -
105   - var (
106   - nname string
107   - )
108   -
109   - if con.Prefix != "" {
110   - nname = con.Prefix + con.Name
111   - } else {
112   - nname = LXREDISCONFIG.Prefix + con.Name
113   - }
114   -
115   - redis := GetLxRedis()
116   -
117   - defer redis.Close()
118   -
119   - if con.Db != "" {
120   - if _, err = redis.Do("SELECT", con.Db); err != nil {
121   - return
122   - }
123   - }
124   -
125   - content, err = redigo.Strings(redis.Do("HGETALL", nname))
126   -
127   - return
128   -}
129   -
130   -// HashKeys 获取
131   -func (con *LXredis) HashKeys() (ks []string, err error) {
132   -
133   - var (
134   - nname string
135   - )
136   -
137   - if con.Prefix != "" {
138   - nname = con.Prefix + con.Name
139   - } else {
140   - nname = LXREDISCONFIG.Prefix + con.Name
141   - }
142   -
143   - redis := GetLxRedis()
144   -
145   - defer redis.Close()
146   -
147   - if con.Db != "" {
148   - if _, err = redis.Do("SELECT", con.Db); err != nil {
149   - return
150   - }
151   - }
152   -
153   - ks, err = redigo.Strings(redis.Do("HKEYS", nname))
154   -
155   - return
156   -}
157   -
158   -// HashDelete 删除
159   -func (con *LXredis) HashDelete(minikey string) (islock bool, err error) {
160   -
161   - var nname string
162   -
163   - if con.Prefix != "" {
164   - nname = con.Prefix + con.Name
165   - } else {
166   - nname = LXREDISCONFIG.Prefix + con.Name
167   - }
168   -
169   - redis := GetLxRedis()
170   -
171   - defer redis.Close()
172   -
173   - if con.Db != "" {
174   - if _, err = redis.Do("SELECT", con.Db); err != nil {
175   - return
176   - }
177   - }
178   -
179   - _, err = redis.Do("HDEL", nname, minikey)
180   -
181   - return
182   -}
lx-util/lxredis/index.go
... ... @@ -1,304 +0,0 @@
1   -package lxredis
2   -
3   -import (
4   - "fmt"
5   -
6   - redigo "github.com/garyburd/redigo/redis"
7   -)
8   -
9   -var LXREDISPOOL *redigo.Pool
10   -var LXREDISCONFIG MapRedisConfig //默认配置
11   -
12   -type MapRedisConfig 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   -type LXredis struct {
21   - Name string `json:"name"`
22   - Val string `json:"val"`
23   - Db string `json:"db"`
24   - Prefix string `json:"prefix"`
25   -}
26   -
27   -func GetLxRedis() redigo.Conn {
28   - return LXREDISPOOL.Get()
29   -}
30   -
31   -// InitRedis 初始化Redis
32   -func InitRedis(config MapRedisConfig) (err error) {
33   -
34   - LXREDISCONFIG = config
35   -
36   - pool_size := 20
37   -
38   - LXREDISPOOL = redigo.NewPool(func() (redigo.Conn, error) {
39   - c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%s", LXREDISCONFIG.Host, LXREDISCONFIG.Port))
40   - if err != nil {
41   - return nil, err
42   - }
43   - if _, err := c.Do("AUTH", LXREDISCONFIG.Pwd); err != nil {
44   - c.Close()
45   - return nil, err
46   - }
47   - if _, err := c.Do("SELECT", LXREDISCONFIG.Db); err != nil {
48   - c.Close()
49   - return nil, err
50   - }
51   -
52   - return c, nil
53   - }, pool_size)
54   -
55   - return
56   -}
57   -
58   -// IsExist 判断key是否存在
59   -func (con *LXredis) IsExist() (isexit bool, err error) {
60   -
61   - var nname string
62   -
63   - if con.Prefix != "" {
64   - nname = con.Prefix + con.Name
65   - } else {
66   - nname = LXREDISCONFIG.Prefix + con.Name
67   - }
68   -
69   - redis := GetLxRedis()
70   -
71   - defer redis.Close()
72   -
73   - if con.Db != "" {
74   - if _, err = redis.Do("SELECT", con.Db); err != nil {
75   - return
76   - }
77   - }
78   -
79   - isexit, err = redigo.Bool(redis.Do("EXISTS", nname))
80   - return
81   -}
82   -
83   -// Set 设置redis字符串
84   -func (con *LXredis) Set() (err error) {
85   -
86   - var nname string
87   -
88   - if con.Prefix != "" {
89   - nname = con.Prefix + con.Name
90   - } else {
91   - nname = LXREDISCONFIG.Prefix + con.Name
92   - }
93   -
94   - redis := GetLxRedis()
95   -
96   - defer redis.Close()
97   -
98   - if con.Db != "" {
99   - if _, err = redis.Do("SELECT", con.Db); err != nil {
100   - return
101   - }
102   - }
103   -
104   - _, err = redis.Do("set", nname, con.Val)
105   -
106   - return
107   -}
108   -
109   -// SetTime 设置redis字符串 加过期时间
110   -func (con *LXredis) SetTime(times int) (err error) {
111   -
112   - var nname string
113   -
114   - if con.Prefix != "" {
115   - nname = con.Prefix + con.Name
116   - } else {
117   - nname = LXREDISCONFIG.Prefix + con.Name
118   - }
119   -
120   - redis := GetLxRedis()
121   -
122   - defer redis.Close()
123   -
124   - if con.Db != "" {
125   - if _, err = redis.Do("SELECT", con.Db); err != nil {
126   - return
127   - }
128   - }
129   -
130   - _, err = redis.Do("set", nname, con.Val, "EX", times)
131   -
132   - return
133   -}
134   -
135   -// GET 获取redis
136   -func (con *LXredis) GET() (gstr string, err error) {
137   -
138   - var nname string
139   -
140   - if con.Prefix != "" {
141   - nname = con.Prefix + con.Name
142   - } else {
143   - nname = LXREDISCONFIG.Prefix + con.Name
144   - }
145   -
146   - redis := GetLxRedis()
147   -
148   - defer redis.Close()
149   -
150   - if con.Db != "" {
151   - if _, err = redis.Do("SELECT", con.Db); err != nil {
152   - return
153   - }
154   -
155   - }
156   -
157   - gstr, err = redigo.String(redis.Do("GET", nname))
158   -
159   - return
160   -}
161   -
162   -// INCR 自增
163   -func (con *LXredis) INCR() (nums int64, err error) {
164   -
165   - var nname string
166   -
167   - if con.Prefix != "" {
168   - nname = con.Prefix + con.Name
169   - } else {
170   - nname = LXREDISCONFIG.Prefix + con.Name
171   - }
172   -
173   - redis := GetLxRedis()
174   -
175   - defer redis.Close()
176   -
177   - if con.Db != "" {
178   - if _, err = redis.Do("SELECT", con.Db); err != nil {
179   - return
180   - }
181   - }
182   -
183   - nums, err = redigo.Int64(redis.Do("INCR", nname))
184   -
185   - return
186   -}
187   -
188   -// DELETE 删除
189   -func (con *LXredis) DELETE() (err error) {
190   -
191   - var nname string
192   -
193   - if con.Prefix != "" {
194   - nname = con.Prefix + con.Name
195   - } else {
196   - nname = LXREDISCONFIG.Prefix + con.Name
197   - }
198   -
199   - redis := GetLxRedis()
200   -
201   - defer redis.Close()
202   -
203   - if con.Db != "" {
204   - if _, err = redis.Do("SELECT", con.Db); err != nil {
205   - return
206   - }
207   - }
208   -
209   - is_key_exit, _ := redigo.Bool(redis.Do("EXISTS", nname))
210   - if is_key_exit {
211   - _, err = redis.Do("DEL", nname)
212   - if err != nil {
213   - return
214   - }
215   - }
216   -
217   - return
218   -}
219   -
220   -// EXPIRE 设置过期时间
221   -func (con *LXredis) EXPIRE(times int) (err error) {
222   -
223   - var nname string
224   -
225   - if con.Prefix != "" {
226   - nname = con.Prefix + con.Name
227   - } else {
228   - nname = LXREDISCONFIG.Prefix + con.Name
229   - }
230   -
231   - redis := GetLxRedis()
232   -
233   - defer redis.Close()
234   -
235   - if con.Db != "" {
236   - if _, err = redis.Do("SELECT", con.Db); err != nil {
237   - return
238   - }
239   - }
240   -
241   - _, err = redigo.Int(redis.Do("EXPIRE", nname, times))
242   -
243   - return
244   -}
245   -
246   -// TTL 查看过期时间
247   -func (con *LXredis) TTL() (ttl int, err error) {
248   -
249   - var nname string
250   -
251   - if con.Prefix != "" {
252   - nname = con.Prefix + con.Name
253   - } else {
254   - nname = LXREDISCONFIG.Prefix + con.Name
255   - }
256   -
257   - redis := GetLxRedis()
258   -
259   - defer redis.Close()
260   -
261   - if con.Db != "" {
262   - if _, err = redis.Do("SELECT", con.Db); err != nil {
263   - return
264   - }
265   - }
266   -
267   - ttl, err = redigo.Int(redis.Do("ttl", nname))
268   -
269   - return
270   -}
271   -
272   -// LOCK 排他锁
273   -func (con *LXredis) LOCK(ex int) (islock bool, err error) {
274   -
275   - var (
276   - nname string
277   - ix = "lock::"
278   - binf int
279   - )
280   -
281   - if ex < 1 {
282   - ex = 1
283   - }
284   -
285   - if con.Prefix != "" {
286   - nname = con.Prefix + ix + con.Name
287   - } else {
288   - nname = LXREDISCONFIG.Prefix + ix + con.Name
289   - }
290   -
291   - redis := GetLxRedis()
292   -
293   - defer redis.Close()
294   -
295   - binf, err = redigo.Int(redis.Do("setnx", nname, ""))
296   -
297   - redis.Do("EXPIRE", nname, ex)
298   -
299   - if err == nil && binf == 0 {
300   - islock = true
301   - }
302   -
303   - return
304   -}
util/util-lx/lxbeego/log.go 0 → 100644
... ... @@ -0,0 +1,51 @@
  1 +package lxbeego
  2 +
  3 +import (
  4 + "encoding/json"
  5 + "gitee.com/lxgow/lxconv"
  6 + "github.com/astaxie/beego"
  7 + "github.com/astaxie/beego/logs"
  8 + "strings"
  9 +)
  10 +
  11 +// beego logs 封装
  12 +
  13 +// Inits 初始化设置
  14 +func Inits(config map[string]string) (err error) {
  15 +
  16 + var newConfig = make(map[string]interface{})
  17 +
  18 + for k, v := range config {
  19 + newConfig[k] = v
  20 + }
  21 +
  22 + if config["level"] != "" {
  23 + newConfig["level"] = lxconv.ToInt64(config["level"])
  24 + }
  25 +
  26 + if config["maxdays"] != "" {
  27 + newConfig["maxdays"] = lxconv.ToInt64(config["maxdays"])
  28 + }
  29 +
  30 + if config["maxlines"] != "" {
  31 + newConfig["maxlines"] = lxconv.ToInt64(config["maxlines"])
  32 + }
  33 +
  34 + if config["rotate"] != "" {
  35 + newConfig["rotate"] = lxconv.ToBool(config["rotate"])
  36 + }
  37 +
  38 + bdata, _ := json.Marshal(newConfig)
  39 +
  40 + err = logs.SetLogger(logs.AdapterFile, string(bdata))
  41 +
  42 + if err != nil {
  43 + return err
  44 + }
  45 +
  46 + if strings.ToLower(config["dellogger"]) == "true" {
  47 + _ = beego.BeeLogger.DelLogger("console")
  48 + }
  49 +
  50 + return
  51 +}
... ...
util/util-lx/lxbeego/request.go 0 → 100644
... ... @@ -0,0 +1,83 @@
  1 +package lxbeego
  2 +
  3 +import (
  4 + "crypto/tls"
  5 + "github.com/astaxie/beego/httplib"
  6 + "io/ioutil"
  7 + "strings"
  8 +)
  9 +
  10 +func PostBody(apiurl string, data map[string]interface{}) (content []byte, httpcode int, err error) {
  11 +
  12 + req := httplib.Post(apiurl)
  13 +
  14 + if strings.Contains(apiurl, "https://") {
  15 + req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
  16 + }
  17 +
  18 + req.JSONBody(data)
  19 +
  20 + resp, err := req.Response()
  21 +
  22 + if err != nil {
  23 + return
  24 + }
  25 +
  26 + httpcode = resp.StatusCode
  27 +
  28 + content, err = ioutil.ReadAll(resp.Body)
  29 +
  30 + resp.Body.Close()
  31 +
  32 + return
  33 +}
  34 +
  35 +func PostParam(apiurl string, data map[string]string) (content []byte, httpcode int, err error) {
  36 +
  37 + req := httplib.Post(apiurl)
  38 +
  39 + if strings.Contains(apiurl, "https://") {
  40 + req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
  41 + }
  42 +
  43 + for k, v := range data {
  44 + req.Param(k, v)
  45 + }
  46 +
  47 + resp, err := req.Response()
  48 +
  49 + if err != nil {
  50 + return
  51 + }
  52 +
  53 + httpcode = resp.StatusCode
  54 +
  55 + content, err = ioutil.ReadAll(resp.Body)
  56 +
  57 + resp.Body.Close()
  58 +
  59 + return
  60 +}
  61 +
  62 +func Get(apiurl string) (content []byte, httpcode int, err error) {
  63 +
  64 + req := httplib.Get(apiurl)
  65 +
  66 + if strings.Contains(apiurl, "https://") {
  67 + req.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
  68 + }
  69 +
  70 + resp, err := req.Response()
  71 +
  72 + if err != nil {
  73 + return
  74 + }
  75 +
  76 + httpcode = resp.StatusCode
  77 +
  78 + content, err = ioutil.ReadAll(resp.Body)
  79 +
  80 + resp.Body.Close()
  81 +
  82 + return
  83 +}
... ...
util/util-lx/lxredis/hash.go 0 → 100644
... ... @@ -0,0 +1,182 @@
  1 +package lxredis
  2 +
  3 +import redigo "github.com/garyburd/redigo/redis"
  4 +
  5 +// hash
  6 +// 创建时间:2023/12/14 14:21
  7 +// 创建人:lixu
  8 +
  9 +// HashExists 存在的否
  10 +func (con *LXredis) HashExists(minikey string) (isxists bool, err error) {
  11 +
  12 + var (
  13 + nname string
  14 + nums int64
  15 + )
  16 +
  17 + if con.Prefix != "" {
  18 + nname = con.Prefix + con.Name
  19 + } else {
  20 + nname = LXREDISCONFIG.Prefix + con.Name
  21 + }
  22 +
  23 + redis := GetLxRedis()
  24 +
  25 + defer redis.Close()
  26 +
  27 + if con.Db != "" {
  28 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  29 + return
  30 + }
  31 + }
  32 +
  33 + nums, err = redigo.Int64(redis.Do("HEXISTS", nname, minikey))
  34 + if err != nil {
  35 + return
  36 + }
  37 +
  38 + if nums < 1 {
  39 + return
  40 + }
  41 + isxists = true
  42 +
  43 + return
  44 +}
  45 +
  46 +// HashSet 设置
  47 +func (con *LXredis) HashSet(minikey string) (err error) {
  48 +
  49 + var (
  50 + nname string
  51 + )
  52 +
  53 + if con.Prefix != "" {
  54 + nname = con.Prefix + con.Name
  55 + } else {
  56 + nname = LXREDISCONFIG.Prefix + con.Name
  57 + }
  58 +
  59 + redis := GetLxRedis()
  60 +
  61 + defer redis.Close()
  62 +
  63 + if con.Db != "" {
  64 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  65 + return
  66 + }
  67 + }
  68 +
  69 + _, err = redis.Do("HMSET", nname, minikey, con.Val)
  70 +
  71 + return
  72 +}
  73 +
  74 +// HashGet 获取
  75 +func (con *LXredis) HashGet(minikey string) (content string, err error) {
  76 +
  77 + var (
  78 + nname string
  79 + )
  80 +
  81 + if con.Prefix != "" {
  82 + nname = con.Prefix + con.Name
  83 + } else {
  84 + nname = LXREDISCONFIG.Prefix + con.Name
  85 + }
  86 +
  87 + redis := GetLxRedis()
  88 +
  89 + defer redis.Close()
  90 +
  91 + if con.Db != "" {
  92 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  93 + return
  94 + }
  95 + }
  96 +
  97 + content, err = redigo.String(redis.Do("HGET", nname, minikey))
  98 +
  99 + return
  100 +}
  101 +
  102 +// HashGetAll 获取
  103 +func (con *LXredis) HashGetAll() (content []string, err error) {
  104 +
  105 + var (
  106 + nname string
  107 + )
  108 +
  109 + if con.Prefix != "" {
  110 + nname = con.Prefix + con.Name
  111 + } else {
  112 + nname = LXREDISCONFIG.Prefix + con.Name
  113 + }
  114 +
  115 + redis := GetLxRedis()
  116 +
  117 + defer redis.Close()
  118 +
  119 + if con.Db != "" {
  120 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  121 + return
  122 + }
  123 + }
  124 +
  125 + content, err = redigo.Strings(redis.Do("HGETALL", nname))
  126 +
  127 + return
  128 +}
  129 +
  130 +// HashKeys 获取
  131 +func (con *LXredis) HashKeys() (ks []string, err error) {
  132 +
  133 + var (
  134 + nname string
  135 + )
  136 +
  137 + if con.Prefix != "" {
  138 + nname = con.Prefix + con.Name
  139 + } else {
  140 + nname = LXREDISCONFIG.Prefix + con.Name
  141 + }
  142 +
  143 + redis := GetLxRedis()
  144 +
  145 + defer redis.Close()
  146 +
  147 + if con.Db != "" {
  148 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  149 + return
  150 + }
  151 + }
  152 +
  153 + ks, err = redigo.Strings(redis.Do("HKEYS", nname))
  154 +
  155 + return
  156 +}
  157 +
  158 +// HashDelete 删除
  159 +func (con *LXredis) HashDelete(minikey string) (islock bool, err error) {
  160 +
  161 + var nname string
  162 +
  163 + if con.Prefix != "" {
  164 + nname = con.Prefix + con.Name
  165 + } else {
  166 + nname = LXREDISCONFIG.Prefix + con.Name
  167 + }
  168 +
  169 + redis := GetLxRedis()
  170 +
  171 + defer redis.Close()
  172 +
  173 + if con.Db != "" {
  174 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  175 + return
  176 + }
  177 + }
  178 +
  179 + _, err = redis.Do("HDEL", nname, minikey)
  180 +
  181 + return
  182 +}
... ...
util/util-lx/lxredis/index.go 0 → 100644
... ... @@ -0,0 +1,304 @@
  1 +package lxredis
  2 +
  3 +import (
  4 + "fmt"
  5 +
  6 + redigo "github.com/garyburd/redigo/redis"
  7 +)
  8 +
  9 +var LXREDISPOOL *redigo.Pool
  10 +var LXREDISCONFIG MapRedisConfig //默认配置
  11 +
  12 +type MapRedisConfig 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 +type LXredis struct {
  21 + Name string `json:"name"`
  22 + Val string `json:"val"`
  23 + Db string `json:"db"`
  24 + Prefix string `json:"prefix"`
  25 +}
  26 +
  27 +func GetLxRedis() redigo.Conn {
  28 + return LXREDISPOOL.Get()
  29 +}
  30 +
  31 +// InitRedis 初始化Redis
  32 +func InitRedis(config MapRedisConfig) (err error) {
  33 +
  34 + LXREDISCONFIG = config
  35 +
  36 + pool_size := 20
  37 +
  38 + LXREDISPOOL = redigo.NewPool(func() (redigo.Conn, error) {
  39 + c, err := redigo.Dial("tcp", fmt.Sprintf("%s:%s", LXREDISCONFIG.Host, LXREDISCONFIG.Port))
  40 + if err != nil {
  41 + return nil, err
  42 + }
  43 + if _, err := c.Do("AUTH", LXREDISCONFIG.Pwd); err != nil {
  44 + c.Close()
  45 + return nil, err
  46 + }
  47 + if _, err := c.Do("SELECT", LXREDISCONFIG.Db); err != nil {
  48 + c.Close()
  49 + return nil, err
  50 + }
  51 +
  52 + return c, nil
  53 + }, pool_size)
  54 +
  55 + return
  56 +}
  57 +
  58 +// IsExist 判断key是否存在
  59 +func (con *LXredis) IsExist() (isexit bool, err error) {
  60 +
  61 + var nname string
  62 +
  63 + if con.Prefix != "" {
  64 + nname = con.Prefix + con.Name
  65 + } else {
  66 + nname = LXREDISCONFIG.Prefix + con.Name
  67 + }
  68 +
  69 + redis := GetLxRedis()
  70 +
  71 + defer redis.Close()
  72 +
  73 + if con.Db != "" {
  74 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  75 + return
  76 + }
  77 + }
  78 +
  79 + isexit, err = redigo.Bool(redis.Do("EXISTS", nname))
  80 + return
  81 +}
  82 +
  83 +// Set 设置redis字符串
  84 +func (con *LXredis) Set() (err error) {
  85 +
  86 + var nname string
  87 +
  88 + if con.Prefix != "" {
  89 + nname = con.Prefix + con.Name
  90 + } else {
  91 + nname = LXREDISCONFIG.Prefix + con.Name
  92 + }
  93 +
  94 + redis := GetLxRedis()
  95 +
  96 + defer redis.Close()
  97 +
  98 + if con.Db != "" {
  99 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  100 + return
  101 + }
  102 + }
  103 +
  104 + _, err = redis.Do("set", nname, con.Val)
  105 +
  106 + return
  107 +}
  108 +
  109 +// SetTime 设置redis字符串 加过期时间
  110 +func (con *LXredis) SetTime(times int) (err error) {
  111 +
  112 + var nname string
  113 +
  114 + if con.Prefix != "" {
  115 + nname = con.Prefix + con.Name
  116 + } else {
  117 + nname = LXREDISCONFIG.Prefix + con.Name
  118 + }
  119 +
  120 + redis := GetLxRedis()
  121 +
  122 + defer redis.Close()
  123 +
  124 + if con.Db != "" {
  125 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  126 + return
  127 + }
  128 + }
  129 +
  130 + _, err = redis.Do("set", nname, con.Val, "EX", times)
  131 +
  132 + return
  133 +}
  134 +
  135 +// GET 获取redis
  136 +func (con *LXredis) GET() (gstr string, err error) {
  137 +
  138 + var nname string
  139 +
  140 + if con.Prefix != "" {
  141 + nname = con.Prefix + con.Name
  142 + } else {
  143 + nname = LXREDISCONFIG.Prefix + con.Name
  144 + }
  145 +
  146 + redis := GetLxRedis()
  147 +
  148 + defer redis.Close()
  149 +
  150 + if con.Db != "" {
  151 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  152 + return
  153 + }
  154 +
  155 + }
  156 +
  157 + gstr, err = redigo.String(redis.Do("GET", nname))
  158 +
  159 + return
  160 +}
  161 +
  162 +// INCR 自增
  163 +func (con *LXredis) INCR() (nums int64, err error) {
  164 +
  165 + var nname string
  166 +
  167 + if con.Prefix != "" {
  168 + nname = con.Prefix + con.Name
  169 + } else {
  170 + nname = LXREDISCONFIG.Prefix + con.Name
  171 + }
  172 +
  173 + redis := GetLxRedis()
  174 +
  175 + defer redis.Close()
  176 +
  177 + if con.Db != "" {
  178 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  179 + return
  180 + }
  181 + }
  182 +
  183 + nums, err = redigo.Int64(redis.Do("INCR", nname))
  184 +
  185 + return
  186 +}
  187 +
  188 +// DELETE 删除
  189 +func (con *LXredis) DELETE() (err error) {
  190 +
  191 + var nname string
  192 +
  193 + if con.Prefix != "" {
  194 + nname = con.Prefix + con.Name
  195 + } else {
  196 + nname = LXREDISCONFIG.Prefix + con.Name
  197 + }
  198 +
  199 + redis := GetLxRedis()
  200 +
  201 + defer redis.Close()
  202 +
  203 + if con.Db != "" {
  204 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  205 + return
  206 + }
  207 + }
  208 +
  209 + is_key_exit, _ := redigo.Bool(redis.Do("EXISTS", nname))
  210 + if is_key_exit {
  211 + _, err = redis.Do("DEL", nname)
  212 + if err != nil {
  213 + return
  214 + }
  215 + }
  216 +
  217 + return
  218 +}
  219 +
  220 +// EXPIRE 设置过期时间
  221 +func (con *LXredis) EXPIRE(times int) (err error) {
  222 +
  223 + var nname string
  224 +
  225 + if con.Prefix != "" {
  226 + nname = con.Prefix + con.Name
  227 + } else {
  228 + nname = LXREDISCONFIG.Prefix + con.Name
  229 + }
  230 +
  231 + redis := GetLxRedis()
  232 +
  233 + defer redis.Close()
  234 +
  235 + if con.Db != "" {
  236 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  237 + return
  238 + }
  239 + }
  240 +
  241 + _, err = redigo.Int(redis.Do("EXPIRE", nname, times))
  242 +
  243 + return
  244 +}
  245 +
  246 +// TTL 查看过期时间
  247 +func (con *LXredis) TTL() (ttl int, err error) {
  248 +
  249 + var nname string
  250 +
  251 + if con.Prefix != "" {
  252 + nname = con.Prefix + con.Name
  253 + } else {
  254 + nname = LXREDISCONFIG.Prefix + con.Name
  255 + }
  256 +
  257 + redis := GetLxRedis()
  258 +
  259 + defer redis.Close()
  260 +
  261 + if con.Db != "" {
  262 + if _, err = redis.Do("SELECT", con.Db); err != nil {
  263 + return
  264 + }
  265 + }
  266 +
  267 + ttl, err = redigo.Int(redis.Do("ttl", nname))
  268 +
  269 + return
  270 +}
  271 +
  272 +// LOCK 排他锁
  273 +func (con *LXredis) LOCK(ex int) (islock bool, err error) {
  274 +
  275 + var (
  276 + nname string
  277 + ix = "lock::"
  278 + binf int
  279 + )
  280 +
  281 + if ex < 1 {
  282 + ex = 1
  283 + }
  284 +
  285 + if con.Prefix != "" {
  286 + nname = con.Prefix + ix + con.Name
  287 + } else {
  288 + nname = LXREDISCONFIG.Prefix + ix + con.Name
  289 + }
  290 +
  291 + redis := GetLxRedis()
  292 +
  293 + defer redis.Close()
  294 +
  295 + binf, err = redigo.Int(redis.Do("setnx", nname, ""))
  296 +
  297 + redis.Do("EXPIRE", nname, ex)
  298 +
  299 + if err == nil && binf == 0 {
  300 + islock = true
  301 + }
  302 +
  303 + return
  304 +}
... ...