first(); } public static function getWhere(array $search = []): array { $where = []; if (isset($search['id']) && !empty($search['id'])) { $where[] = ['id', '=', $search['id']]; } if (isset($search['status']) && $search['status'] != '') { $where[] = ['status', '=', $search['status']]; } if (isset($search['title']) && !empty($search['title'])) { $where[] = ['title', 'like', "%{$search['title']}%"]; } if (isset($search['start_time']) && !empty($search['start_time'])) { if (is_array($search['start_time'])) { if (count($search['start_time']) == 2) { $where[] = ['start_time', $search['start_time'][0], $search['start_time'][1]]; } else { $where[] = ['start_time', '=', $search['start_time'][0]]; } } else { $where[] = ['start_time', '=', $search['start_time']]; } } if (isset($search['end_time']) && !empty($search['end_time'])) { if (is_array($search['end_time'])) { if (count($search['end_time']) == 2) { $where[] = ['end_time', $search['end_time'][0], $search['end_time'][1]]; } else { $where[] = ['end_time', '=', $search['end_time'][0]]; } } else { $where[] = ['end_time', '=', $search['end_time']]; } } return $where; } public static function deleteAll(array $search = []): bool { $count = static::$MODEL::where(static::getWhere($search))->delete(); if ($count < 1) throw new Exception('删除失败', HttpStatus::CUSTOM_ERROR); return true; } /** * Update or create * @param array $params * @return bool * @throws Exception */ public static function submit(array $params = []): bool { if (isset($params['start_time'])) $params['start_time'] = strtotime($params['start_time'] . " 00:00:00"); if (isset($params['end_time'])) $params['end_time'] = strtotime($params['end_time'] . " 23:59:59"); if (isset($params['detail_image'])) $params['detail_image'] = Util::replacePartInUrl($params['detail_image']); if (!empty($params['id'])) { $info = static::findOne(['id' => $params['id']]); if (!$info) throw new Exception("操作失败", HttpStatus::CUSTOM_ERROR); $info->update($params); } else { static::$MODEL::create($params); } return true; } }