select("id,name,parent_id")->where(["parent_id" => 0])->asArray()->all(); $req = Yii::$app->request; $pId = $req->get('deviceParentCat'); if (empty($pId)) { $pId = intval($deviceCatParentList[0]['id']); } // 获取子级分类 $deviceCatChildList = DeviceCatRepository::getSubCatsByParentId($pId);//find()->select("id,name,parent_id")->where(["parent_id" => $pId])->asArray()->all(); $params = array(); $params = $this->dataList(); $params['deviceCatParentList'] = $deviceCatParentList; $params['deviceCatChildList'] = $deviceCatChildList; $params['catPid'] = 0; $params['catId'] = 0; $params['brandId'] = 0; $params['brandList'] = BrandRepository::getAllAvailableBrands(); return $this->render("index", $params); } protected function dataList() { $req = Yii::$app->request; $cat_pid = $req->get('deviceParentCat');//设备一级分类 $cat_id = $req->get('deviceChildCat');//设备二级分类 $brand = $req->get('brand'); $display_scope = $req->get('display_scope'); $display_scope = !empty($display_scope) ? 1 : 0; $get = array(); $get['cat_pid'] = empty($cat_pid) ? 0 : $cat_pid; $get['cat_id'] = empty($cat_id) ? 0 : $cat_id; #可以构建一个解析器。。 $map = array(); // 过滤设备分类 if ($cat_pid > 0) { if ($cat_id > 0) { // 选择了二级分类则精准查找 $map[] = array("=", "d.device_cat_id", $cat_id, "I"); } else { // 仅选择了一级分类, 则查询一级分类下所有子分类的数据 $deviceCatIdArray = array(); $childrens = DeviceCatRepository::getSubCatsByParentId($cat_pid, 'sort_order ASC', false);//find()->where(['parent_id' => $cat_pid])->orderBy('sort_order ASC')->all(); foreach ($childrens as $child) { $deviceCatIdArray[] = $child->id; } // 父节点 $deviceCatIdArray[] = $cat_pid; $deviceCatIds = '(' . implode(",", $deviceCatIdArray) . ')'; $map[] = array("in", "d.device_cat_id", $deviceCatIds, "I"); // 转换为sql: id IN (1,2,3) } } if (!empty($brand)) { $map[] = array("=", "d.brand_id", intval($brand), "I"); #I : int , S:string $get['brand_id'] = intval($brand); } else { $get['brand_id'] = 0; } if (!empty($display_scope)) { if ($display_scope == 1) { $map[] = array("=", "d.model_id", 0, "I"); #I : int , S:string } else { //$map[] = array(">","d.model_id", 0, "I"); #I : int , S:string } $get['display_scope'] = $display_scope; } else { $get['display_scope'] = -1; } /** * 分页处理 */ $guestDeviceModel = new GuestDeviceModel(); $pageSize = $req->get("pageSize") ? (int)$req->get("pageSize") : 20; $pages = new Pagination(['totalCount' => $guestDeviceModel->getGuestDeviceListCount($map), 'pageSize' => $pageSize]); $guestDeviceList = $guestDeviceModel->getGuestDeviceList($pages->offset, $pages->limit, $map); return [ 'guestDeviceList' => $guestDeviceList, 'pages' => $pages, 'gets' => $get, ]; } public function actionInfo() { $req = Yii::$app->request; $id = $req->get('id'); $guestDeviceModel = new GuestDeviceModel(); $guestDevice = $guestDeviceModel->getGuestDeviceInfo(intval($id)); // 读取历史维修信息. repair_device_type=0 为游客 $repalirLogList = RepairOrderRepository::getRepairLogList(intval($id), 0); $params = array(); $params['guestDevice'] = $guestDevice; $params['repalirLogList'] = $repalirLogList; return $this->render("info", $params); } }