62 lines
1.3 KiB
Go
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
|
|
}
|