Files
NEUP-FleaMarket/app/Http/Controllers/AdminController.php
T

206 lines
6.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Validator;
use App\GoodCat;
use App\GoodInfo;
use App\User;
use App\Announcement;
use App\Http\Controllers\Controller;
use App\Ticket;
use JsonRpcClient;
use App\Transaction;
use Mews\Purifier\Purifier;
class AdminController extends Controller
{
/**
* @function AdminController@adminIndex
* @input Request $request
* @return View
* @description The Index of administrator.
*/
public function adminIndex(Request $request)
{
$data = [];
$data['goods'] = GoodInfo::where('baned', '1')->orderby('id', 'asc')->get();
$data['users'] = User::orderby('id', 'asc')->get();
$data['cats'] = GoodCat::orderby('cat_name', 'asc')->get();
$data['announcements'] = Announcement::orderby('id', 'dsc')->get();
$data['reports'] = Ticket::where('type', '2')->orderby('id', 'dsc')->paginate(40);
$data['users'] = User::orderby('id', 'asc')->paginate(40);
$data['trans'] = Transaction::orderby('id', 'asc')->paginate(40);
return View::make('admin.index')->with($data);
}
/**
* @function AdminController@checkGood
* @input Request $request, $good_id
* @return Redirect
* @description Check a specify good.
*/
public function checkGood(Request $request, $good_id)
{
$good = GoodInfo::find($good_id);
$good->baned = 0;
$good->update();
return Redirect::to('/admin');
}
/**
* @function AdminController@updateUserPriv
* @input Request $request, $user_id
* @return Redirect
* @description Update the priviledge of a specify user.
*/
public function updateUserPriv(Request $request, $user_id)
{
$input = $request->all();
$user = User::find($user_id);
$user->privilege = $input['privilege'];
$user->update();
return Redirect::to('/admin');
}
/**
* @function AdminController@updateUserRole
* @input Request $request, $user_id
* @return Redirect
* @description Update the role id of a specify user.
*/
public function updateUserRole(Request $request, $user_id)
{
$input = $request->all();
$user = User::find($user_id);
$user->role_id = $input['role_id'];
$user->update();
return Redirect::to('/admin');
}
/**
* @function AdminController@addCategory
* @input Request $request
* @return Redirect
* @description Add a new category.
*/
public function addCategory(Request $request)
{
$input = $request->all();
$cat = new GoodCat;
$cat->cat_name = $input['cat_name'];
$cat->save();
return Redirect::to('/admin');
}
/**
* @function AdminController@deleteCategory
* @input Request $request, $cat_id
* @return Redirect
* @description Delete a specify category.
*/
public function deleteCategory(Request $request, $cat_id)
{
$cat = GoodCat::find($cat_id);
$cat->delete();
return Redirect::to('/admin');
}
/**
* @function AdminController@editCategory
* @input Request $request, $cat_id
* @return Redirect
* @description Edit a specify category.
*/
public function editCategory(Request $request, $cat_id)
{
$input = $request->all();
$cat = GoodCat::find($cat_id);
$cat->cat_name = $input['cat_name'];
$cat->update();
return Redirect::to('/admin');
}
/**
* @function AdminController@sendAnnouncement
* @input Request $request
* @return View
* @description admin send annoucement.
*/
public function sendAnnouncement(Request $request)
{
$input = $request->all();
$announcement = new Announcement;
$announcement->title = $input['title'];
$announcement->content = clean($input['content']);
$announcement->save();
return Redirect::to('/admin');
}
public function delAnnouncement(Request $request, $ann_id)
{
$ann = Announcement::find($ann_id);
$ann->delete();
return Redirect::to('/admin');
}
public function assignReport(Request $request, $repo_id)
{
$user_id = $request->session()->get('user_id');
$repo = Ticket::find($repo_id);
$repo->assignee = $user_id;
$repo->state = 0;
$repo->save();
$result = MessageController::sendMessageHandle($user_id, $repo->sender_id, "【系统消息】您好!您的举报(编号:" . $repo_id . ")已由管理员(ID: " . $user_id . ")受理。请协助管理员核实举报具体细节。");
$result = json_decode($result);
if($result->result)
return Redirect::to('/message');
else
return View::make('common.errorPage')->withErrors($result->msg);
}
public function solveReport(Request $request, $repo_id)
{
$input = $request->all();
$repo = Ticket::find($repo_id);
if($repo->assignee == $request->session()->get('user_id')) {
$repo->state = $input['setstate'];
$repo->update();
}
return Redirect::to('/admin');
}
// This part gonna work with https://github.com/NEUP-Net-Depart/email-daemon/
public function testEmail(Request $request)
{
$conn = new JsonRpcClient("127.0.0.1", 65525);
$mailSettings = [];
$mailSettings["Body"] = view('auth.checkLetter')->with(['host' => $request->server("HTTP_HOST"), 'token' => "sometesttokenhhhh"])->render();
$mailSettings["To"] = "wangkule@cool2645.com";
$mailSettings["FromName"] = "先锋市场";
$mailSettings["Subject"] = "PHP 邮件测试";
$mailSettings["SendID"] = "notify";
$response = $conn->Call("Daemon.SendMail", $mailSettings);
return $response;
}
/**
* @function AdminController@getAnnouncement
* @input Request $request
* @return Redirect
* @description a function get announcement
*/
/* public function getAnnouncement(Request $request)
{
$data = [];
$data['announcements'] = Announcement::Orderby('id','dsc')->get();
return View::make('admin.announcement')->with($data);
} */
}