尽量去除VendorIDWSC与VendorIDJX相关的无用代码
This commit is contained in:
@@ -30,18 +30,16 @@ func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order *
|
||||
(excludeCourierVendorIDs == nil || excludeCourierVendorIDMap[storeCourier.VendorID] == 0) {
|
||||
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil && handler.Use4CreateWaybill {
|
||||
courierVendorID := storeCourier.VendorID
|
||||
if order.VendorID != model.VendorIDWSC || courierVendorID != model.VendorIDDada { // 达达作为微商城的自有配送,不参与配送竞争
|
||||
bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee)
|
||||
if err = err2; err == nil {
|
||||
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill)
|
||||
bills = append(bills, bill)
|
||||
if createOnlyOne {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d failed with error:%v", order.VendorOrderID, userName, courierVendorID, err)
|
||||
errList.AddErr(fmt.Errorf("平台:%s,%s", jxutils.GetVendorName(courierVendorID), err.Error()))
|
||||
bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee)
|
||||
if err = err2; err == nil {
|
||||
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill)
|
||||
bills = append(bills, bill)
|
||||
if createOnlyOne {
|
||||
break
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d failed with error:%v", order.VendorOrderID, userName, courierVendorID, err)
|
||||
errList.AddErr(fmt.Errorf("平台:%s,%s", jxutils.GetVendorName(courierVendorID), err.Error()))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -119,12 +117,6 @@ func (c *BaseScheduler) GetStoreDeliveryType(order *model.GoodsOrder, storeMap *
|
||||
deliveryType = scheduler.StoreDeliveryTypeByPlatform // 缺省值
|
||||
if storeMap != nil {
|
||||
deliveryType = int(storeMap.DeliveryType)
|
||||
// 微盟订单,要确认有绑达达,才能是非自送的
|
||||
if order.VendorID == model.VendorIDWSC && deliveryType != scheduler.StoreDeliveryTypeByStore {
|
||||
if courierMapList, _ := dao.GetOpenedStoreCouriersByStoreID(nil, jxStoreID, model.VendorIDDada); len(courierMapList) == 0 {
|
||||
deliveryType = scheduler.StoreDeliveryTypeByStore
|
||||
}
|
||||
}
|
||||
}
|
||||
globals.SugarLogger.Debugf("GetStoreDeliveryType orderID:%s, deliveryType:%d", order.VendorOrderID, deliveryType)
|
||||
return deliveryType
|
||||
|
||||
@@ -477,8 +477,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
||||
}
|
||||
} else {
|
||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore ||
|
||||
model.IsSpecialOrderPlatformWaybill(bill) {
|
||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore {
|
||||
if err := s.SelfDeliverDelivering(savedOrderInfo.order, bill.CourierMobile); err != nil {
|
||||
partner.CurOrderManager.OnOrderMsg(order, "自送出设置失败", err.Error())
|
||||
}
|
||||
@@ -558,8 +557,6 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
} else {
|
||||
err2 = s.Swtich2SelfDelivered(order, "")
|
||||
}
|
||||
} else if model.IsSpecialOrderPlatformWaybill(bill) {
|
||||
err2 = s.SelfDeliverDelivered(savedOrderInfo.order, "")
|
||||
}
|
||||
if err2 != nil {
|
||||
partner.CurOrderManager.OnOrderMsg(order, "送达设置失败", err2.Error())
|
||||
|
||||
@@ -693,22 +693,10 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf
|
||||
}
|
||||
if globals.EnableStoreWrite {
|
||||
if valid["img"] != nil {
|
||||
// imgContent, imgMD5, err2 := jxutils.DownloadFileByURL(valid["img"].(string))
|
||||
// if err = err2; err != nil {
|
||||
// return 0, err
|
||||
// }
|
||||
// valid["ImgHashCode"] = imgMD5
|
||||
// imgHintMap, err := UploadImg2Platforms(ctx, nil, valid["img"].(string), imgContent, "")
|
||||
// if err != nil {
|
||||
// return 0, err
|
||||
// }
|
||||
// // valid["ImgWeimob"] = imgHintMap[model.VendorIDWSC]
|
||||
// valid["ImgEbai"] = imgHintMap[model.VendorIDEBAI]
|
||||
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name, valid["img"].(string), model.ImgTypeMain, false)
|
||||
if err = err2; err != nil {
|
||||
return 0, err
|
||||
}
|
||||
// valid["ImgHashCode"] = dataRes.HashCode
|
||||
valid["ImgEbai"] = dataRes.EbaiURL
|
||||
}
|
||||
if valid["img2"] != nil {
|
||||
|
||||
@@ -54,19 +54,19 @@ type StoreSkuExt struct {
|
||||
StoreSkuStatus int `json:"storeSkuStatus"`
|
||||
|
||||
EbaiID string `orm:"column(ebai_id);index" json:"ebaiID"`
|
||||
MtwmID string `orm:"column(mtwm_id)" json:"mtwmID"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
||||
WscID string `orm:"column(wsc_id);index" json:"wscID"` // 表示微盟skuId
|
||||
WscID2 string `orm:"column(wsc_id2);index" json:"wscID2"` // 表示微盟goodsId
|
||||
MtwmID string `orm:"column(mtwm_id)" json:"mtwmID"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
||||
// WscID string `orm:"column(wsc_id);index" json:"wscID"` // 表示微盟skuId
|
||||
// WscID2 string `orm:"column(wsc_id2);index" json:"wscID2"` // 表示微盟goodsId
|
||||
|
||||
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
||||
EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"`
|
||||
MtwmSyncStatus int8 `orm:"default(2)" json:"mtwmSyncStatus"`
|
||||
WscSyncStatus int8 `orm:"default(2)" json:"wscSyncStatus"`
|
||||
// WscSyncStatus int8 `orm:"default(2)" json:"wscSyncStatus"`
|
||||
|
||||
JdPrice int `json:"jdPrice"`
|
||||
EbaiPrice int `json:"ebaiPrice"`
|
||||
MtwmPrice int `json:"mtwmPrice"`
|
||||
WscPrice int `json:"wscPrice"`
|
||||
// WscPrice int `json:"wscPrice"`
|
||||
|
||||
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
|
||||
|
||||
@@ -441,8 +441,8 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo
|
||||
t2.comment, t2.category_id sku_category_id, t2.status sku_status,
|
||||
t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at,
|
||||
t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at,
|
||||
t4.ebai_id, t4.mtwm_id, t4.wsc_id, t4.wsc_id2,
|
||||
t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.wsc_sync_status,
|
||||
t4.ebai_id, t4.mtwm_id,
|
||||
t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status,
|
||||
t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.wsc_price
|
||||
` + sql
|
||||
var tmpList []*tGetStoresSkusInfo
|
||||
@@ -1160,7 +1160,6 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
|
||||
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
||||
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
||||
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
||||
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
||||
}
|
||||
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
||||
kvs["AutoSaleAt"] = utils.DefaultTimeValue
|
||||
@@ -1272,7 +1271,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
t1.price = t1.price * ? / 100,
|
||||
t1.unit_price = t1.unit_price * ? / 100,
|
||||
t1.jd_sync_status = t1.jd_sync_status | ?,
|
||||
t1.wsc_sync_status = t1.wsc_sync_status | ?,
|
||||
t1.mtwm_sync_status = t1.mtwm_sync_status | ?,
|
||||
t1.ebai_sync_status = t1.ebai_sync_status | ?
|
||||
WHERE t1.store_id = ? AND t1.deleted_at = ?
|
||||
@@ -1288,7 +1286,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
model.SyncFlagPriceMask,
|
||||
model.SyncFlagPriceMask,
|
||||
model.SyncFlagPriceMask,
|
||||
model.SyncFlagPriceMask,
|
||||
toStoreID,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
@@ -1317,7 +1314,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
t1.last_operator = ?,
|
||||
t1.status = ?,
|
||||
t1.jd_sync_status = IF((t1.jd_sync_status & ?) <> 0, 0, ?),
|
||||
t1.wsc_sync_status = IF((t1.wsc_sync_status & ?) <> 0, 0, ?),
|
||||
t1.mtwm_sync_status = IF((t1.mtwm_sync_status & ?) <> 0, 0, ?),
|
||||
t1.ebai_sync_status = IF((t1.ebai_sync_status & ?) <> 0, 0, ?)
|
||||
WHERE t1.store_id = ? AND t1.deleted_at = ? AND t0.id IS NULL
|
||||
@@ -1338,8 +1334,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
model.SyncFlagDeletedMask,
|
||||
model.SyncFlagNewMask,
|
||||
model.SyncFlagDeletedMask,
|
||||
model.SyncFlagNewMask,
|
||||
model.SyncFlagDeletedMask,
|
||||
toStoreID,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
@@ -1371,7 +1365,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
t1.unit_price = IF(t0.unit_price * ? / 100 > 0, t0.unit_price * ? / 100, 1),
|
||||
t1.status = IF(? = 0, t1.status, t0.status),
|
||||
t1.jd_sync_status = t1.jd_sync_status | ?,
|
||||
t1.wsc_sync_status = t1.wsc_sync_status | ?,
|
||||
t1.mtwm_sync_status = t1.mtwm_sync_status | ?,
|
||||
t1.ebai_sync_status = t1.ebai_sync_status | ?
|
||||
WHERE t1.store_id = ? AND t1.deleted_at = ? AND t0.id IS NOT NULL
|
||||
@@ -1392,7 +1385,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
syncStatus,
|
||||
syncStatus,
|
||||
syncStatus,
|
||||
syncStatus,
|
||||
toStoreID,
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
@@ -1408,10 +1400,10 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
// 添加toStore中不存在,但fromStore存在的
|
||||
sql = `
|
||||
INSERT INTO store_sku_bind(created_at, updated_at, last_operator, deleted_at, store_id, sku_id, sub_store_id, price, unit_price, status,
|
||||
jd_sync_status, wsc_sync_status, ebai_sync_status, mtwm_sync_status)
|
||||
jd_sync_status, ebai_sync_status, mtwm_sync_status)
|
||||
SELECT ?, ?, ?, ?, ?,
|
||||
t1.sku_id, 0, IF(t1.price * ? / 100 > 0, t1.price * ? / 100, 1), IF(t1.unit_price * ? / 100 > 0, t1.unit_price * ? / 100, 1),
|
||||
IF(? = 0, ?, t1.status), ?, ?, ?, ?
|
||||
IF(? = 0, ?, t1.status), ?, ?, ?
|
||||
FROM store_sku_bind t1
|
||||
JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ?
|
||||
JOIN sku_name t3 ON t2.name_id = t3.id AND t3.deleted_at = ?
|
||||
@@ -1430,7 +1422,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
||||
model.SyncFlagNewMask,
|
||||
model.SyncFlagNewMask,
|
||||
model.SyncFlagNewMask,
|
||||
model.SyncFlagNewMask,
|
||||
utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
utils.DefaultTimeValue,
|
||||
@@ -1798,7 +1789,6 @@ func setStoreSkuBindStatus(skuBind *model.StoreSkuBind, status int8) {
|
||||
skuBind.JdSyncStatus |= status
|
||||
skuBind.EbaiSyncStatus |= status
|
||||
skuBind.MtwmSyncStatus |= status
|
||||
skuBind.WscSyncStatus |= status
|
||||
}
|
||||
|
||||
func checkStoreExisting(db *dao.DaoDB, storeID int) (err error) {
|
||||
|
||||
@@ -80,18 +80,12 @@ func getJxStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
||||
|
||||
// 此函数得到的是order的销售门店京西ID,与GetJxStoreIDFromOrder的区别是order.StoreID的解释不同,参考其它相关资料
|
||||
func GetSaleStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
||||
if order.VendorID != model.VendorIDWSC {
|
||||
return getJxStoreIDFromOrder(order)
|
||||
}
|
||||
return order.StoreID
|
||||
return getJxStoreIDFromOrder(order)
|
||||
}
|
||||
|
||||
// 此函数得到的是order的商品的展示门店京西ID,与GetJxStoreIDFromOrder的区别是order.StoreID的解释不同,参考其它相关资料
|
||||
func GetShowStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
||||
if order.VendorID != model.VendorIDWSC {
|
||||
return getJxStoreIDFromOrder(order)
|
||||
}
|
||||
return order.JxStoreID
|
||||
return getJxStoreIDFromOrder(order)
|
||||
}
|
||||
|
||||
func GetSkuIDFromOrderSku(sku *model.OrderSku) (skuID int) {
|
||||
|
||||
@@ -124,67 +124,6 @@ func GetStoreDetailByVendorStoreID(db *DaoDB, vendorStoreID string, vendorID int
|
||||
return storeDetail, err
|
||||
}
|
||||
|
||||
func GetPossibleStoresByPlaceName(db *DaoDB, cityName, provinceName string) (storeList []*StoreDetail, err error) {
|
||||
sqlList := []string{
|
||||
`
|
||||
SELECT t1.*, t5.vendor_store_id
|
||||
FROM store t1
|
||||
JOIN place t2 ON t2.code = t1.city_code AND t2.name = ?
|
||||
LEFT JOIN store_map t5 ON t1.id = t5.store_id AND t5.vendor_id = ? AND t5.deleted_at = ?
|
||||
WHERE t1.status = ? AND (SELECT COUNT(*) FROM store_map t10 WHERE t10.store_id = t1.id AND t10.deleted_at = ? AND t10.status <> ?) > 0
|
||||
`,
|
||||
`
|
||||
SELECT t1.*, t5.vendor_store_id
|
||||
FROM store t1
|
||||
JOIN place t2 ON t2.code = t1.city_code
|
||||
JOIN place t3 ON t3.code = t2.parent_code AND t3.name = ?
|
||||
LEFT JOIN store_map t5 ON t1.id = t5.store_id AND t5.vendor_id = ? AND t5.deleted_at = ?
|
||||
WHERE t1.status = ? AND (SELECT COUNT(*) FROM store_map t10 WHERE t10.store_id = t1.id AND t10.deleted_at = ? AND t10.status <> ?) > 0
|
||||
`,
|
||||
`
|
||||
SELECT t1.*, t5.vendor_store_id
|
||||
FROM store t1
|
||||
LEFT JOIN store_map t5 ON t1.id = t5.store_id AND t5.vendor_id = ? AND t5.deleted_at = ?
|
||||
WHERE t1.status = ? AND (SELECT COUNT(*) FROM store_map t10 WHERE t10.store_id = t1.id AND t10.deleted_at = ? AND t10.status <> ?) > 0
|
||||
`,
|
||||
}
|
||||
sqlParamsList := [][]interface{}{
|
||||
[]interface{}{
|
||||
cityName,
|
||||
model.VendorIDWSC,
|
||||
utils.DefaultTimeValue,
|
||||
model.StoreStatusOpened,
|
||||
utils.DefaultTimeValue,
|
||||
model.StoreStatusDisabled,
|
||||
},
|
||||
[]interface{}{
|
||||
provinceName,
|
||||
model.VendorIDWSC,
|
||||
utils.DefaultTimeValue,
|
||||
model.StoreStatusOpened,
|
||||
utils.DefaultTimeValue,
|
||||
model.StoreStatusDisabled,
|
||||
},
|
||||
[]interface{}{
|
||||
model.VendorIDWSC,
|
||||
utils.DefaultTimeValue,
|
||||
model.StoreStatusOpened,
|
||||
utils.DefaultTimeValue,
|
||||
model.StoreStatusDisabled,
|
||||
},
|
||||
}
|
||||
for k := range sqlList {
|
||||
if err = GetRows(db, &storeList, sqlList[k], sqlParamsList[k]); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(storeList) > 0 {
|
||||
return storeList, nil
|
||||
}
|
||||
}
|
||||
// 正常是不应该达到这里的
|
||||
return storeList, err
|
||||
}
|
||||
|
||||
// 这个返回的地点信息是城市
|
||||
func GetStoreDetail2(db *DaoDB, storeID int, vendorStoreID string, vendorID int) (storeDetail *StoreDetail2, err error) {
|
||||
sql := `
|
||||
@@ -374,7 +313,6 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo
|
||||
CategoryID: categoryID,
|
||||
MtwmSyncStatus: model.SyncFlagNewMask,
|
||||
EbaiSyncStatus: model.SyncFlagNewMask,
|
||||
WscSyncStatus: model.SyncFlagNewMask,
|
||||
}
|
||||
storeCat.DeletedAt = utils.DefaultTimeValue
|
||||
if err = GetEntity(db, storeCat, model.FieldStoreID, model.FieldCategoryID, model.FieldDeletedAt); err != nil && !IsNoRowsError(err) {
|
||||
@@ -383,15 +321,9 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo
|
||||
if vendorID == model.VendorIDMTWM {
|
||||
storeCat.MtwmID = vendorCategoryID
|
||||
storeCat.MtwmSyncStatus = status
|
||||
} else if vendorID == model.VendorIDEBAI || vendorID == model.VendorIDWSC {
|
||||
intVendorCategoryID := utils.Str2Int64WithDefault(vendorCategoryID, 0)
|
||||
if vendorID == model.VendorIDEBAI {
|
||||
storeCat.EbaiID = intVendorCategoryID
|
||||
storeCat.EbaiSyncStatus = status
|
||||
} else {
|
||||
storeCat.WscID = intVendorCategoryID
|
||||
storeCat.WscSyncStatus = status
|
||||
}
|
||||
} else if vendorID == model.VendorIDEBAI {
|
||||
storeCat.EbaiID = utils.Str2Int64WithDefault(vendorCategoryID, 0)
|
||||
storeCat.EbaiSyncStatus = status
|
||||
} else {
|
||||
panic("unsupported vendor")
|
||||
}
|
||||
|
||||
@@ -213,14 +213,10 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
|
||||
if !isSingleStorePF {
|
||||
tableName = "t2"
|
||||
}
|
||||
vendorSkuNameField := "0"
|
||||
if vendorID == model.VendorIDWSC {
|
||||
vendorSkuNameField = "t1.wsc_id2"
|
||||
}
|
||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||
sql := `
|
||||
SELECT t1.id bind_id, t1.sku_id, t1.price, t1.unit_price, t1.status store_sku_status, %s.%s_id vendor_sku_id,
|
||||
t1.%s_sync_status store_sku_sync_status, %s vendor_name_id, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||
t1.%s_sync_status store_sku_sync_status, t1.store_id, t1.deleted_at bind_deleted_at,
|
||||
t2.*,
|
||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
||||
IF(t11.%s <> '', t11.%s, t3.img) img,
|
||||
@@ -228,7 +224,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
|
||||
t13.%s desc_img,
|
||||
t4.%s_category_id vendor_vendor_cat_id`
|
||||
fmtParams := []interface{}{
|
||||
tableName, fieldPrefix, fieldPrefix, vendorSkuNameField,
|
||||
tableName, fieldPrefix, fieldPrefix,
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||
GetDataResFieldName(vendorID),
|
||||
|
||||
@@ -263,12 +263,7 @@ type OrderComment struct {
|
||||
// 判断是否是购买平台自有物流
|
||||
// 对于京东,饿百来说,就是其自有的物流,对于微商城来说,是达达
|
||||
func IsWaybillPlatformOwn(bill *Waybill) bool {
|
||||
return bill.OrderVendorID == bill.WaybillVendorID || IsSpecialOrderPlatformWaybill(bill)
|
||||
}
|
||||
|
||||
// 是否是特殊物流
|
||||
func IsSpecialOrderPlatformWaybill(bill *Waybill) bool {
|
||||
return (bill.OrderVendorID == VendorIDWSC && bill.WaybillVendorID == VendorIDDada)
|
||||
return bill.OrderVendorID == bill.WaybillVendorID
|
||||
}
|
||||
|
||||
// 订单是否已经有了有效运单
|
||||
|
||||
@@ -46,12 +46,12 @@ type StoreSkuCategoryMap struct {
|
||||
// ElmID int64 `orm:"column(elm_id);index"`
|
||||
EbaiID int64 `orm:"column(ebai_id);index"`
|
||||
MtwmID string `orm:"column(mtwm_id);index;size(16)"` // 美团外卖没有ID,保存名字
|
||||
WscID int64 `orm:"column(wsc_id);index"`
|
||||
// WscID int64 `orm:"column(wsc_id);index"`
|
||||
|
||||
// ElmSyncStatus int8 `orm:"default(2)"`
|
||||
EbaiSyncStatus int8 `orm:"default(2)"`
|
||||
MtwmSyncStatus int8 `orm:"default(2)"`
|
||||
WscSyncStatus int8 `orm:"default(2)"`
|
||||
// WscSyncStatus int8 `orm:"default(2)"`
|
||||
}
|
||||
|
||||
func (*StoreSkuCategoryMap) TableUnique() [][]string {
|
||||
@@ -95,20 +95,20 @@ type StoreSkuBind struct {
|
||||
|
||||
// ElmID int64 `orm:"column(elm_id);index"`
|
||||
EbaiID int64 `orm:"column(ebai_id);index"`
|
||||
MtwmID int64 `orm:"column(mtwm_id)"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
||||
WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId
|
||||
WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId
|
||||
MtwmID int64 `orm:"column(mtwm_id)"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
||||
// WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId
|
||||
// WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId
|
||||
|
||||
// ElmSyncStatus int8 `orm:"default(2)"`
|
||||
JdSyncStatus int8 `orm:"default(2)"`
|
||||
EbaiSyncStatus int8 `orm:"default(2)"`
|
||||
MtwmSyncStatus int8 `orm:"default(2)"`
|
||||
WscSyncStatus int8 `orm:"default(2)"`
|
||||
// WscSyncStatus int8 `orm:"default(2)"`
|
||||
|
||||
JdPrice int `json:"jdPrice"`
|
||||
EbaiPrice int `json:"ebaiPrice"`
|
||||
MtwmPrice int `json:"mtwmPrice"`
|
||||
WscPrice int `json:"wscPrice"`
|
||||
// WscPrice int `json:"wscPrice"`
|
||||
|
||||
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ func TestBuildNewJxOrder(t *testing.T) {
|
||||
msg := &CallbackMsg{
|
||||
AppKey: appKey,
|
||||
MsgType: MsgTypeOrder,
|
||||
SubMsgType: SubMsgTypeOrderNew,
|
||||
SubMsgType: utils.Int2Str(model.OrderStatusNew),
|
||||
ThingID: order.VendorOrderID,
|
||||
Data: utils.Format4Output(order2, true),
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package wsc
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi/weimobapi"
|
||||
@@ -263,75 +262,7 @@ func (p *PurchaseHandler) postFakeMsg(orderNo int64, fakeStatus string) {
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) arrangeSaleStore(order *model.GoodsOrder, cityName, provinceName string) {
|
||||
globals.SugarLogger.Debugf("arrangeSaleStore orderID:%s cityName:%s, provinceName:%s", order.VendorOrderID, cityName, provinceName)
|
||||
const (
|
||||
maxTryStoreWhenArrange = 5
|
||||
)
|
||||
db := dao.GetDB()
|
||||
var selectedStore *model.Store
|
||||
if true {
|
||||
if storeDetail, err := dao.GetStoreDetailByVendorStoreID(db, order.VendorStoreID, model.VendorIDWSC); err == nil {
|
||||
selectedStore = &storeDetail.Store
|
||||
}
|
||||
} else {
|
||||
storeList, err := dao.GetPossibleStoresByPlaceName(db, cityName, provinceName)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Errorf("arrangeSaleStore failed with error:%v", err)
|
||||
}
|
||||
globals.SugarLogger.Debugf("arrangeSaleStore possible stores orderID:%s", order.VendorOrderID)
|
||||
for _, store := range storeList {
|
||||
globals.SugarLogger.Debugf("orderID:%s %s:%d", order.VendorOrderID, store.Name, store.ID)
|
||||
}
|
||||
if len(storeList) > 0 {
|
||||
distanceList := make(utils.SortList, 0)
|
||||
userLng := jxutils.IntCoordinate2Standard(order.ConsigneeLng)
|
||||
userLat := jxutils.IntCoordinate2Standard(order.ConsigneeLat)
|
||||
for k, store := range storeList {
|
||||
// 展示门店自身不参与派单
|
||||
if store.VendorStoreID != order.VendorStoreID {
|
||||
sortItem := &utils.SortItem{
|
||||
CompareValue: int64(jxutils.EarthDistance(userLng, userLat, jxutils.IntCoordinate2Standard(store.Lng), jxutils.IntCoordinate2Standard(store.Lat)) * 1000),
|
||||
Index: k,
|
||||
}
|
||||
distanceList = append(distanceList, sortItem)
|
||||
}
|
||||
}
|
||||
sort.Sort(distanceList)
|
||||
globals.SugarLogger.Debugf("arrangeSaleStore distance list orderID:%s", order.VendorOrderID)
|
||||
for _, dist := range distanceList {
|
||||
globals.SugarLogger.Debugf("orderID:%s %s:%d, distance:%d", order.VendorOrderID, storeList[dist.Index].Name, storeList[dist.Index].ID, dist.CompareValue)
|
||||
}
|
||||
if len(distanceList) > maxTryStoreWhenArrange {
|
||||
distanceList = distanceList[:maxTryStoreWhenArrange]
|
||||
}
|
||||
for _, v := range distanceList {
|
||||
selectedStore = &storeList[v.Index].Store
|
||||
if selectedStore.DeliveryRangeType == model.DeliveryRangeTypeRadius {
|
||||
distance := v.CompareValue
|
||||
if distance < utils.Str2Int64(selectedStore.DeliveryRange) {
|
||||
break
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("arrangeSaleStore orderID:%s distance:%d, deliveryRange:%d", order.VendorOrderID, distance, utils.Str2Int64(selectedStore.DeliveryRange))
|
||||
}
|
||||
} else {
|
||||
points := jxutils.CoordinateStr2Points(selectedStore.DeliveryRange)
|
||||
if utils.IsPointInPolygon(userLng, userLat, points) {
|
||||
break
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("arrangeSaleStore orderID:%s userLng:%f, userLat:%f, deliveryRange:%s", order.VendorOrderID, userLng, userLat, selectedStore.DeliveryRange)
|
||||
}
|
||||
}
|
||||
selectedStore = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
if selectedStore != nil {
|
||||
order.StoreID = selectedStore.ID
|
||||
order.StoreName = selectedStore.Name
|
||||
globals.SugarLogger.Debugf("arrangeSaleStore orderID:%s arranged to store:%d", order.VendorOrderID, selectedStore.ID)
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("arrangeSaleStore orderID:%s 找不到门店", order.VendorOrderID)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (p *PurchaseHandler) setStoreOrderSeq(order *model.GoodsOrder) {
|
||||
|
||||
Reference in New Issue
Block a user