order('sort desc,id desc')->select()) && count($data) ? $data->toArray() : []; $count = self::setWhere($where)->where('id|pid', isset($where['pid']) && $where['pid'] != '' ? $where['pid'] : 0)->count(); return ['count' => $count, 'list' => $data]; } public static function setWhere($where) { $model = (new self)::vaildWhere(); if ($where['name']) { $model = $model->where('name', 'like', '%' . $where['name'] . '%'); } if ($where['pid'] != '') { $model = $model->where('id|pid', $where['pid']); } if ($where['is_show'] != '') { $model = $model->where('is_show', $where['is_show']); } return $model; } /** * 删除行业 * @param $id * @return bool */ public static function delIndustry($id) { try { if (!self::vaildWhere()->where(['id' => $id])->find()) { return self::setErrorInfo('行业未找到或已删除'); } } catch (DbException $e) { return self::setErrorInfo($e->getMessage()); } $count = self::where('pid', $id)->count(); if ($count) return self::setErrorInfo('请先删除下级子行业'); else { $res = self::where('id', $id)->update(['is_del' => 1, 'update' => time()]); if ($res) { return true; } else { return self::setErrorInfo('删除失败'); } } } public static function setIndustryShow($id, $show) { $count = self::where('id', $id)->count(); if (!$count) return self::setErrorInfo('参数错误'); $count = self::where('id', $id)->where('is_show', $show)->count(); if ($count) return true; $pid = self::where('id', $id)->value('pid'); self::beginTrans(); $res1 = true; $res2 = self::where('id', $id)->update(['is_show' => $show, 'update' => time()]); if (!$pid) {//一级分类隐藏 $count = self::where('pid', $id)->count(); if ($count) { $count = self::where('pid', $id)->where('is_show', $show)->count(); $countWhole = self::where('pid', $id)->count(); if (!$count || $countWhole > $count) { $res1 = self::where('pid', $id)->update(['is_show' => $show]); } } } $res = $res1 && $res2; self::checkTrans($res); return $res; } /** * 分级排序列表 * @param null $model * @param int $type * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws DbException */ public static function getTierList($model = null, $type = 0) { if ($model === null) $model = new self(); if (!$type) return sort_list_tier($model->order('sort desc,id desc')->where('pid', 0)->where('is_del', 0)->select()->toArray()); return sort_list_tier($model->order('sort desc,id desc')->where('is_del', 0)->select()->toArray()); } }