From 3f0dbdcfedc09f6948cb82b82a76a6f9ed2aa682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 4 Dec 2020 18:14:47 +0800 Subject: [PATCH] a --- business/jxstore/cms/order.go | 40 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/business/jxstore/cms/order.go b/business/jxstore/cms/order.go index 77ac7d755..c87392fd5 100644 --- a/business/jxstore/cms/order.go +++ b/business/jxstore/cms/order.go @@ -20,13 +20,31 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) -func CreateOrder(ctx *jxcontext.Context, orderType int, way string, price int, lng, lat float64) (orderID string, err error) { +func CreateOrder(ctx *jxcontext.Context, orderType int, way string, price int, lng, lat float64) (orderID, errCode string, err error) { var ( db = dao.GetDB() order *model.Order ) if err = auth2.CheckWeixinminiAuthBind(ctx.GetUserID()); err != nil { - return "", err + return "", errCode, err + } + if orderType == model.OrderTypeCash { + //如果用户没有对应账单信息就给他生成一条 + userBill, err := dao.GetUserBill(db, ctx.GetUserID(), "") + if userBill == nil { + err = financial.AddUserBill(db, jxutils.GenBillID(), ctx.GetUserID()) + } + if userBill.AccountBalance < price { + return "", model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足!") + } + //用户一天只能提现一次 + billExpends, err := dao.GetBillExpend(db, ctx.GetUserID(), model.BillTypeCash, DayTimeBegin, DayTimeEnd) + if err != nil { + return "", "", err + } + if len(billExpends) > 0 { + return "", "", fmt.Errorf("抱歉,一天只能提现一次!") + } } address, dCode, cCode, err := getAddressInfoFromCoord(db, lng, lat) order = &model.Order{ @@ -54,7 +72,7 @@ func CreateOrder(ctx *jxcontext.Context, orderType int, way string, price int, l dao.Rollback(db) } dao.Commit(db) - return order.OrderID, err + return order.OrderID, errCode, err } func Pay(ctx *jxcontext.Context, orderID string, payType int, vendorPayType string) (result *financial.WxPayParam, err error) { @@ -105,22 +123,6 @@ func Cash(ctx *jxcontext.Context, orderID string, payType int, vendorPayType str return errCode, fmt.Errorf("未找到此订单!") } payHandler.Order = order - //如果用户没有对应账单信息就给他生成一条 - userBill, err := dao.GetUserBill(db, order.UserID, "") - if userBill == nil { - err = financial.AddUserBill(db, jxutils.GenBillID(), order.UserID) - } - if userBill.AccountBalance < order.PayPrice { - return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足,请充值!") - } - //用户一天只能提现一次 - billExpends, err := dao.GetBillExpend(db, order.UserID, model.BillTypeCash, DayTimeBegin, DayTimeEnd) - if err != nil { - return errCode, err - } - if len(billExpends) > 0 { - return errCode, fmt.Errorf("抱歉,一天只能提现一次!") - } err = payHandler.CreateRefund() return errCode, err }