From d6dd1d593e04f9d1deb0c70a335977f9b1386796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 19:39:23 +0800 Subject: [PATCH 1/7] 1 --- business/model/const.go | 12 +-- business/model/dao/store.go | 49 ++++++------ business/partner/delivery/dada/waybill.go | 13 +++- business/partner/delivery/rider.go | 16 +++- .../purchase/tiktok_store/store_sku2_utils.go | 76 ++++++------------- 5 files changed, 82 insertions(+), 84 deletions(-) diff --git a/business/model/const.go b/business/model/const.go index be7314774..1ae19706c 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -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 ( diff --git a/business/model/dao/store.go b/business/model/dao/store.go index c689db040..afedda874 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -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 } diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index 2207c53b5..c1b86c3c1 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -97,7 +97,18 @@ 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) // 骑手位置更新 + delivery.PullTiktokRiderInfo(&mtpsapi.RiderInfo{ + OrderId: order.VendorOrderID, + ThirdCarrierOrderId: order.VendorOrderID, + CourierName: order.CourierName, + CourierPhone: order.CourierMobile, + LogisticsProviderCode: "10002", + LogisticsStatus: order.Status, + OpCode: "", + }) + }(order) return err } diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 797358d12..5f5fff57f 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -179,6 +179,17 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { return } +func PullTiktokRiderInfo(param *mtpsapi.RiderInfo) { + // 呼叫骑手的时候推送发货 + // 抖店由于发配送时运单id已经固定了,我们系统在重新发货,或者运单号发生改变时去推送信息时.抖店只识别第一个运单号所以在这儿修改成发单时的第一个运单号! + paramsMap := utils.Struct2Map(param, "", 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 +277,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 { diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 248f8ef41..1115b578b 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" - freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request" product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response" product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request" @@ -24,7 +23,6 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" - "math/rand" "strings" ) @@ -209,7 +207,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI temp, err := dao.QueryStoreBindInfo(storeDetail.ID) if err != nil || temp == nil || temp.TemplateID == 0 { // 运费模板 - param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail) + param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail, temp) if err != nil { return nil, err } @@ -384,69 +382,43 @@ func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { } // GetDeliveryTemp 获取运费模板id,运费模板不存在则创建 -func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail) (int64, error) { +func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail, tempObj *model.FreightTemplate) (int64, error) { // 没有模板是查询线上模板 freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID)) if freightId == 0 { - // 创建门店运费模板 - 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))) + "_", - ProductProvince: productProvince, - ProductCity: int64(storeDetail.CityCode), - CalculateType: 2, - TransferType: 1, // 快递方式-1.快递 目前仅支持1 - RuleType: 1, // 模板类型-0:阶梯计价 1:固定运费 2:卖家包邮 3:货到付款 - FixedAmount: 500, //固定运费 单位:分 - }, - } - Columns := []freightTemplate_create_request.ColumnsItem{ - { - RuleAddress: fmt.Sprintf(`{"%d":{"%s":{"%s":nil}}}`, productProvince, utils.Int2Str(storeDetail.CityCode), utils.Int2Str(storeDetail.DistrictCode)), - IsOverFree: true, - OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), - ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ - { - Id: productProvince, - Children: []freightTemplate_create_request.ChildrenItem_4{ - { - Id: int64(storeDetail.CityCode), - Children: []freightTemplate_create_request.ChildrenItem_5{ - { - Id: int64(storeDetail.DistrictCode), - Children: nil, - }, - }, - }, - }}, - }, - }, - } - // 固定运费模板 - if storeDetail.DeliveryFeeDeductionSill == 0 { - tempDetail.Template.TemplateName += "固定运费模板" - } else { - // 满减运费模板 - tempDetail.Template.TemplateName += "满减运费模板" - tempDetail.Columns = Columns // 满减 - } - temp, err := api.FreightTemplateCreate(tempDetail) + freightId, err := CreateFreightTemplate(storeDetail.Store.ID) if err != nil { return 0, err } - // 绑定门店运费模板 if err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{ StoreId: utils.Str2Int64(vendorStoreID), - FreightId: temp.TemplateId, + FreightId: freightId, }); err != nil { globals.SugarLogger.Debugf("BindFreightTemplate =err %s", err) return 0, err } - freightId = temp.TemplateId + + // 保存到数据库 + if tempObj == nil { + param := &model.FreightTemplate{ + StoreID: 0, + VendorStoreID: "", + TemplateID: 0, + WarehouseID: 0, + FenceID: "", + TradeLimitID: 0, + } + dao.WrapUpdateULEntity(param, "jxAdmin") + if err := dao.CreateEntity(dao.GetDB(), param); err != nil { + globals.SugarLogger.Debugf("==================err %s", err.Error()) + } + } else { + if err := dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0); err != nil { + globals.SugarLogger.Debugf("==================err %s", err.Error()) + } + } } - globals.SugarLogger.Debugf("freightId =last %d", freightId) return freightId, nil } From 10639f5d337cbe3fe7663d973bdba8097c169c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 19:43:55 +0800 Subject: [PATCH 2/7] 1 --- business/partner/purchase/tiktok_store/store.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 81213cc7c..ec71f34cc 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -417,7 +417,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) { } param := &freightTemplate_create_request.FreightTemplateCreateParam{ Template: &freightTemplate_create_request.Template{ - TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeCode) + ")", + TemplateName: storeDetail.Name + "-" + utils.Int2Str(storeCode) + "-", ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), ProductCity: int64(storeDetail.CityCode), CalculateType: 2, //计价方式-1.按重量 2.按数量 @@ -451,9 +451,9 @@ func CreateFreightTemplate(storeCode int) (int64, error) { }, }} param.Columns = columns - param.Template.TemplateName += "满减包邮模板" + param.Template.TemplateName += storeDetail.Tel1 + "-满减包邮模板" } else { - param.Template.TemplateName += "固定运费模板" + param.Template.TemplateName += storeDetail.Tel1 + "固定运费模板" } resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param) if err != nil { From 54e57f9c8a34a50779506586efa1f915cd5b57ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 19:45:54 +0800 Subject: [PATCH 3/7] 1 --- business/partner/purchase/tiktok_store/store.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index ec71f34cc..31c82a4b0 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -417,7 +417,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) { } param := &freightTemplate_create_request.FreightTemplateCreateParam{ Template: &freightTemplate_create_request.Template{ - TemplateName: storeDetail.Name + "-" + utils.Int2Str(storeCode) + "-", + TemplateName: storeDetail.Name + utils.Int2Str(storeCode), ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), ProductCity: int64(storeDetail.CityCode), CalculateType: 2, //计价方式-1.按重量 2.按数量 @@ -451,7 +451,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) { }, }} param.Columns = columns - param.Template.TemplateName += storeDetail.Tel1 + "-满减包邮模板" + param.Template.TemplateName += storeDetail.Tel1 + "满减包邮模板" } else { param.Template.TemplateName += storeDetail.Tel1 + "固定运费模板" } From 2c0e3b64cb92c5f649506f635852cae1d1738bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 19:57:22 +0800 Subject: [PATCH 4/7] 1 --- .../partner/purchase/tiktok_store/store.go | 2 +- .../purchase/tiktok_store/store_sku2_utils.go | 77 +++++++++++++------ 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 31c82a4b0..7832cefb3 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -178,7 +178,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) { globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err) errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err)) - } else { //绑定 + } else { //绑定 if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err) errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err)) diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 1115b578b..bb25771f5 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" + freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request" product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response" product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request" @@ -23,6 +24,7 @@ import ( "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/business/partner/putils" "git.rosy.net.cn/jx-callback/globals" + "math/rand" "strings" ) @@ -207,7 +209,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI temp, err := dao.QueryStoreBindInfo(storeDetail.ID) if err != nil || temp == nil || temp.TemplateID == 0 { // 运费模板 - param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail, temp) + param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail) if err != nil { return nil, err } @@ -382,43 +384,70 @@ func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { } // GetDeliveryTemp 获取运费模板id,运费模板不存在则创建 -func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail, tempObj *model.FreightTemplate) (int64, error) { +func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail) (int64, error) { // 没有模板是查询线上模板 freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID)) if freightId == 0 { - freightId, err := CreateFreightTemplate(storeDetail.Store.ID) + // 创建门店运费模板 + 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))), + ProductProvince: productProvince, + ProductCity: int64(storeDetail.CityCode), + CalculateType: 2, + TransferType: 1, // 快递方式-1.快递 目前仅支持1 + RuleType: 1, // 模板类型-0:阶梯计价 1:固定运费 2:卖家包邮 3:货到付款 + FixedAmount: 500, //固定运费 单位:分 + }, + } + Columns := []freightTemplate_create_request.ColumnsItem{ + { + RuleAddress: fmt.Sprintf(`{"%d":{"%s":{"%s":nil}}}`, productProvince, utils.Int2Str(storeDetail.CityCode), utils.Int2Str(storeDetail.DistrictCode)), + IsOverFree: true, + OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), + ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ + { + Id: productProvince, + Children: []freightTemplate_create_request.ChildrenItem_4{ + { + Id: int64(storeDetail.CityCode), + Children: []freightTemplate_create_request.ChildrenItem_5{ + { + Id: int64(storeDetail.DistrictCode), + Children: nil, + }, + }, + }, + }}, + }, + }, + } + // 固定运费模板 + if storeDetail.DeliveryFeeDeductionSill == 0 { + tempDetail.Template.TemplateName += "固定运费模板" + } else { + // 满减运费模板 + tempDetail.Template.TemplateName += "满减运费模板" + tempDetail.Columns = Columns // 满减 + } + temp, err := api.FreightTemplateCreate(tempDetail) if err != nil { return 0, err } + // 绑定门店运费模板 if err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{ StoreId: utils.Str2Int64(vendorStoreID), - FreightId: freightId, + FreightId: temp.TemplateId, }); err != nil { globals.SugarLogger.Debugf("BindFreightTemplate =err %s", err) return 0, err } - - // 保存到数据库 - if tempObj == nil { - param := &model.FreightTemplate{ - StoreID: 0, - VendorStoreID: "", - TemplateID: 0, - WarehouseID: 0, - FenceID: "", - TradeLimitID: 0, - } - dao.WrapUpdateULEntity(param, "jxAdmin") - if err := dao.CreateEntity(dao.GetDB(), param); err != nil { - globals.SugarLogger.Debugf("==================err %s", err.Error()) - } - } else { - if err := dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0); err != nil { - globals.SugarLogger.Debugf("==================err %s", err.Error()) - } - } + freightId = temp.TemplateId + dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0) } + globals.SugarLogger.Debugf("freightId =last %d", freightId) return freightId, nil } From 6cb56693d888cd9101469839066da3eb5b947865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 20:02:08 +0800 Subject: [PATCH 5/7] 1' --- business/partner/purchase/tiktok_store/store_sku2_utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index bb25771f5..6d3343834 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -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, From 24e92bb70c934d125e9479b5eaf1a5db2d6315a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 4 Nov 2022 21:06:40 +0800 Subject: [PATCH 6/7] 1 --- business/partner/delivery/dada/waybill.go | 44 +++++++++++++- business/partner/delivery/rider.go | 72 +++++++++++++---------- 2 files changed, 83 insertions(+), 33 deletions(-) diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index c1b86c3c1..75c67ae9b 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -99,7 +99,9 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap err := dadaapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), utils.Int2Str(order.Status)) defer func(order *model.Waybill) { delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新 - delivery.PullTiktokRiderInfo(&mtpsapi.RiderInfo{ + }(order) + if order.OrderVendorID == model.VendorIDDD { + result := &mtpsapi.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: order.CourierName, @@ -107,8 +109,44 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap LogisticsProviderCode: "10002", LogisticsStatus: order.Status, OpCode: "", - }) - }(order) + } + 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 } diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 5f5fff57f..c28c970eb 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -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,10 +151,50 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { return } -func PullTiktokRiderInfo(param *mtpsapi.RiderInfo) { +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(param, "", true) + 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()) From 95b52c3d57cc831e0f77924c7e38bb60b005bfc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 6 Nov 2022 16:23:05 +0800 Subject: [PATCH 7/7] 1 --- business/partner/purchase/jd/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 3f355e37d..f83ac31c5 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -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)