You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

179 lines
3.9 KiB

package http
import (
"fmt"
"go-common/app/service/main/vip/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
)
func status(c *bm.Context) {
var (
o *model.OrderInfo
vip *model.VipInfo
err error
)
arg := new(struct {
OrderNo string `form:"order_no" validate:"required"`
})
if err = c.Bind(arg); err != nil {
log.Error("c.Bind err(%+v)", err)
return
}
if o, err = vipSvc.OrderInfo(c, arg.OrderNo); err != nil {
log.Error("vipSvc.OrderInfo(%s) err(%+v)", arg.OrderNo, err)
c.JSON(nil, err)
return
}
if o == nil {
c.JSON(nil, ecode.VipOrderNotFoundErr)
return
}
res := new(struct {
OrderNo string `json:"order_no"`
Status int8 `json:"status"`
Message *model.OrderMessage `json:"message"`
})
res.OrderNo = o.OrderNo
res.Status = o.Status
if o.Status == model.SUCCESS {
if vip, err = vipSvc.VipInfo(c, o.Mid); err != nil {
c.JSON(nil, err)
return
}
message := new(model.OrderMessage)
message.RightButton = "知道了"
message.Title = "开通成功"
message.Content = fmt.Sprintf("你已成功开通%d个月大会员,目前有效期%s", o.BuyMonths, vip.VipOverdueTime.Time().Format("2006-01-02"))
res.Message = message
} else if o.Status == model.FAILED {
message := new(model.OrderMessage)
message.RightButton = "知道了"
message.Title = "支付失败"
message.Content = fmt.Sprintf("订单号:%s \nUID:%d \n支付失败了,试试重新购买吧。", o.OrderNo, vip.Mid)
res.Message = message
}
c.JSON(res, nil)
}
func orders(c *bm.Context) {
var (
orders []*model.PayOrderResp
total int64
err error
)
arg := new(struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
Ps int `form:"ps" default:"20" validate:"min=0,max=50"`
Pn int `form:"pn" default:"1"`
})
if err = c.Bind(arg); err != nil {
log.Error("c.Bind err(%+v)", err)
return
}
if orders, total, err = vipSvc.OrderList(c, arg.Mid, arg.Pn, arg.Ps); err != nil {
log.Error("vipSvc.OrderList(%d) err(%+v)", arg.Mid, err)
c.JSON(nil, err)
return
}
res := new(struct {
Data []*model.PayOrderResp `json:"list"`
Total int64 `json:"total"`
})
res.Data = orders
res.Total = total
c.JSON(orders, nil)
}
func createOrder(c *bm.Context) {
var (
err error
pp map[string]interface{}
)
arg := new(model.ArgCreateOrder)
if err = c.Bind(arg); err != nil {
log.Error("c.Bind err(%+v)", err)
return
}
if pp, err = vipSvc.CreateOrder(c, arg, metadata.String(c, metadata.RemoteIP)); err != nil {
log.Error("vipSvc.CreateOrder(%d) err(%+v)", arg.Mid, err)
c.JSON(nil, err)
return
}
c.JSON(pp, nil)
}
func pannelInfoNew(c *bm.Context) {
var (
pi *model.PannelInfo
err error
)
arg := new(model.ArgPannel)
if err = c.Bind(arg); err != nil {
log.Error("pannelInfoNew(%+v)", err)
return
}
if pi, err = vipSvc.PannelInfoNew(c, arg.Mid, arg); err != nil {
log.Error("vipSvc.PannelInfoNew(%d) err(%+v)", arg.Mid, err)
c.JSON(nil, err)
return
}
c.JSON(pi, nil)
}
func createOldOrder(c *bm.Context) {
var (
err error
)
arg := new(model.ArgOldPayOrder)
if err = c.Bind(arg); err != nil {
log.Error("c.Bind err(%+v)", err)
return
}
c.JSON(nil, vipSvc.CreateOldOrder(c, arg))
}
func orderMng(c *bm.Context) {
var (
err error
order *model.OrderMng
)
arg := new(struct {
Mid int64 `form:"mid" validate:"required,min=1,gte=1"`
})
if err = c.Bind(arg); err != nil {
log.Error("c.Bind err(%+v)", err)
return
}
if order, err = vipSvc.OrderMng(c, arg.Mid); err != nil {
c.JSON(nil, err)
return
}
c.JSON(order, err)
}
func rescision(c *bm.Context) {
var (
err error
)
arg := new(struct {
Mid int64 `form:"mid" validate:"required,mid=1,gte=1"`
DeviceType int32 `form:"deviceType" validate:"required"`
})
if err = c.Bind(arg); err != nil {
return
}
err = vipSvc.Rescision(c, arg.Mid, arg.DeviceType)
c.JSON(nil, err)
}