JiamengController.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. <?php
  2. namespace app\index\controller;
  3. use cmf\controller\HomeBaseController;
  4. use think\Db;
  5. class JiamengController extends HomeBaseController
  6. {
  7. public function index()
  8. {
  9. return $this->fetch();
  10. }
  11. public function home(){
  12. //二级分类
  13. $param = $this->request->param();
  14. isset($param['enname']) or $this->error('需要父分类');
  15. $curarr = Db::name('category')->where('enname',$param['enname'])->find();
  16. if($curarr['parent_id']>0){
  17. $this->error('不是一级分类');
  18. }
  19. $sonarr = Db::name('category')->where('parent_id',$curarr['id'])->order('list_order')->limit(10)->select();
  20. $this->assign('sonarr',$sonarr);
  21. return $this->fetch();
  22. }
  23. public function lists(){
  24. //二级分类
  25. $param = $this->request->param();
  26. isset($param['enname'])&&$param['enname']!='' or $param['enname']='项目库';
  27. $area_id = isset($param['area_id'])?$param['area_id']:0;
  28. $touzi_level = isset($param['touzi_level'])&&$param['touzi_level']!=''?$param['touzi_level']:-1;
  29. //所有的
  30. $catemap = array();
  31. if($param['enname']!='项目库'){
  32. $catemap['enname'] = $param['enname'];
  33. }
  34. $curarr = array();
  35. if($param['enname']!='项目库'){
  36. $curarr = Db::name('category')->where('enname',$param['enname'])->find();
  37. if(empty($curarr['id'])){
  38. $this->error('非法id');
  39. }
  40. //seo
  41. $seo_title = str_replace('|',$curarr['catname'],$curarr['seo_title']);
  42. $seo_keywords = str_replace('|',$curarr['catname'],$curarr['seo_keywords']);
  43. $seo_desc = str_replace('|',$curarr['catname'],$curarr['seo_desc']);
  44. $this->assign('seo_title',$seo_title);
  45. $this->assign('seo_keywords',$seo_keywords);
  46. $this->assign('seo_desc',$seo_desc);
  47. }else{
  48. $curarr['parent_id'] = 0;
  49. $curarr['id'] = 0;
  50. $curarr['enname'] = '项目库';
  51. $curarr['catname'] = '项目库';
  52. }
  53. //所有的父分类
  54. $parlist = Db::name('category')->where('parent_id',0)->order('list_order')->select();
  55. // $query = array(
  56. // 'touzi_level' => $touzi_level
  57. // );
  58. $query = array();
  59. $burl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  60. if($param['enname']!='项目库'){
  61. if($curarr['parent_id']>0){
  62. //点击子分类
  63. $par_id = $curarr['parent_id'];
  64. $son_id = $curarr['id'];
  65. $map = array();
  66. if($param['enname']!='all'){
  67. $map['catid'] = $curarr['id'];
  68. }
  69. if($area_id>0){
  70. $map['area_id'] = $area_id;
  71. }
  72. if($touzi_level>=0){
  73. $map['touzi_level'] = $touzi_level;
  74. }
  75. $lists = Db::name('jiameng')->field("id,title,mendian,catid,touzi,touzi_level,company,address,thumb,product,area")->where($map)->order('list_order')->paginate(20,false,['path'=>$burl,'query'=>$query]);
  76. $sum = Db::name('jiameng')->where($map)->count();
  77. //加盟排行
  78. $paihang = Db::name('jiameng')->field('id,title,thumb,hits')->where($map)->order('hits desc')->limit(30)->select();
  79. }else{
  80. //点击父分类
  81. $par_id = $curarr['id'];
  82. $son_id = 0;
  83. $sonarr = Db::name('category')->where('parent_id',$par_id)->select();
  84. $sonlist = array();
  85. foreach($sonarr as $k=>$v){
  86. $sonlist[] = $v['id'];
  87. }
  88. $map = array();
  89. if($touzi_level>=0){
  90. $map['touzi_level'] = $touzi_level;
  91. }
  92. if($area_id>0){
  93. $map['area_id'] = $area_id;
  94. }
  95. $lists = Db::name('jiameng')->field("id,title,mendian,catid,touzi,touzi_level,company,address,thumb,product,area")->where('catid','in',$sonlist)->where($map)->order('list_order')->paginate(20,false,['path'=>$burl,'query'=>$query]);
  96. $sum = Db::name('jiameng')->where('catid','in',$sonlist)->where($map)->count();
  97. //加盟排行
  98. $paihang = Db::name('jiameng')->field('id,title,thumb,hits')->where('catid','in',$sonlist)->where($map)->order('hits desc')->limit(30)->select();
  99. }
  100. $sonlist = Db::name('category')->where('parent_id',$par_id)->select();
  101. }else{
  102. //点击子分类
  103. $par_id = $curarr['parent_id'];
  104. $son_id = $curarr['id'];
  105. $map = array();
  106. //是否有关键词搜索
  107. $keyword = isset($param['keyword'])?$param['keyword']:'';
  108. if($keyword!=''){
  109. $map[] = ['title','like','%'.$keyword.'%'];
  110. }
  111. if($touzi_level>=0){
  112. $map['touzi_level'] = $touzi_level;
  113. }
  114. if($area_id>0){
  115. $map['area_id'] = $area_id;
  116. }
  117. $lists = Db::name('jiameng')->field("id,title,mendian,catid,touzi,touzi_level,company,address,thumb,product,area")->where($map)->order('list_order')->paginate(20,false,['query'=>$query]);
  118. $sum = Db::name('jiameng')->where($map)->count();
  119. //加盟排行
  120. $paihang = Db::name('jiameng')->field('id,title,thumb,hits')->where($map)->order('hits desc')->limit(30)->select();
  121. $sonlist = Db::name('category')->where('parent_id','gt',0)->order('list_order')->limit(20)->select();
  122. }
  123. $touziarr = array(
  124. '1万元以下',
  125. '1~5万元',
  126. '5~10万元',
  127. '10~20万元',
  128. '20~50万元',
  129. '50~100万元',
  130. '100万元以上',
  131. '200万元以上',
  132. '300万元以上'
  133. );
  134. $area_list = array('不限','北京','天津','上海','广州','重庆','浙江','江苏','广东','山东','山西','福建','安徽','河北','河南','湖北','湖南','吉林','江西','辽宁','四川','云南','陕西','广西','海南','贵州','黑龙江','内蒙古','宁夏','甘肃','西藏','青海','新疆');
  135. //9级品牌
  136. $map9 = array();
  137. $map9['level'] = 9;
  138. if($curarr['id']){
  139. if($curarr['parent_id']>0){
  140. //子分类
  141. $map9['catid'] = $curarr['id'];
  142. }else{
  143. //父分类
  144. $map9['pcatid'] = $curarr['id'];
  145. }
  146. }
  147. $brand9 = Db::name('jiameng')->field('id,guanggaowei,title')->where($map9)->limit(1)->find();
  148. //最新加盟资讯
  149. $zxnews = Db::name('news')->field('id,title,create_time')->order('id desc')->limit(10)->select();
  150. $link_cate_name = $curarr['enname'];
  151. $this->assign('link_cate_name',$link_cate_name);
  152. $this->assign('zxnews',$zxnews);
  153. $this->assign('brand9',$brand9);
  154. $this->assign('area_list',$area_list);
  155. $this->assign('touziarr',$touziarr);
  156. $this->assign('curarr',$curarr);
  157. $this->assign('parlist',$parlist);
  158. $this->assign('sonlist',$sonlist);
  159. $this->assign('par_id',$par_id);
  160. $this->assign('son_id',$son_id);
  161. $this->assign('lists',$lists);
  162. $this->assign('touzi_level',$touzi_level);
  163. $this->assign('sum',$sum);
  164. $this->assign('paihang',$paihang);
  165. $this->assign('area_id',$area_id);
  166. return $this->fetch('list');
  167. }
  168. //搜索
  169. public function search(){
  170. $param = $this->request->param();
  171. $kw = $param['kw'];
  172. $lists = Db::name('jiameng')->field("id,title,mendian,catid,touzi,touzi_level,company,address,thumb,product,area")->where('title','like',"%".$kw."%")->order('list_order')->paginate(20);
  173. //加盟排行
  174. $paihang = Db::name('jiameng')->field('id,title,thumb,hits')->where($map)->order('hits desc')->limit(30)->select();
  175. $sum = Db::name('jiameng')->where('title','like',"%".$kw."%")->count();
  176. $this->assign('sum',$sum);
  177. $this->assign('lists',$lists);
  178. $this->assign('paihang',$paihang);
  179. $touziarr = array(
  180. '1万元以下',
  181. '1~5万元',
  182. '5~10万元',
  183. '10~20万元',
  184. '20~50万元',
  185. '50~100万元',
  186. '100万元以上',
  187. '200万元以上',
  188. '300万元以上'
  189. );
  190. $this->assign('touziarr',$touziarr);
  191. return $this->fetch();
  192. }
  193. public function show(){
  194. $param = $this->request->param();
  195. isset($param['id']) or $this->error('需要id');
  196. $info = Db::name('jiameng')->where('id',$param['id'])->find();
  197. //内容
  198. $content = Db::name('jiameng_data')->where('id',$param['id'])->find();
  199. $info['content'] = $content['content'];
  200. $info['youshi'] = $content['youshi'];
  201. $info['tiaojian'] = $content['tiaojian'];
  202. $info['liucheng'] = $content['liucheng'];
  203. $catinfo = Db::name('category')->where('id',$info['catid'])->find();
  204. $parinfo = Db::name('category')->where('id',$catinfo['parent_id'])->find();
  205. $touziarr = array(
  206. '1万元以下',
  207. '1~5万元',
  208. '5~10万元',
  209. '10~20万元',
  210. '20~50万元',
  211. '50~100万元',
  212. '100万元以上',
  213. '200万元以上',
  214. '300万元以上'
  215. );
  216. //热门行业
  217. $hot_cate = Db::name('category')->where('parent_id',$parinfo['id'])->order('list_order')->limit(12)->select();
  218. //排行
  219. $paihang = Db::name('jiameng')->field('id,title,logo,touzi_level,mendian')->where('catid',$info['catid'])->order('hits desc')->limit(5)->select();
  220. //动态
  221. $about_news = Db::name('news')->field('id,title,thumb,create_time')->where('ncatid',1)->order('id desc')->limit(6)->select();
  222. $brand_news = Db::name('news')->field('id,title,create_time')->where('catid',$info['catid'])->order('id desc')->limit(6)->select();
  223. //热门加盟
  224. $hot_jm = Db::name('jiameng')->field('id,title')->where('catid',$info['catid'])->order('hits desc')->limit(20)->select();
  225. //最新加盟
  226. $zx_jm = Db::name('jiameng')->field('id,title')->where('catid',$info['catid'])->order('create_time desc')->limit(20)->select();
  227. //精选加盟
  228. $jx_jm = Db::name('jiameng')->field('id,title')->where('catid',$info['catid'])->orderRaw('rand()')->limit(20)->select();
  229. //seo
  230. $seo_title = str_replace('|',$info['title'],$catinfo['seo_title']);
  231. $seo_keywords = str_replace('|',$info['title'],$catinfo['seo_keywords']);
  232. $seo_desc = mb_substr($info['content'],0,200,'utf8');
  233. $seo_desc = strip_tags($seo_desc);
  234. $link_cate_name = $parinfo['enname'];
  235. // $this->assign('link_cate_name',$link_cate_name);
  236. $this->assign('seo_title',$seo_title);
  237. $this->assign('seo_keywords',$seo_keywords);
  238. $this->assign('seo_desc',$seo_desc);
  239. $this->assign('hot_jm',$hot_jm);
  240. $this->assign('zx_jm',$zx_jm);
  241. $this->assign('jx_jm',$jx_jm);
  242. $this->assign('about_news',$about_news);
  243. $this->assign('brand_news',$brand_news);
  244. $this->assign('paihang',$paihang);
  245. $this->assign('hot_cate',$hot_cate);
  246. $this->assign('touziarr',$touziarr);
  247. $this->assign('catinfo',$catinfo);
  248. $this->assign('parinfo',$parinfo);
  249. $this->assign('info',$info);
  250. return $this->fetch();
  251. }
  252. public function message(){
  253. $param = $this->request->param();
  254. // isset($param['name'])&&$param['name']!='' or $this->error('请填写姓名');
  255. isset($param['mobile'])&&$param['mobile']!='' or $this->error('请填写手机号');
  256. $param['create_time'] = time();
  257. $param['ip'] = get_client_ip();
  258. $todaytime = strtotime(date('Y-m-d'));
  259. if(strlen($param['content'])>300){
  260. $this->error('字符长度不超过300个');
  261. }
  262. $param['content'] = $this->strFilter($param['content']);
  263. $param['name'] = $this->strFilter($param['name']);
  264. $param['mobile'] = $this->strFilter($param['mobile']);
  265. $param['tzed'] = $this->strFilter($param['tzed']);
  266. $param['area'] = $this->strFilter($param['area']);
  267. // print_r($param);exit;
  268. //判断是否已超过10次 今天这个ip是否留言过
  269. $sum = Db::name('message')->where('ip',$param['ip'])->where('create_time','gt',$todaytime)->count();
  270. if($sum>0){
  271. $this->error('今日留言已超过1次,明天再来吧!');
  272. }
  273. //判断手机号本周内是否留过
  274. // 当前日期
  275. $sdefaultDate = date("Y-m-d");
  276. // $first =1 表示每周星期一为开始日期 0表示每周日为开始日期
  277. $first=1;
  278. // 获取当前周的第几天 周日是0 周一到周六是 1 - 6
  279. $w = date('w', strtotime($sdefaultDate));
  280. // 获取本周开始日期,如果$w是0,则表示周日,减去 6 天
  281. $week_start=strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days');
  282. $sum = Db::name('message')->where('mobile',$param['mobile'])->where('create_time','gt',$week_start)->count();
  283. if($sum>0){
  284. $this->error('您的手机号在本周内已预留过,下周再来吧!');
  285. }
  286. $res = Db::name('message')->insert($param);
  287. if($res){
  288. $this->success('咨询成功');
  289. }else{
  290. $this->error('咨询失败');
  291. }
  292. }
  293. public function strFilter($str){
  294. $str = str_replace('`', '', $str);
  295. $str = str_replace('·', '', $str);
  296. $str = str_replace('~', '', $str);
  297. $str = str_replace('!', '', $str);
  298. $str = str_replace('!', '', $str);
  299. $str = str_replace('@', '', $str);
  300. $str = str_replace('#', '', $str);
  301. $str = str_replace('$', '', $str);
  302. $str = str_replace('¥', '', $str);
  303. $str = str_replace('%', '', $str);
  304. $str = str_replace('^', '', $str);
  305. $str = str_replace('……', '', $str);
  306. $str = str_replace('&', '', $str);
  307. $str = str_replace('*', '', $str);
  308. $str = str_replace('(', '', $str);
  309. $str = str_replace(')', '', $str);
  310. $str = str_replace('(', '', $str);
  311. $str = str_replace(')', '', $str);
  312. $str = str_replace('-', '', $str);
  313. $str = str_replace('_', '', $str);
  314. $str = str_replace('——', '', $str);
  315. $str = str_replace('+', '', $str);
  316. $str = str_replace('=', '', $str);
  317. $str = str_replace('|', '', $str);
  318. $str = str_replace('\\', '', $str);
  319. $str = str_replace('[', '', $str);
  320. $str = str_replace(']', '', $str);
  321. $str = str_replace('【', '', $str);
  322. $str = str_replace('】', '', $str);
  323. $str = str_replace('{', '', $str);
  324. $str = str_replace('}', '', $str);
  325. $str = str_replace(';', '', $str);
  326. $str = str_replace(';', '', $str);
  327. $str = str_replace(':', '', $str);
  328. $str = str_replace(':', '', $str);
  329. $str = str_replace('\'', '', $str);
  330. $str = str_replace('"', '', $str);
  331. $str = str_replace('“', '', $str);
  332. $str = str_replace('”', '', $str);
  333. $str = str_replace(',', '', $str);
  334. $str = str_replace(',', '', $str);
  335. $str = str_replace('<', '', $str);
  336. $str = str_replace('>', '', $str);
  337. $str = str_replace('《', '', $str);
  338. $str = str_replace('》', '', $str);
  339. $str = str_replace('.', '', $str);
  340. $str = str_replace('。', '', $str);
  341. $str = str_replace('/', '', $str);
  342. $str = str_replace('、', '', $str);
  343. $str = str_replace('?', '', $str);
  344. $str = str_replace('?', '', $str);
  345. return trim($str);
  346. }
  347. }
  348. ?>