Esempio n. 1
0
def get_finance_all_city(province_id=None):
    """
        通过省ID获取城市的数据

        参数
        ----
        province_id : int
            省ID

        返回值
        ------
        result_list : list
            所有城市的数据的数组
    """
    province_id = common_utils.to_int(province_id)
    city_list = list_objs(model=ModelName.T_BASE_CITY,
                          is_enable=1,
                          is_show=1,
                          province_id=province_id)
    if not city_list:
        return None
    result_list = []
    for city in city_list:
        city_info = place_utils.get_city_by_id(city_id=city.city_id)
        if city_info:
            result_list.append(city_info)
    return result_list
Esempio n. 2
0
def city_name(city_id):
    """
        城市名字
    """
    if not city_id:
        return ""
    city = place_utils.get_city_by_id(
        city_id=city_id
    )
    if not city:
        return ""
    return city['city_name']
Esempio n. 3
0
def get_dealer_id_list_by_multy_city(city_id=None,
                                     car_brand_id=None,
                                     car_series_id=None):
    """
        查找 sale_city_ids 为多个城市 '4,123,456,'
    """
    city_id = common_utils.to_int(city_id)
    car_brand_id = common_utils.to_int(car_brand_id)
    car_series_id = common_utils.to_int(car_series_id)
    dealer_sql_template = '''
        SELECT 
            id
        FROM 
            t_base_dealer
        WHERE 
            is_enable=1
            AND is_frozen=0
            {% if city_id %} 
                AND sale_city_ids like '4%,{{city_id}},%'
            {% endif %}
            {% if car_series_id %} 
                AND car_series_ids like '%,{{car_series_id}},%'
            {% elif car_brand_id %} 
                AND cbb_car_brand_code like '%,{{car_brand_id}},%'
            {% endif %}
    '''
    param = {
        'city_id': city_id,
        'car_brand_id': car_brand_id,
        'car_series_id': car_series_id,
    }
    dealer_sql = Template(dealer_sql_template).render(param)
    cursor = connection().cursor()
    cursor.execute(dealer_sql)
    dealer_list = dictfetchall(cursor)
    if not dealer_list:
        # 查找 sale_city_ids 售全省 '2,123'
        city_info = place_utils.get_city_by_id(city_id=city_id)
        if not city_info:
            return None
        province_id = city_info['province_id']
        return get_dealer_id_list_by_sale_province(province_id=province_id,
                                                   car_brand_id=car_brand_id,
                                                   car_series_id=car_series_id)
    dealer_id_list = []
    for tmp_dealer in dealer_list:
        dealer_id_list.append(tmp_dealer['id'])
    return dealer_id_list
Esempio n. 4
0
def get_place_city_by_id(city_id=None):
    """
        根据市ID获取市基本数据

        参数
        ----
        city_id : int
            市ID

        返回值
        ------
        result_dict : dict
            市基本数据
    """
    city_id = common_utils.to_int(city_id)
    city = place_utils.get_city_by_id(city_id=city_id)
    return city
Esempio n. 5
0
def get_finance_dealer_city(province_id=None):
    """
        通过省ID获取所有包含经销商的城市的数据

        参数
        ----
        province_id : int
            省ID

        返回值
        ------
        result_list : list
            所有城市的数据的数组
    """
    province_id = common_utils.to_int(province_id)
    dealer_id_list = dealer_utils.get_dealer_id_list(province_id=province_id)
    if not dealer_id_list:
        return None

    dealer_sql_template = '''
        SELECT 
            DISTINCT city_id
        FROM 
            t_base_dealer
        WHERE 
            is_enable=1
            AND is_frozen=0
            AND id in ({{dealer_id_list}})
        ORDER BY 
            city_id
    '''
    param = {
        'dealer_id_list': common_utils.int_list_to_str(dealer_id_list),
    }
    dealer_sql = Template(dealer_sql_template).render(param)
    cursor = connection().cursor()
    cursor.execute(dealer_sql, param)
    dealers = dictfetchall(cursor)
    if not dealers:
        return None
    result_list = []
    for dealer in dealers:
        city_info = place_utils.get_city_by_id(city_id=dealer['city_id'])
        if city_info:
            result_list.append(city_info)
    return result_list
Esempio n. 6
0
def get_finance_province_city_county(province_id=None,
                                     city_id=None,
                                     county_id=None):
    """
        根据城市ID或者县区ID返回省和城市信息
        province_id, city_id, county_id都是可选,最少有一个

        参数
        ----
        province_id : int, 可选
            省ID
        city_id : int, 可选
            城市ID
        county_id : int, 可选
            县区ID

        返回值
        ------
        result_dict : dict
            返回省或者城市信息
    """
    city_id = common_utils.to_int(city_id)
    county_id = common_utils.to_int(county_id)
    province_id = common_utils.to_int(province_id)
    result_dict = {}
    if county_id:
        county_info = place_utils.get_county_by_id(county_id=county_id)
        if not county_info:
            return None
        city_id = county_info['city_id']
        result_dict['county'] = county_info
    if city_id:
        city_info = place_utils.get_city_by_id(city_id=city_id)
        if not city_info:
            return None
        province_id = city_info['province_id']
        result_dict['city'] = city_info
    if province_id:
        province_info = place_utils.get_province_by_id(province_id=province_id)
        if not province_info:
            return None
        result_dict['province'] = province_info
    return result_dict