Example #1
0
 public static function DecryptMsg($data, $sReqData)
 {
     $sMsg = "";
     // 解析之后的明文
     $errCode = self::$instance->DecryptMsg($data['msg_signature'], $data['timestamp'], $data['nonce'], $sReqData, $sMsg);
     if ($errCode != 0) {
         self::Error("ERR: " . $errCode, $errCode);
     }
     return Util_String::XMLToArray($sMsg);
 }
Example #2
0
 public static function Format($result, $format = 'json')
 {
     switch ($format) {
         case 'json':
         default:
             $result = Util_String::jsonEncode($result);
             break;
     }
     return $result;
 }
Example #3
0
 public static function save_with_token($member_id, $email)
 {
     if (!($obj = Model_MemberEmailPre::get4member_id($member_id))) {
         $obj = Model_MemberEmailPre::forge();
     }
     $obj->member_id = $member_id;
     $obj->email = $email;
     $obj->token = Security::generate_token();
     $obj->code = Util_String::get_random_code(static::$_properties['code']['form']['validation']['exact_length'][0]);
     if (!$obj->save()) {
         return false;
     }
     return $obj;
 }
Example #4
0
 public static function GetID($length, $table)
 {
     $id = Util_String::GenRandomStr($length, Util_String::CHAR_NUM);
     while (self::$idArray[$id]) {
         if ($length <= 5) {
             //保证程序健壮性 防止死循环
             return false;
         }
         $id = Util_String::GenRandomStr($length, Util_String::CHAR_NUM);
     }
     if (DB::Exists($table, array('id' => $id))) {
         return false;
     }
     self::$idArray[$id] = 1;
     return $id;
 }
 /**
  * 获取一个二维数组的一列数据
  * 
  * @param array $array 输入数组
  * @param string $colKey 指定列
  * @return array 
  */
 public static function GetColumn($array, $colKey, $subName = null, $nullFilter = true)
 {
     if (!$array || !is_array($array) || !$colKey) {
         return null;
     }
     if (is_object($array)) {
         $array = self::ObjectToArray($array);
     }
     $colArray = array();
     foreach ($array as $index => $value) {
         if (is_object($value)) {
             $curValue = $value->{$colKey};
         } else {
             if (is_array($value)) {
                 $curValue = $value[$colKey];
             } else {
                 continue;
             }
         }
         if (is_array($curValue) || is_object($curValue)) {
             $curKey = Util_String::MD5($curValue);
         } else {
             $curKey = $curValue;
         }
         if ($nullFilter) {
             if (isset($curValue) && $curValue !== '') {
                 $colArray[$curKey] = $curValue;
             }
         } else {
             $colArray[] = $curValue;
         }
         if ($subName && $value[$subName]) {
             $subValues = self::GetColumn($value[$subName], $colKey, $subName);
             if ($subValues) {
                 foreach ($subValues as $subIndex => $subValue) {
                     $colArray[$subValue] = $subValue;
                 }
             }
         }
     }
     $colArray = array_values($colArray);
     return $colArray;
 }
Example #6
0
 public function request($method, $param, $path)
 {
     $content = self::buildXML($param);
     $queueName = $this->queueName;
     $date = Util_Time::GetGMTDate();
     $canonicalizedMQSHeaders = array('x-mns-version' => $this->version);
     $sign = $this->createSign($method, $canonicalizedMQSHeaders, $date, $path);
     $host = $this->accountID . '.' . self::$beijingURL;
     $headers = array('Host' => $host, 'Date' => $date, 'Content-Type' => $this->contentType, 'Authorization' => $sign);
     foreach ($canonicalizedMQSHeaders as $key => $value) {
         $headers[$key] = $value;
     }
     $uri = $host . $path;
     $result = self::Http($uri, $method, $headers, $content, $path);
     if ($result) {
         $result = Util_String::XMLToArray($result);
     }
     return $result;
 }
