|
@@ -6,6 +6,8 @@ use Catch\Base\CatchController;
|
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
+use Modules\Common\Errors\Errors;
|
|
|
|
+use Modules\Common\Exceptions\CommonBusinessException;
|
|
use Modules\User\Http\Controllers\UserTrait;
|
|
use Modules\User\Http\Controllers\UserTrait;
|
|
|
|
|
|
class FirstPageController extends CatchController
|
|
class FirstPageController extends CatchController
|
|
@@ -17,21 +19,90 @@ class FirstPageController extends CatchController
|
|
* 首页列表
|
|
* 首页列表
|
|
*/
|
|
*/
|
|
public function list(Request $request) {
|
|
public function list(Request $request) {
|
|
|
|
+ $firstPageListTypeMap = collect(config('common.common.firstPageListType'))->keyBy('val')->toArray();
|
|
$result = DB::table('first_pages')
|
|
$result = DB::table('first_pages')
|
|
->orderBy('id', 'desc')
|
|
->orderBy('id', 'desc')
|
|
->paginate($request->input('limit', 15));
|
|
->paginate($request->input('limit', 15));
|
|
|
|
+ foreach ($result as $item) {
|
|
|
|
+ $item->type_str = $firstPageListTypeMap[$item->type]['label'] ?? '';
|
|
|
|
+ $item->duanjus = collect(\json_decode($item->duanjus, true))->sortBy('sort');
|
|
|
|
+ }
|
|
|
|
+ return $result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 添加配置
|
|
|
|
+ * @param Request $request
|
|
|
|
+ * @return string
|
|
|
|
+ * @throws \Illuminate\Validation\ValidationException
|
|
|
|
+ */
|
|
public function add(Request $request) {
|
|
public function add(Request $request) {
|
|
|
|
+ $this->validate($request, [
|
|
|
|
+ 'type' => 'required|in:1,2',
|
|
|
|
+ 'status' => 'required|in:0,1'
|
|
|
|
+ ]);
|
|
|
|
|
|
|
|
+ $now = date('Y-m-d H:i:s');
|
|
|
|
+ if(1 == $request->input('status')) {
|
|
|
|
+ DB::table('first_pages')
|
|
|
|
+ ->where('type', $request->input('type'))
|
|
|
|
+ ->update(['status' => 0, 'updated_at' => $now]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ DB::table('first_pages')
|
|
|
|
+ ->insert([
|
|
|
|
+ 'type' => $request->input('type'),
|
|
|
|
+ 'status' => $request->input('status'),
|
|
|
|
+ 'created_at' => $now,
|
|
|
|
+ 'updated_at' => $now,
|
|
|
|
+ ]);
|
|
|
|
+ return 'ok';
|
|
}
|
|
}
|
|
|
|
|
|
- public function changeStatus(Request $request) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 开启配置,一个列表类型中只允许一个配置开启
|
|
|
|
+ * @param Request $request
|
|
|
|
+ * @return string
|
|
|
|
+ * @throws \Illuminate\Validation\ValidationException
|
|
|
|
+ */
|
|
|
|
+ public function enableStatus(Request $request) {
|
|
|
|
+ $this->validate($request, ['id' => 'required']);
|
|
|
|
+ $info = DB::table('first_pages')
|
|
|
|
+ ->where('id', $request->input('id'))
|
|
|
|
+ ->first();
|
|
|
|
+ if(!$info) {
|
|
|
|
+ CommonBusinessException::throwError(Errors::OPERATION_FIRST_PAGE_LIST_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ $now = date('Y-m-d H:i:s');
|
|
|
|
+ DB::table('first_pages')
|
|
|
|
+ ->where('type', $info->type)
|
|
|
|
+ ->update(['status' => 0, 'updated_at' => $now]);
|
|
|
|
+ DB::table('first_pages')
|
|
|
|
+ ->where('id', $request->input('id'))
|
|
|
|
+ ->update(['status' => 1, 'updated_at' => $now]);
|
|
|
|
+ return 'ok';
|
|
}
|
|
}
|
|
|
|
|
|
- public function config(Request $request) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 配置剧集
|
|
|
|
+ * @param Request $request
|
|
|
|
+ * @return string
|
|
|
|
+ * @throws \Illuminate\Validation\ValidationException
|
|
|
|
+ */
|
|
|
|
+ public function setConfig(Request $request) {
|
|
|
|
+ $this->validate($request, [
|
|
|
|
+ 'id' => 'required',
|
|
|
|
+ 'duanjus' => 'nullable|array',
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ $now = date('Y-m-d H:i:s');
|
|
|
|
+ DB::table('first_pages')
|
|
|
|
+ ->where('id', $request->input('id'))
|
|
|
|
+ ->update(['duanjus' => \json_encode($request->input('duanjus', [])),
|
|
|
|
+ 'updated_at' => $now]);
|
|
|
|
|
|
|
|
+ return 'ok';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|