Merge branch 'master' of http://gitlab.fjmaimaimai.com/mmm-go/gocomm
正在显示
8 个修改的文件
包含
140 行增加
和
47 行删除
| 1 | package common | 1 | package common |
| 2 | 2 | ||
| 3 | -import "fmt" | 3 | +import ( |
| 4 | + "bytes" | ||
| 5 | + "fmt" | ||
| 6 | + "encoding/json" | ||
| 7 | + "math/rand" | ||
| 8 | +) | ||
| 4 | 9 | ||
| 5 | // Must panics if err is not nil. | 10 | // Must panics if err is not nil. |
| 6 | func Must(err error) { | 11 | func Must(err error) { |
| @@ -22,4 +27,32 @@ func Error2(v interface{}, err error) error { | @@ -22,4 +27,32 @@ func Error2(v interface{}, err error) error { | ||
| 22 | 27 | ||
| 23 | func LogF(format string,args interface{})string{ | 28 | func LogF(format string,args interface{})string{ |
| 24 | return fmt.Sprintf(format,args) | 29 | return fmt.Sprintf(format,args) |
| 30 | +} | ||
| 31 | + | ||
| 32 | +func AssertJson(object interface{})string{ | ||
| 33 | + json,err :=json.Marshal(object) | ||
| 34 | + if err!=nil{ | ||
| 35 | + return "" | ||
| 36 | + } | ||
| 37 | + return string(json) | ||
| 38 | +} | ||
| 39 | + | ||
| 40 | +var randomChars = "ABCDEFGHJKMNPQRSTWXYZabcdefhjkmnprstwxyz2345678" /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/ | ||
| 41 | +func RandomString(l int)string{ | ||
| 42 | + return RandomStringWithChars(l,randomChars) | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +func RandomStringWithChars(l int,chars string)string{ | ||
| 46 | + if l<=0{ | ||
| 47 | + return "" | ||
| 48 | + } | ||
| 49 | + if len(chars)==0{ | ||
| 50 | + return "" | ||
| 51 | + } | ||
| 52 | + lenChars :=len(chars) -1 | ||
| 53 | + rsp :=bytes.NewBuffer(nil) | ||
| 54 | + for i:=0;i<l;i++{ | ||
| 55 | + rsp.WriteByte(chars[rand.Intn(lenChars)]) | ||
| 56 | + } | ||
| 57 | + return rsp.String() | ||
| 25 | } | 58 | } |
common/common_test.go
0 → 100644
| 1 | +package common | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "testing" | ||
| 5 | +) | ||
| 6 | + | ||
| 7 | +func Test_RandomString(t *testing.T){ | ||
| 8 | + input :=[]int{6,10,20,16,32} | ||
| 9 | + for i:=range input{ | ||
| 10 | + l :=input[i] | ||
| 11 | + out := RandomString(l) | ||
| 12 | + if len(out)!=l{ | ||
| 13 | + t.Fatal("length not equal want :",l," out:",out) | ||
| 14 | + } | ||
| 15 | + } | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func Benchmark_RandomString(b *testing.B) { | ||
| 19 | + input :=[]int{10,20,16,32} | ||
| 20 | + l :=0 | ||
| 21 | + out :="" | ||
| 22 | + for i:=0;i<b.N;i++{ | ||
| 23 | + l=i%4 | ||
| 24 | + l=input[l] | ||
| 25 | + out = RandomString(l) | ||
| 26 | + if len(out)!=l{ | ||
| 27 | + b.Fatal("length not equal want :",l," out:",out) | ||
| 28 | + } | ||
| 29 | + } | ||
| 30 | +} |
| @@ -7,13 +7,6 @@ type Error struct { | @@ -7,13 +7,6 @@ type Error struct { | ||
| 7 | err error | 7 | err error |
| 8 | } | 8 | } |
| 9 | 9 | ||
| 10 | -func (e Error)Error()string{ | ||
| 11 | - if e.err==nil{ | ||
| 12 | - return "" | ||
| 13 | - } | ||
| 14 | - return e.err.Error() | ||
| 15 | -} | ||
| 16 | - | ||
| 17 | func NewError(code int,e error)Error{ | 10 | func NewError(code int,e error)Error{ |
| 18 | return Error{ | 11 | return Error{ |
| 19 | Code:code, | 12 | Code:code, |
| @@ -24,3 +17,14 @@ func NewError(code int,e error)Error{ | @@ -24,3 +17,14 @@ func NewError(code int,e error)Error{ | ||
| 24 | func NewErrorWithMsg(code int,msg string)Error{ | 17 | func NewErrorWithMsg(code int,msg string)Error{ |
| 25 | return NewError(code,fmt.Errorf(msg)) | 18 | return NewError(code,fmt.Errorf(msg)) |
| 26 | } | 19 | } |
| 20 | + | ||
| 21 | +func (e Error)Error()string{ | ||
| 22 | + if e.err==nil{ | ||
| 23 | + return "" | ||
| 24 | + } | ||
| 25 | + return e.err.Error() | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +func(e Error)Unwrap()error{ | ||
| 29 | + return e.err | ||
| 30 | +} |
| 1 | package common | 1 | package common |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "errors" | ||
| 4 | "fmt" | 5 | "fmt" |
| 5 | "testing" | 6 | "testing" |
| 6 | ) | 7 | ) |
| @@ -12,4 +13,19 @@ func Test_Error(t *testing.T){ | @@ -12,4 +13,19 @@ func Test_Error(t *testing.T){ | ||
| 12 | 13 | ||
| 13 | emsg :=NewErrorWithMsg(2,"some error") | 14 | emsg :=NewErrorWithMsg(2,"some error") |
| 14 | t.Log(emsg,emsg.Code) | 15 | t.Log(emsg,emsg.Code) |
| 16 | +} | ||
| 17 | + | ||
| 18 | +func Test_AssertError(t *testing.T){ | ||
| 19 | + var targetErr = NewError(1,fmt.Errorf("%v","some error")) | ||
| 20 | + var e error =targetErr | ||
| 21 | + if !errors.Is(e,targetErr){ | ||
| 22 | + t.Fatal("errors.Is not equal") | ||
| 23 | + } | ||
| 24 | + if errors.Unwrap(e) ==nil{ | ||
| 25 | + t.Fatal("errors.Unwrap not nil") | ||
| 26 | + } | ||
| 27 | + var commErr Error | ||
| 28 | + if !errors.As(e,&commErr){ | ||
| 29 | + t.Fatal("errors.As error") | ||
| 30 | + } | ||
| 15 | } | 31 | } |
pkg/log/default.go
0 → 100644
| 1 | +package log | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "log" | ||
| 5 | +) | ||
| 6 | + | ||
| 7 | +type ConsoleLog struct { | ||
| 8 | + | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +func newConsoleLog()Log{ | ||
| 12 | + return &ConsoleLog{} | ||
| 13 | +} | ||
| 14 | + | ||
| 15 | +func(this *ConsoleLog)Debug(args ...interface{}){ | ||
| 16 | + //this.log.Debug(args...) | ||
| 17 | + log.Println(args...) | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func(this *ConsoleLog)Info(args ...interface{}){ | ||
| 21 | + log.Println(args...) | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func(this *ConsoleLog)Warn(args ...interface{}){ | ||
| 25 | + log.Println(args...) | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +func(this *ConsoleLog)Error(args ...interface{}){ | ||
| 29 | + log.Println(args...) | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +func(this *ConsoleLog)Panic(args ...interface{}){ | ||
| 33 | + log.Println(args...) | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +func(this *ConsoleLog)Fatal(args ...interface{}){ | ||
| 37 | + log.Println(args...) | ||
| 38 | +} |
| @@ -12,7 +12,7 @@ type Log interface{ | @@ -12,7 +12,7 @@ type Log interface{ | ||
| 12 | } | 12 | } |
| 13 | 13 | ||
| 14 | var( | 14 | var( |
| 15 | - DefaultLog Log | 15 | + DefaultLog Log =newConsoleLog() |
| 16 | ) | 16 | ) |
| 17 | 17 | ||
| 18 | func InitLog(conf config.Logger){ | 18 | func InitLog(conf config.Logger){ |
| @@ -36,3 +36,4 @@ func Panic(args ...interface{}){ | @@ -36,3 +36,4 @@ func Panic(args ...interface{}){ | ||
| 36 | func Fatal(args ...interface{}){ | 36 | func Fatal(args ...interface{}){ |
| 37 | DefaultLog.Fatal(args...) | 37 | DefaultLog.Fatal(args...) |
| 38 | } | 38 | } |
| 39 | + |
| @@ -33,17 +33,16 @@ func (this *BaseController) Options() { | @@ -33,17 +33,16 @@ func (this *BaseController) Options() { | ||
| 33 | func (this *BaseController) AllowCross() { | 33 | func (this *BaseController) AllowCross() { |
| 34 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*") | 34 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*") |
| 35 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") | 35 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") |
| 36 | - //this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "uid, token,jwt, deviceid, appid,Content-Type,Authorization,from") | ||
| 37 | - this.Ctx.WriteString("") | 36 | + this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "*") |
| 37 | + //this.Ctx.WriteString("") | ||
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | func (this *BaseController) Prepare() { | 40 | func (this *BaseController) Prepare() { |
| 41 | - | ||
| 42 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*") | 41 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*") |
| 42 | + this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "*") | ||
| 43 | if this.Ctx.Input.Method() == "OPTIONS" { | 43 | if this.Ctx.Input.Method() == "OPTIONS" { |
| 44 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") | 44 | this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE") |
| 45 | - //this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "uid, token,jwt, deviceid, appid,Content-Type,Authorization,from") | ||
| 46 | - this.Ctx.WriteString("") | 45 | + //this.Ctx.WriteString("") |
| 47 | return | 46 | return |
| 48 | } | 47 | } |
| 49 | 48 | ||
| @@ -118,34 +117,3 @@ func (this *BaseController) Finish() { | @@ -118,34 +117,3 @@ func (this *BaseController) Finish() { | ||
| 118 | log.Info(fmt.Sprintf("<====Send to uid(%d) client: %d byte\nRequestId:%s RspBodyData: %s", this.RequestHead.Uid, length,this.RequestHead.GetRequestId(), string(strByte))) | 117 | log.Info(fmt.Sprintf("<====Send to uid(%d) client: %d byte\nRequestId:%s RspBodyData: %s", this.RequestHead.Uid, length,this.RequestHead.GetRequestId(), string(strByte))) |
| 119 | } | 118 | } |
| 120 | } | 119 | } |
| 121 | - | ||
| 122 | -// BaseControllerCallBack | ||
| 123 | -type BaseControllerCallBack struct { | ||
| 124 | - beego.Controller | ||
| 125 | - Query map[string]string | ||
| 126 | - JSONBody map[string]interface{} | ||
| 127 | - ByteBody []byte | ||
| 128 | -} | ||
| 129 | - | ||
| 130 | -func (this *BaseControllerCallBack) Prepare() { | ||
| 131 | - this.Query = map[string]string{} | ||
| 132 | - input := this.Input() | ||
| 133 | - for k := range input { | ||
| 134 | - this.Query[k] = input.Get(k) | ||
| 135 | - } | ||
| 136 | - | ||
| 137 | - if this.Ctx.Input.RequestBody != nil { | ||
| 138 | - log.Info("RecvHead:", string(this.Ctx.Input.Header("Authorization"))) | ||
| 139 | - this.ByteBody = this.Ctx.Input.RequestBody | ||
| 140 | - } | ||
| 141 | -} | ||
| 142 | - | ||
| 143 | -func (this *BaseControllerCallBack) Resp(msg *Message) { | ||
| 144 | - this.Data["json"] = msg | ||
| 145 | - this.ServeJSON() | ||
| 146 | -} | ||
| 147 | - | ||
| 148 | -func (this *BaseControllerCallBack) Finish() { | ||
| 149 | - strByte, _ := json.Marshal(this.Data["json"]) | ||
| 150 | - log.Debug("<====Send to client:\n", string(strByte)) | ||
| 151 | -} |
| @@ -3,7 +3,6 @@ package mybeego | @@ -3,7 +3,6 @@ package mybeego | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | 4 | "fmt" |
| 5 | "github.com/astaxie/beego" | 5 | "github.com/astaxie/beego" |
| 6 | - "time" | ||
| 7 | ) | 6 | ) |
| 8 | 7 | ||
| 9 | //type IMessage interface { | 8 | //type IMessage interface { |
| @@ -32,7 +31,7 @@ func NewMessage(code int) *Message { | @@ -32,7 +31,7 @@ func NewMessage(code int) *Message { | ||
| 32 | return &Message{ | 31 | return &Message{ |
| 33 | Errno: code, | 32 | Errno: code, |
| 34 | Errmsg: ErrnoMsg[code], | 33 | Errmsg: ErrnoMsg[code], |
| 35 | - SysTime: time.Now().Unix(), | 34 | + //SysTime: time.Now().Unix(), |
| 36 | } | 35 | } |
| 37 | } | 36 | } |
| 38 | 37 | ||
| @@ -64,4 +63,8 @@ func init() { | @@ -64,4 +63,8 @@ func init() { | ||
| 64 | ErrnoMsg[4] = "您目前使用的版本过低,无法显示最新的相关内容,请使用最新版本。" | 63 | ErrnoMsg[4] = "您目前使用的版本过低,无法显示最新的相关内容,请使用最新版本。" |
| 65 | ErrnoMsg[5] = "描述包含敏感词,请重新编辑" | 64 | ErrnoMsg[5] = "描述包含敏感词,请重新编辑" |
| 66 | ErrnoMsg[6] ="重复提交,请稍后再试" | 65 | ErrnoMsg[6] ="重复提交,请稍后再试" |
| 66 | +} | ||
| 67 | + | ||
| 68 | +func SetMessage(code int,msg string){ | ||
| 69 | + ErrnoMsg[code] = msg | ||
| 67 | } | 70 | } |
-
请 注册 或 登录 后发表评论