1
This commit is contained in:
@@ -490,9 +490,7 @@ func SeparateUnBind(param *lakala.SeparateUnBindReq) error {
|
||||
}
|
||||
|
||||
// SeparateQueryAmt 可分账金额查询
|
||||
func SeparateQueryAmt(merchantNo, logNo, logDate string) (*lakala.SeparateQueryAmtResp, error) {
|
||||
logNo = lakala.GetOrderNumber(8)
|
||||
logDate = utils.Time2TimeStrByFormat(time.Now(), "20060102")
|
||||
func SeparateQueryAmt(merchantNo, logDate, logNo string) (*lakala.SeparateQueryAmtResp, error) {
|
||||
result, err := api.LaKaLaApi.SeparateQueryAmt(merchantNo, logNo, logDate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -519,7 +517,7 @@ func Separate(ctx *jxcontext.Context, param *lakala.OrderSeparateReq) (string, s
|
||||
param.OutSeparateNo = lakala.GetOrderNumber(10)
|
||||
param.NotifyUrl = lakala.CallbackLaKaLaSeparateUrl
|
||||
|
||||
status, separateNo, err := api.LaKaLaApi.Separate(param)
|
||||
status, separateNo, logNo, err := api.LaKaLaApi.Separate(param)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
@@ -532,6 +530,7 @@ func Separate(ctx *jxcontext.Context, param *lakala.OrderSeparateReq) (string, s
|
||||
FinishDate: "",
|
||||
TotalAmt: param.TotalAmt,
|
||||
Status: status,
|
||||
LogNo: logNo,
|
||||
DetailData: string(recv),
|
||||
Remark: "分账",
|
||||
}
|
||||
|
||||
@@ -127,6 +127,7 @@ type LakalaSeparateAmt struct {
|
||||
CmdType string `orm:"column(cmd_type);size(32)" json:"cmdType"` // SEPARATE:分账 CANCEL:分账撤销FALLBACK:分账回退
|
||||
SeparateNo string `orm:"column(separate_no);size(32)" json:"separateNo"` // 分账系统生成唯一流水
|
||||
Status string `orm:"column(status);size(32)" json:"status1"` // 分账状态
|
||||
LogNo string `orm:"column(log_no);size(32)" json:"logNo"` // 交易流水号
|
||||
//SeparateNo2 string `orm:"column(separate_no2);size(32)" json:"separateNo2"` // 分账撤销系统生成唯一流水
|
||||
//Status2 string `orm:"column(status2);size(32)" json:"status2"` // 分账撤销状态
|
||||
//SeparateNo3 string `orm:"column(separate_no3);size(32)" json:"separateNo3"` // 分账回退系统生成唯一流水
|
||||
|
||||
@@ -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 退款订单状态查询
|
||||
|
||||
@@ -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 ||
|
||||
|
||||
Reference in New Issue
Block a user