Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -230,7 +230,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s
|
|||||||
)
|
)
|
||||||
waybills, _ := dao.GetWaybills(db, order.VendorOrderID)
|
waybills, _ := dao.GetWaybills(db, order.VendorOrderID)
|
||||||
//美团的订单如果是同意全部退款,要取消所有三方运单并停止调度
|
//美团的订单如果是同意全部退款,要取消所有三方运单并停止调度
|
||||||
if order.VendorID == model.VendorIDMTWM || order.VendorID == model.VendorIDJX {
|
if order.VendorID == model.VendorIDMTWM || order.VendorID == model.VendorIDJX || order.VendorID == model.VendorIDEBAI {
|
||||||
var (
|
var (
|
||||||
afsCount, orderCount int
|
afsCount, orderCount int
|
||||||
)
|
)
|
||||||
@@ -255,6 +255,16 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s
|
|||||||
order.VendorStatus = utils.Int2Str(model.OrderStatusCanceled)
|
order.VendorStatus = utils.Int2Str(model.OrderStatusCanceled)
|
||||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"})
|
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"})
|
||||||
}
|
}
|
||||||
|
if afsCount == orderCount && order.VendorID == model.VendorIDEBAI {
|
||||||
|
order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled
|
||||||
|
order.Status = model.OrderStatusCanceled
|
||||||
|
order.VendorStatus = "10" // 饿百取消订单
|
||||||
|
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"})
|
||||||
|
for _, v := range waybills {
|
||||||
|
c.CancelWaybill(v, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if order.EarningType == model.EarningTypePoints {
|
if order.EarningType == model.EarningTypePoints {
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -222,9 +222,9 @@ func Init() {
|
|||||||
|
|
||||||
// 每天更新美团门当的结算信息和配送费等等
|
// 每天更新美团门当的结算信息和配送费等等
|
||||||
ScheduleTimerFunc("LoadingStoreOrderSettleAmount", func() {
|
ScheduleTimerFunc("LoadingStoreOrderSettleAmount", func() {
|
||||||
// delivery.LoadingStoreOrderSettleAmount(0, 0, nil)
|
delivery.LoadingStoreOrderSettleAmount(0, 0, nil)
|
||||||
}, []string{
|
}, []string{
|
||||||
"04:50:00",
|
"19:50:00",
|
||||||
})
|
})
|
||||||
|
|
||||||
// 定时任务更新昨天的都要商品和本地商品id的映射关系
|
// 定时任务更新昨天的都要商品和本地商品id的映射关系
|
||||||
|
|||||||
@@ -20,6 +20,33 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// 换成京西结算账号
|
||||||
|
jxSettleIdMap = map[int64]bool{
|
||||||
|
// 菜市
|
||||||
|
7030017: true,
|
||||||
|
7974502: true,
|
||||||
|
100639968: true,
|
||||||
|
100715370: true,
|
||||||
|
100822700: true,
|
||||||
|
101093797: true,
|
||||||
|
102715080: true,
|
||||||
|
102114997: true,
|
||||||
|
102641826: true,
|
||||||
|
102651220: true,
|
||||||
|
// 果园啊
|
||||||
|
6572945: true,
|
||||||
|
6772759: true,
|
||||||
|
101968432: true,
|
||||||
|
102101411: true,
|
||||||
|
102176700: true,
|
||||||
|
102369597: true,
|
||||||
|
102416681: true,
|
||||||
|
102924441: true,
|
||||||
|
103376926: true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
// 订单骑手信息推送:将获取到的三方配送订单,且订单状态为配送中的订单,将配送人员的信息返回给订单方
|
// 订单骑手信息推送:将获取到的三方配送订单,且订单状态为配送中的订单,将配送人员的信息返回给订单方
|
||||||
// 该方法为定时任务,没五分钟推送一次订单消息,订单状态发生变化时
|
// 该方法为定时任务,没五分钟推送一次订单消息,订单状态发生变化时
|
||||||
//配送状态code,如下提供配送状态枚举值,
|
//配送状态code,如下提供配送状态枚举值,
|
||||||
@@ -62,6 +89,12 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
if orderId == "" && v.VendorID == model.VendorIDDD { // 抖音门店订单除了三方配送回调时推送,不在主动推送配送消息
|
if orderId == "" && v.VendorID == model.VendorIDDD { // 抖音门店订单除了三方配送回调时推送,不在主动推送配送消息
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 平台自配送
|
||||||
|
if v.WaybillVendorID == model.YES {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
||||||
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID)
|
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID)
|
||||||
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
||||||
@@ -87,16 +120,11 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if riderInfo == nil || wayBillStatus == model.OrderStatusNew || wayBillStatus == model.OrderStatusCanceled || (riderInfo.CourierName == "" && v.WaybillVendorID == -1 && v.DeliveryType == "store") { // 真商家自送
|
if wayBillStatus == model.OrderStatusNew || wayBillStatus == model.OrderStatusCanceled || (v.WaybillVendorID == -1 && v.DeliveryType == "store") { // 真商家自送
|
||||||
riderInfo.OrderId = v.VendorOrderID
|
riderInfo.OrderId = v.VendorOrderID
|
||||||
riderInfo.CourierName = "门店老板"
|
riderInfo.CourierName = "门店老板"
|
||||||
riderInfo.CourierPhone = "18048531223"
|
|
||||||
riderInfo.LogisticsProviderCode = "10017"
|
riderInfo.LogisticsProviderCode = "10017"
|
||||||
riderInfo.LogisticsStatus = v.Status
|
riderInfo.LogisticsStatus = v.Status
|
||||||
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), v.JxStoreID, 0, "")
|
|
||||||
if err != nil {
|
|
||||||
riderInfo.CourierPhone = storeDetail.Tel1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch riderInfo.LogisticsStatus {
|
switch riderInfo.LogisticsStatus {
|
||||||
@@ -104,7 +132,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
riderInfo.LogisticsStatus = 0
|
riderInfo.LogisticsStatus = 0
|
||||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsStatusCALLRIDER
|
riderInfo.OpCode = tiktok_api.TiktokLogisticsStatusCALLRIDER
|
||||||
case 12: // 骑手接单
|
case 12: // 骑手接单
|
||||||
riderInfo.LogisticsStatus = 12
|
riderInfo.LogisticsStatus = 10
|
||||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
||||||
case 15: // 到店
|
case 15: // 到店
|
||||||
riderInfo.LogisticsStatus = 15
|
riderInfo.LogisticsStatus = 15
|
||||||
@@ -136,13 +164,27 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
if riderInfo.Latitude == "" {
|
if riderInfo.Latitude == "" {
|
||||||
riderInfo.Latitude = utils.Float64ToStr(utils.Int2Float64(v.ConsigneeLat) / 1000000)
|
riderInfo.Latitude = utils.Float64ToStr(utils.Int2Float64(v.ConsigneeLat) / 1000000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if riderInfo.CourierPhone == "" {
|
||||||
|
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), v.JxStoreID, 0, "")
|
||||||
|
if err != nil {
|
||||||
|
riderInfo.CourierPhone = storeDetail.Tel1
|
||||||
|
}
|
||||||
|
riderInfo.CourierName = "老板"
|
||||||
|
}
|
||||||
|
if riderInfo.CourierPhone == "" {
|
||||||
|
riderInfo.CourierName = "石锋"
|
||||||
|
riderInfo.CourierPhone = "18048531223"
|
||||||
|
}
|
||||||
|
if riderInfo.ThirdCarrierOrderId == "" {
|
||||||
|
riderInfo.ThirdCarrierOrderId = riderInfo.OrderId + "_fake"
|
||||||
|
}
|
||||||
// 目前只推送美团骑手信息
|
// 目前只推送美团骑手信息
|
||||||
switch v.VendorID {
|
switch v.VendorID {
|
||||||
case model.VendorIDMTWM: // 美团订单
|
case model.VendorIDMTWM: // 美团订单
|
||||||
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
|
||||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
||||||
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, paramsMap); err != nil {
|
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, utils.Struct2Map(riderInfo, "", true)); err != nil {
|
||||||
globals.SugarLogger.Errorf("Error pushing meituan rider information :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err)
|
globals.SugarLogger.Errorf("Error pushing meituan rider information :%s--%s--%v", v.VendorOrderID, utils.Format4Output(riderInfo, false), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case model.VendorIDELM: // 饿了么
|
case model.VendorIDELM: // 饿了么
|
||||||
@@ -162,7 +204,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
case model.VendorIDDD: // 抖店小时达
|
case model.VendorIDDD: // 抖店小时达
|
||||||
continue
|
continue
|
||||||
default:
|
default:
|
||||||
globals.SugarLogger.Errorf("Order source error, non system order")
|
globals.SugarLogger.Errorf("Order source error, non system order: %s", v.VendorOrderID)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -368,7 +410,7 @@ func LoadingStoreOrderSettleAmount(startTime, endTime int64, jxStoreId []int) er
|
|||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
now = time.Now()
|
now = time.Now()
|
||||||
from = time.Date(now.Year(), now.Month(), now.Day()-2, 0, 0, 0, 0, time.Local).Unix()
|
from = time.Date(now.Year(), now.Month(), now.Day()-4, 0, 0, 0, 0, time.Local).Unix()
|
||||||
to = time.Date(now.Year(), now.Month(), now.Day()-1, 23, 59, 59, 59, time.Local).Unix()
|
to = time.Date(now.Year(), now.Month(), now.Day()-1, 23, 59, 59, 59, time.Local).Unix()
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -376,26 +418,40 @@ func LoadingStoreOrderSettleAmount(startTime, endTime int64, jxStoreId []int) er
|
|||||||
from = startTime
|
from = startTime
|
||||||
to = endTime
|
to = endTime
|
||||||
}
|
}
|
||||||
storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDMTWM}, jxStoreId, []int{model.StoreStatusClosed, model.StoreStatusHaveRest, model.StoreStatusOpened}, model.StoreStatusAll, 0, "", "", "")
|
storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDMTWM}, jxStoreId, []int{model.StoreStatusClosed, model.StoreStatusHaveRest, model.StoreStatusOpened}, model.StoreStatusAll, model.StoreIsSyncAll, "", "", "")
|
||||||
if err != nil || len(storeMapList) == model.NO {
|
if err != nil || len(storeMapList) == model.NO {
|
||||||
globals.SugarLogger.Errorf("获取美团门店列表异常: %v", err)
|
globals.SugarLogger.Errorf("获取美团门店列表异常: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
storeListValue := batchItemList[0].([]*model.StoreMap)
|
storeListValue := batchItemList[0].(*model.StoreMap)
|
||||||
for _, v := range storeListValue {
|
billListParam := &mtwmapi.Bill{
|
||||||
storeOrder, err := mtwm.GetAPI(v.VendorOrgCode, v.StoreID, v.VendorStoreID).GetStoreBillList(&mtwmapi.Bill{
|
AppPoiCode: storeListValue.VendorStoreID,
|
||||||
AppPoiCode: v.VendorStoreID,
|
|
||||||
StartDate: from,
|
StartDate: from,
|
||||||
EndDate: to,
|
EndDate: to,
|
||||||
Offset: 0,
|
Offset: 0,
|
||||||
Limit: 200,
|
Limit: 200,
|
||||||
})
|
}
|
||||||
|
storeOrder, settleId, err := mtwm.GetAPI(storeListValue.VendorOrgCode, storeListValue.StoreID, storeListValue.VendorStoreID).GetStoreBillList(billListParam)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
globals.SugarLogger.Debugf("GetStoreBillList err : %v", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果收款账户为京西的收款账户,则此门店不是服务商(否则是服务商,使用门店发单[需要自己的账户充值金额才行]!)
|
||||||
|
if settleId != model.NO && jxSettleIdMap[settleId] {
|
||||||
|
brandSql := `UPDATE store_map s SET s.create_delivery_type = ?,s.is_service = ? WHERE s.vendor_store_id = ? AND s.deleted_at = ?`
|
||||||
|
if _, err := dao.ExecuteSQL(db, brandSql, []interface{}{model.NO, model.NO, storeListValue.VendorStoreID, utils.DefaultTimeValue}...); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("将门店修改为非服务商和系统发单: %v", err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
brandSql := `UPDATE store_map s SET s.create_delivery_type = ?,s.is_service = ? WHERE s.vendor_store_id = ? AND s.deleted_at = ?`
|
||||||
|
if _, err := dao.ExecuteSQL(db, brandSql, []interface{}{model.YES, model.YES, storeListValue.VendorStoreID, utils.DefaultTimeValue}...); err != nil {
|
||||||
|
globals.SugarLogger.Debugf("将门店修改为服务商和门店发单: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, so := range storeOrder {
|
for _, so := range storeOrder {
|
||||||
// 更新订单的结算信息
|
// 更新订单的结算信息
|
||||||
if so.PlatformSettlement > 0 {
|
if so.PlatformSettlement > 0 {
|
||||||
@@ -406,15 +462,14 @@ func LoadingStoreOrderSettleAmount(startTime, endTime int64, jxStoreId []int) er
|
|||||||
}
|
}
|
||||||
// 更新订单的配送信息
|
// 更新订单的配送信息
|
||||||
if so.TimingFee != 0 || so.DeliveryFee != 0 {
|
if so.TimingFee != 0 || so.DeliveryFee != 0 {
|
||||||
wayBillSql := `UPDATE waybill w SET w.desired_fee = ?,w.punctual_fee = ? WHERE g.vendor_order_id = ? AND g.vendor_waybill_id = ? `
|
wayBillSql := `UPDATE waybill w SET w.desired_fee = ?,w.punctual_fee = ? WHERE w.vendor_order_id = ? AND w.vendor_waybill_id = ? `
|
||||||
if _, err := dao.ExecuteSQL(db, wayBillSql, []interface{}{so.DeliveryFee * -1, so.TimingFee * -1, so.OrderId, so.OrderId}...); err != nil {
|
if _, err := dao.ExecuteSQL(db, wayBillSql, []interface{}{so.DeliveryFee, so.TimingFee, so.OrderId, so.OrderId}...); err != nil {
|
||||||
globals.SugarLogger.Debugf("更新订单物流结算信息错误: %v", err)
|
globals.SugarLogger.Debugf("更新订单物流结算信息错误: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
return retVal, err
|
return retVal, err
|
||||||
}
|
}
|
||||||
task := tasksch.NewParallelTask("更新美团订单配送费/保险费/结算信息", tasksch.NewParallelConfig().SetParallelCount(4), jxcontext.AdminCtx, taskFunc, storeMapList)
|
task := tasksch.NewParallelTask("更新美团订单配送费/保险费/结算信息", tasksch.NewParallelConfig().SetParallelCount(4), jxcontext.AdminCtx, taskFunc, storeMapList)
|
||||||
|
|||||||
Reference in New Issue
Block a user