Example #7
0
 /**
  * 文件上传
  * 
  */
 public static function Save($uploadFileKey, $prefix = '', $saveFolder = '', $savePath = '')
 {
     $file = $_FILES[$uploadFileKey];
     if (!$file) {
         System::AddError("文件上传失败,没有文件", System::MESSAGE_SYS);
         return false;
     }
     $error = $file['error'];
     $tmpName = $file['tmp_name'];
     if ($error != UPLOAD_ERR_OK) {
         System::AddError("文件上传失败,错误码:" . $error, System::MESSAGE_SYS);
         return false;
     }
     $maxSize = self::$max_upload_size;
     if ($file['size'] > self::$max_upload_size * 1024 * 1024) {
         System::AddError("文件过大,最大不得超过{$maxSize}M:", System::MESSAGE_SYS);
         return false;
     }
     if (!$savePath) {
         $fileNames = explode('.', $file['name']);
         $fileName = md5($fileNames[0]);
         $fileName = $prefix . $fileName . Util_String::GenRandomStr(6);
         $countNamesCount = count($fileNames);
         if ($countNamesCount > 1) {
             $fileName .= ".{$fileNames[$countNamesCount - 1]}";
         }
         $fileName = strtolower($fileName);
         $folder = self::GetDefaultFolder($file['type'], $saveFolder);
         if (!$folder) {
             return false;
         }
         $savePath = $folder . '/' . $fileName;
     }
     $result = move_uploaded_file($tmpName, $savePath);
     if (!$result) {
         System::AddError("文件保存失败~");
         return false;
     }
     $count = strlen(ROOT_PATH);
     $savePath = substr($savePath, $count);
     return $savePath;
 }
Example #8
0
 /**
  * Get the validation message for an attribute and rule.
  *
  * @param  string $attribute
  * @param  string $rule
  * @return string
  */
 protected function getMessage($attribute, $rule)
 {
     $lowRule = Util_String::snake($rule);
     return $this->messageFormats[$lowRule];
 }
Example #9
0
 protected static function get_cache_key($url, $device_type = 'pc', $prefix = '')
 {
     $target_str = Util_String::convert2accepted_charas4cache_id(preg_replace('#https?://#u', '', $url));
     return sprintf('%s%s_%s', $prefix, $target_str, $device_type);
 }
