You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

403 lines
13 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
3 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Wap;
  3. use Illuminate\Support\Facades\DB;
  4. class IndexController extends BaseController
  5. {
  6. public function __construct()
  7. {
  8. parent::__construct();
  9. }
  10. //首页
  11. public function index()
  12. {
  13. //推荐商品列表
  14. $postdata = array(
  15. 'tuijian' => 1,
  16. 'status' => 0,
  17. 'limit' => 4,
  18. 'offset' => 0
  19. );
  20. $url = env('APP_API_URL') . "/goods_list";
  21. $res = curl_request($url, $postdata, 'GET');
  22. $data['tjlist'] = $res['data']['list'];
  23. //列表
  24. $pagesize = 10;
  25. $offset = 0;
  26. $postdata = array(
  27. 'limit' => $pagesize,
  28. 'offset' => $offset
  29. );
  30. $url = env('APP_API_URL') . "/article_list";
  31. $res = curl_request($url, $postdata, 'GET');
  32. $data['article_list'] = $res['data']['list'];
  33. $data['article_count'] = intval($res['data']['count']);
  34. //banner轮播图
  35. $postdata = array(
  36. 'type' => 0,
  37. 'limit' => 5,
  38. 'offset' => 0
  39. );
  40. $url = env('APP_API_URL') . "/slide_list";
  41. $res = curl_request($url, $postdata, 'GET');
  42. $data['slide_list'] = $res['data']['list'];
  43. return view('wap.index.index',$data);
  44. }
  45. //列表页
  46. public function category($cat, $page = 0)
  47. {
  48. $pagenow = $page;
  49. if (empty($cat) || !preg_match('/[0-9]+/', $cat)) {
  50. return redirect()->route('page404');
  51. }
  52. if (cache("catid$cat")) {
  53. $post = cache("catid$cat");
  54. } else {
  55. $post = object_to_array(DB::table('arctype')->where('id', $cat)->first(), 1);
  56. if (empty($post)) {
  57. return redirect()->route('page404');
  58. }
  59. cache(["catid$cat" => $post], \Carbon\Carbon::now()->addMinutes(2592000));
  60. }
  61. $data['post'] = $post;
  62. $subcat = "";
  63. $sql = "";
  64. $post2 = object_to_array(DB::table('arctype')->select('id')->where('pid', $cat)->get());
  65. if (!empty($post2)) {
  66. foreach ($post2 as $row) {
  67. $subcat = $subcat . "typeid=" . $row["id"] . " or ";
  68. }
  69. }
  70. $subcat = $subcat . "typeid=" . $cat;
  71. $sql = $subcat . " or typeid2 in (" . $cat . ")";//echo $subcat2;exit;
  72. $data['sql'] = $sql;
  73. $counts = DB::table("article")->whereRaw($sql)->count();
  74. if ($counts > sysconfig('CMS_MAXARC')) {
  75. $counts = sysconfig('CMS_MAXARC');
  76. dd($counts);
  77. }
  78. $pagesize = sysconfig('CMS_PAGESIZE');
  79. $page = 0;
  80. if ($counts % $pagesize) {//取总数据量除以每页数的余数
  81. $pages = intval($counts / $pagesize) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一,如果没有余数,则页数等于总数据量除以每页数的结果
  82. } else {
  83. $pages = $counts / $pagesize;
  84. }
  85. if (!empty($pagenow)) {
  86. if ($pagenow == 1 || $pagenow > $pages) {
  87. return redirect()->route('page404');
  88. }
  89. $page = $pagenow - 1;
  90. $nextpage = $pagenow + 1;
  91. $previouspage = $pagenow - 1;
  92. } else {
  93. $page = 0;
  94. $nextpage = 2;
  95. $previouspage = 0;
  96. }
  97. $data['page'] = $page;
  98. $data['pages'] = $pages;
  99. $data['counts'] = $counts;
  100. $start = $page * $pagesize;
  101. $data['posts'] = arclist(array("sql" => $sql, "limit" => "$start,$pagesize")); //获取列表
  102. $data['pagenav'] = get_listnav(array("counts" => $counts, "pagesize" => $pagesize, "pagenow" => $page + 1, "catid" => $cat)); //获取分页列表
  103. if ($post['templist'] == 'category2') {
  104. if (!empty($pagenow)) {
  105. return redirect()->route('page404');
  106. }
  107. }
  108. return view('wap.index.' . $post['templist'], $data);
  109. }
  110. //文章详情页
  111. public function detail($id)
  112. {
  113. if (empty($id) || !preg_match('/[0-9]+/', $id)) {
  114. return redirect()->route('page404');
  115. }
  116. if (cache("detailid$id")) {
  117. $post = cache("detailid$id");
  118. } else {
  119. $post = object_to_array(DB::table('article')->where('id', $id)->first(), 1);
  120. if (empty($post)) {
  121. return redirect()->route('page404');
  122. }
  123. $post['name'] = DB::table('arctype')->where('id', $post['typeid'])->value('name');
  124. cache(["detailid$id" => $post], \Carbon\Carbon::now()->addMinutes(2592000));
  125. }
  126. if ($post) {
  127. $cat = $post['typeid'];
  128. $post['body'] = ReplaceKeyword($post['body']);
  129. if (!empty($post['writer'])) {
  130. $post['writertitle'] = $post['title'] . ' ' . $post['writer'];
  131. }
  132. $data['post'] = $post;
  133. $data['pre'] = get_article_prenext(array('aid' => $post["id"], 'typeid' => $post["typeid"], 'type' => "pre"));
  134. } else {
  135. return redirect()->route('page404');
  136. }
  137. if (cache("catid$cat")) {
  138. $post = cache("catid$cat");
  139. } else {
  140. $post = object_to_array(DB::table('arctype')->where('id', $cat)->first(), 1);
  141. cache(["catid$cat" => $post], \Carbon\Carbon::now()->addMinutes(2592000));
  142. }
  143. return view('wap.index.' . $post['temparticle'], $data);
  144. }
  145. //标签详情页,共有3种显示方式,1正常列表,2列表显示文章,3显示描述
  146. public function tag($tag, $page = 0)
  147. {
  148. $pagenow = $page;
  149. if (empty($tag) || !preg_match('/[0-9]+/', $tag)) {
  150. return redirect()->route('page404');
  151. }
  152. $post = object_to_array(DB::table('tagindex')->where('id', $tag)->first(), 1);
  153. $data['post'] = $post;
  154. $counts = DB::table("taglist")->where('tid', $tag)->count('aid');
  155. if ($counts > sysconfig('CMS_MAXARC')) {
  156. $counts = sysconfig('CMS_MAXARC');
  157. }
  158. $pagesize = sysconfig('CMS_PAGESIZE');
  159. $page = 0;
  160. if ($counts % $pagesize) {//取总数据量除以每页数的余数
  161. $pages = intval($counts / $pagesize) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一,如果没有余数,则页数等于总数据量除以每页数的结果
  162. } else {
  163. $pages = $counts / $pagesize;
  164. }
  165. if (!empty($pagenow)) {
  166. if ($pagenow == 1 || $pagenow > $pages) {
  167. return redirect()->route('page404');
  168. }
  169. $page = $pagenow - 1;
  170. $nextpage = $pagenow + 1;
  171. $previouspage = $pagenow - 1;
  172. } else {
  173. $page = 0;
  174. $nextpage = 2;
  175. $previouspage = 0;
  176. }
  177. $data['page'] = $page;
  178. $data['pages'] = $pages;
  179. $data['counts'] = $counts;
  180. $start = $page * $pagesize;
  181. $posts = object_to_array(DB::table("taglist")->where('tid', $tag)->orderBy('aid', 'desc')->skip($start)->take($pagesize)->get());
  182. foreach ($posts as $row) {
  183. $aid[] = $row["aid"];
  184. }
  185. $aid = isset($aid) ? implode(',', $aid) : "";
  186. if ($aid != "") {
  187. if ($post['template'] == 'tag2') {
  188. $data['posts'] = arclist(array("sql" => "id in ($aid)", "orderby" => ['id', 'desc'], "row" => "$pagesize", "field" => "title,body")); //获取列表
  189. } else {
  190. $data['posts'] = arclist(array("sql" => "id in ($aid)", "orderby" => ['id', 'desc'], "row" => "$pagesize")); //获取列表
  191. }
  192. } else {
  193. $data['posts'] = ''; //获取列表
  194. }
  195. $data['pagenav'] = get_listnav(array("counts" => $counts, "pagesize" => $pagesize, "pagenow" => $page + 1, "catid" => $tag, "urltype" => "tag")); //获取分页列表
  196. if ($post['template'] == 'tag2' || $post['template'] == 'tag3') {
  197. if (!empty($pagenow)) {
  198. return redirect()->route('page404');
  199. }
  200. }
  201. return view('wap.index.' . $post['template'], $data);
  202. }
  203. //标签页
  204. public function tags()
  205. {
  206. return view('wap.index.tags');
  207. }
  208. //搜索页
  209. public function search($keyword)
  210. {
  211. if (empty($keyword)) {
  212. echo '请输入正确的关键词';
  213. exit;
  214. }
  215. if (strstr($keyword, "&")) exit;
  216. $data['posts'] = object_to_array(DB::table("article")->where("title", "like", "%$keyword%")->orderBy('id', 'desc')->take(30)->get());
  217. $data['keyword'] = $keyword;
  218. return view('wap.index.search', $data);
  219. }
  220. //单页面
  221. public function page($id)
  222. {
  223. $data = [];
  224. if (!empty($id) && preg_match('/[a-z0-9]+/', $id)) {
  225. $map['filename'] = $id;
  226. if (cache("pageid$id")) {
  227. $post = cache("pageid$id");
  228. } else {
  229. $post = object_to_array(DB::table('page')->where($map)->first(), 1);
  230. cache("pageid$id", $post, 2592000);
  231. cache(["pageid$id" => $post], \Carbon\Carbon::now()->addMinutes(2592000));
  232. }
  233. if ($post) {
  234. $data['post'] = $post;
  235. } else {
  236. return redirect()->route('page404');
  237. }
  238. } else {
  239. return redirect()->route('page404');
  240. }
  241. $data['posts'] = object_to_array(DB::table('page')->orderBy(\DB::raw('rand()'))->take(5)->get());
  242. return view('wap.index.' . $post['template'], $data);
  243. }
  244. //商品列表页
  245. public function productcat($cat, $page = 0)
  246. {
  247. $pagenow = $page;
  248. if (empty($cat) || !preg_match('/[0-9]+/', $cat)) {
  249. return redirect()->route('page404');
  250. }
  251. $post = object_to_array(DB::table('product_type')->where('id', $cat)->first(), 1);
  252. if (empty($post)) {
  253. return redirect()->route('page404');
  254. }
  255. $data['post'] = $post;
  256. $subcat = "";
  257. $post2 = object_to_array(DB::table('product_type')->select('id')->where('pid', $cat)->get());
  258. if (!empty($post2)) {
  259. foreach ($post2 as $row) {
  260. $subcat = $subcat . "typeid=" . $row["id"] . " or ";
  261. }
  262. }
  263. $subcat = $subcat . "typeid=" . $cat;
  264. $data['sql'] = $subcat;
  265. $counts = DB::table("product")->whereRaw($subcat)->count();
  266. if ($counts > sysconfig('CMS_MAXARC')) {
  267. $counts = sysconfig('CMS_MAXARC');
  268. dd($counts);
  269. }
  270. $pagesize = sysconfig('CMS_PAGESIZE');
  271. $page = 0;
  272. if ($counts % $pagesize) {//取总数据量除以每页数的余数
  273. $pages = intval($counts / $pagesize) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一,如果没有余数,则页数等于总数据量除以每页数的结果
  274. } else {
  275. $pages = $counts / $pagesize;
  276. }
  277. if (!empty($pagenow)) {
  278. if ($pagenow == 1 || $pagenow > $pages) {
  279. return redirect()->route('page404');
  280. }
  281. $page = $pagenow - 1;
  282. $nextpage = $pagenow + 1;
  283. $previouspage = $pagenow - 1;
  284. } else {
  285. $page = 0;
  286. $nextpage = 2;
  287. $previouspage = 0;
  288. }
  289. $data['page'] = $page;
  290. $data['pages'] = $pages;
  291. $data['counts'] = $counts;
  292. $start = $page * $pagesize;
  293. $data['posts'] = arclist(array("table" => "product", "sql" => $subcat, "limit" => "$start,$pagesize")); //获取列表
  294. $data['pagenav'] = get_listnav(array("counts" => $counts, "pagesize" => $pagesize, "pagenow" => $page + 1, "catid" => $cat, "urltype" => "product")); //获取分页列表
  295. if ($post['templist'] == 'category2') {
  296. if (!empty($pagenow)) {
  297. return redirect()->route('page404');
  298. }
  299. }
  300. return view('wap.index.' . $post['templist'], $data);
  301. }
  302. //商品详情页
  303. public function product($id)
  304. {
  305. if (empty($id) || !preg_match('/[0-9]+/', $id)) {
  306. return redirect()->route('page404');
  307. }
  308. $post = object_to_array(DB::table('product')->where('id', $id)->first(), 1);
  309. if (empty($post)) {
  310. return redirect()->route('page404');
  311. }
  312. $post['name'] = DB::table('product_type')->where('id', $post['typeid'])->value('name');
  313. if ($post) {
  314. $cat = $post['typeid'];
  315. $post['body'] = ReplaceKeyword($post['body']);
  316. if (!empty($post['writer'])) {
  317. $post['writertitle'] = $post['title'] . ' ' . $post['writer'];
  318. }
  319. $data['post'] = $post;
  320. $data['pre'] = get_article_prenext(array('aid' => $post["id"], 'typeid' => $post["typeid"], 'type' => "pre"));
  321. } else {
  322. return redirect()->route('page404');
  323. }
  324. $post = object_to_array(DB::table('product_type')->where('id', $cat)->first(), 1);
  325. return view('wap.index.' . $post['temparticle'], $data);
  326. }
  327. //sitemap页面
  328. public function sitemap()
  329. {
  330. return view('wap.index.sitemap');
  331. }
  332. //404页面
  333. public function page404()
  334. {
  335. return view('home.404');
  336. }
  337. //测试页面
  338. public function test()
  339. {
  340. return date("Y-m-d H:i:s", strtotime("2017-04"));
  341. }
  342. }