Skip to content

站点去城市标签技术方案

DB 运费模板,索价规则,承运商(carmodel)

订单地理编码的替代方案

STATION

service/order/core

OrderBase

(101)self.district_code =
self.get_own_station().get('district_code')

(765)district_code': self.district_code,

方案:
将thrift创建订单接口增加district_code参数
修改bshop,station新建订单的接口

查询站点单个城市改为查询站点列表城市替代方案

STATION

website/gadmin/views/station.py

StationView

[get_station_data]
if 'district_code' in query_filters:
        f['district_code'] = query_filters['district_code']
    elif district_code_list:
        f['district_code'] = {'$in': district_code_list}

[query_station_data ]
if district_code in self.city_available:
                query_filter['district_code'] = district_code

方案:
修改查询语句

website/station/dals/salemenu.py

get_all_station_salemenu

district_code_list = kwargs.get('district_code_list', [])
if district_code_list:
   filters['district_code'] = {'$in': district_code_list}
salemenu_ids = []
stations = get_station(filters, ['_id', 'name', 'salemenu', 'district_code'])

方案:
修改查询语句

引用站点城市的替代方案

STATION

website/station/dals/freight.py

freight_edit:
freight.update(post_dict,
                   district_code=station['district_code'],


方案:
去掉地理标签

website/station/views/abnormal_analysis

AbnormalRemarkDetailsIndexView

district_code = self.station['district_code']
result = get_order_remark(start_date, end_date, station_id, district_code)

方案:
改为查询group下的订单

website/station/views/car_model_manage

CarModelManageView

district_code = self.station['district_code']
result, msg = add_car_model(car_model_name, max_load, district_code)

方案:
改为group id

website/station/views/station.py

SpuDispatchSettingView

total, res = get_spu_dispatch_setting(category_id_1=category_id_1, category_id_2=category_id_2,
                                              dispatch_method=dispatch_method, search_field=search_field, page_vol=page_vol,
                                              page_num=page_num, district_code=self.station['district_code'])

接口废弃

MA:

website/custommanage/dals/customerbill.py

BillView

if 'station_ids' in self.user_data_scope:
  station_filter['_id'] = {'$in': self.user_data_scope['station_ids']}
  stations = query_stations(('name', 'district_code'), **station_filter)
  for station in stations:
      station_info[station['_id']] = station
      station_district_code.add(station['district_code'])

website/gadmin/views/partner.py

for station in station_available.values():
  district_code_list.add(station['district_code'])

方案:
改成extend

website/utils/views/common.py

CommonBaseView get_user_district

stations = query_stations(('district_code',), **station_filter)
for station in stations:
     station_district_code.add(station['district_code'])

改下字典结构

STATION

website/station/views/distribute_task

initCargoRequest

district_dict = {
   '440300': ['T002'],  # 深圳k10所对应的stationid
   '440100': ['T066'],  # 广州k10所对应的stationid
   '441900': ['T134']  # 东莞k10所对应的stationid
}

# 在服务站时可能需要找上游的stationid,而上游stationid可能有多个
station_ids_list = district_dict.get(district_code, '')

根据城市码查询站点的方案

STATION

website/station/dals/freight.py

freight_address:
stations = list(get_stations_by_role(
                role_list=[StationRole.SelfSupport, StationRole.Partner],
                district_code=station['district_code'],
                cols=['_id', 'name', 'salemenu']
            ))

website/station/views/order.py

OrderIndexView

station_ids = [i['_id'] for i in get_stations_by_role(
                role_list=[StationRole.SelfSupport, StationRole.Partner],
                district_code=self.station['district_code'],
                cols=['_id']
            )]

TransportOrdersQueryView

 station_ids = [i['_id'] for i in get_stations_by_role(
                role_list=[StationRole.SelfSupport.value,
                           StationRole.Partner.value],
                district_code=self.station['district_code'],
                cols=['_id']
            )]

website/station/views/daily_sales

DailySalesOrderDetailView

district_code = self.station['district_code']
stations = tstation.get_stations_by_role((StationRole.SelfSupport.value, StationRole.Partner.value), district_code=district_code, cols=('_id',), must_active_station=False)

GetStationIdsView

district_code = request.GET.get('district_code', '')
station_id_list = []
for item in get_stations_by_role(district_code=district_code):
        ...

website/station/views/skuproduct.py

SimpleSkuSearchView

# 判断是总站还是普通站点
if self.station.get('role') == StationRole.Seller.value:
  # 总站,使用district_code
  stations = tstation.get_stations_by_role(
      district_code=self.station['district_code'],
      cols=['_id']
  )
  station_ids = [station['_id'] for station in stations]

MA:

website/custommanage/dals/bill.py

get_seller_station

station_filter = {'role': 4, 'district_code': {'$in': district_code_list}}
stations = get_stations_by_filter(**station_filter)

website/custommanage/dals/restaurant.py

get_all_station

def get_all_station(district_code_list):
all_stations = {}
stations = query_stations(('name',), **{'district_code': {'$in': district_code_list}})

website/custommanage/dals/customereport.py

ReportView get_user_district_station

station_filter['district_code'] = {'$in': self.user.district_code_list}