Files
jx-callback/business/jxstore/cms/order.go
苏尹岚 3fa46c9afd order
2020-10-14 14:58:46 +08:00

62 lines
1.3 KiB
Go

package cms
import (
"fmt"
"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"
)
const (
OrderTypeDeposit = 1 //保证金
)
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),
}
)
err = dao.GetEntity(db, order, "OrderID")
switch payType {
case model.PayTypeTL:
err = financial.Pay4OrderByTL(ctx, order, payType, vendorPayType)
default:
err = fmt.Errorf("支付方式:%d当前不支持", payType)
}
return err
}