Skip to content

Commit

Permalink
bulletin CMS
Browse files Browse the repository at this point in the history
  • Loading branch information
Last-Order committed Nov 8, 2017
1 parent 9c8d8bf commit 2e64e93
Show file tree
Hide file tree
Showing 5 changed files with 176 additions and 1 deletion.
12 changes: 12 additions & 0 deletions app/Bulletin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Bulletin extends Model
{
protected $table = "bulletin";
protected $primaryKey = "bulletin_id";
public $timestamps = false;
}
120 changes: 120 additions & 0 deletions app/Http/Controllers/BulletinController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<?php

namespace App\Http\Controllers;

use APIReturn;
use App\Bulletin;
use Illuminate\Http\Request;

class BulletinController extends Controller
{
/**
* 获得全部公告
* @param Request $request
* @return \Illuminate\Http\JsonResponse
* @author Eridanus Sora <[email protected]>
*/
public function list(Request $request)
{
try {
return APIReturn::success(Bulletin::orderBy('bulletin_id', 'desc')->get());
} catch (\Exception $e) {
return APIReturn::error("database_error", "数据库读写错误", 500);
}
}

/**
* 创建公告
* @param Request $request
* @return \Illuminate\Http\JsonResponse
* @author Eridanus Sora <[email protected]>
*/
public function create(Request $request)
{
$validator = \Validator::make($request->only(['title', 'content']), [
'title' => 'required',
'content' => 'required'
], [
'title.required' => '缺少标题字段',
'content.required' => '缺少内容字段'
]);

if ($validator->fails()) {
return APIReturn::error('invalid_parameters', $validator->errors()->all(), 400);
}

try {
$bulletin = new Bulletin();
$bulletin->title = $request->input('title');
$bulletin->content = $request->input('content');
$bulletin->save();
return APIReturn::success($bulletin);
} catch (\Exception $e) {
dump($e);
return APIReturn::error("database_error", "数据库读写错误", 500);
}
}

/**
* 删除公告
* @param Request $request
* @return \Illuminate\Http\JsonResponse
* @author Eridanus Sora <[email protected]>
*/
public function delete(Request $request)
{
$validator = \Validator::make($request->only(['bulletinId']), [
'bulletinId' => 'required'
], [
'bulletinId.required' => '缺少公告ID字段'
]);

if ($validator->fails()) {
return APIReturn::error('invalid_parameters', $validator->errors()->all(), 400);
}

try{
$bulletin = Bulletin::find($request->input('bulletinId'));
if (!$bulletin){
return APIReturn::error("bulletin_not_found", "该公告不存在", 404);
}
$bulletin->delete();
return APIReturn::success();
}
catch (\Exception $e){
return APIReturn::error("database_error", "数据库读写错误", 500);
}
}

/**
* 修改公告
* @param Request $request
* @return \Illuminate\Http\JsonResponse
* @author Eridanus Sora <[email protected]>
*/
public function edit(Request $request){
$validator = \Validator::make($request->only(['bulletinId', 'title', 'content']), [
'bulletinId' => 'required',
'title' => 'required',
'content' => 'required'
]);

if ($validator->fails()) {
return APIReturn::error('invalid_parameters', $validator->errors()->all(), 400);
}

try{
$bulletin = Bulletin::find($request->input('bulletinId'));
if (!$bulletin){
return APIReturn::error("bulletin_not_found", "该公告不存在", 404);
}
$bulletin->title = $request->input('title');
$bulletin->content = $request->input('content');
$bulletin->save();
return APIReturn::success($bulletin);
}
catch (\Exception $e){
return APIReturn::error("database_error", "数据库读写错误", 500);
}
}
}
3 changes: 2 additions & 1 deletion app/Http/Controllers/TeamController.php
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,9 @@ public function forceResetPassword(Request $request)
*/
public function getRanking(Request $request)
{
$page = $request->input('page') ?? '1';
try {
$result = Team::where('admin', '=', '0')->orderByScore()->take(20)->get();
$result = Team::where('admin', '=', '0')->orderByScore()->skip(($page - 1) * 20)->take(20)->get();

$result->makeHidden([
'email', 'admin', 'banned', 'created_at', 'updated_at', 'lastLoginTime', 'signUpTime', 'flag', 'category_id', 'level_id', 'challenge_id', 'log_id', 'score', 'token'
Expand Down
32 changes: 32 additions & 0 deletions database/migrations/2017_11_08_134052_add_bulletin_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddBulletinTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create("bulletin", function(Blueprint $table){
$table->increments("bulletin_id");
$table->string("title");
$table->text("content");
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
10 changes: 10 additions & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,16 @@
Route::post('edit', 'SystemController@editMetaInfo');
});
});

Route::group(['prefix' => 'Bulletin'], function(){
Route::get('list', 'BulletinController@list');

Route::group(['middleware' => ['jwt.auth.mod', 'AdminCheck']], function(){
Route::post('delete', 'BulletinController@delete');
Route::post('create', 'BulletinController@create');
Route::post('edit', 'BulletinController@edit');
});
});
});

Route::get('token/{token}', 'TeamController@tokenVerify');

0 comments on commit 2e64e93

Please sign in to comment.