作者 Your Name

Merge branch 'dev' of http://47.244.231.31:8099/zhl/globalso-v6 into dev

<?php
namespace App\Http\Controllers\Aside;
use App\Enums\Common\Code;
use App\Models\Project as ProjectModel;
/**
* @name:项目信息
*/
class ProjectController extends BaseController
{
/**
* @name :项目列表
* @return void
* @author :liyuhang
* @method
*/
public function lists(){
$projectModel = new ProjectModel();
$lists = $projectModel->lists($this->map,$this->p,$this->row,$this->order);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @name :添加项目
* @return void
* @author :liyuhang
* @method
*/
public function add(){
$projectModel = new ProjectModel();
}
}
... ... @@ -5,7 +5,7 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Helper\Common;
use App\Http\Controllers\Controller;
use App\Models\User\User;
use App\Models\User\User as UserModel;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Exceptions\HttpResponseException;
... ... @@ -155,12 +155,16 @@ class BaseController extends Controller
$data[$k] = '';
continue;
}
//获取操作人
switch ((string) $k) {
case 'image':
$data['image_link'] = url('/b/image/' . $v);
break;
case 'operator_id':
$data['operator_name'] = '1111';
if(!empty($v)){
$name = $this->get_name(['operator_id'=>$v]);
$data['operator_name'] = isset($name) && !empty($name) ? $name : '无名称';
}
break;
}
... ... @@ -168,7 +172,17 @@ class BaseController extends Controller
}
return $data;
}
/**
* @name :获取操作人名称
* @return void
* @author :liyuhang
* @method
*/
public function get_name($data){
$user = new UserModel();
$info = $user->read($data,['name']);
return $info['name'];
}
/**
* @name :写入操作日志
* @return void
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Http;
use App\Http\Middleware\AccessToken;
use App\Http\Middleware\Aside\BlackListMiddleware as AsideBlackListMiddleware;
use App\Http\Middleware\Aside\ManageLogMiddleware;
use App\Http\Middleware\Aside\ParamMiddleware as AsideParamMiddleware;
use App\Http\Middleware\Bside\BlackListMiddleware as BsideBlackListMiddleware;
use App\Http\Middleware\Bside\ParamMiddleware as BsideParamMiddleware;
... ... @@ -59,7 +60,9 @@ class Kernel extends HttpKernel
//黑名单处理中间件
AsideBlackListMiddleware::class,
//防重复调用接口
PreventRepeatQuitCallMiddleware::class
PreventRepeatQuitCallMiddleware::class,
//操作日志中间件
ManageLogMiddleware::class,
],
//B端中间件组
'bside'=>[
... ...
... ... @@ -11,8 +11,8 @@ class ProjectLogic extends BaseLogic
public function __construct()
{
parent::__construct();
$this->model = new Project();
$this->param = $this->requestAll;
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Middleware\Aside;
use App\Enums\Common\Code;
use App\Http\Logic\Aside\LoginLogic;
use App\Models\Manage\Group;
use App\Models\Manage\Manage;
use App\Models\Manage\Menu;
... ... @@ -23,8 +24,7 @@ class LoginAuthMiddleware
*/
public function handle(Request $request, Closure $next)
{
$manage = Session::get('manage');
$manage = LoginLogic::manage();
if (!$manage) {
if($request->ajax()){
return response(['status'=> Code::USER_ERROR,'msg'=>'当前用户未登录']);
... ... @@ -33,9 +33,6 @@ class LoginAuthMiddleware
}
}
//权限
$manage['id'] = 2;
$manage['gid'] = 1;
if($manage['id'] != Manage::ADMINISTRATOR_ID){ //排除超级管理员
$route = Route::getCurrentRoute()->getName();
if(!Str::endsWith($route, '.white')){ //排除白名单路由
... ...
<?php
namespace App\Http\Middleware\Aside;
use App\Models\Manage\ManageLog;
use Closure;
use Illuminate\Http\Request;
class ManageLogMiddleware
{
/**
* @param Request $request
* @param Closure $next
* @return mixed
* @author zbj
* @date 2023/4/25
*/
public function handle(Request $request, Closure $next)
{
if ($request->isMethod('post')) {
ManageLog::record();
}
return $next($request);
}
}
... ...
<?php
namespace App\Http\Requests\Aside\Project;
use Illuminate\Foundation\Http\FormRequest;
/**
* Class ProjectRequest
* @package App\Http\Requests\Aside\product
* @author zbj
* @date 2023/4/25
*/
class ProjectRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title'=>'required|max:50',
'remark'=>'max:200',
];
}
public function messages()
{
return [
'title.required' => '请输入部门名称',
'title.max' => '部门名称不能超过50个字符',
'remark.max' => '备注不能超过200个字符',
];
}
}
... ...
<?php
namespace App\Models\Manage;
use App\Helper\Arr;
use App\Http\Logic\Aside\LoginLogic;
use App\Models\Base;
class ManageLog extends Base
{
//设置关联表名
protected $table = 'gl_manage_log';
const UPDATED_AT = null;
/**
* 操作日志
* @author zbj
* @date 2023/4/25
*/
public static function record(){
$route_name = request()->route()->getName();
$menu = Menu::getByRouteName($route_name);
$log = new self();
$log->title = $menu ? $menu['title'] : '';
$log->manage_id = LoginLogic::manage('id');
$log->route_name = request()->route()->getName();
$log->action = request()->path();
$log->method = request()->method();
$log->url = request()->url();
$log->param = Arr::a2s(request()->all());
$log->ip = request()->ip();
$log->user_agent = request()->server('HTTP_USER_AGENT');
$log->save();
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Models\Manage;
use App\Models\Base;
use Illuminate\Support\Facades\Cache;
class Menu extends Base
{
... ... @@ -37,4 +38,22 @@ class Menu extends Base
self::TYPE_DELETE => '删除',
];
}
/**
* @param $route_name
* @return mixed
* @author zbj
* @date 2023/4/25
*/
public static function getByRouteName($route_name){
$cache_key = 'manage_menu_'.$route_name;
$data = Cache::get($cache_key);
if(!$data){
$data = self::where('route_name', $route_name)->first();
if($data){
Cache::put($cache_key, $data);
}
}
return $data;
}
}
... ...
... ... @@ -2,34 +2,30 @@
namespace App\Models;
use Illuminate\Support\Facades\DB;
use App\Models\Devops\ServerConfig;
class Project extends Base
{
//设置关联表名
protected $table = 'gl_project';
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
protected $dateFormat = 'Y-m-d';
const DATABASE_NAME_FIX = 'globalso_project_';
/**
* @name:获取当前对象不分页列表
* 星级客户
* @return string[]
* @author zbj
* @date 2023/4/25
*/
public function page_lists(){
$lists = DB::table($this->table)->select(['*'])->where($this->map)->orderBy($this->order)->get();
return $lists;
}
/**
* 通过ID获取项目信息
* @param $id
* @return self
*/
public static function getProjectById($id)
public static function levelMap()
{
return self::where(['id' => $id])->first();
return [
1 => '★★★Ads-Customer',
2 => '暂停优化',
3 => '告知书一',
4 => '告知书二',
5 => 'Q告知书二',
];
}
/**
... ...
... ... @@ -121,14 +121,4 @@ class User extends Base
return true;
}
/**
* @name :获取操作人名称
* @return void
* @author :liyuhang
* @method
*/
public function get_name($data){
$info = $this->read(['operator_id'=>$data['operator_id']],['name']);
return $info;
}
}
... ...
... ... @@ -44,7 +44,9 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
//项目管理
Route::prefix('project')->group(function () {
Route::get('/', [Aside\Project\ProjectController::class, 'list'])->name('admin.project');
Route::get('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info');
Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save');
});
//运维
... ...