尽量去除VendorIDWSC与VendorIDJX相关的无用代码
This commit is contained in:
@@ -30,7 +30,6 @@ func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order *
|
|||||||
(excludeCourierVendorIDs == nil || excludeCourierVendorIDMap[storeCourier.VendorID] == 0) {
|
(excludeCourierVendorIDs == nil || excludeCourierVendorIDMap[storeCourier.VendorID] == 0) {
|
||||||
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil && handler.Use4CreateWaybill {
|
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil && handler.Use4CreateWaybill {
|
||||||
courierVendorID := storeCourier.VendorID
|
courierVendorID := storeCourier.VendorID
|
||||||
if order.VendorID != model.VendorIDWSC || courierVendorID != model.VendorIDDada { // 达达作为微商城的自有配送,不参与配送竞争
|
|
||||||
bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee)
|
bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill)
|
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill)
|
||||||
@@ -45,7 +44,6 @@ func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if len(bills) > 0 {
|
if len(bills) > 0 {
|
||||||
err = errList.GetErrListAsOne()
|
err = errList.GetErrListAsOne()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -119,12 +117,6 @@ func (c *BaseScheduler) GetStoreDeliveryType(order *model.GoodsOrder, storeMap *
|
|||||||
deliveryType = scheduler.StoreDeliveryTypeByPlatform // 缺省值
|
deliveryType = scheduler.StoreDeliveryTypeByPlatform // 缺省值
|
||||||
if storeMap != nil {
|
if storeMap != nil {
|
||||||
deliveryType = int(storeMap.DeliveryType)
|
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)
|
globals.SugarLogger.Debugf("GetStoreDeliveryType orderID:%s, deliveryType:%d", order.VendorOrderID, deliveryType)
|
||||||
return deliveryType
|
return deliveryType
|
||||||
|
|||||||
@@ -477,8 +477,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore ||
|
if savedOrderInfo.storeDeliveryType == scheduler.StoreDeliveryTypeByStore {
|
||||||
model.IsSpecialOrderPlatformWaybill(bill) {
|
|
||||||
if err := s.SelfDeliverDelivering(savedOrderInfo.order, bill.CourierMobile); err != nil {
|
if err := s.SelfDeliverDelivering(savedOrderInfo.order, bill.CourierMobile); err != nil {
|
||||||
partner.CurOrderManager.OnOrderMsg(order, "自送出设置失败", err.Error())
|
partner.CurOrderManager.OnOrderMsg(order, "自送出设置失败", err.Error())
|
||||||
}
|
}
|
||||||
@@ -558,8 +557,6 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
|||||||
} else {
|
} else {
|
||||||
err2 = s.Swtich2SelfDelivered(order, "")
|
err2 = s.Swtich2SelfDelivered(order, "")
|
||||||
}
|
}
|
||||||
} else if model.IsSpecialOrderPlatformWaybill(bill) {
|
|
||||||
err2 = s.SelfDeliverDelivered(savedOrderInfo.order, "")
|
|
||||||
}
|
}
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
partner.CurOrderManager.OnOrderMsg(order, "送达设置失败", err2.Error())
|
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 globals.EnableStoreWrite {
|
||||||
if valid["img"] != nil {
|
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)
|
dataRes, err2 := datares.TryRegisterDataResource(ctx, skuName.Name, valid["img"].(string), model.ImgTypeMain, false)
|
||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
// valid["ImgHashCode"] = dataRes.HashCode
|
|
||||||
valid["ImgEbai"] = dataRes.EbaiURL
|
valid["ImgEbai"] = dataRes.EbaiURL
|
||||||
}
|
}
|
||||||
if valid["img2"] != nil {
|
if valid["img2"] != nil {
|
||||||
|
|||||||
@@ -55,18 +55,18 @@ type StoreSkuExt struct {
|
|||||||
|
|
||||||
EbaiID string `orm:"column(ebai_id);index" json:"ebaiID"`
|
EbaiID string `orm:"column(ebai_id);index" json:"ebaiID"`
|
||||||
MtwmID string `orm:"column(mtwm_id)" json:"mtwmID"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
MtwmID string `orm:"column(mtwm_id)" json:"mtwmID"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
||||||
WscID string `orm:"column(wsc_id);index" json:"wscID"` // 表示微盟skuId
|
// WscID string `orm:"column(wsc_id);index" json:"wscID"` // 表示微盟skuId
|
||||||
WscID2 string `orm:"column(wsc_id2);index" json:"wscID2"` // 表示微盟goodsId
|
// WscID2 string `orm:"column(wsc_id2);index" json:"wscID2"` // 表示微盟goodsId
|
||||||
|
|
||||||
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
|
||||||
EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"`
|
EbaiSyncStatus int8 `orm:"default(2)" json:"ebaiSyncStatus"`
|
||||||
MtwmSyncStatus int8 `orm:"default(2)" json:"mtwmSyncStatus"`
|
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"`
|
JdPrice int `json:"jdPrice"`
|
||||||
EbaiPrice int `json:"ebaiPrice"`
|
EbaiPrice int `json:"ebaiPrice"`
|
||||||
MtwmPrice int `json:"mtwmPrice"`
|
MtwmPrice int `json:"mtwmPrice"`
|
||||||
WscPrice int `json:"wscPrice"`
|
// WscPrice int `json:"wscPrice"`
|
||||||
|
|
||||||
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
|
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,
|
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.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.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.ebai_id, t4.mtwm_id,
|
||||||
t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status, t4.wsc_sync_status,
|
t4.jd_sync_status, t4.ebai_sync_status, t4.mtwm_sync_status,
|
||||||
t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.wsc_price
|
t4.jd_price, t4.ebai_price, t4.mtwm_price, t4.wsc_price
|
||||||
` + sql
|
` + sql
|
||||||
var tmpList []*tGetStoresSkusInfo
|
var tmpList []*tGetStoresSkusInfo
|
||||||
@@ -1160,7 +1160,6 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
|
|||||||
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
model.FieldJdSyncStatus: skuBind.JdSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
model.FieldEbaiSyncStatus: skuBind.EbaiSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask,
|
||||||
model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask,
|
|
||||||
}
|
}
|
||||||
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
if utils.IsTimeZero(autoSaleTime) || skuBind.Status == model.SkuStatusNormal {
|
||||||
kvs["AutoSaleAt"] = utils.DefaultTimeValue
|
kvs["AutoSaleAt"] = utils.DefaultTimeValue
|
||||||
@@ -1272,7 +1271,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
|||||||
t1.price = t1.price * ? / 100,
|
t1.price = t1.price * ? / 100,
|
||||||
t1.unit_price = t1.unit_price * ? / 100,
|
t1.unit_price = t1.unit_price * ? / 100,
|
||||||
t1.jd_sync_status = t1.jd_sync_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.mtwm_sync_status = t1.mtwm_sync_status | ?,
|
||||||
t1.ebai_sync_status = t1.ebai_sync_status | ?
|
t1.ebai_sync_status = t1.ebai_sync_status | ?
|
||||||
WHERE t1.store_id = ? AND t1.deleted_at = ?
|
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,
|
||||||
model.SyncFlagPriceMask,
|
model.SyncFlagPriceMask,
|
||||||
model.SyncFlagPriceMask,
|
|
||||||
toStoreID,
|
toStoreID,
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
}
|
}
|
||||||
@@ -1317,7 +1314,6 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
|||||||
t1.last_operator = ?,
|
t1.last_operator = ?,
|
||||||
t1.status = ?,
|
t1.status = ?,
|
||||||
t1.jd_sync_status = IF((t1.jd_sync_status & ?) <> 0, 0, ?),
|
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.mtwm_sync_status = IF((t1.mtwm_sync_status & ?) <> 0, 0, ?),
|
||||||
t1.ebai_sync_status = IF((t1.ebai_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
|
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.SyncFlagDeletedMask,
|
||||||
model.SyncFlagNewMask,
|
model.SyncFlagNewMask,
|
||||||
model.SyncFlagDeletedMask,
|
model.SyncFlagDeletedMask,
|
||||||
model.SyncFlagNewMask,
|
|
||||||
model.SyncFlagDeletedMask,
|
|
||||||
toStoreID,
|
toStoreID,
|
||||||
utils.DefaultTimeValue,
|
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.unit_price = IF(t0.unit_price * ? / 100 > 0, t0.unit_price * ? / 100, 1),
|
||||||
t1.status = IF(? = 0, t1.status, t0.status),
|
t1.status = IF(? = 0, t1.status, t0.status),
|
||||||
t1.jd_sync_status = t1.jd_sync_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.mtwm_sync_status = t1.mtwm_sync_status | ?,
|
||||||
t1.ebai_sync_status = t1.ebai_sync_status | ?
|
t1.ebai_sync_status = t1.ebai_sync_status | ?
|
||||||
WHERE t1.store_id = ? AND t1.deleted_at = ? AND t0.id IS NOT NULL
|
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,
|
||||||
syncStatus,
|
syncStatus,
|
||||||
syncStatus,
|
|
||||||
toStoreID,
|
toStoreID,
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
}
|
}
|
||||||
@@ -1408,10 +1400,10 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID, toStoreID int, copyMode
|
|||||||
// 添加toStore中不存在,但fromStore存在的
|
// 添加toStore中不存在,但fromStore存在的
|
||||||
sql = `
|
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,
|
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 ?, ?, ?, ?, ?,
|
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),
|
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
|
FROM store_sku_bind t1
|
||||||
JOIN sku t2 ON t1.sku_id = t2.id AND t2.deleted_at = ?
|
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 = ?
|
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,
|
||||||
model.SyncFlagNewMask,
|
model.SyncFlagNewMask,
|
||||||
model.SyncFlagNewMask,
|
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
@@ -1798,7 +1789,6 @@ func setStoreSkuBindStatus(skuBind *model.StoreSkuBind, status int8) {
|
|||||||
skuBind.JdSyncStatus |= status
|
skuBind.JdSyncStatus |= status
|
||||||
skuBind.EbaiSyncStatus |= status
|
skuBind.EbaiSyncStatus |= status
|
||||||
skuBind.MtwmSyncStatus |= status
|
skuBind.MtwmSyncStatus |= status
|
||||||
skuBind.WscSyncStatus |= status
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkStoreExisting(db *dao.DaoDB, storeID int) (err error) {
|
func checkStoreExisting(db *dao.DaoDB, storeID int) (err error) {
|
||||||
|
|||||||
@@ -80,19 +80,13 @@ func getJxStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
|||||||
|
|
||||||
// 此函数得到的是order的销售门店京西ID,与GetJxStoreIDFromOrder的区别是order.StoreID的解释不同,参考其它相关资料
|
// 此函数得到的是order的销售门店京西ID,与GetJxStoreIDFromOrder的区别是order.StoreID的解释不同,参考其它相关资料
|
||||||
func GetSaleStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
func GetSaleStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
||||||
if order.VendorID != model.VendorIDWSC {
|
|
||||||
return getJxStoreIDFromOrder(order)
|
return getJxStoreIDFromOrder(order)
|
||||||
}
|
}
|
||||||
return order.StoreID
|
|
||||||
}
|
|
||||||
|
|
||||||
// 此函数得到的是order的商品的展示门店京西ID,与GetJxStoreIDFromOrder的区别是order.StoreID的解释不同,参考其它相关资料
|
// 此函数得到的是order的商品的展示门店京西ID,与GetJxStoreIDFromOrder的区别是order.StoreID的解释不同,参考其它相关资料
|
||||||
func GetShowStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
func GetShowStoreIDFromOrder(order *model.GoodsOrder) (retVal int) {
|
||||||
if order.VendorID != model.VendorIDWSC {
|
|
||||||
return getJxStoreIDFromOrder(order)
|
return getJxStoreIDFromOrder(order)
|
||||||
}
|
}
|
||||||
return order.JxStoreID
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSkuIDFromOrderSku(sku *model.OrderSku) (skuID int) {
|
func GetSkuIDFromOrderSku(sku *model.OrderSku) (skuID int) {
|
||||||
if sku.JxSkuID > 0 {
|
if sku.JxSkuID > 0 {
|
||||||
|
|||||||
@@ -124,67 +124,6 @@ func GetStoreDetailByVendorStoreID(db *DaoDB, vendorStoreID string, vendorID int
|
|||||||
return storeDetail, err
|
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) {
|
func GetStoreDetail2(db *DaoDB, storeID int, vendorStoreID string, vendorID int) (storeDetail *StoreDetail2, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
@@ -374,7 +313,6 @@ func AddStoreCategoryMap(db *DaoDB, storeID, categoryID int, vendorID int, vendo
|
|||||||
CategoryID: categoryID,
|
CategoryID: categoryID,
|
||||||
MtwmSyncStatus: model.SyncFlagNewMask,
|
MtwmSyncStatus: model.SyncFlagNewMask,
|
||||||
EbaiSyncStatus: model.SyncFlagNewMask,
|
EbaiSyncStatus: model.SyncFlagNewMask,
|
||||||
WscSyncStatus: model.SyncFlagNewMask,
|
|
||||||
}
|
}
|
||||||
storeCat.DeletedAt = utils.DefaultTimeValue
|
storeCat.DeletedAt = utils.DefaultTimeValue
|
||||||
if err = GetEntity(db, storeCat, model.FieldStoreID, model.FieldCategoryID, model.FieldDeletedAt); err != nil && !IsNoRowsError(err) {
|
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 {
|
if vendorID == model.VendorIDMTWM {
|
||||||
storeCat.MtwmID = vendorCategoryID
|
storeCat.MtwmID = vendorCategoryID
|
||||||
storeCat.MtwmSyncStatus = status
|
storeCat.MtwmSyncStatus = status
|
||||||
} else if vendorID == model.VendorIDEBAI || vendorID == model.VendorIDWSC {
|
} else if vendorID == model.VendorIDEBAI {
|
||||||
intVendorCategoryID := utils.Str2Int64WithDefault(vendorCategoryID, 0)
|
storeCat.EbaiID = utils.Str2Int64WithDefault(vendorCategoryID, 0)
|
||||||
if vendorID == model.VendorIDEBAI {
|
|
||||||
storeCat.EbaiID = intVendorCategoryID
|
|
||||||
storeCat.EbaiSyncStatus = status
|
storeCat.EbaiSyncStatus = status
|
||||||
} else {
|
|
||||||
storeCat.WscID = intVendorCategoryID
|
|
||||||
storeCat.WscSyncStatus = status
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
panic("unsupported vendor")
|
panic("unsupported vendor")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -213,14 +213,10 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo
|
|||||||
if !isSingleStorePF {
|
if !isSingleStorePF {
|
||||||
tableName = "t2"
|
tableName = "t2"
|
||||||
}
|
}
|
||||||
vendorSkuNameField := "0"
|
|
||||||
if vendorID == model.VendorIDWSC {
|
|
||||||
vendorSkuNameField = "t1.wsc_id2"
|
|
||||||
}
|
|
||||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||||
sql := `
|
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,
|
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.*,
|
t2.*,
|
||||||
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc,
|
||||||
IF(t11.%s <> '', t11.%s, t3.img) img,
|
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,
|
t13.%s desc_img,
|
||||||
t4.%s_category_id vendor_vendor_cat_id`
|
t4.%s_category_id vendor_vendor_cat_id`
|
||||||
fmtParams := []interface{}{
|
fmtParams := []interface{}{
|
||||||
tableName, fieldPrefix, fieldPrefix, vendorSkuNameField,
|
tableName, fieldPrefix, fieldPrefix,
|
||||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||||
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
GetDataResFieldName(vendorID), GetDataResFieldName(vendorID),
|
||||||
GetDataResFieldName(vendorID),
|
GetDataResFieldName(vendorID),
|
||||||
|
|||||||
@@ -263,12 +263,7 @@ type OrderComment struct {
|
|||||||
// 判断是否是购买平台自有物流
|
// 判断是否是购买平台自有物流
|
||||||
// 对于京东,饿百来说,就是其自有的物流,对于微商城来说,是达达
|
// 对于京东,饿百来说,就是其自有的物流,对于微商城来说,是达达
|
||||||
func IsWaybillPlatformOwn(bill *Waybill) bool {
|
func IsWaybillPlatformOwn(bill *Waybill) bool {
|
||||||
return bill.OrderVendorID == bill.WaybillVendorID || IsSpecialOrderPlatformWaybill(bill)
|
return bill.OrderVendorID == bill.WaybillVendorID
|
||||||
}
|
|
||||||
|
|
||||||
// 是否是特殊物流
|
|
||||||
func IsSpecialOrderPlatformWaybill(bill *Waybill) bool {
|
|
||||||
return (bill.OrderVendorID == VendorIDWSC && bill.WaybillVendorID == VendorIDDada)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 订单是否已经有了有效运单
|
// 订单是否已经有了有效运单
|
||||||
|
|||||||
@@ -46,12 +46,12 @@ type StoreSkuCategoryMap struct {
|
|||||||
// ElmID int64 `orm:"column(elm_id);index"`
|
// ElmID int64 `orm:"column(elm_id);index"`
|
||||||
EbaiID int64 `orm:"column(ebai_id);index"`
|
EbaiID int64 `orm:"column(ebai_id);index"`
|
||||||
MtwmID string `orm:"column(mtwm_id);index;size(16)"` // 美团外卖没有ID,保存名字
|
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)"`
|
// ElmSyncStatus int8 `orm:"default(2)"`
|
||||||
EbaiSyncStatus int8 `orm:"default(2)"`
|
EbaiSyncStatus int8 `orm:"default(2)"`
|
||||||
MtwmSyncStatus int8 `orm:"default(2)"`
|
MtwmSyncStatus int8 `orm:"default(2)"`
|
||||||
WscSyncStatus int8 `orm:"default(2)"`
|
// WscSyncStatus int8 `orm:"default(2)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*StoreSkuCategoryMap) TableUnique() [][]string {
|
func (*StoreSkuCategoryMap) TableUnique() [][]string {
|
||||||
@@ -96,19 +96,19 @@ type StoreSkuBind struct {
|
|||||||
// ElmID int64 `orm:"column(elm_id);index"`
|
// ElmID int64 `orm:"column(elm_id);index"`
|
||||||
EbaiID int64 `orm:"column(ebai_id);index"`
|
EbaiID int64 `orm:"column(ebai_id);index"`
|
||||||
MtwmID int64 `orm:"column(mtwm_id)"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
MtwmID int64 `orm:"column(mtwm_id)"` // 这个也不是必须的,只是为了DAO取数据语句一致
|
||||||
WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId
|
// WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId
|
||||||
WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId
|
// WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId
|
||||||
|
|
||||||
// ElmSyncStatus int8 `orm:"default(2)"`
|
// ElmSyncStatus int8 `orm:"default(2)"`
|
||||||
JdSyncStatus int8 `orm:"default(2)"`
|
JdSyncStatus int8 `orm:"default(2)"`
|
||||||
EbaiSyncStatus int8 `orm:"default(2)"`
|
EbaiSyncStatus int8 `orm:"default(2)"`
|
||||||
MtwmSyncStatus int8 `orm:"default(2)"`
|
MtwmSyncStatus int8 `orm:"default(2)"`
|
||||||
WscSyncStatus int8 `orm:"default(2)"`
|
// WscSyncStatus int8 `orm:"default(2)"`
|
||||||
|
|
||||||
JdPrice int `json:"jdPrice"`
|
JdPrice int `json:"jdPrice"`
|
||||||
EbaiPrice int `json:"ebaiPrice"`
|
EbaiPrice int `json:"ebaiPrice"`
|
||||||
MtwmPrice int `json:"mtwmPrice"`
|
MtwmPrice int `json:"mtwmPrice"`
|
||||||
WscPrice int `json:"wscPrice"`
|
// WscPrice int `json:"wscPrice"`
|
||||||
|
|
||||||
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
|
AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ func TestBuildNewJxOrder(t *testing.T) {
|
|||||||
msg := &CallbackMsg{
|
msg := &CallbackMsg{
|
||||||
AppKey: appKey,
|
AppKey: appKey,
|
||||||
MsgType: MsgTypeOrder,
|
MsgType: MsgTypeOrder,
|
||||||
SubMsgType: SubMsgTypeOrderNew,
|
SubMsgType: utils.Int2Str(model.OrderStatusNew),
|
||||||
ThingID: order.VendorOrderID,
|
ThingID: order.VendorOrderID,
|
||||||
Data: utils.Format4Output(order2, true),
|
Data: utils.Format4Output(order2, true),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package wsc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"sort"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/weimobapi"
|
"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) {
|
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) {
|
func (p *PurchaseHandler) setStoreOrderSeq(order *model.GoodsOrder) {
|
||||||
|
|||||||
Reference in New Issue
Block a user