xingzai 9 mēneši atpakaļ
vecāks
revīzija
bba798e9e1

+ 9 - 0
models/order/order.go

@@ -43,6 +43,7 @@ type CygxOrderResp struct {
 type CygxOrder struct {
 	OrderId          int       `orm:"column(order_id);pk";comment:"订单id"`
 	OrderCode        string    `comment:"订单编号"`
+	OutTradeNo       string    `comment:"【商户订单号】 商户系统内部订单号"`
 	OutTradeCode     string    `comment:"外部交易号"`
 	PaymentType      int       `comment:"支付类型。取值范围:1微信支付,2支付宝支付。"`
 	TradeType        string    `comment:"交易类型,枚举值:JSAPI:公众号支付 、 NATIVE:扫码支付 、 App:App支付 、 MICROPAY:付款码支付 、 MWEB:H5支付 、 FACEPAY:刷脸支付"`
@@ -167,3 +168,11 @@ func GetCygxOrderDetailByOrderCode(orderCode string) (item *CygxOrder, err error
 	err = o.Raw(sql, orderCode).QueryRow(&item)
 	return
 }
+
+// 根据订单编号获取订单详情
+func GetCygxOrderDetailByOutTradeNo(outTradeNo string) (item *CygxOrder, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_order WHERE out_trade_no = ? `
+	err = o.Raw(sql, outTradeNo).QueryRow(&item)
+	return
+}

+ 5 - 5
models/order/order_user_card.go

@@ -227,11 +227,11 @@ func RemoveCygxOrderUserCard(item *CygxOrderUserCard, itemOrder *CygxOrder) (err
 		return
 	}
 
-	sql := ` DELETE FROM cygx_order_user_card  WHERE mobile=? ` // 删除原有的持卡信息
-	_, err = o.Raw(sql, item.Mobile).Exec()
-	if err != nil {
-		return
-	}
+	//sql := ` DELETE FROM cygx_order_user_card  WHERE mobile=? ` // 删除原有的持卡信息 (退款之后不删除相关权益权限)
+	//_, err = o.Raw(sql, item.Mobile).Exec()
+	//if err != nil {
+	//	return
+	//}
 
 	itemLog := new(CygxOrderUserCardLog)
 	itemLog.OrderCode = item.OrderCode

+ 5 - 5
models/order/order_virtual_asset.go

@@ -161,11 +161,11 @@ func RemoveCygxOrderVirtualAsset(item *CygxOrderVirtualAsset, itemOrder *CygxOrd
 		return
 	}
 
-	sql := ` DELETE FROM cygx_order_virtual_asset  WHERE order_code =? ` // 删除原有的持卡信息
-	_, err = o.Raw(sql, item.OrderCode).Exec()
-	if err != nil {
-		return
-	}
+	//sql := ` DELETE FROM cygx_order_virtual_asset  WHERE order_code =? ` // 删除原有的持卡信息  (退款之后不删除相关权益权限)
+	//_, err = o.Raw(sql, item.OrderCode).Exec()
+	//if err != nil {
+	//	return
+	//}
 
 	return
 }

+ 9 - 9
services/order.go

@@ -74,7 +74,7 @@ func GetQueryOrderByOutTradeNoTask(cont context.Context) (err error) {
 	}
 	//订单量不大,先这么写吧
 	for _, v := range orderList {
-		tradeState, statusCode, itemResp := GetQueryOrderByOutTradeNo(v.OrderCode)
+		tradeState, statusCode, itemResp := GetQueryOrderByOutTradeNo(v.OutTradeNo)
 		if tradeState == "SUCCESS" && statusCode == 200 {
 			go HandleOrderHandle(itemResp)
 		}
@@ -92,7 +92,7 @@ func HandleOrderHandle(itemCallback *Transaction) {
 		}
 	}()
 	outTradeNo := itemCallback.OutTradeNo
-	orderDetail, e := order.GetCygxOrderDetailByOrderCode(outTradeNo)
+	orderDetail, e := order.GetCygxOrderDetailByOutTradeNo(outTradeNo)
 	if e != nil {
 		err = errors.New("GetCygxOrderDetailByOrderCode, Err: " + e.Error())
 		return
@@ -102,7 +102,7 @@ func HandleOrderHandle(itemCallback *Transaction) {
 
 	if itemCallback.TradeState != "SUCCESS" { // 回调显示支付不成功,模版消息推送
 		if e != nil {
-			err = errors.New("支付失败,  OrderCode: " + outTradeNo)
+			err = errors.New("支付失败,  outTradeNo: " + outTradeNo)
 			return
 		}
 	}
@@ -112,7 +112,7 @@ func HandleOrderHandle(itemCallback *Transaction) {
 	}
 
 	itemOrder := new(order.CygxOrder)
-	itemOrder.OrderCode = itemCallback.OutTradeNo
+	itemOrder.OrderCode = orderDetail.OrderCode
 	itemOrder.PayTime = itemCallback.SuccessTime
 	itemOrder.PayMoney = float64(float64(itemCallback.Amount.PayerTotal) / 100) // 金额分转换处理
 	itemOrder.OrderStatus = 2
@@ -228,7 +228,7 @@ func HandleOrderRefundHandleask(cont context.Context) (err error) {
 	}
 	//订单量不大,先这么写吧
 	for _, v := range orderList {
-		tradeState, statusCode, itemResp := GetQueryOrderByOutTradeNo(v.OrderCode)
+		tradeState, statusCode, itemResp := GetQueryOrderByOutTradeNo(v.OutTradeNo)
 		if tradeState == "REFUND" && statusCode == 200 {
 			go HandleOrderRefundHandle(itemResp)
 		}
@@ -260,7 +260,7 @@ func HandleOrderRefundHandle(itemCallback *Transaction) {
 	}
 
 	itemOrder := new(order.CygxOrder)
-	itemOrder.OrderCode = itemCallback.OutTradeNo
+	itemOrder.OrderCode = orderDetail.OrderCode
 	itemOrder.RefundTime = itemCallback.SuccessTime
 	itemOrder.RefundMoney = float64(float64(itemCallback.Amount.PayerTotal) / 100) // 金额分转换处理
 	itemOrder.OrderStatus = 3
@@ -311,9 +311,9 @@ func HandleOrderRefundHandle(itemCallback *Transaction) {
 			return
 		}
 	}
-	if orderDetail.Source == utils.CYGX_OBJ_ACTIVITY {
-		go CancelActivitySignupByWechatPay(orderDetail.SourceId, orderDetail.UserId) //微信退款成功自动取消报名
-	}
+	//if orderDetail.Source == utils.CYGX_OBJ_ACTIVITY {
+	//	go CancelActivitySignupByWechatPay(orderDetail.SourceId, orderDetail.UserId) //微信退款成功自动取消报名
+	//}
 	return
 }
 

+ 7 - 7
services/wx_pay.go

@@ -53,12 +53,12 @@ func getWechatClient() (context.Context, *core.Client, error) {
 //}
 
 // 根据订单号查询订单状态失败
-func GetQueryOrderByOutTradeNo(orderCode string) (tradeState string, statusCode int, itemResp *Transaction) {
+func GetQueryOrderByOutTradeNo(outTradeNo string) (tradeState string, statusCode int, itemResp *Transaction) {
 	var err error
 	defer func() {
 		if err != nil {
 			fmt.Println("err", err)
-			go utils.SendAlarmMsg(fmt.Sprint("根据订单号查询订单状态失败 GetQueryOrderByOutTradeNo, err:", err.Error(), "orderCode", orderCode), 2)
+			go utils.SendAlarmMsg(fmt.Sprint("根据订单号查询订单状态失败 GetQueryOrderByOutTradeNo, err:", err.Error(), "outTradeNo", outTradeNo), 2)
 		}
 	}()
 	ctx, client, err := getWechatClient()
@@ -69,12 +69,12 @@ func GetQueryOrderByOutTradeNo(orderCode string) (tradeState string, statusCode
 	svc := jsapi.JsapiApiService{Client: client}
 	resp, result, err := svc.QueryOrderByOutTradeNo(ctx,
 		jsapi.QueryOrderByOutTradeNoRequest{
-			OutTradeNo: core.String(orderCode),
+			OutTradeNo: core.String(outTradeNo),
 			Mchid:      core.String(Mchid),
 		},
 	)
 	statusCode = result.Response.StatusCode
-	fmt.Println(statusCode)
+	//fmt.Println(statusCode)
 	//订单状态码不存在直接返回
 	if statusCode == 404 {
 		err = nil
@@ -91,9 +91,9 @@ func GetQueryOrderByOutTradeNo(orderCode string) (tradeState string, statusCode
 		return
 	}
 	//itemResp = item
-	fmt.Println(itemResp)
-	fmt.Println(tradeState)
-	fmt.Println(itemResp.TransactionId)
+	//fmt.Println(itemResp)
+	//fmt.Println(tradeState)
+	//fmt.Println(itemResp.TransactionId)
 	return
 }