JsProjectController.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2020-08-28
  6. * Time: 10:44
  7. */
  8. namespace app\back\controller;
  9. use app\back\model\JsProjectCategoryModel;
  10. use app\back\model\JsProjectTagModel;
  11. use app\back\model\RegionModel;
  12. use cmf\controller\AdminBaseController;
  13. use app\back\model\JsProjectModel;
  14. use think\Db;
  15. use app\back\model\JsProjectServiceModel;
  16. class JsProjectController extends AdminBaseController
  17. {
  18. public function index()
  19. {
  20. $where = [];
  21. $page = $this->request->param('page',1);
  22. $pw = [];
  23. $JsProjectModel = new JsProjectModel();
  24. $name = $this->request->param('name');
  25. $this->assign('name',$name);
  26. $JsProJectCategoryModel = new JsProjectCategoryModel();
  27. $category_list = $JsProJectCategoryModel::select();
  28. $category_id = $this->request->param('category_id');
  29. if($category_id){
  30. $project_ids = Db::name('js_project_category_relevancy')->where('category_id',$category_id)->field('project_id')->select();
  31. $project_new_ids = [];
  32. foreach ($project_ids as $vo){
  33. $project_new_ids[] = $vo['project_id'];
  34. }
  35. $pw['category_id'] = $category_id;
  36. $where['id'] = $project_new_ids;
  37. $this->assign('category_id',$category_id);
  38. }
  39. $is_show = $this->request->param('is_show');
  40. if($is_show != ''){
  41. $where['is_show'] = $is_show;
  42. $pw['is_show'] = $is_show;
  43. $this->assign('is_show',$is_show);
  44. }
  45. $list = $JsProjectModel->getList($where,$page,$pw,$name);
  46. $this->assign('list',$list);
  47. $this->assign('category_list',$category_list);
  48. return $this->fetch();
  49. }
  50. public function add()
  51. {
  52. $region_list = Db::name('region')->where('depth',1)->select();
  53. $tagList = JsProjectTagModel::where('is_show',1)->order('list_order','asc')->select();
  54. $this->assign('tagList',$tagList);
  55. $service = JsProjectServiceModel::where('is_show',1)->select();
  56. $this->assign('service',$service);
  57. $this->assign('region_list',$region_list);
  58. return $this->fetch();
  59. }
  60. public function addPost()
  61. {
  62. $data = $this->request->param();
  63. if (!empty($data['photo_names']) && !empty($data['photo_urls'])) {
  64. $data['banner'] = [];
  65. foreach ($data['photo_urls'] as $key => $url) {
  66. $photoUrl = cmf_asset_relative_url($url);
  67. array_push( $data['banner'], ["url" => $photoUrl, "name" => $data['photo_names'][$key]]);
  68. }
  69. }
  70. unset($data['photo_urls']);
  71. unset($data['photo_names']);
  72. if(empty($data['service_zhi'])){
  73. $this->error('请选择服务区!');
  74. }
  75. $service_zhi = $data['service_zhi'];
  76. unset($data['service_zhi']);
  77. $JsProjectModel = new JsProjectModel();
  78. $tag = [];
  79. if(!empty($data['tag'])){
  80. $tag = $data['tag'];
  81. unset($data['tag']);
  82. }
  83. $cagories = $data['cagories'];
  84. unset($data['category']);
  85. $JsProjectModel->addPost($data,$tag,$cagories,$service_zhi);
  86. $this->success('添加成功');
  87. }
  88. public function edit()
  89. {
  90. $id = $this->request->param('id');
  91. $info = JsProjectModel::get($id);
  92. $info['service'] = $info->service;
  93. $tagList = JsProjectTagModel::where('is_show',1)->order('list_order','asc')->select();
  94. $this->assign('tagList',$tagList);
  95. $tegIds = Db::name('js_project_tag_relevancy')->where('project_id',$id)->column('project_tag_id');
  96. $region_list = Db::name('region')->where('depth',1)->select();
  97. $this->assign('region_list',$region_list);
  98. $fuji = [];
  99. $fuji_ids = [];
  100. $servicesIds = [];
  101. $parentId = [];
  102. if(count($info['service']) > 0) {
  103. foreach ($info['service'] as $value){
  104. if(!in_array($value['parentId'],$parentId)){
  105. $parentId[] = $value['parentId'];
  106. }
  107. $servicesIds[] = $value['id'];
  108. }
  109. $fuji = RegionModel::where('id','in',$parentId)->field('id,mergerName')->select();
  110. foreach ($fuji as $key=>$value){
  111. $fuji[$key]['district_list'] = RegionModel::where('parentId',$value['id'])->field('id,cityName')->select();
  112. $fuji_ids[] = $value['id'];
  113. }
  114. }
  115. $this->assign('fuji',$fuji);
  116. $categories = $info->category()->alias('a')->column('a.category_name', 'a.id');
  117. $categoryIds = implode(',', array_keys($categories));
  118. $this->assign('categories',$categories);
  119. $this->assign('categoryIds',$categoryIds);
  120. $this->assign('servicesIds',$servicesIds);
  121. $this->assign('info',$info);
  122. $this->assign('fuji_ids',$fuji_ids);
  123. $this->assign('tegIds',$tegIds);
  124. return $this->fetch();
  125. }
  126. public function editPost()
  127. {
  128. $data = $this->request->param();
  129. if(empty($data['service_zhi'])){
  130. $this->error('请选择服务区!');
  131. }
  132. $service_zhi = json_decode(html_entity_decode($data['service_zhi']),true);
  133. unset($data['service_zhi']);
  134. $data['banner'] = [];
  135. if (!empty($data['photo_names']) && !empty($data['photo_urls'])) {
  136. foreach ($data['photo_urls'] as $key => $url) {
  137. $photoUrl = cmf_asset_relative_url($url);
  138. array_push( $data['banner'], ["url" => $photoUrl, "name" => $data['photo_names'][$key]]);
  139. }
  140. }
  141. unset($data['photo_urls']);
  142. unset($data['photo_names']);
  143. $JsProjectModel = new JsProjectModel();
  144. $tag = [];
  145. if(!empty($data['tag'])){
  146. $tag = $data['tag'];
  147. unset($data['tag']);
  148. }
  149. $cagories = $data['cagories'];
  150. unset($data['category']);
  151. $JsProjectModel->editPost($data,$tag,$cagories,$service_zhi);
  152. $this->success('编辑成功');
  153. }
  154. public function delete()
  155. {
  156. $id = $this->request->param('id');
  157. JsProjectModel::destroy($id);
  158. Db::name('js_project_tag_relevancy')->where('project_id',$id)->delete();
  159. $this->success('删除成功');
  160. }
  161. public function show()
  162. {
  163. $ids = $this->request->param('ids/a');
  164. $is_show = $this->request->param('is_show');
  165. JsProjectModel::where('id','in',$ids)->update(['is_show'=>$is_show]);
  166. $this->success('操作成功');
  167. }
  168. public function listOrder()
  169. {
  170. $JsProjectModel = new JsProjectModel();
  171. parent::listOrders($JsProjectModel);
  172. $this->success("排序更新成功!");
  173. }
  174. }