flea_class.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. <?php
  2. /**
  3. * 前台闲置物品搜索页面
  4. * by abc.com
  5. */
  6. defined('InShopNC') or exit('Access Invalid!');
  7. class flea_classControl extends BaseHomeControl {
  8. /**
  9. * 验证是否开启闲置功能
  10. */
  11. public function __construct(){
  12. parent::__construct();
  13. Language::read('home_flea_index');
  14. if($GLOBALS['setting_config']['flea_isuse']!='1'){
  15. showMessage(Language::get('flea_index_unable'),'index.php','','error');
  16. }
  17. }
  18. /**
  19. * 闲置物品搜索列表
  20. */
  21. public function indexOp(){
  22. //加载模型
  23. $flea_model = Model('flea');
  24. $member_model = Model('member');
  25. $class_model = Model('flea_class');
  26. $area_model = Model('flea_area');
  27. /**
  28. * 热门搜索
  29. */
  30. // 转码 防止GBK下用中文逗号截取不正确
  31. $comma = ',';
  32. if (strtoupper(CHARSET) == 'GBK'){
  33. $comma = Language::getGBK($comma);
  34. }
  35. $flea_hot_search = explode(',',str_replace($comma,',',$GLOBALS['setting_config']['flea_hot_search']));
  36. Tpl::output('flea_hot_search',$flea_hot_search);
  37. /**
  38. * 地区切换
  39. */
  40. $area_array = $area_model->area_show();
  41. Tpl::output('area_one_level', $area_array['area_one_level']);
  42. Tpl::output('area_two_level', $area_array['area_two_level']);
  43. /**
  44. * 查询模块
  45. */
  46. $condition = array();
  47. $condition_out = array();
  48. $area_id = intval($_GET['area_input']);
  49. /* 如果有地区id传入 */
  50. if($area_id > 0){
  51. /* 查询父级id为传入id的所有结果 */
  52. $area_result = $area_model->getListArea(array('flea_area_parent_id'=>$area_id));
  53. /* 增加当前选择地区的检索热度 */
  54. $param['flea_area_hot']['value'] = 1;
  55. $param['flea_area_hot']['sign'] = 'increase';
  56. $param['flea_area_id'] = $area_id;
  57. $area_model->update($param);
  58. /* 组合查询地区id */
  59. $condition['areaid'] = "'".$area_id."'";
  60. /* 页面输出可选择地区列表 */
  61. /* 传入的地区 */
  62. $area_current = $area_model->getOneArea($area_id);
  63. if($area_result){
  64. /* 不是最后一级地区 */
  65. foreach($area_result as $val){
  66. $condition['areaid'] .= ',\''.$val['flea_area_id'].'\'';
  67. }
  68. Tpl::output('out_area',$area_result);
  69. Tpl::output('area_main',$area_current);
  70. }else{
  71. $out_area = $area_model->getListArea(array('flea_area_parent_id'=>$area_current['flea_area_parent_id']));
  72. $area_main = $area_model->getOneArea($area_current['flea_area_parent_id']);
  73. Tpl::output('out_area',$out_area);
  74. Tpl::output('area_main',$area_main);
  75. }
  76. $condition_out['area_input'] = $area_id;
  77. }else{
  78. $list_area = array();
  79. $list_area['flea_area_deep'] = 2;
  80. $list_area['area_hot'] = '1';
  81. $list_area['order'] = 'flea_area_hot desc';
  82. $list_area['limit'] = '0,8';
  83. $list_area['field'] = 'flea_area_name,flea_area_id';
  84. $result = $area_model->getListArea($list_area);
  85. Tpl::output('out_area', $result);
  86. }
  87. $cate_input = intval($_GET['cate_input']);
  88. if($cate_input > 0){
  89. $fc_result = $class_model->getNextLevelGoodsClassById($cate_input);
  90. Tpl::output('out_class',$fc_result);
  91. /* 组合查询分类id */
  92. $condition_out['cate_input'] = $cate_input;
  93. /* 组合查询分类id */
  94. $gc_result = $class_model->getChildClass($cate_input);
  95. $part = '';
  96. foreach($gc_result as $v){
  97. $part .= '\''.$v['gc_id'].'\',';
  98. }
  99. $condition['gc_id_in'] = rtrim($part,',');
  100. }else{
  101. $class_list = array();
  102. $class_list['gc_parent_id'] = '0';
  103. $class_list['field'] = 'gc_name,gc_id';
  104. $fc_result = $class_model->getClassList($class_list);
  105. Tpl::output('out_class', $fc_result);
  106. }
  107. $condition_out['start_input'] = $condition['start_input'] = intval($_GET['start_input']);
  108. $condition_out['end_input'] = $condition['end_input'] = intval($_GET['end_input']);
  109. $condition_out['price_input'] = $condition['price_input'] = intval($_GET['price_input']);
  110. if($condition_out['price_input'] > 0){
  111. switch($condition_out['price_input']){
  112. case "35":
  113. $condition['start_input'] = '20';
  114. $condition['end_input'] = '50';
  115. break;
  116. case "75":
  117. $condition['start_input'] = '50';
  118. $condition['end_input'] = '100';
  119. break;
  120. case "150":
  121. $condition['start_input'] = '100';
  122. $condition['end_input'] = '200';
  123. break;
  124. case "350":
  125. $condition['start_input'] = '200';
  126. $condition['end_input'] = '500';
  127. break;
  128. case "750":
  129. $condition['start_input'] = '500';
  130. $condition['end_input'] = '1000';
  131. break;
  132. case "1000":
  133. $condition['start_input'] = '1000';
  134. $condition['end_input'] = '';
  135. break;
  136. }
  137. }
  138. $condition_out['quality_input'] = $condition['quality_input'] = intval($_GET['quality_input']);
  139. $condition_out['key_input'] = $condition['key_input'] = $_GET['key_input'];
  140. $condition_out['seller_input'] = $condition['seller_input'] = intval($_GET['seller_input']);
  141. $condition_out['rank_input'] = $condition['rank_input'] = intval($_GET['rank_input']);
  142. if($condition['rank_input'] == 1){
  143. $condition['order'] = 'goods_store_price desc';
  144. }
  145. if($condition['rank_input'] == 2){
  146. $condition['order'] = 'goods_store_price asc';
  147. }
  148. $condition_out['pic_input'] = $condition['pic_input'] = $_GET['pic_input'];
  149. if(!$condition['pic_input']){
  150. $condition['pic_input'] =2;
  151. }
  152. /* 输出保留的前台查询条件 */
  153. Tpl::output('condition_out', $condition_out);
  154. /**
  155. * 闲置物品显示模块
  156. */
  157. $page = new Page();
  158. $page->setEachNum(10);
  159. $page->setStyle('admin');
  160. $listgoods = $flea_model->listGoods($condition, $page);
  161. if($listgoods){
  162. foreach($listgoods as $replace_key => $replace_val){
  163. $listgoods[$replace_key]['member_info'] = $flea_model->statistic($replace_val['member_id']);
  164. if($listgoods[$replace_key]['member_info']['member_avatar']){
  165. $listgoods[$replace_key]['member_info']['avatar'] = ATTACH_AVATAR.'/'.$listgoods[$replace_key]['member_info']['member_avatar'];
  166. }else{
  167. $listgoods[$replace_key]['member_info']['avatar'] = TEMPLATES_PATH.'/images/default_user_portrait.gif';
  168. }
  169. if($replace_val['goods_image']){
  170. $listgoods[$replace_key]['image_url'] = UPLOAD_SITE_URL.DS.ATTACH_MALBUM.'/'.$_SESSION['member_id'].'/'.$replace_val['goods_image'];
  171. }else{
  172. $listgoods[$replace_key]['image_url'] = SHOP_TEMPLATES_URL.'/images/member/default_image.png';
  173. }
  174. $exge='/<[^>]*>|\s+/';
  175. $listgoods[$replace_key]['explain'] = preg_replace($exge,'',$replace_val['goods_body']);
  176. $listgoods[$replace_key]['time'] = $this->time_comb(intval($replace_val['goods_add_time']));
  177. switch($replace_val['flea_quality']){
  178. case 10:
  179. $quality = Language::get('flea_index_new');
  180. break;
  181. case 9:
  182. $quality = Language::get('flea_index_almost_new');
  183. break;
  184. case 8:
  185. $quality = Language::get('flea_index_gently_used');
  186. break;
  187. default;
  188. $quality = Language::get('flea_index_old');
  189. break;
  190. }
  191. $listgoods[$replace_key]['quality'] = $quality;
  192. }
  193. }
  194. Tpl::output('listgoods', $listgoods);
  195. Tpl::output('show_page', $page->show());
  196. /**
  197. * 刚刚发布模块
  198. */
  199. $pre_sale = $flea_model->saleGoods(array('limit'=>'0,4'));
  200. Tpl::output('pre_sale', $pre_sale);
  201. /**
  202. * 关注模块
  203. */
  204. $attention = $flea_model->listGoods(array('limit'=>'0,8','order'=>'flea_collect_num desc'));
  205. Tpl::output('attention',$attention);
  206. /**
  207. * 导航模块
  208. */
  209. $navigation=array(
  210. 'index.php?act=flea_class'=>Language::get('flea_index_all')
  211. );
  212. /* 卖家优先 */
  213. if($condition['seller_input']){
  214. $seller_info = $member_model->infoMember(array('member_id'=>$condition['seller_input']));
  215. $key = 'index.php?act=flea_class&seller_input='.$condition['seller_input'];
  216. $navigation[$key] = $seller_info['member_name'];
  217. }elseif($cate_input){
  218. $class_info = $class_model->getGoodsClassNow($cate_input);
  219. foreach($class_info as $val){
  220. $key = 'index.php?act=flea_class&cate_input='.$val['gc_id'];
  221. $navigation[$key] = $val['name'];
  222. }
  223. }
  224. /* 分类次之 */
  225. Tpl::output('navigation',$navigation);
  226. /* 页面显示所有商品总数 */
  227. $all_num = $flea_model->listGoods($condition);
  228. Tpl::output('all_num',$all_num);
  229. /**
  230. * 页面输出
  231. */
  232. Tpl::showpage('flea_class','flea_layout');
  233. }
  234. /**
  235. * 查看成色的划分
  236. */
  237. public function quality_innerOp(){
  238. Tpl::showpage('quality_inner','null_layout');
  239. }
  240. private function time_comb($goods_add_time){
  241. $now_time = time();
  242. $last_time = $now_time - $goods_add_time;
  243. if($last_time>2592000) return intval($last_time/2592000).Language::get('flea_index_mouth');
  244. if($last_time>86400) return intval($last_time/86400).Language::get('flea_index_day');
  245. if($last_time>3600) return intval($last_time/3600).Language::get('flea_index_hour');
  246. if($last_time>60) return intval($last_time/60).Language::get('flea_index_minute');
  247. return $last_time.Language::get('flea_index_seconds');
  248. }
  249. }