- 将微商场当成一个单一商场,不再根据lbs来派单

This commit is contained in:
gazebo
2019-03-20 22:02:30 +08:00
parent 712f311bed
commit 120e0dde6c
3 changed files with 75 additions and 48 deletions

View File

@@ -29,7 +29,7 @@ type StoreDetail2 struct {
CityName string
}
func GetStoreDetail(db *DaoDB, storeID, vendorID int) (storeDetail *StoreDetail, err error) {
func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (storeDetail *StoreDetail, err error) {
sql := `
SELECT t1.*,
t2.vendor_store_id, t2.status vendor_status, t2.delivery_fee, t2.sync_status,
@@ -38,15 +38,36 @@ func GetStoreDetail(db *DaoDB, storeID, vendorID int) (storeDetail *StoreDetail,
FROM store t1
JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND t2.deleted_at = ?
LEFT JOIN place district ON t1.district_code = district.code
WHERE t1.id = ? AND t1.deleted_at = ?
WHERE t1.deleted_at = ?
`
sqlParams := []interface{}{
vendorID,
utils.DefaultTimeValue,
utils.DefaultTimeValue,
}
if storeID > 0 {
sql += " AND t1.id = ?"
sqlParams = append(sqlParams, storeID)
}
if vendorStoreID != "" {
sql += " AND t2.vendor_store_id = ?"
sqlParams = append(sqlParams, vendorStoreID)
}
storeDetail = &StoreDetail{}
if err = GetRow(db, storeDetail, sql, vendorID, utils.DefaultTimeValue, storeID, utils.DefaultTimeValue); err == nil {
if err = GetRow(db, storeDetail, sql, sqlParams...); err == nil {
return storeDetail, nil
}
return nil, err
}
func GetStoreDetail(db *DaoDB, storeID, vendorID int) (storeDetail *StoreDetail, err error) {
return getStoreDetail(db, storeID, vendorID, "")
}
func GetStoreDetailByVendorStoreID(db *DaoDB, vendorStoreID string, vendorID int) (storeDetail *StoreDetail, err error) {
return getStoreDetail(db, 0, vendorID, vendorStoreID)
}
func GetPossibleStoresByPlaceName(db *DaoDB, cityName, provinceName string) (storeList []*StoreDetail2, err error) {
sqlList := []string{
`

View File

@@ -62,7 +62,7 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
// VendorOrderID2: utils.Int64ToStr(utils.MustInterface2Int64(result["wm_order_id_view"])),
VendorID: model.VendorIDMTWM,
VendorStoreID: result["app_poi_code"].(string),
StoreID: int(utils.Str2Int64(result["app_poi_code"].(string))),
StoreID: int(utils.Str2Int64WithDefault(utils.Interface2String(result["app_poi_code"]), 0)),
StoreName: result["wm_poi_name"].(string),
ConsigneeName: result["recipient_name"].(string),
ConsigneeMobile: result["recipient_phone"].(string),

View File

@@ -122,7 +122,7 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
VendorID: model.VendorIDWSC,
VendorStoreID: utils.Int64ToStr(utils.MustInterface2Int64(result["processStoreId"])), // 这个不是通常意义上的vendor store id
// StoreID
// StoreName
StoreName: utils.Interface2String(logisticsDeliveryDetail["processStoreTitle"]),
ConsigneeName: utils.Interface2String(logisticsDeliveryDetail["receiverName"]),
ConsigneeMobile: utils.Interface2String(logisticsDeliveryDetail["receiverMobile"]),
ConsigneeAddress: utils.Interface2String(logisticsDeliveryDetail["receiverAddress"]),
@@ -254,6 +254,12 @@ func (p *PurchaseHandler) arrangeSaleStore(order *model.GoodsOrder, cityName, pr
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)
@@ -262,7 +268,6 @@ func (p *PurchaseHandler) arrangeSaleStore(order *model.GoodsOrder, cityName, pr
for _, store := range storeList {
globals.SugarLogger.Debugf("orderID:%s %s:%d", order.VendorOrderID, store.Name, store.ID)
}
var selectedStore *model.Store
if len(storeList) > 0 {
distanceList := make(utils.SortList, 0)
userLng := jxutils.IntCoordinate2Standard(order.ConsigneeLng)
@@ -305,6 +310,7 @@ func (p *PurchaseHandler) arrangeSaleStore(order *model.GoodsOrder, cityName, pr
selectedStore = nil
}
}
}
if selectedStore != nil {
order.StoreID = selectedStore.ID
order.StoreName = selectedStore.Name