Commit eb357c3b authored by hangjun83's avatar hangjun83

后端:日志功能调整

parent 011ebc6b
......@@ -11,12 +11,19 @@
namespace App\Events;
class ExampleEvent extends Event
use Illuminate\Support\Facades\Event;
use Illuminate\Http\Request;
class SysLogEvent extends Event
{
public $request;
/**
* Create a new event instance.
*/
public function __construct()
public function __construct(Request $request)
{
$this->request = $request;
}
}
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace App\Http\Controllers\Middleware;
use App\Events\SysLogEvent;
use App\Repositories\Enums\ResponseCodeEnum;
use Closure;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Contracts\Auth\Factory as Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
use App\Support\Traits\Helpers;
class SysLog
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure $next
* @param string|null $guard
* @return mixed
*
* @throws AuthorizationException
*/
public function handle($request, Closure $next, $guard = null)
{
event(new SysLogEvent($request));
return $next($request);
}
}
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace App\Listeners;
use App\Events\SysLogEvent;
use App\Services\SysLogService;
use Illuminate\Contracts\Queue\ShouldQueue;
class SysLogListener
{
/**
* Handle the event.
*
* @param \App\Events\SysLogEvent $event
*/
public function handle(SysLogEvent $event)
{
app(SysLogService::class)->addSysLog($event->request);
}
}
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace App\Providers;
use Laravel\Lumen\Providers\EventServiceProvider as ServiceProvider;
class ListenersEventServiceProvider extends ServiceProvider
{
protected $listen = [
'App\Events\SysLogEvent' => [
'App\Listeners\SysLogListener',
],
];
}
......@@ -11,26 +11,37 @@
namespace App\Providers;
use App\Repositories\Eloquent\BaseRepository;
use Prettus\Repository\Contracts\RepositoryInterface;
use Prettus\Repository\Providers\LumenRepositoryServiceProvider;
class RepositoryServiceProvider extends LumenRepositoryServiceProvider
{
protected $bindsClass =
[
'App\Repositories\Contracts\UsersRepository' => 'App\Repositories\Eloquent\UsersRepositoryEloquent',
'App\Repositories\Contracts\MenusRepository' => 'App\Repositories\Eloquent\MenusRepositoryEloquent',
'App\Repositories\Contracts\RolesRepository' => 'App\Repositories\Eloquent\RolesRepositoryEloquent',
];
/**
* Bootstrap services.
*/
public function boot()
{
$this->app->bind(
\App\Repositories\Contracts\UsersRepository::class,
\App\Repositories\Eloquent\UsersRepositoryEloquent::class
);
$this->app->bind(
\App\Repositories\Contracts\MenusRepository::class,
\App\Repositories\Eloquent\MenusRepositoryEloquent::class
);
$this->app->bind(
\App\Repositories\Contracts\RolesRepository::class,
\App\Repositories\Eloquent\RolesRepositoryEloquent::class
);
$this->bindRepository();
}
protected function bindRepository()
{
if(empty($this->bindsClass)){
return ;
}
foreach($this->bindsClass as $class => $concrete){
$this->app->bind($class,$concrete);
}
}
}
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace App\Repositories\Contracts;
use Prettus\Repository\Contracts\RepositoryInterface;
/**
* Interface UserRepository.
*/
interface SysLogRepository extends RepositoryInterface
{
}
<?php
namespace App\Repositories\Eloquent;
use App\Repositories\Contracts\SysLogRepository;
use App\Repositories\Criteria\RequestCriteria;
use App\Repositories\Eloquent\BaseRepository;
use App\Repositories\Models\SysLog;
use Prettus\Validator\Contracts\ValidatorInterface;
/**
* Class UserRepositoryEloquent.
*/
class SysLogRepositoryEloquent extends BaseRepository implements SysLogRepository
{
protected $fieldSearchable = [
];
/**
* 定义validator的检索规则
* @var \string[][]
*/
public $rules = [
ValidatorInterface::RULE_CREATE => [
'menu_name' => 'required',
'title' => 'required',
'menu_path' => 'required',
'parent_id' => 'required',
'menu_type' => 'required',
'status' => 'required',
'sort' => 'required',
'is_show' => 'required',
'sys_default' => 'required'
],
ValidatorInterface::RULE_UPDATE => [
'menu_name' => 'required',
'title' => 'required',
'menu_path' => 'required',
'parent_id' => 'required',
'menu_type' => 'required',
'status' => 'required',
'sort' => 'required',
'is_show' => 'required',
'sys_default' => 'required'
]
];
/**
* Specify Model class name.
*
* @return string
*/
public function model()
{
return SysLog::class;
}
/**
* Boot up the repository, pushing criteria.
*
* @throws \Prettus\Repository\Exceptions\RepositoryException
*/
public function boot()
{
$this->pushCriteria(app(RequestCriteria::class));
}
}
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace App\Repositories\Models;
class SysLog extends Model
{
protected $table = 'sys_log';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
];
}
......@@ -94,10 +94,6 @@ class AuthService
$params['page_size'] = 10;
}
if(isset($params['type'])){
}
$this->userRepository->pushCriteria(new UserCriteria($request));
$users = $this->userRepository->paginate($params['page_size'],['id','username','nickname','email','token','is_admin','status','lastlogin','created_at','updated_at']);
$returnRecord = [];
......
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace App\Services;
use App\Repositories\Contracts\SysLogRepository;
use App\Repositories\Enums\ResponseCodeEnum;
use App\Support\Traits\Helpers;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Spatie\Permission\Models\Role;
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
use App\Repositories\Models\AdminUsers;
use Tymon\JWTAuth\Exceptions\TokenInvalidException;
class SysLogService
{
use Helpers;
protected $sysLogRepository = null;
public function __construct(SysLogRepository $sysLogRepository)
{
$this->sysLogRepository = $sysLogRepository;
}
public function addSysLog($request)
{
$requestContent = [];
$requestContent['content'] = $request->all();
//$requestContent['ip'] = $request->ip();
//$requestContent['path'] = $request->url();
}
}
......@@ -77,8 +77,8 @@ $app->configure('database');
$app->configure('filesystems');
$app->configure('logging');
$app->configure('queue');
$app->configure('services');
$app->configure('view');
//$app->configure('services');
//$app->configure('view');
$app->configure('repository');
$app->configure('enum');
$app->configure('permission');
......@@ -104,11 +104,9 @@ $app->middleware([
$app->routeMiddleware([
'permissions' => App\Http\Controllers\Middleware\Authenticate::class,
//'userRole' => App\Http\Middleware\UserPermissionMiddleware::class,
'syslog' => App\Http\Controllers\Middleware\SysLog::class,
//'enum' => \Jiannei\Enum\Laravel\Http\Middleware\TransformEnums::class,
//'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
//'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'throttle' => \Jiannei\Response\Laravel\Http\Middleware\ThrottleRequests::class,
//'throttle' => \Jiannei\Response\Laravel\Http\Middleware\ThrottleRequests::class,
]);
/*
......@@ -128,6 +126,7 @@ $app->routeMiddleware([
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
$app->register(App\Providers\RepositoryServiceProvider::class);
//$app->register(App\Providers\ListenersEventServiceProvider::class);
//$app->register(App\Providers\EventServiceProvider::class);
/*
......
......@@ -124,6 +124,7 @@ return [
'query' => [
'enabled' => env('LOG_QUERY', false),
'message' => 'db_query',
// Only record queries that are slower than the following time
// Unit: milliseconds
'slower_than' => 0,
......@@ -131,5 +132,6 @@ return [
'request' => [
'enabled' => env('LOG_REQUEST', false),
'message' => 'http_request',
],
];
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSysLogTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('sys_log', function (Blueprint $table) {
$table->id();
$table->string('path')->comment('请求路径');
$table->string('ip')->comment('请求ip');
$table->longText('content')->comment('请求内容');
$table->string('type')->comment('请求类型');
$table->timestamp('date')->comment('请求时间');
$table->unsignedTinyInteger('create_by')->comment('创建人');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('sys_log');
}
}
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It is a breeze. Simply tell Lumen the URIs it should respond to
| and give it the Closure to call when that URI is requested.
|
*/
$api->version('v1', function($api) {
$api->group(['namespace'=>'App\Http\Controllers\V1','middleware' => ['api.auth','permissions'], 'providers' => 'jwt'], function($api) {
// 百化采购订单
$api->get('/adminapi/tools/bh/searchBhPorders', ['permission' => 'tools.bh.order.search', 'uses'=>'BhOrdersController@searchPorders']);
$api->post('/adminapi/tools/bh/editBhPorders', ['permission' => 'tools.bh.order.edit', 'uses'=>'BhOrdersController@editBhPorders']);
// 百化销售订单
$api->post('/adminapi/tools/bh/addSorderRefundTask', ['permission' => 'tools.bh.order.add', 'uses'=>'BhOrdersController@addSorderRefundTask']);
$api->post('/adminapi/tools/bh/getBhSordersDetail', ['permission' => 'tools.bh.order.search', 'uses'=>'BhOrdersController@getBhSordersDetail']);
$api->get('/adminapi/tools/bh/getBhSorderRefundTask', ['permission' => 'tools.bh.order.search', 'uses'=>'BhOrdersController@getBhSorderRefundTaskToPage']);
$api->post('/adminapi/tools/bh/execBhSorderRefundTask', ['permission' => 'tools.bh.order.search', 'uses'=>'BhOrdersController@execBhSorderRefundTask']);
});
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment