stat_industry.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. <?php
  2. /**
  3. * 行业分析
  4. ***/
  5. defined('InShopNC') or exit('Access Invalid!');
  6. class stat_industryControl extends SystemControl{
  7. private $links = array(
  8. array('url'=>'act=stat_industry&op=scale','lang'=>'stat_industryscale'),
  9. array('url'=>'act=stat_industry&op=rank','lang'=>'stat_industryrank'),
  10. array('url'=>'act=stat_industry&op=price','lang'=>'stat_industryprice'),
  11. array('url'=>'act=stat_industry&op=general','lang'=>'stat_industrygeneral'),
  12. );
  13. private $search_arr;//处理后的参数
  14. private $gc_arr;//分类数组
  15. private $choose_gcid;//选择的分类ID
  16. public function __construct(){
  17. parent::__construct();
  18. Language::read('stat');
  19. import('function.statistics');
  20. import('function.datehelper');
  21. $model = Model('stat');
  22. //存储参数
  23. $this->search_arr = $_REQUEST;
  24. //处理搜索时间
  25. if (in_array($this->search_arr['op'],array('scale','rank','price'))){
  26. $this->search_arr = $model->dealwithSearchTime($this->search_arr);
  27. //获得系统年份
  28. $year_arr = getSystemYearArr();
  29. //获得系统月份
  30. $month_arr = getSystemMonthArr();
  31. //获得本月的周时间段
  32. $week_arr = getMonthWeekArr($this->search_arr['week']['current_year'], $this->search_arr['week']['current_month']);
  33. Tpl::output('year_arr', $year_arr);
  34. Tpl::output('month_arr', $month_arr);
  35. Tpl::output('week_arr', $week_arr);
  36. }
  37. Tpl::output('search_arr', $this->search_arr);
  38. /**
  39. * 处理商品分类
  40. */
  41. $show_depth = 3;//select需要展示的深度
  42. if (in_array($this->search_arr['op'],array('scale','general'))){//仅显示前两级分类
  43. $show_depth = 2;
  44. }
  45. $this->choose_gcid = ($t = intval($_REQUEST['choose_gcid']))>0?$t:0;
  46. $gccache_arr = Model('goods_class')->getGoodsclassCache($this->choose_gcid,$show_depth);
  47. $this->gc_arr = $gccache_arr['showclass'];
  48. Tpl::output('gc_json',json_encode($gccache_arr['showclass']));
  49. Tpl::output('gc_choose_json',json_encode($gccache_arr['choose_gcid']));
  50. }
  51. /**
  52. * 行业规模
  53. */
  54. public function scaleOp(){
  55. if(!$this->search_arr['search_type']){
  56. $this->search_arr['search_type'] = 'day';
  57. }
  58. $model = Model('stat');
  59. //获得搜索的开始时间和结束时间
  60. $searchtime_arr = $model->getStarttimeAndEndtime($this->search_arr);
  61. Tpl::output('searchtime',implode('|',$searchtime_arr));
  62. Tpl::output('top_link',$this->sublink($this->links, 'scale'));
  63. Tpl::showpage('stat.industry.scale');
  64. }
  65. /**
  66. * 行业规模列表
  67. */
  68. public function scale_listOp(){
  69. //获得子分类ID
  70. $gc_childid = $gc_childarr = array();
  71. if ($this->choose_gcid > 0){//如果进行了分类搜索,则统计该分类下的子分类
  72. $gc_childdepth = $this->gc_arr[$this->choose_gcid]['depth'] + 1;
  73. $gc_childid = explode(',',$this->gc_arr[$this->choose_gcid]['child']);
  74. if ($gc_childid){
  75. foreach ((array)$this->gc_arr as $k=>$v){
  76. if (in_array($v['gc_id'],$gc_childid)){
  77. $gc_childarr[$v['gc_id']] = $v;
  78. }
  79. }
  80. }
  81. } else {//如果没有搜索分类,则默认统计一级分类
  82. $gc_childdepth = 1;
  83. foreach ((array)$this->gc_arr as $k=>$v){
  84. if ($v['depth'] == 1){
  85. $gc_childarr[$v['gc_id']] = $v;
  86. }
  87. }
  88. }
  89. if($gc_childarr){
  90. $model = Model('stat');
  91. $stat_list = array();
  92. //构造横轴数据
  93. foreach($gc_childarr as $k=>$v){
  94. $stat_list[$k]['gc_name'] = $v['gc_name'];
  95. $stat_list[$k]['y'] = 0;
  96. }
  97. $where = array();
  98. $where['order_isvalid'] = 1;//计入统计的有效订单
  99. $searchtime_arr_tmp = explode('|',$this->search_arr['t']);
  100. foreach ((array)$searchtime_arr_tmp as $k=>$v){
  101. $searchtime_arr[] = intval($v);
  102. }
  103. $where['order_add_time'] = array('between',$searchtime_arr);
  104. if ($this->choose_gcid > 0){
  105. $where['gc_parentid_'.($gc_childdepth-1)] = $this->choose_gcid;
  106. }
  107. $field = 'gc_parentid_'.$gc_childdepth.' as statgc_id';
  108. switch ($_GET['stattype']){
  109. case 'ordernum':
  110. $caption = '下单量';
  111. $field .= ',COUNT(DISTINCT order_id) as ordernum';
  112. $orderby = 'ordernum desc';
  113. break;
  114. case 'goodsnum':
  115. $caption = '下单商品数';
  116. $field .= ',SUM(goods_num) as goodsnum';
  117. $orderby = 'goodsnum desc';
  118. break;
  119. default:
  120. $_GET['stattype'] = 'orderamount';
  121. $caption = '下单金额';
  122. $field .= ',SUM(goods_pay_price) as orderamount';
  123. $orderby = 'orderamount desc';
  124. break;
  125. }
  126. $orderby .= ',statgc_id asc';
  127. $goods_list = $model->statByStatordergoods($where, $field, 0, 0, $orderby, 'statgc_id');
  128. foreach ((array)$goods_list as $k=>$v){
  129. $statgc_id = intval($v['statgc_id']);
  130. if (in_array($statgc_id,array_keys($gc_childarr))){
  131. $stat_list[$statgc_id]['gc_name'] = strval($gc_childarr[$v['statgc_id']]['gc_name']);
  132. } else {
  133. $stat_list[$statgc_id]['gc_name'] = '其他';
  134. }
  135. switch ($_GET['stattype']){
  136. case 'orderamount':
  137. $stat_list[$statgc_id]['y'] = floatval($v[$_GET['stattype']]);
  138. break;
  139. default:
  140. $stat_list[$statgc_id]['y'] = intval($v[$_GET['stattype']]);
  141. break;
  142. }
  143. }
  144. //构造横轴数据
  145. foreach($stat_list as $k=>$v){
  146. //数据
  147. $stat_arr['series'][0]['data'][] = array('name'=>strval($v['gc_name']),'y'=>$v['y']);
  148. //横轴
  149. $stat_arr['xAxis']['categories'][] = strval($v['gc_name']);
  150. }
  151. //得到统计图数据
  152. $stat_arr['series'][0]['name'] = $caption;
  153. $stat_arr['title'] = "行业{$caption}统计";
  154. $stat_arr['legend']['enabled'] = false;
  155. $stat_arr['yAxis']['title']['text'] = $caption;
  156. $stat_arr['yAxis']['title']['align'] = 'high';
  157. $statjson = getStatData_Basicbar($stat_arr);
  158. Tpl::output('stat_json',$statjson);
  159. Tpl::output('stattype',$_GET['stattype']);
  160. Tpl::showpage('stat.linelabels','null_layout');
  161. }
  162. }
  163. /**
  164. * 行业排行
  165. */
  166. public function rankOp(){
  167. if(!$this->search_arr['search_type']){
  168. $this->search_arr['search_type'] = 'day';
  169. }
  170. $model = Model('stat');
  171. //获得搜索的开始时间和结束时间
  172. $searchtime_arr = $model->getStarttimeAndEndtime($this->search_arr);
  173. $where = array();
  174. $where['order_isvalid'] = 1;//计入统计的有效订单
  175. $where['order_add_time'] = array('between',$searchtime_arr);
  176. $gc_id_depth = $this->gc_arr[$this->choose_gcid]['depth'];
  177. if ($this->choose_gcid > 0){
  178. $where['gc_parentid_'.$gc_id_depth] = $this->choose_gcid;
  179. }
  180. /**
  181. * 商品排行
  182. */
  183. $goods_stat_arr = array();
  184. //构造横轴数据
  185. for($i=1; $i<=50; $i++){
  186. //数据
  187. $goods_stat_arr['series'][0]['data'][] = array('name'=>'','y'=>0);
  188. //横轴
  189. $goods_stat_arr['xAxis']['categories'][] = "$i";
  190. }
  191. $field = 'goods_id,goods_name,SUM(goods_num) as goodsnum';
  192. $goods_list = $model->statByStatordergoods($where, $field, 0, 50, 'goodsnum desc,goods_id asc', 'goods_id');
  193. foreach ((array)$goods_list as $k=>$v){
  194. $goods_stat_arr['series'][0]['data'][$k] = array('name'=>strval($v['goods_name']),'y'=>floatval($v['goodsnum']));
  195. }
  196. //得到统计图数据
  197. $goods_stat_arr['series'][0]['name'] = '下单商品数';
  198. $goods_stat_arr['title'] = "行业商品50强";
  199. $goods_stat_arr['legend']['enabled'] = false;
  200. $goods_stat_arr['yAxis'] = '下单商品数';
  201. $goods_statjson = getStatData_Column2D($goods_stat_arr);
  202. /**
  203. * 店铺排行
  204. */
  205. $store_stat_arr = array();
  206. //构造横轴数据
  207. for($i=1; $i<=30; $i++){
  208. //数据
  209. $store_stat_arr['series'][0]['data'][] = array('name'=>'','y'=>0);
  210. //横轴
  211. $store_stat_arr['xAxis']['categories'][] = "$i";
  212. }
  213. $field = 'store_id,store_name,COUNT(DISTINCT order_id) as ordernum';
  214. $store_list = $model->statByStatordergoods($where, $field, 0, 30, 'ordernum desc,store_id asc', 'store_id');
  215. foreach ((array)$store_list as $k=>$v){
  216. $store_stat_arr['series'][0]['data'][$k] = array('name'=>strval($v['store_name']),'y'=>floatval($v['ordernum']));
  217. }
  218. //得到统计图数据
  219. $store_stat_arr['series'][0]['name'] = '下单量';
  220. $store_stat_arr['title'] = "行业店铺30强";
  221. $store_stat_arr['legend']['enabled'] = false;
  222. $store_stat_arr['yAxis'] = '下单量';
  223. $store_statjson = getStatData_Column2D($store_stat_arr);
  224. Tpl::output('goods_statjson',$goods_statjson);
  225. Tpl::output('goods_list',$goods_list);
  226. Tpl::output('store_statjson',$store_statjson);
  227. Tpl::output('store_list',$store_list);
  228. Tpl::output('top_link',$this->sublink($this->links, 'rank'));
  229. Tpl::showpage('stat.industry.rank');
  230. }
  231. /**
  232. * 价格分布
  233. */
  234. public function priceOp(){
  235. if(!$this->search_arr['search_type']){
  236. $this->search_arr['search_type'] = 'day';
  237. }
  238. $model = Model('stat');
  239. //获得搜索的开始时间和结束时间
  240. $searchtime_arr = $model->getStarttimeAndEndtime($this->search_arr);
  241. $where = array();
  242. $where['order_isvalid'] = 1;//计入统计的有效订单
  243. $where['order_add_time'] = array('between',$searchtime_arr);
  244. $gc_id_depth = $this->gc_arr[$this->choose_gcid]['depth'];
  245. if ($this->choose_gcid > 0){
  246. $where['gc_parentid_'.$gc_id_depth] = $this->choose_gcid;
  247. }
  248. $field = '1';
  249. $pricerange_arr = ($t = trim(C('stat_pricerange')))?unserialize($t):'';
  250. if ($pricerange_arr){
  251. $goodsnum_stat_arr['series'][0]['name'] = '下单商品数';
  252. $orderamount_stat_arr['series'][0]['name'] = '下单金额';
  253. //设置价格区间最后一项,最后一项只有开始值没有结束值
  254. $pricerange_count = count($pricerange_arr);
  255. if ($pricerange_arr[$pricerange_count-1]['e']){
  256. $pricerange_arr[$pricerange_count]['s'] = $pricerange_arr[$pricerange_count-1]['e'] + 1;
  257. $pricerange_arr[$pricerange_count]['e'] = '';
  258. }
  259. foreach ((array)$pricerange_arr as $k=>$v){
  260. $v['s'] = intval($v['s']);
  261. $v['e'] = intval($v['e']);
  262. //构造查询字段
  263. if ($v['e']){
  264. $field .= " ,SUM(IF(goods_pay_price/goods_num > {$v['s']} and goods_pay_price/goods_num <= {$v['e']},goods_num,0)) as goodsnum_{$k}";
  265. $field .= " ,SUM(IF(goods_pay_price/goods_num > {$v['s']} and goods_pay_price/goods_num <= {$v['e']},goods_pay_price,0)) as orderamount_{$k}";
  266. } else {//由于最后一个区间没有结束值,所以需要单独构造sql
  267. $field .= " ,SUM(IF(goods_pay_price/goods_num > {$v['s']},goods_num,0)) as goodsnum_{$k}";
  268. $field .= " ,SUM(IF(goods_pay_price/goods_num > {$v['s']},goods_pay_price,0)) as orderamount_{$k}";
  269. }
  270. }
  271. $ordergooods_list = $model->getoneByStatordergoods($where, $field);
  272. if($ordergooods_list){
  273. foreach ((array)$pricerange_arr as $k=>$v){
  274. //横轴
  275. if($v['e']){
  276. $goodsnum_stat_arr['xAxis']['categories'][] = $v['s'].'-'.$v['e'];
  277. $orderamount_stat_arr['xAxis']['categories'][] = $v['s'].'-'.$v['e'];
  278. } else {
  279. $goodsnum_stat_arr['xAxis']['categories'][] = $v['s'].'以上';
  280. $orderamount_stat_arr['xAxis']['categories'][] = $v['s'].'以上';
  281. }
  282. //统计图数据
  283. $goodsnum_stat_arr['series'][0]['data'][$k] = 0;
  284. $orderamount_stat_arr['series'][0]['data'][$k] = 0;
  285. if ($ordergooods_list['goodsnum_'.$k]){
  286. $goodsnum_stat_arr['series'][0]['data'][$k] = intval($ordergooods_list['goodsnum_'.$k]);
  287. }
  288. if ($ordergooods_list['orderamount_'.$k]){
  289. $orderamount_stat_arr['series'][0]['data'][$k] = intval($ordergooods_list['orderamount_'.$k]);
  290. }
  291. }
  292. }
  293. //得到统计图数据
  294. $goodsnum_stat_arr['legend']['enabled'] = false;
  295. $goodsnum_stat_arr['title'] = '行业价格下单商品数';
  296. $goodsnum_stat_arr['yAxis'] = '';
  297. $orderamount_stat_arr['legend']['enabled'] = false;
  298. $orderamount_stat_arr['title'] = '行业价格下单金额';
  299. $orderamount_stat_arr['yAxis'] = '';
  300. $goodsnum_stat_json = getStatData_LineLabels($goodsnum_stat_arr);
  301. $orderamount_stat_json = getStatData_LineLabels($orderamount_stat_arr);
  302. } else {
  303. $goodsnum_stat_json = '';
  304. $orderamount_stat_json = '';
  305. }
  306. Tpl::output('goodsnum_stat_json',$goodsnum_stat_json);
  307. Tpl::output('orderamount_stat_json',$orderamount_stat_json);
  308. Tpl::output('top_link',$this->sublink($this->links, 'price'));
  309. Tpl::showpage('stat.industry.price');
  310. }
  311. /**
  312. * 销售统计
  313. */
  314. public function generalOp(){
  315. Tpl::output('top_link',$this->sublink($this->links, 'general'));
  316. Tpl::showpage('stat.industry.general');
  317. }
  318. /**
  319. * 概况总览
  320. */
  321. public function general_listOp(){
  322. //获得子分类ID
  323. $gc_childid = $gc_childarr = array();
  324. if ($this->choose_gcid > 0){//如果进行了分类搜索,则统计该分类下的子分类
  325. $gc_childdepth = $this->gc_arr[$this->choose_gcid]['depth'] + 1;
  326. $gc_childid = explode(',',$this->gc_arr[$this->choose_gcid]['child']);
  327. if ($gc_childid){
  328. foreach ((array)$this->gc_arr as $k=>$v){
  329. if (in_array($v['gc_id'],$gc_childid)){
  330. $gc_childarr[$v['gc_id']] = $v;
  331. }
  332. }
  333. }
  334. } else {//如果没有搜索分类,则默认统计一级分类
  335. $gc_childdepth = 1;
  336. foreach ((array)$this->gc_arr as $k=>$v){
  337. if ($v['depth'] == 1){
  338. $gc_childarr[$v['gc_id']] = $v;
  339. }
  340. }
  341. }
  342. $statlist = array();
  343. if ($gc_childarr){
  344. $model = Model('stat');
  345. //查询订单商品信息
  346. $where = array();
  347. $where['order_isvalid'] = 1;//计入统计的有效订单
  348. //计算开始时间和结束时间
  349. $searchtime_arr[1] = strtotime(date('Y-m-d',time())) - 1;//昨天23:59点
  350. $searchtime_arr[0] = $searchtime_arr[1] - (86400 * 30) + 1; //从昨天开始30天前
  351. $where['order_add_time'] = array('between',$searchtime_arr);
  352. if ($this->choose_gcid > 0){
  353. $where['gc_parentid_'.($gc_childdepth-1)] = $this->choose_gcid;
  354. }
  355. $field = 'gc_parentid_'.$gc_childdepth.' as statgc_id,COUNT(DISTINCT goods_id) as ordergcount,SUM(goods_num) as ordergnum,SUM(goods_pay_price) as orderamount';
  356. $ordergoods_list_tmp = $model->statByStatordergoods($where, $field, 0, 0, '', 'statgc_id');
  357. foreach ((array)$ordergoods_list_tmp as $k=>$v){
  358. $ordergoods_list[$v['statgc_id']] = $v;
  359. }
  360. //查询商品信息
  361. $field = 'gc_id_'.$gc_childdepth.' as statgc_id,COUNT(*) as goodscount,AVG(goods_price) as priceavg';
  362. $goods_list_tmp = $model->statByGoods(array('is_virtual'=>0), $field, 0, 0, '', 'statgc_id');
  363. foreach ((array)$goods_list_tmp as $k=>$v){
  364. $goods_list[$v['statgc_id']] = $v;
  365. }
  366. //将订单和商品数组合并
  367. $statlist_tmp = array();
  368. foreach ($gc_childarr as $k=>$v){
  369. $tmp = array();
  370. $tmp['statgc_id'] = $v['gc_id'];
  371. $tmp['gc_name'] = $v['gc_name'];
  372. $tmp['ordergcount'] = ($t = $ordergoods_list[$v['gc_id']]['ordergcount'])?$t:0;
  373. $tmp['ordergnum'] = ($t = $ordergoods_list[$v['gc_id']]['ordergnum'])?$t:0;
  374. $tmp['orderamount'] = ($t = $ordergoods_list[$v['gc_id']]['orderamount'])?$t:0;
  375. $tmp['goodscount'] = ($t = $goods_list[$v['gc_id']]['goodscount'])?$t:0;
  376. $tmp['priceavg'] = ncPriceFormat(($t = $goods_list[$v['gc_id']]['priceavg'])?$t:0);
  377. $tmp['unordergcount'] = intval($goods_list[$v['gc_id']]['goodscount']) - intval($ordergoods_list[$v['gc_id']]['ordergcount']);//计算无销量商品数
  378. $statlist_tmp[]= $tmp;
  379. }
  380. $statlist = array();
  381. //整理排序
  382. $orderby = trim($this->search_arr['orderby']);
  383. if (!$orderby){
  384. $orderby = 'orderamount desc';
  385. }
  386. $orderkeys = explode(' ',$orderby);
  387. $keysvalue = $new_array = array();
  388. foreach ($statlist_tmp as $k=>$v){
  389. $keysvalue[$k] = $v[$orderkeys[0]];
  390. }
  391. if($orderkeys[1] == 'asc'){
  392. asort($keysvalue);
  393. }else{
  394. arsort($keysvalue);
  395. }
  396. reset($keysvalue);
  397. foreach ($keysvalue as $k=>$v){
  398. $statlist[$k] = $statlist_tmp[$k];
  399. }
  400. //导出Excel
  401. if ($this->search_arr['exporttype'] == 'excel'){
  402. //列表header
  403. $statheader = array();
  404. $statheader[] = array('text'=>'类目名称','key'=>'gc_name');
  405. $statheader[] = array('text'=>'平均价格(元)','key'=>'priceavg','isorder'=>1);
  406. $statheader[] = array('text'=>'有销量商品数','key'=>'ordergcount','isorder'=>1);
  407. $statheader[] = array('text'=>'销量','key'=>'ordergnum','isorder'=>1);
  408. $statheader[] = array('text'=>'销售额(元)','key'=>'orderamount','isorder'=>1);
  409. $statheader[] = array('text'=>'商品总数','key'=>'goodscount','isorder'=>1);
  410. $statheader[] = array('text'=>'无销量商品数','key'=>'unordergcount','isorder'=>1);
  411. //导出Excel
  412. import('libraries.excel');
  413. $excel_obj = new Excel();
  414. $excel_data = array();
  415. //设置样式
  416. $excel_obj->setStyle(array('id'=>'s_title','Font'=>array('FontName'=>'宋体','Size'=>'12','Bold'=>'1')));
  417. //header
  418. foreach ($statheader as $k=>$v){
  419. $excel_data[0][] = array('styleid'=>'s_title','data'=>$v['text']);
  420. }
  421. //data
  422. foreach ($statlist as $k=>$v){
  423. foreach ($statheader as $h_k=>$h_v){
  424. $excel_data[$k+1][] = array('data'=>$v[$h_v['key']]);
  425. }
  426. }
  427. $excel_data = $excel_obj->charset($excel_data,CHARSET);
  428. $excel_obj->addArray($excel_data);
  429. $excel_obj->addWorksheet($excel_obj->charset('行业概况总览',CHARSET));
  430. $excel_obj->generateXML($excel_obj->charset('行业概况总览',CHARSET).date('Y-m-d-H',time()));
  431. exit();
  432. }
  433. }
  434. //列表header
  435. $statheader = array();
  436. $statheader[] = array('text'=>'类目名称','key'=>'gc_name');
  437. $statheader[] = array('text'=>'<span title="类目下所有商品的平均单价" class="tip icon-question-sign"></span>&nbsp;平均价格(元)','key'=>'priceavg','isorder'=>1);
  438. $statheader[] = array('text'=>'<span title="类目下从昨天开始最近30天有效订单中有销量的商品总数" class="tip icon-question-sign"></span>&nbsp;有销量商品数','key'=>'ordergcount','isorder'=>1);
  439. $statheader[] = array('text'=>'<span title="类目下从昨天开始最近30天有效订单中商品总售出件数" class="tip icon-question-sign"></span>&nbsp;销量','key'=>'ordergnum','isorder'=>1);
  440. $statheader[] = array('text'=>'<span title="类目下从昨天开始最近30天有效订单中商品总销售额" class="tip icon-question-sign"></span>&nbsp;销售额(元)','key'=>'orderamount','isorder'=>1);
  441. $statheader[] = array('text'=>'<span title="类目下所有商品的数量" class="tip icon-question-sign"></span>&nbsp;商品总数','key'=>'goodscount','isorder'=>1);
  442. $statheader[] = array('text'=>'<span title="类目下从昨天开始最近30天无销量的商品总数" class="tip icon-question-sign"></span>&nbsp;无销量商品数','key'=>'unordergcount','isorder'=>1);
  443. Tpl::output('statheader',$statheader);
  444. Tpl::output('statlist',$statlist);
  445. Tpl::output('orderby',$orderby);
  446. Tpl::output('actionurl',"index.php?act={$this->search_arr['act']}&op={$this->search_arr['op']}&choose_gcid=".$this->choose_gcid);
  447. Tpl::showpage('stat.listandorder','null_layout');
  448. }
  449. }