This commit is contained in:
邹宗楠
2025-08-04 11:39:30 +08:00
parent ad2b46b2cc
commit a7a48ff1ee
7 changed files with 86 additions and 32 deletions

View File

@@ -14,7 +14,7 @@ import (
)
// RefundBarCodeScannerOrderByLaKaLa 拉卡拉扫码枪退款
func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId string, skuIds map[int]int, reason string) (err error) {
func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId string, skuIds map[int]int, reason string, refund string) (resp interface{}, err error) {
db := dao.GetDB()
txDB, _ := dao.Begin(db)
defer func() {
@@ -29,64 +29,83 @@ func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId str
goodsOrder, err := partner.CurOrderManager.LoadOrder(vendorOrderId, model.VendorIDJX)
if err != nil {
dao.Rollback(db, txDB)
return err
return nil, err
}
// 检查订单售后
refundType, refundMoney, err := checkJxAfsOrder(db, goodsOrder, vendorOrderId, skuIds)
if err != nil {
dao.Rollback(db, txDB)
return err
return nil, err
}
// 本地添加售后数据
afsOrder, orderSkuFinancial, afsOrderSkuFinancial, err := addRefundSku(ctx, goodsOrder, skuIds, reason, refundType)
if err != nil {
dao.Rollback(db, txDB)
return err
return nil, err
}
// 通知退款,等待回传
incoming, err := dao.GetStoreInfoByMerchantID(db, "", goodsOrder.JxStoreID, "", "")
if err != nil {
return err
}
param := &lakala.RefundOrderReq{
MerchantNo: incoming.MerchantNo,
TermNo: incoming.TermNo,
OutTradeNo: afsOrder.AfsOrderID,
RefundAmount: utils.Int2Str(refundMoney),
OriginBizType: "3",
OriginTradeDate: goodsOrder.OrderCreatedAt.Format("20060102"),
OriginLogNo: "",
OriginTradeNo: "",
OriginCardNo: "",
LocationInfo: nil,
RefundType: "",
return nil, err
}
switch refund {
case "toStore": // 收银台
param := &lakala.RefundOrderReq{
MerchantNo: incoming.MerchantNo,
TermNo: incoming.TermNo,
OutTradeNo: afsOrder.AfsOrderID,
RefundAmount: utils.Int2Str(refundMoney),
OriginBizType: "3",
OriginTradeDate: goodsOrder.OrderCreatedAt.Format("20060102"),
OriginLogNo: "",
OriginTradeNo: "",
OriginCardNo: "",
LocationInfo: nil,
RefundType: "",
}
_, err = api.LaKaLaApi.RefundOrder(param)
if err != nil {
return err
resp, err = api.LaKaLaApi.RefundOrder(param)
if err != nil {
return nil, err
}
case "aggregate": // 聚合支付
param := &lakala.AggregateRefundReq{
MerchantNo: incoming.MerchantNo,
TermNo: incoming.TermNo,
OutTradeNo: afsOrder.AfsOrderID,
RefundAmount: utils.Int2Str(refundMoney),
RefundReason: reason,
OriginOutTradeNo: goodsOrder.VendorOrderID,
OriginTradeNo: "",
OriginLogNo: "",
LocationInfo: lakala.LocationInfoObj{RequestIp: ctx.GetRealRemoteIP()},
}
resp, err = api.LaKaLaApi.AggregateRefund(param)
if err != nil {
return nil, err
}
}
if err = dao.CreateEntity(db, afsOrder); err != nil {
dao.Rollback(db, txDB)
return err
return nil, err
}
if err = dao.CreateMultiEntities(db, orderSkuFinancial); err != nil {
dao.Rollback(db, txDB)
return err
return nil, err
}
if err = dao.CreateMultiEntities(db, afsOrderSkuFinancial); err != nil {
dao.Rollback(db, txDB)
return err
return nil, err
}
goodsOrder.TotalShopMoney -= int64(refundMoney)
dao.UpdateEntity(db, goodsOrder, "TotalShopMoney")
dao.Commit(db, txDB)
return nil
return resp, nil
}
// QueryBarCodeRefundStatus 退款订单状态查询

View File

@@ -609,7 +609,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
// 美团专送、快送、混合送、美团企客
logisticsCode := utils.Interface2String(orderDetail["logistics_code"])
isSelfDelivery = logisticsCode == mtwmapi.PeiSongTypeMTZSJM || logisticsCode == mtwmapi.PeiSongTypeMTZSPT ||
logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi ||
logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi || logisticsCode == mtwmapi.PeiSongTypeMTZSDL ||
logisticsCode == mtwmapi.PeiSongTypeMixed || logisticsCode == mtwmapi.PeiSongTypeQiKe ||
logisticsCode == mtwmapi.PeiSongTypeMixedExpressQiKe || logisticsCode == mtwmapi.PeiSongTypeFranchise ||
logisticsCode == mtwmapi.PeiSongTypeSelf || logisticsCode == mtwmapi.PeiSongTypeWholeCity ||