/** * ShipfeeQueryModel::cal_globalmail_shenzhen() * 香港globalmail运费计算 * @param float $weight 重量 * @param string $countryname 发往国家 * @param $data 待定 * @return false or array */ public function cal_globalmail_shenzhen($weight, $countryname, $data) { $totalfee = 0; $rate = 0; $arealist = array(); $arealist = TransOpenApiModel::cacheTableInfo('trans_freight_globalmail_shenzhen', '1', 'cal_globalmail_shenzhen', 86400, 0); if (empty($arealist)) { return false; } $arearow = array(); foreach ($arealist as $value) { $countrys = explode(',', $value['country']); $countrys = array_map(array($this, 'callback_trimspace'), $countrys); if (in_array($countryname, $countrys)) { $arearow = $value; break; } } if (empty($arearow)) { return false; } //运费计算 $weight_freight = $arearow['weight_freight']; $weight_freight_arr = explode(',', $weight_freight); foreach ($weight_freight_arr as $key1 => $value1) { $value1_arr = explode(':', $value1); $weight_range = explode('-', $value1_arr[0]); if ($weight > $weight_range[0] && $weight <= $weight_range[1]) { $shipfee = $value1_arr[1]; break; } } if (empty($shipfee)) { return false; } $shipfee *= $weight; //油费计算 $fuelcosts = $arearow['fuelcosts']; $zgTranFee = $arearow['zgTranFee'] * $weight; $fuelcosts_arr = explode(',', $fuelcosts); foreach ($fuelcosts_arr as $key2 => $value2) { $value2_arr = explode(':', $value2); $weight_range = explode('-', $value2_arr[0]); if ($weight > $weight_range[0] && $weight <= $weight_range[1]) { $fuelfee = $value2_arr[1]; break; } } $exRates = TransOpenApiModel::cacheExRateInfo(array('HKD'), array('CNY'), 'hkRate', 7200, 0); $hkRate = round(floatval($exRates['HKD/CNY']), 4); if ($hkRate <= 0) { return array('discount' => 0, 'fee' => 0, 'totalfee' => 0, 'level' => "", 'exRate' => array("hkRate" => 0)); } $shipfee += $fuelfee; $shipfee = $shipfee * $hkRate; $shipfee += $zgTranFee; $totalfee = $shipfee; $shipfee = round($shipfee, 4); return array('discount' => $rate, 'fee' => $shipfee, 'totalfee' => $totalfee, 'level' => "", 'exRate' => array("hkRate" => $hkRate)); }