www.gusucode.com > 74cms PHP骑士人才系统 v3.5.1源码程序 > code/upload/include/crons/stat_category.php

    <?php
 /*
 * 74cms 计划任务 每日数据统计
 * ============================================================================
 * 版权所有: 骑士网络,并保留所有权利。
 * 网站地址: http://www.74cms.com;
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用;不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
*/
if(!defined('IN_QISHI'))
{
die('Access Denied!');
}
ignore_user_abort(true);
set_time_limit(180);
	global $_CFG;
	//岗位分类
	$result = $db->query("SELECT * FROM ".table('category_jobs')." WHERE parentid=0");	
	while($row = $db->fetch_array($result))
	{
		$in_jobwheresql=" WHERE category='{$row['id']}' ";
		$in_resumewheresql=" WHERE category='{$row['id']}'";
		$jobtotal=$db->get_total("SELECT COUNT(*) AS num FROM ".table('jobs').$in_jobwheresql);		
		$jobtotal=$jobtotal>0?"({$jobtotal})":'';
		$resumetotal=$db->get_total("SELECT COUNT(DISTINCT pid ) AS num FROM ".table('resume_jobs')." {$in_resumewheresql} ");
		$resumetotal=$resumetotal>0?"({$resumetotal})":'';
		$sql = "UPDATE ".table('category_jobs')." SET stat_jobs='{$jobtotal}',stat_resume='{$resumetotal}'  WHERE id='{$row['id']}' LIMIT 1";
		$db->query($sql);			
	}
	//地区分类
	$result = $db->query("SELECT * FROM ".table('category_district')." WHERE parentid=0");	
	while($row = $db->fetch_array($result))
	{
		$in_jobwheresql=" WHERE district='{$row['id']}' ";
		$in_resumewheresql=" WHERE r.district='{$row['id']}'";
		$jobtotal=$db->get_total("SELECT COUNT(*) AS num FROM ".table('jobs').$in_jobwheresql);		
		$resumetotal=$db->get_total("SELECT  COUNT(*) AS num  FROM  ".table('resume')." AS r ".$in_resumewheresql);
		$jobtotal=$jobtotal>0?"({$jobtotal})":'';
		$resumetotal=$resumetotal>0?"({$resumetotal})":'';
		$sql = "UPDATE ".table('category_district')." SET stat_jobs='{$jobtotal}',stat_resume='{$resumetotal}'  WHERE id='{$row['id']}' LIMIT 1";
		$db->query($sql);			
	}
	//其他分类
	$result = $db->query("SELECT * FROM ".table('category')." ");	
	while($row = $db->fetch_array($result))
	{
		if ($row['c_alias']=="QS_trade")
		{
			$in_jobwheresql=" WHERE trade='{$row['c_id']}' ";
		}
		elseif ($row['c_alias']=="QS_wage")
		{
			$in_jobwheresql=" WHERE wage='{$row['c_id']}' ";
		}		
		elseif ($row['c_alias']=="QS_jobs_nature")
		{
			$in_jobwheresql=" WHERE nature='{$row['c_id']}' ";
		}
		else
		{
		continue;
		}
		$jobtotal=$db->get_total("SELECT COUNT(*) AS num FROM ".table('jobs').$in_jobwheresql);
		$jobtotal=$jobtotal>0?"({$jobtotal})":'';
		$sql = "UPDATE ".table('category')." SET stat_jobs='{$jobtotal}',stat_resume='{$resumetotal}'  WHERE c_id='{$row['c_id']}' LIMIT 1";
		$db->query($sql);			
	}
	//更新分类缓存
	$cache_file_path =QISHI_ROOT_PATH. "data/cache_category.php";
	$sql = "SELECT * FROM ".table('category')."  ORDER BY c_order DESC,c_id ASC";
	$result = $db->query($sql);
		while($row = $db->fetch_array($result))
		{
			$catarr[$row['c_alias']][$row['c_id']] =array("id"=>$row['c_id'],"parentid"=>$row['c_parentid'],"categoryname"=>$row['c_name'],"stat_jobs"=>$row['stat_jobs'],"stat_resume "=>$row['stat_resume ']);
		}
		stat_write_static_cache($cache_file_path,$catarr);
		function stat_write_static_cache($cache_file_path, $config_arr)
		{
			$content = "<?php\r\n";
			$content .= "\$data = " . var_export($config_arr, true) . ";\r\n";
			$content .= "?>";
			file_put_contents($cache_file_path, $content, LOCK_EX);
		}
	
	
	//更新任务时间表
	if ($crons['weekday']>=0)
	{
	$weekday=array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
	$nextrun=strtotime("Next ".$weekday[$crons['weekday']]);
	}
	elseif ($crons['day']>0)
	{
	$nextrun=strtotime('+1 months'); 
	$nextrun=mktime(0,0,0,date("m",$nextrun),$crons['day'],date("Y",$nextrun));
	}
	else
	{
	$nextrun=time();
	}
	if ($crons['hour']>=0)
	{
	$nextrun=strtotime('+1 days',$nextrun); 
	$nextrun=mktime($crons['hour'],0,0,date("m",$nextrun),date("d",$nextrun),date("Y",$nextrun));
	}
	if (intval($crons['minute'])>0)
	{
	$nextrun=strtotime('+1 hours',$nextrun); 
	$nextrun=mktime(date("H",$nextrun),$crons['minute'],0,date("m",$nextrun),date("d",$nextrun),date("Y",$nextrun));
	}
	$setsqlarr['nextrun']=$nextrun;
	$setsqlarr['lastrun']=time();
	updatetable(table('crons'), $setsqlarr," cronid ='".intval($crons['cronid'])."'");
?>