时间:2021-07-01 10:21:17 帮助过:24人阅读
is_admin = true;
$fanwe->is_session = false;
$fanwe->is_user = false;
$fanwe->is_cron = false;
$fanwe->cache_list = array();
$fanwe->initialize();
include_once import('function/cache');
updateCache();
clearDir(FANWE_ROOT.'./public/tpl');
clearDir(FANWE_ROOT.'./admin/Runtime');
clearDir(FANWE_ROOT.'./update/Runtime');
//include FANWE_ROOT.'./ThinkPHP/Vendor/bbs.php';
//BBSAction::getInstance()->updateSetting();
$result = array("status"=>1,"info"=>'清除成功',"data"=>"");
include import('class/json');
$json = new JSON();
die($json->encode($result));
}
//2011-01-30 update
elseif($action == 'updategoods')
{
$fanwe = &FanweService::instance();
$fanwe->is_admin = true;
$fanwe->is_session = false;
$fanwe->is_user = false;
$fanwe->is_cron = false;
$fanwe->cache_list = array('goods');
$fanwe->initialize();
set_time_limit(0);
global $_FANWE;
$begin = isset($_FANWE['request']['begin']) ? intval($_FANWE['request']['begin']) : 0;
$begin = max($begin,0);
if($begin == 0)
{
DB::query("DELETE FROM ".DB::table('cron')." WHERE type='goods'");
DB::query("TRUNCATE TABLE ".DB::table('goods_now'));
DB::query('REPLACE INTO '.DB::table('goods_now').'(id, site_id, site_name, name, city, cate_id, url, click_count, best_count, collect_count,
shop_price, market_price, begin_time, end_time, brief, sort, small_img, big_img, score, is_best, bought, collect_buy, ef_time, post_count, r_sort, cr_sort,
add_time) SELECT g.id, g.site_id, site_name, name, g.city, g.cate_id, url, click_count, best_count, collect_count, shop_price, market_price, begin_time,
g.end_time, brief, g.sort, small_img, big_img, score, is_best, bought, collect_buy, ef_time, post_count, g.r_sort, g.cr_sort, add_time FROM '.DB::table
('goods_key').' AS gk INNER JOIN '.DB::table('goods').' AS g ON g.id = gk.id WHERE g.status = 1 AND gk.end_time > '.TIME_UTC);
DB::query("TRUNCATE TABLE ".DB::table('goods_now_key'));
DB::query('REPLACE INTO '.DB::table('goods_now_key').' SELECT id,site_id,city,cate_id,sort,r_sort,cr_sort,0,0,0,0,end_time FROM '.DB::table
('goods_now'));
DB::query('DELETE FROM '.DB::table('goods_now_match').'
WHERE id NOT IN (SELECT id FROM '.DB::table('goods_now_key').')');
DB::query('INSERT INTO '.DB::table('goods_now_match').'
SELECT gm.id,gm.content
FROM '.DB::table('goods_key').' AS gk
INNER JOIN '.DB::table('goods_match').' AS gm ON gm.id = gk.id
LEFT JOIN '.DB::table('goods_now_match').' AS gnm ON gnm.id = gk.id
WHERE gk.end_time > '.TIME_UTC.' AND gnm.id IS NULL');
$begin = 0;
}
$sort_sites = array();
$res = DB::query('SELECT site_id FROM '.DB::table('goods_key').' WHERE end_time > '.getTodayTime().' GROUP BY site_id');
while($sid = DB::fetch($res))
{
$sort_sites[] = $sid['site_id'];
}
$data_num = count($sort_sites);
echo ""."\r\n";
flush();
ob_flush();
if($data_num > $begin)
{
$site_id = $sort_sites[$begin];
echo ""."\r\n";
flush();
ob_flush();
DB::query('TRUNCATE TABLE '.DB::table('goods_temp'));
DB::query('REPLACE INTO '.DB::table('goods_temp').'
SELECT id, site_id, city, cate_id, sort, @sort:=@sort + 1 as r_sort,0,0,0,0,0,end_time
FROM '.DB::table('goods_now_key').' FORCE INDEX (site),(SELECT @sort:=0) AS t
WHERE site_id = '.$site_id.' ORDER BY sort ASC,id DESC');
if(DB::affectedRows() > 0)
{
$goods_cate_citys = array();
$goods_cates = array();
$goods_citys = array();
$sql = '';
$sql_jg = '';
$res = DB::query('SELECT * FROM '.DB::table('goods_temp').' ORDER BY sort ASC,id DESC');
while($goods = DB::fetch($res))
{
$cr_sort = 0;
$d_sort = 0;
$dc_sort = 0;
$e_sort = 0;
$ec_sort = 0;
$city = $goods['city'];
if(!isset($goods_citys[$city]))
$goods_citys[$city] = 0;
$goods_citys[$city]++;
$cr_sort = $goods_citys[$city];
$cate_id = $goods['cate_id'];
$cate = $_FANWE['cache']['goods']['cats'][$cate_id];
if(!isset($goods_cates[$cate_id]))
$goods_cates[$cate_id] = 0;
$goods_cates[$cate_id]++;
if(!isset($goods_cate_citys[$cate_id][$city]))
$goods_cate_citys[$cate_id][$city] = 0;
$goods_cate_citys[$cate_id][$city]++;
$parent_id = $cate['pid'];
if($parent_id > 0)
{
$e_sort = $goods_cates[$cate_id];
$ec_sort = $goods_cate_citys[$cate_id][$city];
if(!isset($goods_cates[$parent_id]))
$goods_cates[$parent_id] = 0;
$goods_cates[$parent_id]++;
$d_sort = $goods_cates[$parent_id];
if(!isset($goods_cate_citys[$parent_id][$city]))
$goods_cate_citys[$parent_id][$city] = 0;
$goods_cate_citys[$parent_id][$city]++;
$dc_sort = $goods_cate_citys[$parent_id][$city];
}
else
{
$d_sort = $goods_cates[$cate_id];
$dc_sort = $goods_cate_citys[$cate_id][$city];
}
$sql .= "$sql_jg($goods[id],$goods[site_id], '$city', $cate_id, $goods[sort], $goods[r_sort], $cr_sort, $d_sort, $dc_sort,
$e_sort, $ec_sort, $goods[end_time])";
$sql_jg = ',';
}
if($sql != '')
{
DB::query('REPLACE INTO '.DB::table('goods_temp').' VALUES '.$sql);
DB::query('REPLACE INTO '.DB::table('goods_now_key').' SELECT * FROM '.DB::table('goods_temp'));
}
}
usleep(10);
DB::query('TRUNCATE TABLE '.DB::table('goods_temp'));
DB::query('REPLACE INTO '.DB::table('goods_temp').'
SELECT id, site_id, city, cate_id, sort, @sort:=@sort + 1 as r_sort,0,0,0,0,0,end_time
FROM '.DB::table('goods_key').' FORCE INDEX (site),(SELECT @sort:=0) AS t
WHERE site_id = '.$site_id.' AND end_time > '.getTodayTime().'
ORDER BY sort ASC,id DESC');
if(DB::affectedRows() > 0)
{
$goods_cate_citys = array();
$goods_cates = array();
$goods_citys = array();
$sql = '';
$sql_jg = '';
$res = DB::query('SELECT * FROM '.DB::table('goods_temp').' ORDER BY sort ASC,id DESC');
while($goods = DB::fetch($res))
{
$cr_sort = 0;
$d_sort = 0;
$dc_sort = 0;
$e_sort = 0;
$ec_sort = 0;
$city = $goods['city'];
if(!isset($goods_citys[$city]))
$goods_citys[$city] = 0;
$goods_citys[$city]++;
$cr_sort = $goods_citys[$city];
$cate_id = $goods['cate_id'];
$cate = $_FANWE['cache']['goods']['cats'][$cate_id];
if(!isset($goods_cates[$cate_id]))
$goods_cates[$cate_id] = 0;
$goods_cates[$cate_id]++;
if(!isset($goods_cate_citys[$cate_id][$city]))
$goods_cate_citys[$cate_id][$city] = 0;
$goods_cate_citys[$cate_id][$city]++;
$parent_id = $cate['pid'];
if($parent_id > 0)
{
$e_sort = $goods_cates[$cate_id];
$ec_sort = $goods_cate_citys[$cate_id][$city];
if(!isset($goods_cates[$parent_id]))
$goods_cates[$parent_id] = 0;
$goods_cates[$parent_id]++;
$d_sort = $goods_cates[$parent_id];
if(!isset($goods_cate_citys[$parent_id][$city]))
$goods_cate_citys[$parent_id][$city] = 0;
$goods_cate_citys[$parent_id][$city]++;
$dc_sort = $goods_cate_citys[$parent_id][$city];
}