template name
This commit is contained in:
@@ -346,15 +346,15 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
RiderGetOrder = "骑手接单"
|
||||
RiderToStore = "骑手到店"
|
||||
RiderGetOrderDelivering = "骑手配送中"
|
||||
RiderGetOrderDelivered = "骑手配送完成"
|
||||
RiderGetOrderCanceled = "骑手取消"
|
||||
RiderGetOrder = "骑手 %s (%s) 已接单"
|
||||
RiderToStore = "骑手 %s (%s) 已到店"
|
||||
RiderGetOrderDelivering = "骑手 %s (%s) 配送中"
|
||||
RiderGetOrderDelivered = "骑手 %s (%s) 已送达"
|
||||
RiderGetOrderCanceled = "骑手 %s (%s) 已取消"
|
||||
RiderGetOrderDeliverFailed = "骑手配送异常"
|
||||
RiderGetOrderDeliverOther = "其他待处理信息"
|
||||
RiderWaitRider = "待接单,正在分配骑手"
|
||||
RiderWaitGetGoods = "已经分配骑手,待取货"
|
||||
RiderWaitGetGoods = "骑手 %s (%s) 已接单"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -2,7 +2,9 @@ package dao
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
@@ -1582,42 +1584,41 @@ func QueryStoreBindInfo(storeID int) (*model.FreightTemplate, error) {
|
||||
//向FreightTemplate 插入数据
|
||||
func InsertIntoFreightTemplate(storeID int, vendorStoreID string, templateID, warehouseID, fenceID, tradeLimitID int64) error {
|
||||
var (
|
||||
sqlStr = []string{}
|
||||
sqlStr []string
|
||||
tStr = ""
|
||||
sqlParams = []interface{}{}
|
||||
sqlParams []interface{}
|
||||
)
|
||||
if storeID == 0 && utils.Str2Int(vendorStoreID) == 0 {
|
||||
return errors.New("storeID,vendorStoreID 必传")
|
||||
}
|
||||
if _, err := ExecuteSQL(GetDB(), "SELECT COUNT(*) FROM freight_template a WHERE a.store_id = ? AND a.vendor_store_id = ?", storeID, vendorStoreID); err != nil {
|
||||
if _, err := ExecuteSQL(GetDB(), "INSERT INTO freight_template (store_id,vendor_store_id,created_at,updated_at) VALUES (?,?,?,?)", storeID, vendorStoreID, time.Now(), time.Now()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
sql := `UPDATE freight_template a SET `
|
||||
|
||||
if templateID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.template_id = ? ")
|
||||
sqlParams = append(sqlParams, templateID)
|
||||
templateIDSql := ` a.template_id = ? `
|
||||
sqlParams = append(sqlParams, templateIDSql)
|
||||
sqlStr = append(sqlStr, sql)
|
||||
}
|
||||
if warehouseID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.warehouse_id = ? ")
|
||||
sqlParams = append(sqlParams, warehouseID)
|
||||
warehouseIDSql := ` a.warehouse_id = ? `
|
||||
sqlParams = append(sqlParams, warehouseIDSql)
|
||||
sqlStr = append(sqlStr, sql)
|
||||
}
|
||||
if fenceID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.fence_id = ? ")
|
||||
sqlParams = append(sqlParams, fenceID)
|
||||
fenceIDSql := ` a.fence_id = ?`
|
||||
sqlParams = append(sqlParams, fenceIDSql)
|
||||
sqlStr = append(sqlStr, sql)
|
||||
}
|
||||
if tradeLimitID != 0 {
|
||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.fence_id = ? ")
|
||||
sqlParams = append(sqlParams, tradeLimitID)
|
||||
sql += ` a.fence_id = ? `
|
||||
sqlParams = append(sqlParams, templateID)
|
||||
sqlStr = append(sqlStr, sql)
|
||||
}
|
||||
tStr = "WHERE a.store_id = ? AND a.vendor_store_id = ?"
|
||||
sqlParams = append(sqlParams, storeID, vendorStoreID)
|
||||
for _, v := range sqlStr {
|
||||
v += tStr
|
||||
if _, err := ExecuteSQL(GetDB(), v, sqlParams); err != nil {
|
||||
return err
|
||||
}
|
||||
v = ""
|
||||
}
|
||||
return nil
|
||||
|
||||
tStr2 := sql + strings.Join(sqlStr, ",") + tStr
|
||||
|
||||
_, err := ExecuteSQL(GetDB(), tStr2, sqlParams...)
|
||||
fmt.Println(tStr2)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -97,7 +97,56 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
|
||||
order.Status = model.WaybillStatusUnknown
|
||||
}
|
||||
err := dadaapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), utils.Int2Str(order.Status))
|
||||
defer delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
|
||||
defer func(order *model.Waybill) {
|
||||
delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新
|
||||
}(order)
|
||||
if order.OrderVendorID == model.VendorIDDD {
|
||||
result := &mtpsapi.RiderInfo{
|
||||
OrderId: order.VendorOrderID,
|
||||
ThirdCarrierOrderId: order.VendorOrderID,
|
||||
CourierName: order.CourierName,
|
||||
CourierPhone: order.CourierMobile,
|
||||
LogisticsProviderCode: "10002",
|
||||
LogisticsStatus: order.Status,
|
||||
OpCode: "",
|
||||
}
|
||||
switch order.Status {
|
||||
case dadaapi.OrderStatusWaitingForAccept: // 待接单,召唤骑手
|
||||
result.LogisticsStatus = model.WaybillStatusNew
|
||||
result.LogisticsContext = model.RiderWaitRider
|
||||
case dadaapi.OrderStatusAccepted: // 待取货
|
||||
result.LogisticsStatus = model.WaybillStatusCourierAssigned // 分配骑手
|
||||
result.LogisticsContext = model.RiderWaitGetGoods
|
||||
case dadaapi.OrderStatusDelivering: // 配送中
|
||||
result.LogisticsStatus = model.WaybillStatusDelivering
|
||||
result.LogisticsContext = model.RiderGetOrderDelivering
|
||||
case dadaapi.OrderStatusFinished: // 完成
|
||||
result.LogisticsStatus = model.WaybillStatusDelivered
|
||||
result.LogisticsContext = model.RiderGetOrderDelivered
|
||||
case dadaapi.OrderStatusCanceled: // 取消
|
||||
result.LogisticsStatus = model.WaybillStatusCanceled
|
||||
result.LogisticsContext = model.RiderGetOrderCanceled
|
||||
case 8: // 指派单,不处理
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
case 9: // 配送异常返回值
|
||||
result.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverFailed
|
||||
case 10: // 妥投异常之物品返回完成 - 不处理
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
case dadaapi.OrderStatusReturningInOrder: // 骑手到店
|
||||
result.LogisticsStatus = model.WaybillStatusCourierArrived
|
||||
result.LogisticsContext = model.RiderToStore
|
||||
case dadaapi.OrderStatusAddOrderFailed: // 创建达达运单失败 - 不处理
|
||||
result.LogisticsStatus = model.WaybillStatusFailed
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
default:
|
||||
result.LogisticsStatus = 0
|
||||
result.LogisticsContext = model.RiderGetOrderDeliverOther
|
||||
}
|
||||
delivery.PullTiktokRiderInfo(result)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -86,17 +86,6 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
||||
riderInfo.CourierName = "石锋"
|
||||
riderInfo.CourierPhone = "18048531223"
|
||||
riderInfo.LogisticsProviderCode = "10017"
|
||||
if wayBillStatus == model.WaybillStatusNew {
|
||||
riderInfo.LogisticsStatus = model.WaybillStatusNew
|
||||
riderInfo.LogisticsContext = "呼叫骑手,新建运单"
|
||||
} else if wayBillStatus == model.WaybillStatusCanceled {
|
||||
riderInfo.LogisticsStatus = model.WaybillStatusCanceled
|
||||
riderInfo.LogisticsContext = "取消骑手"
|
||||
} else {
|
||||
riderInfo.LogisticsStatus = model.WaybillStatusDeliverFailed
|
||||
riderInfo.LogisticsContext = "配送异常,等待恢复"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
riderInfo.ThirdCarrierOrderId = v.VendorWaybillID
|
||||
@@ -131,14 +120,6 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
||||
continue
|
||||
}
|
||||
|
||||
if v.VendorID == model.VendorIDDD && (riderInfo.LogisticsStatus == 100 || riderInfo.LogisticsStatus == 0 || riderInfo.LogisticsStatus == 20) {
|
||||
riderInfo.CourierName = ""
|
||||
riderInfo.CourierPhone = ""
|
||||
}
|
||||
if riderInfo.LogisticsStatus != 22 && riderInfo.LogisticsStatus != 120 && riderInfo.LogisticsStatus != 0 {
|
||||
riderInfo.LogisticsContext += fmt.Sprintf("[%s:%s]", riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
}
|
||||
|
||||
if riderInfo.Longitude == "" {
|
||||
riderInfo.Longitude = utils.Float64ToStr(utils.Int2Float64(v.ConsigneeLng) / 1000000)
|
||||
}
|
||||
@@ -162,15 +143,6 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
||||
case model.VendorIDJDShop: // 京东商城
|
||||
case model.VendorIDWSC: // 微盟微商城
|
||||
case model.VendorIDDD: // 抖店小时达
|
||||
// 呼叫骑手的时候推送发货
|
||||
// 抖店由于发配送时运单id已经固定了,我们系统在重新发货,或者运单号发生改变时去推送信息时.抖店只识别第一个运单号所以在这儿修改成发单时的第一个运单号!
|
||||
riderInfo.ThirdCarrierOrderId = riderInfo.OrderId
|
||||
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
||||
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, paramsMap); err != nil {
|
||||
globals.SugarLogger.Errorf("Error pushing tiktok rider information :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err)
|
||||
}
|
||||
}
|
||||
default:
|
||||
globals.SugarLogger.Errorf("Order source error, non system order")
|
||||
return
|
||||
@@ -179,6 +151,57 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
||||
return
|
||||
}
|
||||
|
||||
func PullTiktokRiderInfo(riderInfo *mtpsapi.RiderInfo) {
|
||||
switch riderInfo.LogisticsStatus {
|
||||
case 5: // 呼叫骑手
|
||||
riderInfo.LogisticsStatus = 0
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsStatusCALLRIDER
|
||||
case 12: // 骑手接单
|
||||
riderInfo.LogisticsStatus = 12
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
|
||||
case 15: // 到店
|
||||
riderInfo.LogisticsStatus = 15
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED
|
||||
case 20: //配送中
|
||||
riderInfo.LogisticsStatus = 20
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP
|
||||
case 110: // 完成
|
||||
riderInfo.LogisticsStatus = 40
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsDELIVERED
|
||||
case 105: // 完成
|
||||
riderInfo.LogisticsStatus = 40
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsDELIVERED
|
||||
case 115: // 取消
|
||||
riderInfo.CourierName = ""
|
||||
riderInfo.CourierPhone = ""
|
||||
riderInfo.LogisticsStatus = 100
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsCANCELDELIVERY
|
||||
case 22, 0, 120: // 异常配送
|
||||
riderInfo.LogisticsStatus = 22
|
||||
riderInfo.OpCode = tiktok_api.TiktokLogisticsINDDELIVERYEXCEPTION
|
||||
}
|
||||
|
||||
if riderInfo.CourierPhone == "" {
|
||||
riderInfo.CourierPhone = "18981810000"
|
||||
}
|
||||
if riderInfo.CourierName == "" {
|
||||
riderInfo.CourierName = "暂无"
|
||||
}
|
||||
|
||||
if riderInfo.LogisticsStatus != 22 && riderInfo.LogisticsStatus != 120 && riderInfo.LogisticsStatus != 0 {
|
||||
riderInfo.LogisticsContext += fmt.Sprintf("[%s:%s]", riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
}
|
||||
|
||||
// 呼叫骑手的时候推送发货
|
||||
// 抖店由于发配送时运单id已经固定了,我们系统在重新发货,或者运单号发生改变时去推送信息时.抖店只识别第一个运单号所以在这儿修改成发单时的第一个运单号!
|
||||
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil {
|
||||
if err := handler.GetOrderRider("", "", paramsMap); err != nil {
|
||||
globals.SugarLogger.Errorf("PullTiktokRiderInfo Err %s", err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//将以过期订单状态为配送中的订单修改为完成状态
|
||||
func UpdateOrder2Complete() {
|
||||
sql := `UPDATE goods_order g SET g.status=110 WHERE g.status=20 AND g.order_created_at < ?`
|
||||
@@ -266,7 +289,10 @@ func UpdateFakeWayBillToTiktok() {
|
||||
continue
|
||||
}
|
||||
|
||||
riderInfo.LogisticsContext += fmt.Sprintf("[%s:%s]", riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
if riderInfo.LogisticsContext != model.RiderGetOrderDeliverFailed && riderInfo.LogisticsContext != model.RiderGetOrderDeliverOther && riderInfo.LogisticsContext != model.RiderWaitRider {
|
||||
riderInfo.LogisticsContext = fmt.Sprintf(riderInfo.LogisticsContext, riderInfo.CourierName, riderInfo.CourierPhone)
|
||||
}
|
||||
|
||||
// 推送骑手信息
|
||||
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil {
|
||||
|
||||
@@ -60,6 +60,7 @@ var (
|
||||
)
|
||||
|
||||
func (c *PurchaseHandler) OnOrderMsg(a *jdapi.API, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
|
||||
globals.SugarLogger.Debug("===================京东订单 := %s", utils.Format4Output(msg, false))
|
||||
primaryID := msg.BillID
|
||||
primaryID += utils.Int64ToStr(time.Now().Unix())
|
||||
jxutils.CallMsgHandler(func() {
|
||||
@@ -203,8 +204,10 @@ func (c *PurchaseHandler) getOrder(a *jdapi.API, orderID string) (order *model.G
|
||||
switch taskIndex {
|
||||
case 0:
|
||||
orderMap, err = a.QuerySingleOrder(orderID)
|
||||
globals.SugarLogger.Debugf("===========================new order order Mao%s", utils.Format4Output(orderMap, false))
|
||||
if err == nil {
|
||||
order = c.Map2Order(orderMap)
|
||||
globals.SugarLogger.Debugf("===========================new really order Mao%s", utils.Format4Output(order, false))
|
||||
if configs, err := dao.QueryConfigs(dao.GetDB(), "jdStorePageCookie", model.ConfigTypeCookie, ""); err == nil {
|
||||
//a.SetJdCookie(configs[0].Value)
|
||||
a.SetCookieWithStr(configs[0].Value)
|
||||
|
||||
@@ -453,8 +453,8 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
|
||||
}}
|
||||
param.Columns = columns
|
||||
} else {
|
||||
param.Template.TemplateName += "固定运费模板"
|
||||
param.Columns = nil
|
||||
param.Template.TemplateName += "固定运费模板"
|
||||
}
|
||||
globals.SugarLogger.Debugf("param.Template.TemplateName===============%s", param.Template.TemplateName)
|
||||
resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param)
|
||||
|
||||
@@ -133,7 +133,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
||||
Weight: utils.Int2Float64(storeSku.Weight),
|
||||
DeliveryDelayDay: tiktokShop.DeliveryDelayDayToDay,
|
||||
PresellType: tiktokShop.SendGoodsTypeNow,
|
||||
Supply7dayReturn: 0, // 是否支持7天无理由,0不支持,1支持,2支持(拆封后不支持)
|
||||
Supply7dayReturn: 2, // 是否支持7天无理由,0不支持,1支持,2支持(拆封后不支持)
|
||||
Mobile: storeDetail.Tel1,
|
||||
Commit: true,
|
||||
Specs: "重量|" + utils.Float64ToStr(float64(storeSku.SpecQuality)) + storeSku.SpecUnit,
|
||||
@@ -392,7 +392,7 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao
|
||||
productProvince := utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[0:2])
|
||||
tempDetail := &freightTemplate_create_request.FreightTemplateCreateParam{
|
||||
Template: &freightTemplate_create_request.Template{
|
||||
TemplateName: storeDetail.Name + "_" + utils.Int64ToStr(rand.Int63n(int64(storeDetail.ID))) + "_",
|
||||
TemplateName: storeDetail.Name + utils.Int64ToStr(rand.Int63n(int64(storeDetail.ID))),
|
||||
ProductProvince: productProvince,
|
||||
ProductCity: int64(storeDetail.CityCode),
|
||||
CalculateType: 2,
|
||||
@@ -445,6 +445,7 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao
|
||||
return 0, err
|
||||
}
|
||||
freightId = temp.TemplateId
|
||||
dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0)
|
||||
}
|
||||
globals.SugarLogger.Debugf("freightId =last %d", freightId)
|
||||
return freightId, nil
|
||||
|
||||
Reference in New Issue
Block a user