'启用', self::STATE_DISABLED => '禁用', ]; public static function findById($id): object { return self::findOrEmpty($id); } public static function getInfoAndCheck(array $where) { $info = self::getInfoByWhere($where); if (empty($info)) { throw new BusinessException("无权限操作此数据."); } return $info; } public static function onAfterRead(Model $model): void { $model->hidden(['delete_time']); if (!empty($model->status)) { $model->statusDesc = self::STATE_DESC[$model->status]; } if (!empty($model->state)) { $model->statusDesc = self::STATE_DESC[$model->state]; } } public static function getListPage($where, $page, $order = ''): array { $model = self::where($where); if ($order) { $model->order($order); } return $model->paginate($page)->toArray(); } public static function insertOne($data) { $data['create_time'] = date("Y-m-d H:i:s"); $data['update_time'] = date("Y-m-d H:i:s"); return self::create($data)->getKey(); } public static function updateOne($where, $data) { $data['update_time'] = date("Y-m-d H:i:s"); self::update($data, $where); } public static function getOne($id): array { return self::findOrEmpty($id)->toArray(); } public static function getInfoByWhere($where, $order = '', $field = '*'): array { $model = self::where($where); if ($order) { $model->order($order); } return $model->field($field)->findOrEmpty()->toArray(); } public static function getList($where, $field = '*', $order = ''): array { $model = self::where($where)->field($field); if ($order) { $model->order($order); } return $model->select()->toArray(); } public static function getCounts($where, $field = 'create_time', $times = []) { $model = self::where($where); if (!empty($times)) { $model->whereBetweenTime($field, $times[0], $times[1]); } return $model->count('id'); } public static function getPageInfo(): array { return [ 'list_rows' => Request::param("pageSize", 10), 'var_page' => 'page', 'page' => Request::param("page", 1), ]; } public static function orderBy() { return Request::param("orderBy", "id desc"); } public function searchPages($search = [], $data = [], $field = '*'): \think\Paginator { $model = self::where(self::appendBaseWhere([])); if (!empty($search)) { $model = $model->withSearch($search, $data); } return $model->order(self::orderBy())->field($field)->paginate(self::getPageInfo()); } public function detailById($id, $field = ['*']): array { return self::field($field)->findOrEmpty($id)->toArray(); } public function deleteById($id) { self::destroy($id); } public function getLists($where = [], $field = [], $order = []) { return (new static)->where($where)->field($field)->order($order)->select(); } private static function appendBaseWhere($where = []) { if (!isset($where['site_id']) && !empty(self::getModel()->autoSiteId) && self::getModel()->autoSiteId) { $where['site_id'] = SessionUtil::getSiteId(); } return $where; } }