75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
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)
|
|
}
|