+GetOrderPay
GetOrders添加参数isPurchase
This commit is contained in:
@@ -229,7 +229,16 @@ func (c *OrderManager) ExportMTWaybills(ctx *jxcontext.Context, fromDateStr, toD
|
|||||||
|
|
||||||
func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku, isIncludeFake bool, fromDateStr, toDateStr string, isDateFinish bool, skuIDs []int, isJxFirst bool, params map[string]interface{}, offset, pageSize int) (orders []*model.GoodsOrderExt, totalCount int, err error) {
|
func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku, isIncludeFake bool, fromDateStr, toDateStr string, isDateFinish bool, skuIDs []int, isJxFirst bool, params map[string]interface{}, offset, pageSize int) (orders []*model.GoodsOrderExt, totalCount int, err error) {
|
||||||
globals.SugarLogger.Debugf("getOrders from:%s to:%s", fromDateStr, toDateStr)
|
globals.SugarLogger.Debugf("getOrders from:%s to:%s", fromDateStr, toDateStr)
|
||||||
|
isPurchase, _ := params["isPurchase"].(bool)
|
||||||
|
userID := ""
|
||||||
|
if !isPurchase {
|
||||||
|
if user := ctx.GetFullUser(); user != nil {
|
||||||
|
userID = user.GetID()
|
||||||
|
if user.Type&model.UserTypeNonConsumer == 0 {
|
||||||
|
isPurchase = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
pageSize = jxutils.FormalizePageSize(pageSize)
|
pageSize = jxutils.FormalizePageSize(pageSize)
|
||||||
if offset < 0 {
|
if offset < 0 {
|
||||||
offset = 0
|
offset = 0
|
||||||
@@ -393,6 +402,10 @@ func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku, isInclude
|
|||||||
sqlParams = append(sqlParams, vendorIDs)
|
sqlParams = append(sqlParams, vendorIDs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if isPurchase {
|
||||||
|
sqlWhere += " AND t1.user_id = ?"
|
||||||
|
sqlParams = append(sqlParams, userID)
|
||||||
|
}
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
sql += sqlWhere
|
sql += sqlWhere
|
||||||
if isIncludeSku {
|
if isIncludeSku {
|
||||||
|
|||||||
@@ -98,6 +98,8 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) {
|
|||||||
"autoSaleAt": AutoSaleAtStr,
|
"autoSaleAt": AutoSaleAtStr,
|
||||||
"userTypeName": model.UserTypeName,
|
"userTypeName": model.UserTypeName,
|
||||||
"storePriceTypeName": model.StorePriceTypeName,
|
"storePriceTypeName": model.StorePriceTypeName,
|
||||||
|
"payStatusName": model.PayStatusName,
|
||||||
|
"refundStatusName": model.RefundStatusName,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ var (
|
|||||||
|
|
||||||
OrderStatusUnknown: "一般事件",
|
OrderStatusUnknown: "一般事件",
|
||||||
|
|
||||||
|
OrderStatusCreated: "待支付",
|
||||||
OrderStatusNew: "新订单",
|
OrderStatusNew: "新订单",
|
||||||
OrderStatusAccepted: "待拣货",
|
OrderStatusAccepted: "待拣货",
|
||||||
OrderStatusFinishedPickup: "待配送",
|
OrderStatusFinishedPickup: "待配送",
|
||||||
@@ -172,7 +173,7 @@ const (
|
|||||||
OrderStatusApplyCancel = -5
|
OrderStatusApplyCancel = -5
|
||||||
|
|
||||||
OrderStatusUnknown = 0
|
OrderStatusUnknown = 0
|
||||||
OrderStatusPayed = 2 // 已支付
|
OrderStatusCreated = 2 // 已支付
|
||||||
OrderStatusNew = 5 // 新订单,实际是已经支付
|
OrderStatusNew = 5 // 新订单,实际是已经支付
|
||||||
OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货
|
OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货
|
||||||
OrderStatusFinishedPickup = 15 // 拣货完成
|
OrderStatusFinishedPickup = 15 // 拣货完成
|
||||||
|
|||||||
@@ -698,3 +698,17 @@ func GetRiskOrderCount(db *DaoDB, dayNum int, includeToday bool) (storeOrderList
|
|||||||
|
|
||||||
return storeOrderList, GetRows(db, &storeOrderList, sql, sqlParams)
|
return storeOrderList, GetRows(db, &storeOrderList, sql, sqlParams)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetOrderPayList(db *DaoDB, vendorOrderID string, vendorID int) (payList []*model.OrderPay, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT t1.*
|
||||||
|
FROM order_pay t1
|
||||||
|
WHERE t1.deleted_at = ? AND t1.vendor_order_id = ? AND t1.vendor_id = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{
|
||||||
|
utils.DefaultTimeValue,
|
||||||
|
vendorOrderID,
|
||||||
|
vendorID,
|
||||||
|
}
|
||||||
|
return payList, GetRows(db, &payList, sql, sqlParams)
|
||||||
|
}
|
||||||
|
|||||||
@@ -11,9 +11,31 @@ const (
|
|||||||
const (
|
const (
|
||||||
PayTypeWX = 1 // 微信支付
|
PayTypeWX = 1 // 微信支付
|
||||||
|
|
||||||
PayStatusNo = 0
|
PayStatusNo = 0
|
||||||
PayStatusYes = 1
|
PayStatusYes = 1
|
||||||
PayStatusFailed = 2
|
PayStatusFailed = 2
|
||||||
|
PayStatusCanceled = 3
|
||||||
|
PayStatusRefund = 4
|
||||||
|
|
||||||
|
RefundStatusNo = 0
|
||||||
|
RefundStatusYes = 1
|
||||||
|
RefundStatusFailed = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
PayStatusName = map[int]string{
|
||||||
|
PayStatusNo: "待支付",
|
||||||
|
PayStatusYes: "已支付",
|
||||||
|
PayStatusFailed: "支付失败",
|
||||||
|
PayStatusCanceled: "支付取消",
|
||||||
|
PayStatusRefund: "已退款",
|
||||||
|
}
|
||||||
|
|
||||||
|
RefundStatusName = map[int]string{
|
||||||
|
RefundStatusNo: "待退款",
|
||||||
|
RefundStatusYes: "已退款",
|
||||||
|
RefundStatusFailed: "退款失败",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelTimeInfo struct {
|
type ModelTimeInfo struct {
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -112,7 +112,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64,
|
|||||||
outJxOrder.OrderID = GenOrderNo(ctx)
|
outJxOrder.OrderID = GenOrderNo(ctx)
|
||||||
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress)
|
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
order.Status = model.OrderStatusPayed
|
order.Status = model.OrderStatusCreated
|
||||||
partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -433,29 +433,26 @@ func SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error)
|
|||||||
|
|
||||||
func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) {
|
||||||
if order.Status < model.OrderStatusDelivering {
|
if order.Status < model.OrderStatusDelivering {
|
||||||
orderPay := &model.OrderPay{
|
|
||||||
VendorOrderID: order.VendorOrderID,
|
|
||||||
VendorID: jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID),
|
|
||||||
Status: model.PayStatusYes,
|
|
||||||
}
|
|
||||||
orderPay.DeletedAt = utils.DefaultTimeValue
|
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if err = dao.GetEntity(db, orderPay, "VendorOrderID", "VendorID", "Status", "DeletedAt"); err == nil || dao.IsNoRowsError(err) {
|
payList, err2 := dao.GetOrderPayList(db, order.VendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID))
|
||||||
if err == nil {
|
if err = err2; err == nil {
|
||||||
refundID := utils.Int64ToStr(GenRefundID(order))
|
errList := errlist.New()
|
||||||
orderPayRefund, err2 := refundOrderByWX(ctx, orderPay, refundID)
|
for _, orderPay := range payList {
|
||||||
if err = err2; err == nil {
|
if orderPay.Status == model.PayStatusYes {
|
||||||
dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName())
|
refundID := utils.Int64ToStr(GenRefundID(order))
|
||||||
err = dao.CreateEntity(dao.GetDB(), orderPay)
|
orderPayRefund, err2 := refundOrderByWX(ctx, orderPay, refundID)
|
||||||
}
|
if err = err2; err == nil {
|
||||||
} else {
|
dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName())
|
||||||
if order.Status >= model.OrderStatusNew {
|
errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPay))
|
||||||
globals.SugarLogger.Warnf("订单:%s找不到有效的支付方式", order.VendorOrderID)
|
}
|
||||||
|
} else {
|
||||||
|
orderPay.Status = model.PayStatusCanceled
|
||||||
|
_, err2 := dao.UpdateEntity(db, orderPay)
|
||||||
|
errList.AddErr(err2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
errList.AddErr(changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason))
|
||||||
err = changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason)
|
err = errList.GetErrListAsOne()
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status])
|
err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status])
|
||||||
@@ -477,3 +474,9 @@ func changeOrderStatus(vendorOrderID string, status int, remark string) (err err
|
|||||||
}
|
}
|
||||||
return partner.CurOrderManager.OnOrderStatusChanged(orderStatus)
|
return partner.CurOrderManager.OnOrderStatusChanged(orderStatus)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetOrderPay(ctx *jxcontext.Context, vendorOrderID string) (payList []*model.OrderPay, err error) {
|
||||||
|
db := dao.GetDB()
|
||||||
|
payList, err = dao.GetOrderPayList(db, vendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(vendorOrderID))
|
||||||
|
return payList, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -99,15 +99,27 @@ func onWxpayRefund(msg *wxpay.RefundResultMsg) (err error) {
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if err = dao.GetEntity(db, orderPayRefund, "RefundID"); err == nil {
|
if err = dao.GetEntity(db, orderPayRefund, "RefundID"); err == nil {
|
||||||
if msg.ResultCode == wxpay.ResponseCodeSuccess {
|
if msg.ResultCode == wxpay.ResponseCodeSuccess {
|
||||||
orderPayRefund.Status = model.PayStatusYes
|
orderPayRefund.Status = model.RefundStatusYes
|
||||||
} else {
|
} else {
|
||||||
orderPayRefund.Status = model.PayStatusFailed
|
orderPayRefund.Status = model.RefundStatusFailed
|
||||||
}
|
}
|
||||||
orderPayRefund.OriginalData = utils.Format4Output(msg, true)
|
orderPayRefund.OriginalData = utils.Format4Output(msg, true)
|
||||||
dao.UpdateEntity(db, orderPayRefund)
|
dao.UpdateEntity(db, orderPayRefund)
|
||||||
} else if dao.IsNoRowsError(err) {
|
} else if dao.IsNoRowsError(err) {
|
||||||
globals.SugarLogger.Warnf("收到异常的退款事件, msg:%s", utils.Format4Output(msg, true))
|
globals.SugarLogger.Warnf("收到异常的退款事件, msg:%s", utils.Format4Output(msg, true))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
orderPay := &model.OrderPay{
|
||||||
|
VendorOrderID: orderPayRefund.VendorOrderID,
|
||||||
|
VendorID: jxutils.GetPossibleVendorIDFromVendorOrderID(orderPayRefund.VendorOrderID),
|
||||||
|
PayType: model.PayTypeWX,
|
||||||
|
Status: model.PayStatusYes,
|
||||||
|
}
|
||||||
|
orderPay.DeletedAt = utils.DefaultTimeValue
|
||||||
|
if err = dao.GetEntity(db, orderPay, "VendorOrderID", "VendorID", "PayType", "Status", "DeletedAt"); err == nil {
|
||||||
|
orderPay.Status = model.PayStatusRefund
|
||||||
|
dao.UpdateEntity(db, orderPay)
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +137,7 @@ func refundOrderByWX(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID
|
|||||||
VendorRefundID: result.RefundID,
|
VendorRefundID: result.RefundID,
|
||||||
VendorOrderID: orderPay.VendorOrderID,
|
VendorOrderID: orderPay.VendorOrderID,
|
||||||
VendorID: orderPay.VendorID,
|
VendorID: orderPay.VendorID,
|
||||||
Status: model.PayStatusNo,
|
Status: model.RefundStatusNo,
|
||||||
TransactionID: orderPay.TransactionID,
|
TransactionID: orderPay.TransactionID,
|
||||||
RefundFee: orderPay.TotalFee,
|
RefundFee: orderPay.TotalFee,
|
||||||
RefundCreatedAt: time.Now(),
|
RefundCreatedAt: time.Now(),
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ func (c *OrderController) ExportMTWaybills() {
|
|||||||
// @Param isJxFirst query bool false "排序是否京西订单优先(缺省为否)"
|
// @Param isJxFirst query bool false "排序是否京西订单优先(缺省为否)"
|
||||||
// @Param adjustCount query int false "最小调整次数"
|
// @Param adjustCount query int false "最小调整次数"
|
||||||
// @Param mustInvoice query bool false "是否必须要求开发票"
|
// @Param mustInvoice query bool false "是否必须要求开发票"
|
||||||
|
// @Param isPurchase query bool false "是否是用户自已的订单,如果角色只有consumer,会被强制设为true"
|
||||||
// @Param offset query int false "结果起始序号(以0开始,缺省为0)"
|
// @Param offset query int false "结果起始序号(以0开始,缺省为0)"
|
||||||
// @Param pageSize query int false "结果页大小(缺省为50,-1表示全部)"
|
// @Param pageSize query int false "结果页大小(缺省为50,-1表示全部)"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
|||||||
@@ -58,3 +58,17 @@ func (c *JxOrderController) GetAvailableDeliverTime() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 得到一个订单的支付信息
|
||||||
|
// @Description 得到一个订单的支付信息
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param vendorOrderID query string true "订单号,如果此项不为空,忽略其它所有查询条件"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /GetOrderPay [get]
|
||||||
|
func (c *JxOrderController) GetOrderPay() {
|
||||||
|
c.callGetOrderPay(func(params *tJxorderGetOrderPayParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
retVal, err = localjx.GetOrderPay(params.Ctx, params.VendorOrderID)
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -601,6 +601,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "GetOrderPay",
|
||||||
|
Router: `/GetOrderPay`,
|
||||||
|
AllowHTTPMethods: []string{"get"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Filters: nil,
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "Pay4Order",
|
Method: "Pay4Order",
|
||||||
|
|||||||
Reference in New Issue
Block a user