go-common/app/job/main/coupon/http/http.go

75 lines
1.6 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package http
import (
"net/http"
"go-common/app/job/main/coupon/conf"
"go-common/app/job/main/coupon/model"
"go-common/app/job/main/coupon/service"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
var (
svc *service.Service
)
// Init init
func Init(c *conf.Config, s *service.Service) {
svc = s
// init router
engineInner := bm.DefaultServer(c.BM)
innerRouter(engineInner)
if err := engineInner.Start(); err != nil {
log.Error("bm.DefaultServer error(%v)", err)
panic(err)
}
}
// innerRouter init inner router api path.
func innerRouter(e *bm.Engine) {
//init api
e.GET("/monitor/ping", ping)
e.GET("/deliver/success", cartoonDeliverSuccess)
}
// ping check server ok.
func ping(c *bm.Context) {
if err := svc.Ping(c); err != nil {
log.Error("coupon http service ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func cartoonDeliverSuccess(c *bm.Context) {
var (
err error
o *model.CouponOrder
)
arg := new(struct {
OrderNo string `form:"order_no"`
State int8 `form:"state"`
Ver int64 `form:"ver"`
IsPaid int8 `form:"is_paid"`
})
if err = c.Bind(arg); err != nil {
log.Error("add coupon page %+v", err)
return
}
if o, err = svc.ByOrderNo(c, arg.OrderNo); err != nil {
c.JSON(nil, err)
return
}
if o == nil {
c.JSON(nil, ecode.RequestErr)
return
}
if err = svc.UpdateOrderState(c, o, arg.State, &model.CallBackRet{Ver: arg.Ver, IsPaid: arg.IsPaid}); err != nil {
log.Error("svc.UpdateOrderState(%s) %+v", arg.OrderNo, err)
c.JSON(nil, err)
return
}
c.JSON(nil, nil)
}