正在显示
7 个修改的文件
包含
234 行增加
和
3 行删除
| @@ -5,6 +5,7 @@ go 1.14 | @@ -5,6 +5,7 @@ go 1.14 | ||
| 5 | require ( | 5 | require ( |
| 6 | github.com/astaxie/beego v1.12.1 | 6 | github.com/astaxie/beego v1.12.1 |
| 7 | github.com/dgrijalva/jwt-go v3.2.0+incompatible | 7 | github.com/dgrijalva/jwt-go v3.2.0+incompatible |
| 8 | + github.com/gin-gonic/gin v1.4.0 | ||
| 8 | github.com/go-pg/pg/v10 v10.0.0-beta.2 | 9 | github.com/go-pg/pg/v10 v10.0.0-beta.2 |
| 9 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 | 10 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 |
| 10 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect | 11 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect |
| @@ -7,6 +7,7 @@ import ( | @@ -7,6 +7,7 @@ import ( | ||
| 7 | _ "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg" | 7 | _ "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg" |
| 8 | _ "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/redis" | 8 | _ "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/redis" |
| 9 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log" | 9 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log" |
| 10 | + //"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/ginsvr" | ||
| 10 | _ "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/appsvr" | 11 | _ "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/appsvr" |
| 11 | ) | 12 | ) |
| 12 | 13 | ||
| @@ -16,5 +17,6 @@ func main() { | @@ -16,5 +17,6 @@ func main() { | ||
| 16 | }() | 17 | }() |
| 17 | log.Info("app start!") | 18 | log.Info("app start!") |
| 18 | log.Info(constant.POSTGRESQL_DB_NAME) | 19 | log.Info(constant.POSTGRESQL_DB_NAME) |
| 20 | + //ginsvr.Run() | ||
| 19 | beego.Run() | 21 | beego.Run() |
| 20 | } | 22 | } |
| @@ -4,9 +4,9 @@ import "os" | @@ -4,9 +4,9 @@ import "os" | ||
| 4 | 4 | ||
| 5 | var POSTGRESQL_DB_NAME = "partner_dev" //partner | 5 | var POSTGRESQL_DB_NAME = "partner_dev" //partner |
| 6 | var POSTGRESQL_USER = "postgres" // | 6 | var POSTGRESQL_USER = "postgres" // |
| 7 | -var POSTGRESQL_PASSWORD = "postgres_15432" //pgsql@123 | ||
| 8 | -var POSTGRESQL_HOST = "101.37.68.23" //127.0.0.1 | ||
| 9 | -var POSTGRESQL_PORT = "15432" //5432 | 7 | +var POSTGRESQL_PASSWORD = "eagle1010" //pgsql@123 |
| 8 | +var POSTGRESQL_HOST = "114.55.200.59" //127.0.0.1 | ||
| 9 | +var POSTGRESQL_PORT = "31543" //5432 | ||
| 10 | var DISABLE_CREATE_TABLE = false | 10 | var DISABLE_CREATE_TABLE = false |
| 11 | var DISABLE_SQL_GENERATE_PRINT = false | 11 | var DISABLE_SQL_GENERATE_PRINT = false |
| 12 | 12 |
pkg/port/ginsvr/controllers/base.go
0 → 100644
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego/validation" | ||
| 5 | + "github.com/gin-gonic/gin" | ||
| 6 | + "github.com/tiptok/gocomm/pkg/mygin" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" | ||
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" | ||
| 9 | + "strconv" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type BaseController struct { | ||
| 13 | + mygin.BaseController | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +func (this *BaseController) Resp(c *gin.Context, httpCode int, rsp *protocol.ResponseMessage) { | ||
| 17 | + c.Set("outputData", rsp) | ||
| 18 | + c.JSON(httpCode, rsp) | ||
| 19 | + //c.Abort() | ||
| 20 | +} | ||
| 21 | + | ||
| 22 | +func (controller *BaseController) Valid(obj interface{}) (result bool, msg *protocol.ResponseMessage) { | ||
| 23 | + /*校验*/ | ||
| 24 | + var err error | ||
| 25 | + valid := validation.Validation{} | ||
| 26 | + result, err = valid.Valid(obj) | ||
| 27 | + if err != nil { | ||
| 28 | + } | ||
| 29 | + if !result { | ||
| 30 | + msg = protocol.BadRequestParam(2) | ||
| 31 | + return | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + return | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +//获取请求头信息 | ||
| 38 | +func (this *BaseController) GetRequestHeader(c *gin.Context) *protocol.RequestHeader { | ||
| 39 | + h := &protocol.RequestHeader{} | ||
| 40 | + | ||
| 41 | + h.AccessToken = c.Query("x-mmm-accesstoken") | ||
| 42 | + h.AppProject = c.Query("x-mmm-appproject") | ||
| 43 | + h.DeviceType, _ = strconv.Atoi(c.Query("x-mmm-devicetype")) | ||
| 44 | + h.Sign = c.Query("x-mmm-sign") | ||
| 45 | + h.Uuid = c.Query("x-mmm-uuid") | ||
| 46 | + h.TimeStamp = c.Query("x-mmm-timestamp") | ||
| 47 | + h.Version = c.Query("x-mmm-version") | ||
| 48 | + h.UserId, _ = strconv.ParseInt(c.Query("x-mmm-id"), 10, 64) | ||
| 49 | + | ||
| 50 | + if len(h.AccessToken) > 0 { | ||
| 51 | + if claim, err := utils.ParseJWTToken(h.AccessToken); err == nil { | ||
| 52 | + h.UserId = claim.UserId | ||
| 53 | + } | ||
| 54 | + } | ||
| 55 | + return h | ||
| 56 | +} |
pkg/port/ginsvr/controllers/order.go
0 → 100644
| 1 | +package controllers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/gin-gonic/gin" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/order" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" | ||
| 8 | + "net/http" | ||
| 9 | + "time" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type OrderController struct { | ||
| 13 | + BaseController | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +//OrderStatistics 订单统计 | ||
| 17 | +// @router /statistics [post] | ||
| 18 | +func (this *OrderController) Statistics(c *gin.Context) { | ||
| 19 | + var msg *protocol.ResponseMessage | ||
| 20 | + defer func() { | ||
| 21 | + this.Resp(c, http.StatusOK, msg) | ||
| 22 | + }() | ||
| 23 | + var request *protocol.OrderStatisticsRequest | ||
| 24 | + if err := c.ShouldBind(&request); err != nil { | ||
| 25 | + msg = protocol.BadRequestParam(1) | ||
| 26 | + return | ||
| 27 | + } | ||
| 28 | + if b, m := this.Valid(request); !b { | ||
| 29 | + msg = m | ||
| 30 | + return | ||
| 31 | + } | ||
| 32 | + header := this.GetRequestHeader(c) | ||
| 33 | + msg = protocol.NewReturnResponse(order.Statistics(header, request)) | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +//OrderDetail 订单详情 | ||
| 37 | +// @router /orderDetail [post] | ||
| 38 | +func (this *OrderController) OrderDetail(c *gin.Context) { | ||
| 39 | + var msg *protocol.ResponseMessage | ||
| 40 | + defer func() { | ||
| 41 | + this.Resp(c, http.StatusOK, msg) | ||
| 42 | + }() | ||
| 43 | + var request *protocol.OrderDetailRequest | ||
| 44 | + if err := c.ShouldBind(&request); err != nil { | ||
| 45 | + msg = protocol.BadRequestParam(1) | ||
| 46 | + return | ||
| 47 | + } | ||
| 48 | + if b, m := this.Valid(request); !b { | ||
| 49 | + msg = m | ||
| 50 | + return | ||
| 51 | + } | ||
| 52 | + header := this.GetRequestHeader(c) | ||
| 53 | + msg = protocol.NewReturnResponse(order.Detail(header, request)) | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +//OrderList | ||
| 57 | +func (this *OrderController) OrderList(c *gin.Context) { | ||
| 58 | + var msg *protocol.ResponseMessage | ||
| 59 | + defer func() { | ||
| 60 | + this.Resp(c, http.StatusOK, msg) | ||
| 61 | + }() | ||
| 62 | + var request *protocol.OrderListRequest | ||
| 63 | + if err := c.ShouldBind(&request); err != nil { | ||
| 64 | + msg = protocol.BadRequestParam(1) | ||
| 65 | + return | ||
| 66 | + } | ||
| 67 | + if b, m := this.Valid(request); !b { | ||
| 68 | + msg = m | ||
| 69 | + return | ||
| 70 | + } | ||
| 71 | + request.OrderType = domain.OrderReal | ||
| 72 | + header := this.GetRequestHeader(c) | ||
| 73 | + msg = protocol.NewReturnResponse(order.List(header, request)) | ||
| 74 | +} | ||
| 75 | + | ||
| 76 | +//OrderList | ||
| 77 | +func (this *OrderController) Intentions(c *gin.Context) { | ||
| 78 | + var msg *protocol.ResponseMessage | ||
| 79 | + defer func() { | ||
| 80 | + this.Resp(c, http.StatusOK, msg) | ||
| 81 | + }() | ||
| 82 | + var request *protocol.OrderListRequest | ||
| 83 | + if err := c.ShouldBind(&request); err != nil { | ||
| 84 | + msg = protocol.BadRequestParam(1) | ||
| 85 | + return | ||
| 86 | + } | ||
| 87 | + if b, m := this.Valid(request); !b { | ||
| 88 | + msg = m | ||
| 89 | + return | ||
| 90 | + } | ||
| 91 | + request.EndTime = time.Now().Unix() * 1000 | ||
| 92 | + request.OrderType = domain.OrderIntention | ||
| 93 | + header := this.GetRequestHeader(c) | ||
| 94 | + msg = protocol.NewReturnResponse(order.List(header, request)) | ||
| 95 | +} |
pkg/port/ginsvr/middleware/log.go
0 → 100644
| 1 | +package middleware | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "encoding/json" | ||
| 5 | + "fmt" | ||
| 6 | + "github.com/gin-gonic/gin" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log" | ||
| 8 | + "io/ioutil" | ||
| 9 | + "net/http" | ||
| 10 | + "time" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +func CreateRequstLogFilter() gin.HandlerFunc { | ||
| 14 | + return func(ctx *gin.Context) { | ||
| 15 | + requestId := fmt.Sprintf("%v.%v", ctx.Request.Method, ctx.Request.RequestURI) | ||
| 16 | + ctx.Set("requestId", requestId) | ||
| 17 | + var body string = "{}" | ||
| 18 | + if _, ok := ctx.Get("requestBody"); ok { | ||
| 19 | + data, _ := ctx.Get("requestBody") | ||
| 20 | + body = string(data.([]byte)) | ||
| 21 | + } | ||
| 22 | + start := time.Now() | ||
| 23 | + ctx.Next() | ||
| 24 | + end := time.Now() | ||
| 25 | + latency := end.Sub(start) | ||
| 26 | + | ||
| 27 | + v, _ := ctx.Get("outputData") | ||
| 28 | + rspBody, _ := json.Marshal(v) | ||
| 29 | + if len(rspBody) > 500 { | ||
| 30 | + rspBody = rspBody[:500] | ||
| 31 | + } | ||
| 32 | + log.Debug(fmt.Sprintf("====>Recv User:%v | %v | %s | %v | \nAuth=%v \nReqBody:%s \nRspBody:%v", ctx.Query("UserId"), ctx.ClientIP(), requestId, latency, ctx.Query("x-mmm-accesstoken"), body, string(rspBody))) | ||
| 33 | + } | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +func CreateResponseLogFilter() func(ctx *gin.Context) { | ||
| 37 | + return func(ctx *gin.Context) { | ||
| 38 | + requestId, _ := ctx.Get("requestId") | ||
| 39 | + v, _ := ctx.Get("outputData") | ||
| 40 | + body, _ := json.Marshal(v) | ||
| 41 | + if len(body) > 1000 { | ||
| 42 | + body = body[:1000] | ||
| 43 | + } | ||
| 44 | + log.Debug(fmt.Sprintf("<====Send RequestId:%v BodyData:%s", requestId, body)) | ||
| 45 | + } | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +func CreateRequestBodyFilter() func(ctx *gin.Context) { | ||
| 49 | + return func(ctx *gin.Context) { | ||
| 50 | + if ctx.Request.Method == http.MethodPost || ctx.Request.Method == http.MethodPut { | ||
| 51 | + body, _ := ioutil.ReadAll(ctx.Request.Body) | ||
| 52 | + if len(body) == 0 { | ||
| 53 | + body = []byte("{}") | ||
| 54 | + } | ||
| 55 | + ctx.Set("requestBody", body) | ||
| 56 | + ctx.Request.Body.Close() | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | +} |
pkg/port/ginsvr/routers/router.go
0 → 100644
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/gin-gonic/gin/ginS" | ||
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/ginsvr/controllers" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/port/ginsvr/middleware" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +func init() { | ||
| 10 | + //ginS.Use(middleware.CreateRequestBodyFilter()) | ||
| 11 | + ginS.Use(middleware.CreateRequstLogFilter()) | ||
| 12 | + | ||
| 13 | + order := &controllers.OrderController{} | ||
| 14 | + ginS.POST("/order/statistics", order.Statistics) | ||
| 15 | + ginS.POST("/order/details", order.OrderDetail) | ||
| 16 | + ginS.POST("/order/list", order.OrderList) | ||
| 17 | + ginS.POST("/order/intentions", order.Intentions) | ||
| 18 | +} |
-
请 注册 或 登录 后发表评论