Example #10
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     header("Access-Control-Allow-Origin: *");
     //获取房源 获取房源图片
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     //获取房源信息
     $propId = $this->_params['propId'];
     $propInfo = Model_Weshop_Props::getWeshopProp($propId);
     if (empty($propInfo)) {
         throw new Exception_Property_NotFound(Const_APIStatus::E_PROP_INFO_FAILED);
     }
     //小区信息
     $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($propInfo->commId, 2);
     $city_set = APF::get_instance()->get_config("city_set", "multicity");
     $cityPinYin = $city_set[$brokerInfo->cityId]['pinyin'];
     $row = array();
     $row['propId'] = $propId;
     $row['floor'] = $propInfo->floor;
     $row['totalFloor'] = $propInfo->totalFloor;
     $row['commId'] = $propInfo->commId;
     $row['commName'] = $commInfo['commName'];
     $row['commLocation'] = $commInfo['commLocal'];
     $row['sosolat'] = $commInfo['sosolat'];
     //纬度
     $row['sosolng'] = $commInfo['sosolng'];
     //经度
     //$areaId = substr($commInfo['areaCode'], 0, 8);
     //$areaInfo = Model_City_TypeCode::getTypeName($areaId);
     //$row['areaName'] = $areaInfo->typeName;
     $blockId = $commInfo['areaCode'];
     $blockInfo = Bll_Commtype_Api::getInfoByTypeCode($blockId);
     $areaInfo = Bll_Commtype_Api::getInfoByTypeId($blockInfo['parentId']);
     $row['areaName'] = $areaInfo['typeName'];
     $row['blockName'] = $blockInfo['typeName'];
     $row['room'] = $propInfo->room;
     $row['hall'] = $propInfo->hall;
     $row['toilet'] = $propInfo->toilet;
     $row['area'] = $propInfo->acreage;
     $row['areaUnit'] = '平米';
     $row['price'] = intval($propInfo->price);
     $row['priceUnit'] = '万';
     $isJson = Util_String::isJson($propInfo->description);
     $row['propDescription'] = $isJson ? json_decode($propInfo->description) : $propInfo->description;
     $row['title'] = $propInfo->title ? $propInfo->title : $row['commName'] . ' ' . $row['room'] . '室' . $row['hall'] . '厅' . ' ' . $row['area'] . '平' . ' ' . $row['price'] . '万';
     $row['cityPinYin'] = $cityPinYin;
     //从数据库取房源特色id
     $tagIds = $propInfo->tagIds;
     $tagIds = explode(',', $tagIds);
     $allTags = APF::get_instance()->get_config('weshop_tags');
     $propTags = array();
     foreach ($tagIds as $tagId) {
         $tagId = trim($tagId);
         if ($tagId) {
             $tag = array();
             $tag['tagId'] = $tagId;
             $tag['tagName'] = $allTags[$tagId];
             $propTags[] = $tag;
         }
     }
     $row['tags'] = $propTags;
     //获取房源图片
     $propImages = Model_Weshop_PropImages::getWeshopPropImages($propId);
     $row['propImages'] = $row['outdoorImage'] = array();
     foreach ($propImages as $propImage) {
         $image = array();
         $image['host'] = $propImage->imageHostId;
         $image['hash'] = $propImage->imageHash;
         $url = Util_ImageUtils::getResizeURL($propImage->imageHash, $propImage->imageHostId, 290, 240);
         $url = str_replace("display", "display/e", $url);
         //无水印格式
         $url = str_replace("240", "240c", $url);
         //图片url 加c
         $image['smallImageUrl'] = $url;
         $url = Util_ImageUtils::getResizeURL($propImage->imageHash, $propImage->imageHostId, 600, 600);
         $url = str_replace("display", "display/e", $url);
         //无水印格式
         $image['bigImageUrl'] = $url;
         //区分户型图和室内图
         if ($propImage->imageType == 1) {
             $row['propImages'][] = $image;
         } elseif ($propImage->imageType == 2) {
             $row['outdoorImage'][] = $image;
         }
     }
     $row['cityId'] = $brokerInfo->cityId;
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $row);
 }
Example #11
0
 /**
  * 拼接租房最后房源数据
  * @param $proInfos 房源信息
  * @param $proClickInfo 房源点击量信息
  * @param $adProInfos 房源主推信息
  * @param $propMianNew 房源主表信息
  */
 private function initZfProData($proInfos, $proClickInfo, $adProInfos, $propMianNew)
 {
     $data = $orderProId = array();
     $tD = date('Ymd');
     foreach ($proInfos as $proInVal) {
         $pro = array();
         $orderProId[] = $proInVal->proid;
         $pro['id'] = $proInVal->proid;
         $pro['name'] = $propMianNew[$proInVal->proid]['contentBasic']['title'];
         $pro['commName'] = Util_String::truncate($proInVal->commname, 20, '');
         $pro['area'] = $propMianNew[$proInVal->proid]['contentBasic']['areanum'];
         $roomStr = '';
         if ($propMianNew[$proInVal->proid]['contentBasic']['roomnum']) {
             $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['roomnum'] . '室';
         }
         if ($propMianNew[$proInVal->proid]['contentBasic']['hallnum']) {
             $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['hallnum'] . '厅';
         }
         $pro['houseType'] = $roomStr;
         $pro['floor'] = intval($propMianNew[$proInVal->proid]['contentBasic']['floor']);
         $pro['floorAll'] = intval($propMianNew[$proInVal->proid]['contentBasic']['totalfloor']);
         $pro['price'] = $proInVal->pricenum * 100;
         $pro['day'] = Bll_House_HzHouse::getLeftDays($proInVal->created);
         if ($pro['day']) {
             $pro['day'] .= '天';
         } else {
             $pro['day'] = '<1天';
         }
         /*
         $createDay = date('Ymd',$proInVal->created);
         if ($tD == $createDay) {
             $pro['day'] = '新发';
         } else {
             $timeFixstr = strtotime($createDay) + 86400;
             $leftDays = 90 - floor((time() - $timeFixstr) / 86400);
             $leftDays = $leftDays > 0 ? $leftDays : 0;
             $pro['day'] = $leftDays . '天';
         }
         */
         $pro['clickNum'] = intval($proClickInfo[$proInVal->proid]);
         $pro['isChoose'] = $adProInfos[$proInVal->proid] ? 1 : 0;
         $pro['rentType'] = $propMianNew[$proInVal->proid]['contentBasic']['renttype'] == 1 ? 0 : 1;
         //出租方式,0整租,1合租
         $data[] = $pro;
     }
     //根据最新发布时间排序
     array_multisort($orderProId, SORT_DESC, $data);
     $this->outData($data, 1);
 }
