Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -2457,13 +2457,24 @@ func DelOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID, id
|
|||||||
}
|
}
|
||||||
for _, v := range order.Skus {
|
for _, v := range order.Skus {
|
||||||
if v.ID == int64(id) {
|
if v.ID == int64(id) {
|
||||||
|
if v.Count == model.YES {
|
||||||
sql := `
|
sql := `
|
||||||
DELETE FROM order_sku WHERE id = ?
|
DELETE FROM order_sku WHERE id = ?
|
||||||
`
|
`
|
||||||
sqlParams := []interface{}{v.ID}
|
sqlParams := []interface{}{v.ID}
|
||||||
dao.ExecuteSQL(db, sql, sqlParams)
|
dao.ExecuteSQL(db, sql, sqlParams)
|
||||||
shopPrice = v.ShopPrice * int64(v.Count)
|
} else {
|
||||||
earningPrice = v.EarningPrice * int64(v.Count)
|
sql := `
|
||||||
|
UPDATE order_sku SET count = ? WHERE id = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{v.Count - 1, v.ID}
|
||||||
|
dao.ExecuteSQL(db, sql, sqlParams)
|
||||||
|
}
|
||||||
|
|
||||||
|
shopPrice = v.ShopPrice * int64(1)
|
||||||
|
earningPrice = v.EarningPrice * int64(1)
|
||||||
|
//shopPrice = v.ShopPrice * int64(v.Count)
|
||||||
|
//earningPrice = v.EarningPrice * int64(v.Count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
order.ShopPrice -= shopPrice
|
order.ShopPrice -= shopPrice
|
||||||
@@ -2696,7 +2707,7 @@ func UpdateTaoSettleInfo() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
timeStart := time.Now().Add(-24 * 90 * time.Hour)
|
timeStart := time.Now().Add(-24 * 90 * time.Hour)
|
||||||
startTime := time.Date(timeStart.Year(), timeStart.Month(), timeStart.Day(), 0, 0, 0, 0, timeStart.Location())
|
startTime := time.Date(timeStart.Year(), timeStart.Month(), timeStart.Day()-4, 0, 0, 0, 0, timeStart.Location())
|
||||||
|
|
||||||
timeEnd := time.Now()
|
timeEnd := time.Now()
|
||||||
endTiem := time.Date(timeEnd.Year(), timeEnd.Month(), timeEnd.Day()-1, 23, 59, 59, 0, timeStart.Location())
|
endTiem := time.Date(timeEnd.Year(), timeEnd.Month(), timeEnd.Day()-1, 23, 59, 59, 0, timeStart.Location())
|
||||||
|
|||||||
@@ -149,16 +149,16 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
|
|||||||
}
|
}
|
||||||
addParams := orm.Params{}
|
addParams := orm.Params{}
|
||||||
if bill.Status >= model.WaybillStatusAccepted {
|
if bill.Status >= model.WaybillStatusAccepted {
|
||||||
if bill.Status == model.WaybillStatusAccepted {
|
//if bill.Status == model.WaybillStatusAccepted {等于10的时候没有运费
|
||||||
if bill.DesiredFee > 0 {
|
if bill.DesiredFee > 0 {
|
||||||
addParams["desired_fee"] = bill.DesiredFee
|
addParams["desired_fee"] = bill.DesiredFee
|
||||||
}
|
}
|
||||||
if bill.ActualFee > 0 {
|
if bill.ActualFee > 0 {
|
||||||
addParams["actual_fee"] = bill.ActualFee
|
addParams["actual_fee"] = bill.ActualFee
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
//单独增加顺丰派送取消运单修改配送费逻辑
|
//单独增加顺丰派送取消运单修改配送费逻辑
|
||||||
if bill.WaybillVendorID == model.VendorIDSFPS && bill.Status == model.WaybillStatusCanceled {
|
if (bill.WaybillVendorID == model.VendorIDSFPS || bill.WaybillVendorID == model.VendorIDMTWM) && bill.Status == model.WaybillStatusCanceled {
|
||||||
addParams["desired_fee"] = bill.DesiredFee
|
addParams["desired_fee"] = bill.DesiredFee
|
||||||
addParams["actual_fee"] = bill.ActualFee
|
addParams["actual_fee"] = bill.ActualFee
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -994,14 +994,12 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if vendorID != model.NO {
|
||||||
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
|
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
|
||||||
savedOrderInfo.retryCount++
|
savedOrderInfo.retryCount++
|
||||||
} else {
|
} else {
|
||||||
partner.CurOrderManager.OnOrderMsg(order, utils.Int2Str(vendorID), fmt.Sprintf("发起自动创建三方运单,目标创建运单平台[%s],创建失败:%v", jxutils.GetVendorName(vendorID), err))
|
partner.CurOrderManager.OnOrderMsg(order, utils.Int2Str(vendorID), fmt.Sprintf("发起自动创建三方运单,目标创建运单平台[%s],创建失败:%v", jxutils.GetVendorName(vendorID), err))
|
||||||
//content := "您的门店 [" + storeDetail.Name + "],OrderID:[" + order.VendorOrderID + "],自动呼叫骑手失败[" + fmt.Sprintf(err.Error()) + "],请手动呼叫骑手"
|
}
|
||||||
//if user, err := dao.GetUserByID(dao.GetDB(), "mobile", storeDetail.MarketManPhone); err == nil {
|
|
||||||
// ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "平台门店状态变化", content)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1122,7 +1122,9 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
|
|||||||
defer func() {
|
defer func() {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
}()
|
}()
|
||||||
if num, err = dao.UpdateEntityLogically(db, store, valid, userName, nil); err == nil && num == 1 {
|
|
||||||
|
num, err = dao.UpdateEntityLogically(db, store, valid, userName, nil)
|
||||||
|
if err == nil && num == 1 {
|
||||||
if isUpdateStoreNeedSync(valid) {
|
if isUpdateStoreNeedSync(valid) {
|
||||||
dummy := &model.StoreMap{}
|
dummy := &model.StoreMap{}
|
||||||
kv := make(map[string]interface{})
|
kv := make(map[string]interface{})
|
||||||
@@ -1790,6 +1792,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
// }
|
// }
|
||||||
syncStatus |= model.SyncFlagStoreName
|
syncStatus |= model.SyncFlagStoreName
|
||||||
}
|
}
|
||||||
|
|
||||||
//增加同步到抖店厂商的同步标志
|
//增加同步到抖店厂商的同步标志
|
||||||
DDFlag := false
|
DDFlag := false
|
||||||
errList := errlist.ErrList{}
|
errList := errlist.ErrList{}
|
||||||
@@ -1833,6 +1836,22 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 增加门店地址修改同步
|
||||||
|
storeDetail, err := dao.GetStoreBaseByVendorStoreID(storeMap.VendorStoreID, storeMap.VendorID)
|
||||||
|
address := ""
|
||||||
|
if err != nil || storeDetail == nil {
|
||||||
|
return 0, fmt.Errorf("基础门店信息异常,请联系管理员")
|
||||||
|
}
|
||||||
|
if storeDetail != nil && payload["address"].(string) != storeDetail.Address {
|
||||||
|
// 修改门店地址
|
||||||
|
storeDetail.Address = payload["address"].(string)
|
||||||
|
dao.UpdateEntity(db, storeDetail, "Address")
|
||||||
|
// 添加同步
|
||||||
|
valid["address"] = payload["address"].(string)
|
||||||
|
syncStatus |= model.SyncFlagStoreName
|
||||||
|
address = payload["address"].(string)
|
||||||
|
}
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if len(valid) > 0 {
|
if len(valid) > 0 {
|
||||||
txDB, _ := dao.Begin(db)
|
txDB, _ := dao.Begin(db)
|
||||||
@@ -1843,6 +1862,10 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
if address != "" {
|
||||||
|
delete(valid, "address")
|
||||||
|
}
|
||||||
|
// storeMap 不包含address参数
|
||||||
if isStoreMapNeedSync(vendorID, valid) { // 对于store vendor map,只有Status改变才需要同步到厂商
|
if isStoreMapNeedSync(vendorID, valid) { // 对于store vendor map,只有Status改变才需要同步到厂商
|
||||||
num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, storeMap, valid, userName, map[string]interface{}{
|
num, err = dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, storeMap, valid, userName, map[string]interface{}{
|
||||||
model.FieldStoreID: storeID,
|
model.FieldStoreID: storeID,
|
||||||
@@ -1856,6 +1879,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
//"VendorOrgCode": vendorOrgCode,
|
//"VendorOrgCode": vendorOrgCode,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return 0, err
|
return 0, err
|
||||||
@@ -1884,7 +1908,8 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dao.Commit(db, txDB)
|
dao.Commit(db, txDB)
|
||||||
if isStoreMapNeedSync(vendorID, valid) {
|
|
||||||
|
if isStoreMapNeedSync(vendorID, valid) || address != "" {
|
||||||
_, err = CurVendorSync.SyncStore(ctx, db, vendorID, storeID, false, userName)
|
_, err = CurVendorSync.SyncStore(ctx, db, vendorID, storeID, false, userName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -497,7 +497,13 @@ func GetStoreList4User(ctx *jxcontext.Context, mobileNum, userID string) (storeL
|
|||||||
storeIDs = append(storeIDs, v.StoreID)
|
storeIDs = append(storeIDs, v.StoreID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(storeIDs) == model.NO && len(shortRoleNameList) == model.NO {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
storeList, err = dao.GetStoreListByMobileOrStoreIDs(dao.GetDB(), mobileNum, shortRoleNameList, storeIDs)
|
storeList, err = dao.GetStoreListByMobileOrStoreIDs(dao.GetDB(), mobileNum, shortRoleNameList, storeIDs)
|
||||||
|
|
||||||
return storeList, err
|
return storeList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,8 +519,8 @@ func GetMyStoreListNew(ctx *jxcontext.Context, version string) (storesInfo inter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mobile, userID := ctx.GetMobileAndUserID()
|
mobile, userID := ctx.GetMobileAndUserID()
|
||||||
if mobile == "" {
|
if mobile == "" || userID == "" || userID == "null" || userID == "NULL" {
|
||||||
return nil, "", fmt.Errorf("不能得到用户手机号")
|
return nil, "", fmt.Errorf("不能得到用户手机号,%s,%s", userID, mobile)
|
||||||
}
|
}
|
||||||
var storeList []*dao.StoreWithCityName
|
var storeList []*dao.StoreWithCityName
|
||||||
if storeList, err = GetStoreList4User(ctx, mobile, userID); err == nil && len(storeList) > 0 {
|
if storeList, err = GetStoreList4User(ctx, mobile, userID); err == nil && len(storeList) > 0 {
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ func Init() {
|
|||||||
// 每五分钟轮询一次推送骑手信息坐标给美团
|
// 每五分钟轮询一次推送骑手信息坐标给美团
|
||||||
ScheduleTimerFuncByInterval(func() {
|
ScheduleTimerFuncByInterval(func() {
|
||||||
delivery.GetOrderRiderInfoToPlatform("", 0)
|
delivery.GetOrderRiderInfoToPlatform("", 0)
|
||||||
}, 10*time.Second, 4*time.Minute)
|
}, 10*time.Second, 5*time.Minute)
|
||||||
|
|
||||||
//每天晚上23:00更新抖店 审核状态
|
//每天晚上23:00更新抖店 审核状态
|
||||||
ScheduleTimerFunc("UpdateStorePoiStatus", func() {
|
ScheduleTimerFunc("UpdateStorePoiStatus", func() {
|
||||||
@@ -206,7 +206,10 @@ func Init() {
|
|||||||
ScheduleTimerFunc("UpdateTaoTotalMoney", func() {
|
ScheduleTimerFunc("UpdateTaoTotalMoney", func() {
|
||||||
orderman.UpdateTaoSettleInfo()
|
orderman.UpdateTaoSettleInfo()
|
||||||
}, []string{
|
}, []string{
|
||||||
"18:10:00",
|
"18:30:00",
|
||||||
|
"06:30:00",
|
||||||
|
"00:30:00",
|
||||||
|
"12:30:00",
|
||||||
})
|
})
|
||||||
|
|
||||||
// 每分钟轮询一次,推送骑手信息
|
// 每分钟轮询一次,推送骑手信息
|
||||||
|
|||||||
@@ -300,7 +300,8 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta
|
|||||||
order.Status = model.WaybillStatusCanceled
|
order.Status = model.WaybillStatusCanceled
|
||||||
order.VendorStatus = utils.Int2Str(fnpsapi.OrderStatusAcceptCacle)
|
order.VendorStatus = utils.Int2Str(fnpsapi.OrderStatusAcceptCacle)
|
||||||
case fnpsapi.OrderStatusException: // 5 异常
|
case fnpsapi.OrderStatusException: // 5 异常
|
||||||
order.Status = model.WaybillStatusDeliverFailed // 22
|
order.Status = model.WaybillStatusCanceled // 22
|
||||||
|
order.VendorStatus = utils.Int2Str(fnpsapi.OrderStatusException)
|
||||||
default:
|
default:
|
||||||
globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg)
|
globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -433,8 +433,12 @@ func UpdateFakeWayBillToTiktok() {
|
|||||||
|
|
||||||
randNumber, _ := rand.Int(rand.Reader, big.NewInt(640))
|
randNumber, _ := rand.Int(rand.Reader, big.NewInt(640))
|
||||||
randTime := randNumber.Int64()
|
randTime := randNumber.Int64()
|
||||||
if randTime < 66 {
|
if randTime < 300 {
|
||||||
randTime += 60
|
randTime += 300
|
||||||
|
}
|
||||||
|
// 推送完成时加多加十分钟,相当于是配送中状态多存货十分钟
|
||||||
|
if fakeWayBill[i].Status == model.WaybillStatusDelivered {
|
||||||
|
randTime += 1200
|
||||||
}
|
}
|
||||||
fakeWayBill[i].StatusTime = time.Now().Add(time.Duration(randTime) * time.Second).Local()
|
fakeWayBill[i].StatusTime = time.Now().Add(time.Duration(randTime) * time.Second).Local()
|
||||||
fakeWayBill[i].WaybillFinishedAt = time.Now()
|
fakeWayBill[i].WaybillFinishedAt = time.Now()
|
||||||
|
|||||||
@@ -92,6 +92,8 @@ type IPurchasePlatformOrderHandler interface {
|
|||||||
|
|
||||||
// 获取各个平台订单的结算信息
|
// 获取各个平台订单的结算信息
|
||||||
GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error)
|
GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error)
|
||||||
|
// GetPlatformLogisticsFee 获取美团自配送订单的配送费
|
||||||
|
GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type IAddWaybillTip interface {
|
type IAddWaybillTip interface {
|
||||||
|
|||||||
@@ -658,10 +658,42 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode
|
|||||||
|
|
||||||
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool, reason string) (err error) {
|
func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAcceptIt bool, reason string) (err error) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
|
param := &ebaiapi.RefundOrderExamine{
|
||||||
|
ReverseOrderId: "",
|
||||||
|
OrderId: order.VendorOrderID,
|
||||||
|
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
|
||||||
|
ActionType: ebaiapi.RefundTypeRefuse,
|
||||||
|
ReasonRemarks: reason,
|
||||||
|
}
|
||||||
|
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
|
||||||
|
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
|
||||||
|
for _, v := range date {
|
||||||
|
v2 := v.(map[string]interface{})
|
||||||
|
refundProduct := &ebaiapi.RefundProductList{
|
||||||
|
SubBizOrderId: v2["sub_biz_order_id"].(string),
|
||||||
|
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
|
||||||
|
}
|
||||||
|
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
|
||||||
|
case 0:
|
||||||
|
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
|
||||||
|
case 1:
|
||||||
|
refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"]))
|
||||||
|
}
|
||||||
|
refundProductList = append(refundProductList, refundProduct)
|
||||||
|
if param.ReverseOrderId == "" {
|
||||||
|
param.ReverseOrderId = v2["refund_order_id"].(string)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
param.RefundProductList = refundProductList
|
||||||
|
|
||||||
if isAcceptIt {
|
if isAcceptIt {
|
||||||
err = api.EbaiAPI.OrderAgreeRefund(order.VendorOrderID)
|
err = api.EbaiAPI.OrderAgreeRefund(param)
|
||||||
} else {
|
} else {
|
||||||
err = api.EbaiAPI.OrderDisagreeRefund(order.VendorOrderID, reason)
|
if reason == "" {
|
||||||
|
return fmt.Errorf("拒绝退单时,请填写拒单原因")
|
||||||
|
}
|
||||||
|
param.ReasonCode = "7001"
|
||||||
|
err = api.EbaiAPI.OrderDisagreeRefund(param)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -804,3 +836,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
|
|
||||||
return utils.ForceInterface2Int64(orderMap["shop_fee"]), nil
|
return utils.ForceInterface2Int64(orderMap["shop_fee"]), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
@@ -225,11 +226,48 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *ebaiapi.CallbackMsg) (order
|
|||||||
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
if approveType == partner.AfsApproveTypeRefused {
|
if approveType == partner.AfsApproveTypeRefused {
|
||||||
err = api.EbaiAPI.OrderDisagreeReturnGoods(order.VendorOrderID, order.AfsOrderID, reason)
|
if reason == "" {
|
||||||
|
return fmt.Errorf("拒绝退单时请填写原因")
|
||||||
|
}
|
||||||
|
param := &ebaiapi.RefundOrderExamine{
|
||||||
|
ReverseOrderId: order.AfsOrderID,
|
||||||
|
OrderId: order.VendorOrderID,
|
||||||
|
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
|
||||||
|
ActionType: ebaiapi.RefundTypeRefuseGoods,
|
||||||
|
ReasonCode: "7001",
|
||||||
|
ReasonRemarks: reason,
|
||||||
|
}
|
||||||
|
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
|
||||||
|
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
|
||||||
|
for _, v := range date {
|
||||||
|
v2 := v.(map[string]interface{})
|
||||||
|
refundProduct := &ebaiapi.RefundProductList{
|
||||||
|
SubBizOrderId: v2["sub_biz_order_id"].(string),
|
||||||
|
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
|
||||||
|
}
|
||||||
|
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
|
||||||
|
case 0:
|
||||||
|
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
|
||||||
|
case 1:
|
||||||
|
refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"]))
|
||||||
|
}
|
||||||
|
refundProductList = append(refundProductList, refundProduct)
|
||||||
|
}
|
||||||
|
param.RefundProductList = refundProductList
|
||||||
|
|
||||||
|
err = api.EbaiAPI.OrderDisagreeReturnGoods(param)
|
||||||
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney {
|
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney {
|
||||||
return errors.New("此平台暂时不支持")
|
return errors.New("此平台暂时不支持")
|
||||||
} else {
|
} else {
|
||||||
err = api.EbaiAPI.OrderAgreeReturnGoods(order.VendorOrderID, order.AfsOrderID)
|
param := &ebaiapi.RefundOrderExamine{
|
||||||
|
ReverseOrderId: order.AfsOrderID,
|
||||||
|
OrderId: order.VendorOrderID,
|
||||||
|
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
|
||||||
|
ActionType: ebaiapi.RefundTypeAgreeGoods,
|
||||||
|
ReasonCode: "",
|
||||||
|
ReasonRemarks: reason,
|
||||||
|
}
|
||||||
|
err = api.EbaiAPI.OrderAgreeReturnGoods(param)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -250,8 +288,6 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
// 发起部分退款 售后/售中
|
// 发起部分退款 售后/售中
|
||||||
func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) {
|
func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) {
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
//售后部分多次退款
|
|
||||||
if order.Status > model.OrderStatusEndBegin {
|
|
||||||
//获取afsOrder
|
//获取afsOrder
|
||||||
var afsOrderInfo *model.AfsOrder
|
var afsOrderInfo *model.AfsOrder
|
||||||
result, err := api.EbaiAPI.OrderPartRefundGet(order.VendorOrderID)
|
result, err := api.EbaiAPI.OrderPartRefundGet(order.VendorOrderID)
|
||||||
@@ -259,10 +295,50 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
afsOrderInfo = CurPurchaseHandler.AfsOrderDetail2Financial(result)
|
afsOrderInfo = CurPurchaseHandler.AfsOrderDetail2Financial(result)
|
||||||
if err := api.EbaiAPI.OrderAgreePartRefund(afsOrderInfo.VendorOrderID, orderSkus2AfsSkus(refundSkuList), afsOrderInfo.AfsOrderID); err != nil {
|
|
||||||
return err
|
//售后部分多次退款
|
||||||
|
if order.Status > model.OrderStatusEndBegin {
|
||||||
|
param := &ebaiapi.RefundOrderExamine{
|
||||||
|
ReverseOrderId: afsOrderInfo.AfsOrderID,
|
||||||
|
OrderId: afsOrderInfo.VendorOrderID,
|
||||||
|
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
|
||||||
|
ActionType: ebaiapi.RefundTypeAgree,
|
||||||
|
ReasonCode: "",
|
||||||
|
ReasonRemarks: reason,
|
||||||
}
|
}
|
||||||
|
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
|
||||||
|
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
|
||||||
|
for _, v := range date {
|
||||||
|
v2 := v.(map[string]interface{})
|
||||||
|
refundProduct := &ebaiapi.RefundProductList{
|
||||||
|
SubBizOrderId: v2["sub_biz_order_id"].(string),
|
||||||
|
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
|
||||||
|
}
|
||||||
|
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
|
||||||
|
case 0:
|
||||||
|
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
|
||||||
|
case 1:
|
||||||
|
refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"]))
|
||||||
|
}
|
||||||
|
refundProductList = append(refundProductList, refundProduct)
|
||||||
|
}
|
||||||
|
param.RefundProductList = refundProductList
|
||||||
|
err = api.EbaiAPI.OrderAgreePartRefund(param)
|
||||||
} else {
|
} else {
|
||||||
|
if reason == "" {
|
||||||
|
return fmt.Errorf("拒绝退单时,请填写拒单原因")
|
||||||
|
}
|
||||||
|
|
||||||
|
//param := &ebaiapi.RefundOrderExamine{
|
||||||
|
// ReverseOrderId: afsOrderInfo.AfsOrderID,
|
||||||
|
// OrderId: afsOrderInfo.VendorOrderID,
|
||||||
|
// IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
|
||||||
|
// ActionType: ebaiapi.RefundTypeRefuse,
|
||||||
|
// ReasonCode: "7001",
|
||||||
|
// ReasonRemarks: reason,
|
||||||
|
// RefundProductList: "",
|
||||||
|
//}
|
||||||
|
//err = api.EbaiAPI.OrderPartRefund(param)
|
||||||
if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil {
|
if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -673,3 +673,8 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(goods *model.GoodsOrder) (int64
|
|||||||
}
|
}
|
||||||
return settlement.SettlementAmount, nil
|
return settlement.SettlementAmount, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -333,3 +333,8 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) {
|
|||||||
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -160,3 +160,8 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) {
|
|||||||
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package mtwm
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/mtpsapi"
|
||||||
"math"
|
"math"
|
||||||
"net/url"
|
"net/url"
|
||||||
"regexp"
|
"regexp"
|
||||||
@@ -395,6 +396,15 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
|||||||
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
|
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
// 美团订单完成时,获取跑腿费用
|
||||||
|
if fee, feeErr := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetPlatformLogisticsFee(order); feeErr != nil {
|
||||||
|
bill, err := partner.CurOrderManager.LoadWaybill(order.VendorOrderID, model.VendorIDMTWM)
|
||||||
|
if bill == nil && err == nil {
|
||||||
|
bill.ActualFee = fee
|
||||||
|
bill.DesiredFee = fee
|
||||||
|
dao.UpdateEntity(dao.GetDB(), bill, "ActualFee", "DesiredFee")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -514,13 +524,36 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||||
isSelfDelivery = model.IsOrderDeliveryByStore(order) || model.IsOrderDeliveryBySelf(order)
|
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||||
|
orderDetail, err := api.OrderGetOrderDetail(utils.Str2Int64(order.VendorOrderID), false)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 美团专送、快送、混合送、美团企客
|
||||||
|
logisticsCode := utils.Interface2String(orderDetail["logistics_code"])
|
||||||
|
isSelfDelivery = logisticsCode == mtwmapi.PeiSongTypeMTZSJM || logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi || logisticsCode == mtwmapi.PeiSongTypeMixed || logisticsCode == mtwmapi.PeiSongTypeQiKe
|
||||||
|
//1001-专送(加盟);1002-专送(自建)
|
||||||
|
//2002-快送;3001-混合送(专送+快送)
|
||||||
|
//4015-企客远距离配送
|
||||||
|
//此接口适用于美团专送、快送、混合送、美团企客的订单确认备货完成
|
||||||
|
//PeiSongTypeSelf = "0000" // 商家自配
|
||||||
|
//PeiSongTypeQuHuo = "0002" // 趣活
|
||||||
|
//PeiSongTypeDada = "0016" // 达达
|
||||||
|
//PeiSongTypeE = "0033" // E代送
|
||||||
|
//PeiSongTypeMTZSJM = "1001" // 美团专送-加盟
|
||||||
|
//PeiSongTypeMTZSZJ = "1002" // 美团专送-自建
|
||||||
|
//PeiSongTypeMTZSPT = "1003" // 美团跑腿(原众包)
|
||||||
|
//PeiSongTypeMTZSDL = "1004" // 美团专送-城市代理
|
||||||
|
//PeiSongTypeJiaoMa = "2001" // 角马
|
||||||
|
//PeiSongTypeKuaiDi = "2002" // 快送
|
||||||
|
//PeiSongTypeWholeCity = "2010" // 全城送
|
||||||
|
//PeiSongTypeMixed = "3001" // 混合送(即美团专送+快送)
|
||||||
if isSelfDelivery {
|
if isSelfDelivery {
|
||||||
if globals.EnableMtwmStoreWrite {
|
err = api.PreparationMealComplete(utils.Str2Int64(order.VendorOrderID))
|
||||||
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").PreparationMealComplete(utils.Str2Int64(order.VendorOrderID))
|
|
||||||
}
|
}
|
||||||
}
|
if err == nil || strings.Contains(err.Error(), "808") {
|
||||||
if err == nil || strings.Contains(err.Error(), "808") { // 配送类型只能为美团配送或美团企客配送 level:0, code:808
|
// 配送类型只能为美团配送或美团企客配送 level:0, code:808
|
||||||
c.postFakeMsg(order.VendorOrderID, FakeMsgType, fakeFinishedPickup)
|
c.postFakeMsg(order.VendorOrderID, FakeMsgType, fakeFinishedPickup)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -569,8 +602,42 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
|
|||||||
|
|
||||||
// SelfDeliverDelivered 自配送订单送达
|
// SelfDeliverDelivered 自配送订单送达
|
||||||
func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||||
|
|
||||||
if globals.EnableMtwmStoreWrite {
|
if globals.EnableMtwmStoreWrite {
|
||||||
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").OrderArrived(utils.Str2Int64(order.VendorOrderID))
|
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||||
|
db := dao.GetDB()
|
||||||
|
|
||||||
|
err = api.OrderArrived(utils.Str2Int64(order.VendorOrderID))
|
||||||
|
if err == nil {
|
||||||
|
riderInfo := &mtpsapi.RiderInfo{
|
||||||
|
OrderId: order.VendorOrderID,
|
||||||
|
ThirdCarrierOrderId: order.VendorOrderID,
|
||||||
|
CourierName: "",
|
||||||
|
CourierPhone: "",
|
||||||
|
LogisticsProviderCode: "10015", // 商家自建配送
|
||||||
|
LogisticsStatus: utils.Str2Int(mtwmapi.WaybillStatusDelivered),
|
||||||
|
Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLat)), // 送达即为客户坐标
|
||||||
|
Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLng)),
|
||||||
|
}
|
||||||
|
waybills, _ := dao.GetWaybills(db, order.VendorOrderID, nil)
|
||||||
|
if len(waybills) == model.NO {
|
||||||
|
store, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
|
||||||
|
riderInfo.CourierName = "老板"
|
||||||
|
riderInfo.CourierPhone = store.Tel1
|
||||||
|
} else {
|
||||||
|
for _, v := range waybills {
|
||||||
|
if v.Status >= model.OrderStatusDelivering && v.Status <= model.OrderStatusFinished {
|
||||||
|
riderInfo.CourierName = v.CourierName
|
||||||
|
riderInfo.CourierPhone = v.CourierMobile
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if riderInfo.CourierName == "" || riderInfo.CourierPhone == "" {
|
||||||
|
riderInfo.CourierName = "老板"
|
||||||
|
riderInfo.CourierPhone = "18048531223"
|
||||||
|
}
|
||||||
|
err = c.GetOrderRider(order.VendorOrgCode, order.VendorStoreID, utils.Struct2Map(riderInfo, "", true))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -849,7 +916,17 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re
|
|||||||
|
|
||||||
// 获取订单配送状态
|
// 获取订单配送状态
|
||||||
func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) {
|
func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) {
|
||||||
return 0, nil
|
orderInfo, err := dao.GetSimpleOrder(dao.GetDB(), utils.Int64ToStr(orderId))
|
||||||
|
if err != nil {
|
||||||
|
return 0, errors.New("获取本地门店账号信息失败,请重试")
|
||||||
|
}
|
||||||
|
|
||||||
|
status, err := getAPI(orderInfo.VendorOrgCode, 0, "").OrderLogisticsStatus(orderId)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return status, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOrderSettleAccounts 获取订单结算信息
|
// GetOrderSettleAccounts 获取订单结算信息
|
||||||
@@ -868,3 +945,13 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
|
|||||||
}
|
}
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取美团自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
fee, err := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), order.VendorStoreID).OrderLogisticsFee(utils.Str2Int64(order.VendorOrderID))
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return utils.Float64TwoInt64(fee * 100), nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -55,10 +55,12 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal
|
|||||||
retVal.StatusTime = getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("timestamp")))
|
retVal.StatusTime = getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("timestamp")))
|
||||||
}
|
}
|
||||||
|
|
||||||
//if vendorStatus == "4" || vendorStatus == "8" { // 4:美团推送已经(确认骑手)订单 8:美团推送(骑手完成)订单
|
order, err := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDMTWM)
|
||||||
// retVal.DesiredFee = utils.Float64TwoInt64(utils.Str2Float64WithDefault(msg.FormData.Get("shipping_fee"), 0)) // 订单优惠前的总费用
|
if err == nil && order != nil {
|
||||||
// partner.CurOrderManager
|
fee, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).GetPlatformLogisticsFee(order)
|
||||||
//}
|
retVal.ActualFee = fee
|
||||||
|
retVal.DesiredFee = fee
|
||||||
|
}
|
||||||
|
|
||||||
return retVal
|
return retVal
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
|||||||
order.BusinessType = model.BusinessTypeImmediate
|
order.BusinessType = model.BusinessTypeImmediate
|
||||||
order.ExpectedDeliveredTime = getTimeFromTimestamp(earliestTime + 30*60) // 预计最晚送达时间
|
order.ExpectedDeliveredTime = getTimeFromTimestamp(earliestTime + 30*60) // 预计最晚送达时间
|
||||||
}
|
}
|
||||||
|
order.PickDeadline = order.ExpectedDeliveredTime.Add(-1 * time.Hour)
|
||||||
|
|
||||||
// 用户信息
|
// 用户信息
|
||||||
order.ConsigneeName = *orderDetail.ReceiveInfo.ReceiverName
|
order.ConsigneeName = *orderDetail.ReceiveInfo.ReceiverName
|
||||||
@@ -502,9 +503,16 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param); err != nil {
|
api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "")
|
||||||
|
err = api.DeliveryFinish(param)
|
||||||
|
|
||||||
|
if err != nil && strings.Contains(err.Error(), "并发操作,执行失败,请重试") {
|
||||||
|
time.Sleep(200 * time.Millisecond)
|
||||||
|
api.DeliveryFinish(param)
|
||||||
|
} else if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp)
|
c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
@@ -554,10 +562,13 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err = api.DeliveryFinish(param); err == nil {
|
err = api.DeliveryFinish(param)
|
||||||
|
if err == nil {
|
||||||
paramDelivery := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDelivery)
|
paramDelivery := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDelivery)
|
||||||
// 开始配送
|
// 开始配送
|
||||||
return api.DeliveryFinish(paramDelivery)
|
return api.DeliveryFinish(paramDelivery)
|
||||||
|
} else if strings.Contains(err.Error(), "当前状态不允许更新, 请求更新状态") { // "当前状态不允许更新, 请求更新状态: PACKAGED, 当前状态:SHIPPING" 这个时候代表上一次状态以及更新成了,返回错误消息不在处理
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
@@ -897,3 +908,8 @@ func GetOrderTotalShopMoney(appOrgCode string, vendorStoreID string, start, end
|
|||||||
|
|
||||||
return settlement, nil
|
return settlement, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -60,9 +60,12 @@ func (c *PurchaseHandler) isAfsMsg(orderStatus string, orderId string, orderCall
|
|||||||
|
|
||||||
func (c *PurchaseHandler) OnAfsOrderMsg(orderId, status string, msg interface{}) (retVal *tao_vegetable.CallBackResult) {
|
func (c *PurchaseHandler) OnAfsOrderMsg(orderId, status string, msg interface{}) (retVal *tao_vegetable.CallBackResult) {
|
||||||
// 取消线程池执行代码,异步返回
|
// 取消线程池执行代码,异步返回
|
||||||
//jxutils.CallMsgHandlerAsync(func() {
|
jxutils.CallMsgHandlerAsync(func() {
|
||||||
retVal = c.onAfsOrderMsg(status, msg)
|
retVal = c.onAfsOrderMsg(status, msg)
|
||||||
//}, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable))
|
}, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable))
|
||||||
|
if retVal == nil {
|
||||||
|
return tao_vegetable.CallBackResultInfo(nil)
|
||||||
|
}
|
||||||
return retVal
|
return retVal
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,7 +77,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
switch status {
|
switch status {
|
||||||
case tao_vegetable.OrderStatusApplyAfs:
|
case tao_vegetable.OrderStatusApplyAfs:
|
||||||
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
||||||
globals.SugarLogger.Debugf("================OrderStatusApplyAfs : %s", utils.Format4Output(msg, false))
|
|
||||||
var afsOrder *model.AfsOrder
|
var afsOrder *model.AfsOrder
|
||||||
var api = getAPI("", 0, refundData.StoreId)
|
var api = getAPI("", 0, refundData.StoreId)
|
||||||
|
|
||||||
@@ -163,7 +165,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
}
|
}
|
||||||
|
|
||||||
case tao_vegetable.OrderStatusCancelAfs:
|
case tao_vegetable.OrderStatusCancelAfs:
|
||||||
globals.SugarLogger.Debugf("用户取消售后----------- %s", utils.Format4Output(msg, false))
|
|
||||||
// 删除售后单
|
// 删除售后单
|
||||||
afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, "")
|
afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, "")
|
||||||
if err != nil || afsOrder == nil {
|
if err != nil || afsOrder == nil {
|
||||||
@@ -206,7 +207,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
// 你这边没有响应那么就不会退钱给用户,就会造成客诉。为什么不接售中取消呢
|
// 你这边没有响应那么就不会退钱给用户,就会造成客诉。为什么不接售中取消呢
|
||||||
case tao_vegetable.OrderStatusOnSaleCancel:
|
case tao_vegetable.OrderStatusOnSaleCancel:
|
||||||
onSaleMsg := msg.(*tao_vegetable.OnSaleCancel)
|
onSaleMsg := msg.(*tao_vegetable.OnSaleCancel)
|
||||||
globals.SugarLogger.Debugf("=========售中取消: %s", utils.Format4Output(msg, false))
|
|
||||||
var afsOrder *model.AfsOrder
|
var afsOrder *model.AfsOrder
|
||||||
var api = getAPI("", 0, onSaleMsg.PartCancelRequest.StoreId)
|
var api = getAPI("", 0, onSaleMsg.PartCancelRequest.StoreId)
|
||||||
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
||||||
@@ -282,9 +282,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case tao_vegetable.OrderStatusRefundSuccess:
|
case tao_vegetable.OrderStatusRefundSuccess:
|
||||||
globals.SugarLogger.Debugf("=========售后成功: %s", utils.Format4Output(msg, false))
|
|
||||||
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
||||||
if scarceGoods != nil {
|
if scarceGoods != nil {
|
||||||
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
||||||
|
|||||||
@@ -1017,3 +1017,8 @@ func GetOrderDetail(appOrgCode, vendorOrderID string) (*order_orderDetail_respon
|
|||||||
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
@@ -111,3 +111,8 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) {
|
|||||||
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64, error) {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPlatformLogisticsFee 获取自配送订单的配送费
|
||||||
|
func (c *PurchaseHandler) GetPlatformLogisticsFee(order *model.GoodsOrder) (int64, error) {
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user