Files
jx-callback/business/jxstore/cms/order.go
2020-10-15 08:58:36 +08:00

62 lines
1.4 KiB
Go

package cms
import (
"git.rosy.net.cn/jx-callback/business/jxstore/financial"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
)
func CreateOrder(ctx *jxcontext.Context, price, orderType int) (order *model.Order, err error) {
var (
db = dao.GetDB()
)
order = &model.Order{
OrderID: jxutils.GenOrderNo(),
UserID: ctx.GetUserID(),
Type: orderType,
Status: model.OrderStatusWait4Pay,
PayPrice: price,
}
dao.WrapAddIDCULEntity(order, ctx.GetUserName())
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if err = dao.CreateEntity(db, order); err != nil {
dao.Rollback(db)
}
dao.Commit(db)
return order, err
}
func Pay(ctx *jxcontext.Context, orderID, payType int, vendorPayType string) (err error) {
var (
db = dao.GetDB()
order = &model.Order{
OrderID: int64(orderID),
}
payHandler = &financial.PayHandler{
PayType: payType,
Ctx: ctx,
VendorPayType: vendorPayType,
}
)
err = dao.GetEntity(db, order, "OrderID")
payHandler.Order = order
//如果用户没有对应账单信息就给他生成一条
userBill, err := dao.GetUserBill(db, order.UserID, "")
if userBill == nil {
err = financial.AddUserBill(db, jxutils.GenBillID(), order.UserID)
}
err = payHandler.CreatePay()
return err
}