Example #12
0
 /**
  * @dataProvider truncate4line_provider
  */
 public function test_truncate4line($str = null, $num = null, $trimmarker = null, $is_rtrim = null, $expected = null)
 {
     list($test, $is_truncated) = Util_String::truncate4line($str, $num, $trimmarker, $is_rtrim);
     $this->assertEquals($expected, $test);
 }
Example #13
0
 public function getUuid()
 {
     if (!$this->uuid) {
         $this->uuid = Util_String::uuid();
     }
     return $this->uuid;
 }
Example #14
0
 public function handle_request_internal()
 {
     if (Bll_Weshop::weshopPropsIsMaintain()) {
         return array('status' => 'error', 'message' => "系统维护中,请稍后再试!");
     }
     header("Access-Control-Allow-Origin: *");
     $brokerId = $this->_params['brokerId'];
     $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId);
     if (!$brokerInfo) {
         throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS);
     }
     $sinceId = isset($this->_params['sinceId']) ? intval($this->_params['sinceId']) : 0;
     //从$sinceId 行开始读
     $per = isset($this->_params['per']) ? $this->_params['per'] : 10;
     //每页显示的条数
     //获取经纪人房源
     $brokerProps = Model_Weshop_Props::getWeshopPropsByBrokerId($brokerId, $per + 1, $sinceId);
     $totalProps = Model_Weshop_Props::getWeshopPropsCount($brokerId);
     $propList = array();
     $hasNextPage = 0;
     if (!empty($brokerProps)) {
         $hasNextPage = count($brokerProps) > $per ? 1 : 0;
         if ($hasNextPage) {
             array_pop($brokerProps);
             $sinceId += $per;
         } else {
             $sinceId = 0;
         }
         $propIds = array();
         $commIds = array();
         foreach ($brokerProps as $prop) {
             $propIds[] = $prop->id;
             $commIds[] = $prop->commId;
         }
         //批量获取小区信息
         list($commInfos, $areaIds, $blockIds) = $this->getCommInfos($commIds);
         $araNames = $this->getCommTypeInfo($areaIds);
         $blockIdNames = $this->getCommTypeInfo($blockIds);
         //批量获取房源默认图片
         $defaultImages = $this->getPropDefaultImage($propIds);
         foreach ($brokerProps as $brokerProp) {
             $row = array();
             $row['propId'] = $brokerProp->id;
             $row['commId'] = $brokerProp->commId;
             $row['commName'] = $commInfos[$brokerProp->commId]['commName'];
             //批量获取小区信息  commIds propIds
             $areaId = substr($commInfos[$brokerProp->commId]['areaCode'], 0, 8);
             $blockId = $commInfos[$brokerProp->commId]['areaCode'];
             $row['areaName'] = $araNames[$areaId];
             //批量获取区域 板块
             $row['blockName'] = $blockIdNames[$blockId];
             //批量获取区域 板块
             $row['room'] = $brokerProp->room;
             $row['hall'] = $brokerProp->hall;
             $row['toilet'] = $brokerProp->toilet;
             $row['area'] = $brokerProp->acreage;
             $row['areaUnit'] = '平米';
             $row['price'] = intval($brokerProp->price);
             $row['priceUnit'] = '万';
             $isJson = Util_String::isJson($brokerProp->description);
             $row['propDescription'] = $isJson ? json_decode($brokerProp->description) : $brokerProp->description;
             $row['title'] = $brokerProp->title ? $brokerProp->title : $row['commName'] . ' ' . $row['room'] . '室' . $row['hall'] . '厅' . ' ' . $row['area'] . '平' . ' ' . $row['price'] . '万';
             $imageUrl = PageHelper::pure_static_url(APF::get_instance()->get_config('prop_image_url_default', 'weshop', 'img/mobile/app/weshop_prop_default.jpg'));
             $url = Util_ImageUtils::getResizeURL($defaultImages[$brokerProp->id]['imageHash'], $defaultImages[$brokerProp->id]['imageHostId'], 290, 240);
             $url = str_replace("display", "display/e", $url);
             //无水印格式
             $url = str_replace("240", "240c", $url);
             $row['imageUrl'] = $defaultImages[$brokerProp->id] ? $url : $imageUrl;
             $row['previewUrl'] = Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $brokerProp->id));
             $propList[] = $row;
         }
     }
     return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propList' => $propList, 'sinceId' => $sinceId, 'hasNextPage' => $hasNextPage, 'totalProps' => $totalProps));
 }
 public function initComboZfProData($proInfos, $propMianNew, $combolist)
 {
     $data = $orderProId = array();
     $tD = date('Ymd');
     foreach ($proInfos as $proInVal) {
         $pro = array();
         $orderProId[] = $proInVal->proid;
         $pro['id'] = $proInVal->proid;
         $pro['name'] = $propMianNew[$proInVal->proid]['contentBasic']['title'];
         $pro['commName'] = Util_String::truncate($proInVal->commname, 20, '');
         $pro['area'] = $propMianNew[$proInVal->proid]['contentBasic']['areanum'];
         $roomStr = '';
         if ($propMianNew[$proInVal->proid]['contentBasic']['roomnum']) {
             $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['roomnum'] . '室';
         }
         if ($propMianNew[$proInVal->proid]['contentBasic']['hallnum']) {
             $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['hallnum'] . '厅';
         }
         $pro['houseType'] = $roomStr;
         $pro['floor'] = intval($propMianNew[$proInVal->proid]['contentBasic']['floor']);
         $pro['floorAll'] = intval($propMianNew[$proInVal->proid]['contentBasic']['totalfloor']);
         $pro['price'] = $proInVal->pricenum;
         $pro['day'] = Bll_House_HzHouse::getLeftDays($proInVal->created);
         if ($pro['day']) {
             $pro['day'] .= '天';
         } else {
             $pro['day'] = '<1天';
         }
         /*
         $createDay = date('Ymd',$proInVal->created);
         if ($tD == $createDay) {
             $pro['day'] = '新发';
         } else {
             $timeFixstr = strtotime($createDay) + 86400;
             $leftDays = 90 - floor((time() - $timeFixstr) / 86400);
             $leftDays = $leftDays > 0 ? $leftDays : 0;
             $pro['day'] = $leftDays . '天';
         }
         */
         foreach ($combolist as $val) {
             if ($val['houseId'] == $proInVal->proid) {
                 $pro['status'] = $val['state'];
             }
         }
         if (!$pro['status']) {
             $pro['status'] = 2;
         }
         $pro['rentType'] = $propMianNew[$proInVal->proid]['contentBasic']['renttype'] == 1 ? 0 : 1;
         //出租方式,0整租,1合租
         $data[] = $pro;
     }
     //根据最新发布时间排序
     array_multisort($orderProId, SORT_DESC, $data);
     return $data;
 }
Example #16
0
 public static function dbRandomId($pkName = 'id')
 {
     $pkName = $pkName ? $pkName : 'id';
     $randomId = Util_String::GenRandomStr(8, Util_String::CHAR_NUM);
     $db = self::dbObject();
     if ($db->exsits(array($pkName => $randomId), $pkName)) {
         return null;
     } else {
         return $randomId;
     }
 }
Example #17
0
 protected function set_body($data = array())
 {
     $this->options['body'] = $this->parser->render($this->config['body'], $data);
     $this->options['body'] .= $this->get_signature($data);
     $this->options['body'] = Util_String::normalize_platform_dependent_chars($this->options['body'], $this->options['is_use_normalizer']);
 }