$product_weight = $db->fetchAll($get_product_weight); $get_delivery_sql = 'select da.`id`,da.`first_weight`,da.`next_weight`,da.`free`,da.`delivery_id`,d.`name` from ' . $db->table('delivery_area_mapper') . ' as dam join ' . $db->table('delivery_area') . ' as da on dam.`area_id`=da.`id` join ' . $db->table('delivery') . ' as d on da.`delivery_id`=d.`id` where '; $delivery_list_json = array(); if ($product_weight) { foreach ($product_weight as $weight) { $get_delivery = $get_delivery_sql . ' dam.`province`=' . $address_info['province'] . ' and dam.`city`=' . $address_info['city'] . ' and dam.`district`=' . $address_info['district']; $get_delivery .= ' and dam.`business_account`=\'' . $weight['business_account'] . '\''; $get_delivery .= ' union ' . $get_delivery_sql . ' dam.`province`=' . $address_info['province'] . ' and dam.`city`=' . $address_info['city']; $get_delivery .= ' and dam.`business_account`=\'' . $weight['business_account'] . '\''; $get_delivery .= ' union ' . $get_delivery_sql . ' dam.`province`=' . $address_info['province']; $get_delivery .= ' and dam.`business_account`=\'' . $weight['business_account'] . '\''; $delivery_list = $db->fetchAll($get_delivery); $delivery_list_mapper = array(); if ($delivery_list) { foreach ($delivery_list as $delivery) { $tmp = array('delivery_id' => $delivery['delivery_id'], 'delivery_name' => $delivery['name'], 'delivery_fee' => caculate_delivery_fee($delivery['first_weight'], $delivery['next_weight'], $delivery['free'], $weight['total_weight'])); $delivery_list_mapper[] = $tmp; $delivery_list_json[$weight['b_id']][] = $tmp; } $cart_list[$weight['b_id']]['delivery_list'] = $delivery_list_mapper; } } } $delivery_support = true; //把运费计入总金额 foreach ($cart_list as $key => $cart) { if (isset($cart['delivery_list'])) { $total_delivery_fee += $cart['delivery_list'][0]['delivery_fee']; $delivery_list_json[$cart['b_id']][0]['selected'] = 1; } else { $get_delivery = $get_delivery_sql . ' dam.`province`=' . $address_info['province'] . ' and dam.`city`=' . $address_info['city'] . ' and dam.`district`=' . $address_info['district'];
} assign('inventory_json', json_encode($inventory_json)); assign('attributes', array()); assign('attributes_json', '""'); } //读取配送区域 if ($product['free_delivery'] == 1) { $product['delivery_fee'] = '免运费'; } else { $get_delivery_area = 'select * from ' . $db->table('delivery_area'); $get_delivery_area .= ' where business_account = \'' . $product['business_account'] . '\''; $delivery_area = $db->fetchAll($get_delivery_area); $delivery_fee = 65535; if ($delivery_area) { foreach ($delivery_area as $area) { $temp = caculate_delivery_fee($area['first_weight'], $area['next_weight'], $area['free'], $product['weight']); $delivery_fee = $delivery_fee > $temp ? $temp : $delivery_fee; } } $product['delivery_fee'] = '¥' . $delivery_fee; } //配送省 $get_delivery_province = 'select p.id, p.province_name from ' . $db->table('delivery_area_mapper') . ' as m'; $get_delivery_province .= ' left join ' . $db->table('province') . ' as p on p.id = m.province'; $get_delivery_province .= ' where m.business_account = \'' . $product['business_account'] . '\''; $delivery_province = $db->fetchAll($get_delivery_province); assign('delivery_province', $delivery_province); $product['all_count'] = 0; $product['good_count'] = 0; $product['normal_count'] = 0; $product['bad_count'] = 0;