This commit is contained in:
邹宗楠
2023-04-06 18:25:51 +08:00
parent 49159ebcd8
commit f2855fa9ec
11 changed files with 348 additions and 24 deletions

View File

@@ -852,6 +852,39 @@ func (c *OrderController) PartRefundOrder() {
})
}
// @Title 小程序用户申请售后(退款)
// @Description 小程序用户申请售后(退款)
// @Param token header string true "认证token"
// @Param vendorOrderID formData string true "订单ID"
// @Param vendorID formData int true "订单所属厂商ID"
// @Param refundSkuList formData string true "要去除的商品信息只有skuID与Count字段有效"
// @Param reason formData string true "原因"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /ApplyRefundOrder [post]
func (c *OrderController) ApplyRefundOrder() {
c.callApplyRefundOrder(func(params *tOrderApplyRefundOrderParams) (retVal interface{}, errCode string, err error) {
//var skuList []*model.OrderSku
//err = jxutils.Strings2Objs(params.RefundSkuList, &skuList)
//if err == nil {
// _, _, skuList = skuList2Map(skuList)
// var order *model.GoodsOrder
// order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID)
// if err == nil {
// removedAll, err2 := fillSkuList(skuList, order.Skus)
// if err = err2; err == nil {
// if removedAll {
// err = defsch.FixedScheduler.RefundOrder(params.Ctx, order, params.Reason)
// } else {
// err = defsch.FixedScheduler.PartRefundOrder(params.Ctx, order, skuList, params.Reason)
// }
// }
// }
//}
return retVal, "", err
})
}
func fillSkuList(skuList, orderSkuList []*model.OrderSku) (isSame bool, err error) {
skuCount, orderSkuMap, _ := skuList2Map(orderSkuList)
skuCount2 := 0

View File

@@ -0,0 +1,72 @@
package controllers
import (
"git.rosy.net.cn/baseapi/platformapi/kuaishou_mini"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web"
)
type KuaiShouController struct {
web.Controller
}
// KuaiShouCallBack 快手回调
func (c *KuaiShouController) KuaiShouCallback() {
payOrder, refundOrder, payType, msgId, err := api.KuaiShouApi.KauiShouCallback(c.Ctx.Request)
globals.SugarLogger.Debugf("KuaiShouCallBack payOrder =: %s", utils.Format4Output(payOrder, false))
globals.SugarLogger.Debugf("KuaiShouCallBack refundOrder=: %s", refundOrder)
globals.SugarLogger.Debugf("KuaiShouCallBack payType=: %s", payType)
globals.SugarLogger.Debugf("KuaiShouCallBack err=: %s", utils.Format4Output(err, false))
if err != nil {
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
}
switch payType {
case kuaishou_mini.CallbackTypePay:
err = localjx.OnKSPayCallback(payOrder, nil, payType)
case kuaishou_mini.CallbackTypeRefund:
err = localjx.OnKSPayCallback(nil, refundOrder, payType)
case kuaishou_mini.CallbackTypeSettle:
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
default:
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
}
if err != nil {
c.Data["json"] = CallBackFail(msgId)
c.ServeJSON()
return
}
c.Data["json"] = CallBackSuccess(msgId)
c.ServeJSON()
return
}
type CallBackResult struct {
Result string `json:"result"`
MessageId string `json:"message_id"`
}
func CallBackSuccess(msgId string) *CallBackResult {
return &CallBackResult{
Result: "1",
MessageId: msgId,
}
}
func CallBackFail(msgId string) *CallBackResult {
return &CallBackResult{
Result: "-1",
MessageId: msgId,
}
}