|
@@ -48,6 +48,16 @@ class TextbookApiController extends Controller
|
|
|
$params['status'] = $request->get('status');
|
|
$params['status'] = $request->get('status');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 支持包含未发布的教材(默认只返回已发布的)
|
|
|
|
|
+ if ($request->has('include_unpublished')) {
|
|
|
|
|
+ $params['include_unpublished'] = $request->get('include_unpublished');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 支持包含未启用系列的教材(默认只返回启用系列的)
|
|
|
|
|
+ if ($request->has('include_inactive_series')) {
|
|
|
|
|
+ $params['include_inactive_series'] = $request->get('include_inactive_series');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$result = $this->textbookService->getTextbooks($params);
|
|
$result = $this->textbookService->getTextbooks($params);
|
|
|
|
|
|
|
|
// 格式化返回数据
|
|
// 格式化返回数据
|
|
@@ -82,11 +92,20 @@ class TextbookApiController extends Controller
|
|
|
return response()->json([
|
|
return response()->json([
|
|
|
'success' => true,
|
|
'success' => true,
|
|
|
'data' => $textbooks,
|
|
'data' => $textbooks,
|
|
|
- 'meta' => $result['meta'] ?? [
|
|
|
|
|
|
|
+ 'meta' => array_merge($result['meta'] ?? [], [
|
|
|
'page' => $params['page'],
|
|
'page' => $params['page'],
|
|
|
'per_page' => $params['per_page'],
|
|
'per_page' => $params['per_page'],
|
|
|
'total' => count($textbooks),
|
|
'total' => count($textbooks),
|
|
|
- ]
|
|
|
|
|
|
|
+ 'filters' => [
|
|
|
|
|
+ 'grade' => $request->get('grade'),
|
|
|
|
|
+ 'stage' => $request->get('stage'),
|
|
|
|
|
+ 'semester' => $request->get('semester'),
|
|
|
|
|
+ 'series_id' => $request->get('series_id'),
|
|
|
|
|
+ 'status' => $request->get('status'),
|
|
|
|
|
+ 'include_unpublished' => $request->get('include_unpublished') === 'true',
|
|
|
|
|
+ 'include_inactive_series' => $request->get('include_inactive_series') === 'true',
|
|
|
|
|
+ ]
|
|
|
|
|
+ ])
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
@@ -129,6 +148,19 @@ class TextbookApiController extends Controller
|
|
|
if ($request->has('series_id')) {
|
|
if ($request->has('series_id')) {
|
|
|
$params['series_id'] = $request->get('series_id');
|
|
$params['series_id'] = $request->get('series_id');
|
|
|
}
|
|
}
|
|
|
|
|
+ if ($request->has('status')) {
|
|
|
|
|
+ $params['status'] = $request->get('status');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 支持包含未发布的教材(默认只返回已发布的)
|
|
|
|
|
+ if ($request->has('include_unpublished')) {
|
|
|
|
|
+ $params['include_unpublished'] = $request->get('include_unpublished');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 支持包含未启用系列的教材(默认只返回启用系列的)
|
|
|
|
|
+ if ($request->has('include_inactive_series')) {
|
|
|
|
|
+ $params['include_inactive_series'] = $request->get('include_inactive_series');
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
$result = $this->textbookService->getTextbooks($params);
|
|
$result = $this->textbookService->getTextbooks($params);
|
|
|
$textbooks = $this->formatTextbookList($result['data'] ?? []);
|
|
$textbooks = $this->formatTextbookList($result['data'] ?? []);
|
|
@@ -146,6 +178,13 @@ class TextbookApiController extends Controller
|
|
|
'stage' => $params['stage'] ?? null,
|
|
'stage' => $params['stage'] ?? null,
|
|
|
'stage_label' => isset($params['stage']) ? $this->getStageLabel($params['stage']) : null,
|
|
'stage_label' => isset($params['stage']) ? $this->getStageLabel($params['stage']) : null,
|
|
|
'total' => count($textbooks),
|
|
'total' => count($textbooks),
|
|
|
|
|
+ 'filters' => [
|
|
|
|
|
+ 'semester' => $request->get('semester'),
|
|
|
|
|
+ 'series_id' => $request->get('series_id'),
|
|
|
|
|
+ 'status' => $request->get('status'),
|
|
|
|
|
+ 'include_unpublished' => $request->get('include_unpublished') === 'true',
|
|
|
|
|
+ 'include_inactive_series' => $request->get('include_inactive_series') === 'true',
|
|
|
|
|
+ ]
|
|
|
]
|
|
]
|
|
|
]);
|
|
]);
|
|
|
|
|
|
|
@@ -209,10 +248,16 @@ class TextbookApiController extends Controller
|
|
|
try {
|
|
try {
|
|
|
$params = [];
|
|
$params = [];
|
|
|
|
|
|
|
|
|
|
+ // 支持按学段筛选
|
|
|
if ($request->has('stage')) {
|
|
if ($request->has('stage')) {
|
|
|
$params['stage'] = $this->convertStageToCode($request->get('stage'));
|
|
$params['stage'] = $this->convertStageToCode($request->get('stage'));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 支持包含未启用的系列(默认只返回启用的)
|
|
|
|
|
+ if ($request->has('include_inactive')) {
|
|
|
|
|
+ $params['include_inactive'] = $request->get('include_inactive');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$result = $this->textbookService->getTextbookSeries($params);
|
|
$result = $this->textbookService->getTextbookSeries($params);
|
|
|
|
|
|
|
|
$series = array_map(function ($item) {
|
|
$series = array_map(function ($item) {
|
|
@@ -236,6 +281,10 @@ class TextbookApiController extends Controller
|
|
|
'data' => $series,
|
|
'data' => $series,
|
|
|
'meta' => [
|
|
'meta' => [
|
|
|
'total' => count($series),
|
|
'total' => count($series),
|
|
|
|
|
+ 'filters' => [
|
|
|
|
|
+ 'stage' => $request->get('stage'),
|
|
|
|
|
+ 'include_inactive' => $request->get('include_inactive') === 'true',
|
|
|
|
|
+ ]
|
|
|
]
|
|
]
|
|
|
]);
|
|
]);
|
|
|
|
|
|