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.

97 lines
2.8 KiB

4 years ago
  1. <?php
  2. /**
  3. * @author Administrator
  4. * @date 2021/2/25 10:15
  5. */
  6. namespace Api\Controller;
  7. use Api\Model\CatalogModel;
  8. use Api\Model\ItemModel;
  9. use Api\Model\PageModel;
  10. /**
  11. * 智能场馆帮助中心
  12. * Class HelpController
  13. * @package Api\Controller
  14. */
  15. class HelpController extends BaseController
  16. {
  17. /**
  18. * 获取所有公开项目
  19. */
  20. public function getItemList()
  21. {
  22. $w = array("password" => "", 'is_del' => 0);
  23. $items = D("item")->where($w)
  24. ->order("addtime desc")
  25. ->field(array(
  26. 'item_id',
  27. 'item_name',
  28. 'item_description',
  29. 'addtime',
  30. 'item_type',
  31. 'is_del',
  32. ))
  33. ->select();
  34. $total = D("item")->where($w)->count();
  35. $this->sendResult(array("items" => $items, "total" => $total));
  36. }
  37. //展示 页面列表
  38. public function search($keyword = "")
  39. {
  40. //获取公开的项目id
  41. $item_model = D("item");
  42. // $item_ids = $item_model->where(array("password" => "", "is_del" => 0))->getField("item_id", true);
  43. $item_data = $this->getItems();
  44. $item_ids = array_keys($item_data);
  45. if (count($item_ids) <= 0) {
  46. $this->sendResult(array("items" => null, "total" => 0));
  47. }
  48. $w = array("item_id" => array("in", $item_ids), 'is_del' => 0);
  49. if (trim($keyword)) {
  50. $w["page_title|page_content"] = array("like", "%{$keyword}%");
  51. }
  52. $page_m = D("page");
  53. $t = $page_m->where($w)->field("page_id,page_title,item_id");
  54. $page = $_REQUEST['page'];
  55. $page_size = $_REQUEST['page_size'];
  56. if ($page > 0 && $page_size > 0) {
  57. $t->page($page, $page_size);
  58. }
  59. $list = $t->order("addtime desc")->select();
  60. $total = $page_m->where($w)->count();
  61. foreach ($list as &$item) {
  62. //项目数据
  63. $item['item_data'] = $item_data[$item['item_id']];
  64. $item['item_cat'] = $item['item_data']['item_cat'];
  65. }
  66. $this->sendResult(array("items" => $list, "total" => $total));
  67. }
  68. protected function getItems()
  69. {
  70. $item_data = D('item')->where(array('is_del' => 0, 'password' => ''))->getField('item_id,item_name,is_del');
  71. foreach ($item_data as &$item) {
  72. $cat_arr = D('catalog')
  73. ->where(array('item_id' => $item['item_id']))
  74. ->order("level asc,addtime asc")
  75. ->getField('cat_name', true);
  76. if (count($cat_arr) > 0) {
  77. $item['item_cat'] = $item['item_name'] . '-' . implode('-', $cat_arr);
  78. } else {
  79. $item['item_cat'] = $item['item_name'];
  80. }
  81. }
  82. return $item_data;
  83. }
  84. }