require_once( "/data/vipshop/viplib/lib/NetUtil.php"); //防止出现多次引用造成重复定义
$sellerFile = getSellerFilePath();
$sellerFile = "/data/web/shop_cm/htdocs/shop_v1/htdocs/pms/contact_static/contact_change_data.sql";
if( empty($sellerFile)){//数据文件为空情况
$ret_array['msg'] = -1;//哈希结构数据
$ret_array['msg'] = 'have no seller data' ;
return $ret_array ;
}
$sellerArray = parseSellerFileToArray($sellerFile);
foreach ($sellerArray as $eachSellerDataArray){
sendWeekGrowContact($eachSellerDataArray);
sendHighValueContact($eachSellerDataArray);
}
//发送每周环比增长的触达-------记得要加上日志
function sendWeekGrowContact(&$sellerDataArray){
$sendContent = "您好,您店铺昨日";
//$weekGrowFlag等于访问量周坏比+支付周坏比+转化率周坏比 即:1+2+4
$weekGrowFlag = $sellerDataArray['weekGrowFlag'];
if(empty($sellerDataArray['sellerUin']) || empty($weekGrowFlag)){
return ;
}
//第一个标识位为1的时候,标识访问量周坏比达到要求
if($weekGrowFlag & 1 ){
$visitorMargin = $sellerDataArray['visitorMargin'];
if(!empty($visitorMargin)){
if($visitorMargin > 0){
$sendContent = $sendContent."访客数 ".$sellerDataArray['visitorNum'].",比上周同期提高 ".round($sellerDataArray['visitorMargin']*100,2) ."%;";
}else{
$sendContent = $sendContent."访客数 ".$sellerDataArray['visitorNum'].",比上周同期下降 ".round($sellerDataArray['visitorMargin']*100,2) ."%;";
}
}
}
//第二个标识位为1的时候,标识支付金额周坏比达到要求
if($weekGrowFlag & 2 ){
$paymentMargin = $sellerDataArray['paymentMargin'];
if(!empty($paymentMargin)){
if($paymentMargin > 0){
$sendContent = $sendContent."支付金额 ".$sellerDataArray['payment'].",比上周同期提高 ".round($sellerDataArray['paymentMargin']*100,2) ."%;";
}else{
$sendContent = $sendContent."支付金额 ".$sellerDataArray['payment'].",比上周同期下降 ".round($sellerDataArray['paymentMargin']*100,2) ."%;";
}
}
}
//第三个标识位为1的时候,标识购买转化率周环比达到要求
if($weekGrowFlag & 4 ){
$converseMargin = $sellerDataArray['converseMargin'];
if(!empty($converseMargin)){
if($converseMargin > 0){
$sendContent = $sendContent."购买转化率 ".round($sellerDataArray['converse'],2).",比上周同期提高 ".round($sellerDataArray['converseMargin']*100,2) ."%";
}else{
$sendContent = $sendContent."购买转化率 ".round($sellerDataArray['converse'],2).",比上周同期下降 ".round($sellerDataArray['converseMargin']*100,2) ."%";
}
}
}
//发tips的时候,不用设置&TIPSVARS
if($weekGrowFlag & 4 || $weekGrowFlag & 2 || $weekGrowFlag & 1){
$contactId = 203;//该模板id是在触达页面配置的模板生成的id
//$sendString = "id=".$contactId."&uin=".$sellerDataArray['sellerUin']."&MAILVARS=".$sendContent."&PMSVARS=".$sendContent."\r\n";
$sendString = "id=".$contactId."&uin=".$sellerDataArray['sellerUin']."&PMSVARS=".$sendContent."\r\n";
NetUtil::tcpCmd('10.130.1.46', 12015, $sendString);
}
}
//发送最高记录的触达
function sendHighValueContact(&$sellerDataArray){
$sendContent = "恭喜您!您店铺昨日";
//$weekGrowFlag等于访问量周坏比+支付周坏比+转化率周坏比 即:1+2+4
$highestHistoryFlag = $sellerDataArray['highestHistoryFlag'];
if(empty($sellerDataArray['sellerUin'])||empty($highestHistoryFlag)){
return ;
}
//第一个标识位(2的0次方)为1的时候,标识访问量达到最高
if($highestHistoryFlag & 1 ){
$highestVistor = $sellerDataArray['highestVistor'];
if(!empty($highestVistor)){
$sendContent = $sendContent."访客数为".$highestVistor.',达到本年度单日访客数最高记录;';
}
}
//第二个标识位(2的1次方)为1的时候,标识支付金额达到最高
if($highestHistoryFlag & 2 ){
$highestPayment = $sellerDataArray['highestPayment'];
if(!empty($highestPayment)){
$sendContent = $sendContent."支付金额".$sellerDataArray['highestPayment'].',达到本年度单日最高记录;';
}
}
//第三个标识位(2的2次方是4)为1的时候,转化率达到最高
if($highestHistoryFlag & 4 ){
$highestConverse = $sellerDataArray['highestConverse'];
if(!empty($highestConverse)){
$sendContent = $sendContent."转化率".$sellerDataArray['highestConverse'].',达到本年度单日最高记录';
}
}
if($highestHistoryFlag & 4 || $highestHistoryFlag & 2 || $highestHistoryFlag & 1){
$sendContent = $sendContent.'请加油再创辉煌';
$contactId = 204;//该模板id是在触达页面配置的模板生成的id
$sendString ="id=".$contactId."&uin=".$sellerDataArray['sellerUin']."&SMSVARS=".$sendContent."&PMSVARS=".$sendContent."\r\n";
NetUtil::tcpCmd('10.130.1.46', 12015, $sendString);
}
}
function parseSellerFileToArray($sellerFile){//读取生成的sql文件
$sellerResultArray = array();
$uinlist_fd = fopen($sellerFile,'r') ;
if( !$uinlist_fd ){
$ret_array['iret'] = -6 ;
$ret_array['msg'] = '读取号码包失败,请联系yiyuefu处理' ;
return $ret_array ;
}
fseek($uinlist_fd, 0);//从文件开始读取,系统接口
while(!feof( $uinlist_fd)){
$line = trim(fgets($uinlist_fd ));//空格、回车去掉后一行一行的读取
if(empty($line)){
continue;
}
$sellerDataArray = array();
$line = str_replace(array("\r\n","\r","\n"),"\t",$line);//把每行中回车用tab代替 \t是tab \r\n是window下回车 \r是mac下回车 \n是linux 下的回车
$field = explode("\t", $line);//每行用\t来分割
var_dump($field);
$sellerDataArray['sellerUin'] = $field[1];
$sellerDataArray['visitorNum'] = $field[2];
$sellerDataArray['visitorMargin'] = $field[3];
$sellerDataArray['payment'] = $field[4];
$sellerDataArray['paymentMargin'] = $field[5];
$sellerDataArray['converse'] = $field[6];
$sellerDataArray['converseMargin'] = $field[7];
$sellerDataArray['weekGrowFlag'] = $field[8];
$sellerDataArray['highestVistor'] = $field[9];
$sellerDataArray['highestPayment'] = $field[10];
$sellerDataArray['highestConverse'] = $field[11];
$sellerDataArray['highestHistoryFlag']= $field[12];
//这里不做去重了,在数据库中做去重工作
array_push($sellerResultArray,$sellerDataArray);
}
fclose( $uinlist_fd );
return $sellerResultArray ;
}
//返回一个解压缩后的数据文件
function getSellerFilePath(){
//2011/06/27 04:27:37"
$yestedayString= date("Y/m/d h:i:s",time()-24*60*60);//格式化当前时间对应的昨天时间
$strtimes = explode(" ",$yestedayString);//空格分割时间为数组
$timearray = explode("/",$strtimes[0]);//把第一个数组变成2011/06/27
$tempfilePath = "";
foreach($timearray as $value){//遍历数组中每个元素,再换成字符串
$tempfilePath = $tempfilePath.$value; //.表示把字符串连接起来
}
$gizFilePath =sprintf("/data/web/shop_cm/htdocs/shop_v1/htdocs/pms/shopDataChange/paipai_%s_c2c_r_pms_data_change.txt.gz",$tempfilePath);
$finallyfilePath = sprintf("/data/web/shop_cm/htdocs/shop_v1/htdocs/pms/shopDataChange/paipai_%s_c2c_r_pms_data_change.txt",$tempfilePath);
if(file_exists($gizFilePath)){
exec('gzip -d '.$gizFilePath) ;//.表示把字符串连接起来
var_dump($finallyfilePath);//调试把解压缩后的文件打印到终端
return $finallyfilePath;
}else{
return "";//如果压缩文件不存在,就返回空
}
}
?>