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 @@ @@ -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,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,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,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,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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 +}