1
This commit is contained in:
@@ -346,15 +346,15 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
RiderGetOrder = "骑手接单"
|
RiderGetOrder = "骑手 %s (%s) 已接单"
|
||||||
RiderToStore = "骑手到店"
|
RiderToStore = "骑手 %s (%s) 已到店"
|
||||||
RiderGetOrderDelivering = "骑手配送中"
|
RiderGetOrderDelivering = "骑手 %s (%s) 配送中"
|
||||||
RiderGetOrderDelivered = "骑手配送完成"
|
RiderGetOrderDelivered = "骑手 %s (%s) 已送达"
|
||||||
RiderGetOrderCanceled = "骑手取消"
|
RiderGetOrderCanceled = "骑手 %s (%s) 已取消"
|
||||||
RiderGetOrderDeliverFailed = "骑手配送异常"
|
RiderGetOrderDeliverFailed = "骑手配送异常"
|
||||||
RiderGetOrderDeliverOther = "其他待处理信息"
|
RiderGetOrderDeliverOther = "其他待处理信息"
|
||||||
RiderWaitRider = "待接单,正在分配骑手"
|
RiderWaitRider = "待接单,正在分配骑手"
|
||||||
RiderWaitGetGoods = "已经分配骑手,待取货"
|
RiderWaitGetGoods = "骑手 %s (%s) 已接单"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package dao
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
@@ -1582,42 +1584,41 @@ func QueryStoreBindInfo(storeID int) (*model.FreightTemplate, error) {
|
|||||||
//向FreightTemplate 插入数据
|
//向FreightTemplate 插入数据
|
||||||
func InsertIntoFreightTemplate(storeID int, vendorStoreID string, templateID, warehouseID, fenceID, tradeLimitID int64) error {
|
func InsertIntoFreightTemplate(storeID int, vendorStoreID string, templateID, warehouseID, fenceID, tradeLimitID int64) error {
|
||||||
var (
|
var (
|
||||||
sqlStr = []string{}
|
sqlStr []string
|
||||||
tStr = ""
|
tStr = ""
|
||||||
sqlParams = []interface{}{}
|
sqlParams []interface{}
|
||||||
)
|
)
|
||||||
if storeID == 0 && utils.Str2Int(vendorStoreID) == 0 {
|
if storeID == 0 && utils.Str2Int(vendorStoreID) == 0 {
|
||||||
return errors.New("storeID,vendorStoreID 必传")
|
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 {
|
sql := `UPDATE freight_template a SET `
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if templateID != 0 {
|
if templateID != 0 {
|
||||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.template_id = ? ")
|
templateIDSql := ` a.template_id = ? `
|
||||||
sqlParams = append(sqlParams, templateID)
|
sqlParams = append(sqlParams, templateIDSql)
|
||||||
|
sqlStr = append(sqlStr, sql)
|
||||||
}
|
}
|
||||||
if warehouseID != 0 {
|
if warehouseID != 0 {
|
||||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.warehouse_id = ? ")
|
warehouseIDSql := ` a.warehouse_id = ? `
|
||||||
sqlParams = append(sqlParams, warehouseID)
|
sqlParams = append(sqlParams, warehouseIDSql)
|
||||||
|
sqlStr = append(sqlStr, sql)
|
||||||
}
|
}
|
||||||
if fenceID != 0 {
|
if fenceID != 0 {
|
||||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.fence_id = ? ")
|
fenceIDSql := ` a.fence_id = ?`
|
||||||
sqlParams = append(sqlParams, fenceID)
|
sqlParams = append(sqlParams, fenceIDSql)
|
||||||
|
sqlStr = append(sqlStr, sql)
|
||||||
}
|
}
|
||||||
if tradeLimitID != 0 {
|
if tradeLimitID != 0 {
|
||||||
sqlStr = append(sqlStr, " UPDATE freight_template a SET a.fence_id = ? ")
|
sql += ` a.fence_id = ? `
|
||||||
sqlParams = append(sqlParams, tradeLimitID)
|
sqlParams = append(sqlParams, templateID)
|
||||||
|
sqlStr = append(sqlStr, sql)
|
||||||
}
|
}
|
||||||
tStr = "WHERE a.store_id = ? AND a.vendor_store_id = ?"
|
tStr = "WHERE a.store_id = ? AND a.vendor_store_id = ?"
|
||||||
sqlParams = append(sqlParams, storeID, vendorStoreID)
|
|
||||||
for _, v := range sqlStr {
|
tStr2 := sql + strings.Join(sqlStr, ",") + tStr
|
||||||
v += tStr
|
|
||||||
if _, err := ExecuteSQL(GetDB(), v, sqlParams); err != nil {
|
_, err := ExecuteSQL(GetDB(), tStr2, sqlParams...)
|
||||||
|
fmt.Println(tStr2)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
v = ""
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -97,7 +97,18 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap
|
|||||||
order.Status = model.WaybillStatusUnknown
|
order.Status = model.WaybillStatusUnknown
|
||||||
}
|
}
|
||||||
err := dadaapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), utils.Int2Str(order.Status))
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -179,6 +179,17 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
return
|
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() {
|
func UpdateOrder2Complete() {
|
||||||
sql := `UPDATE goods_order g SET g.status=110 WHERE g.status=20 AND g.order_created_at < ?`
|
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
|
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)
|
paramsMap := utils.Struct2Map(riderInfo, "", true)
|
||||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil {
|
if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
"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_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_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"
|
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"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/putils"
|
"git.rosy.net.cn/jx-callback/business/partner/putils"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"math/rand"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -209,7 +207,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
|||||||
temp, err := dao.QueryStoreBindInfo(storeDetail.ID)
|
temp, err := dao.QueryStoreBindInfo(storeDetail.ID)
|
||||||
if err != nil || temp == nil || temp.TemplateID == 0 {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -384,69 +382,43 @@ func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetDeliveryTemp 获取运费模板id,运费模板不存在则创建
|
// 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))
|
freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID))
|
||||||
if freightId == 0 {
|
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 {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 绑定门店运费模板
|
// 绑定门店运费模板
|
||||||
if err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{
|
if err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{
|
||||||
StoreId: utils.Str2Int64(vendorStoreID),
|
StoreId: utils.Str2Int64(vendorStoreID),
|
||||||
FreightId: temp.TemplateId,
|
FreightId: freightId,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
globals.SugarLogger.Debugf("BindFreightTemplate =err %s", err)
|
globals.SugarLogger.Debugf("BindFreightTemplate =err %s", err)
|
||||||
return 0, 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
|
return freightId, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user