mirror of
https://github.com/iLoveElysia/openbilibili.git
synced 2026-09-02 23:58:04 -05:00
180 lines
3.9 KiB
Go
180 lines
3.9 KiB
Go
|
|
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)
|
|||
|
|
|
|||
|
|
}
|