/** * TransOpenApiAct::act_getPartition() * 获取运输方式渠道分区列表并存入memcache * @param int $carrierId 运输方式ID(选填) * @param int $is_new 是否强制更新(默认0不强制) * @param string $countryName 国家名(选填) * @return array */ public function act_getPartition() { $carrierId = isset($_REQUEST['carrierId']) ? $_REQUEST['carrierId'] : 0; $is_new = isset($_REQUEST['is_new']) ? $_REQUEST['is_new'] : 0; if (!in_array($is_new, array(0, 1))) { self::$errCode = 10001; self::$errMsg = '强制更新参数有误!'; return false; } if ($carrierId == "all") { $carrierId = 0; } else { $carrierId = abs(intval($carrierId)); } if (!is_numeric($carrierId)) { self::$errCode = 10000; self::$errMsg = '运输方式参数ID错误'; return false; } $countryName = isset($_REQUEST['countryName']) ? post_check($_REQUEST['countryName']) : ''; $cacheName = md5("trans_partition_list_" . $carrierId . $countryName); $memc_obj = new Cache(C('CACHEGROUP')); $partitionInfo = $memc_obj->get_extral($cacheName); if (!empty($partitionInfo) && empty($is_new)) { return unserialize($partitionInfo); } else { $partitionInfo = TransOpenApiModel::getPartition($carrierId, $countryName); $isok = $memc_obj->set_extral($cacheName, serialize($partitionInfo)); if (!$isok) { self::$errCode = 10001; self::$errMsg = 'memcache缓存出错!'; //return false; } return $partitionInfo; } }