正在显示
11 个修改的文件
包含
213 行增加
和
60 行删除
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Controllers\Aside\Project; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use App\Http\Controllers\Aside\BaseController; | ||
| 7 | +use App\Http\Logic\Aside\Project\ProjectLogic; | ||
| 8 | +use App\Http\Requests\Aside\Project\ProjectRequest; | ||
| 9 | +use App\Rules\Ids; | ||
| 10 | +use Illuminate\Http\Request; | ||
| 11 | + | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * 项目管理 | ||
| 15 | + * Class ProjectController | ||
| 16 | + * @package App\Http\Controllers\Aside\Project | ||
| 17 | + * @author zbj | ||
| 18 | + * @date 2023/4/25 | ||
| 19 | + */ | ||
| 20 | +class ProjectController extends BaseController | ||
| 21 | +{ | ||
| 22 | + | ||
| 23 | + public function list(ProjectLogic $logic) | ||
| 24 | + { | ||
| 25 | + $map = []; | ||
| 26 | + if(!empty($this->param['search'])){ | ||
| 27 | + $map[] = ['title', 'like', "%{$this->param['search']}%"]; | ||
| 28 | + } | ||
| 29 | + $sort = ['id' => 'desc']; | ||
| 30 | + $data = $logic->getList($map, $sort); | ||
| 31 | + | ||
| 32 | + return view("admin.project", ["list" => $data]); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + public function info(Request $request, ProjectLogic $logic){ | ||
| 36 | + $request->validate([ | ||
| 37 | + 'id'=>'required' | ||
| 38 | + ],[ | ||
| 39 | + 'id.required' => 'ID不能为空' | ||
| 40 | + ]); | ||
| 41 | + $data = $logic->getInfo($this->param['id']); | ||
| 42 | + return $this->success(Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark'])); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + public function save(ProjectRequest $request, ProjectLogic $logic) | ||
| 46 | + { | ||
| 47 | + $data = $logic->save($this->param); | ||
| 48 | + return $this->success($data); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + public function delete(Request $request, ProjectLogic $logic) | ||
| 52 | + { | ||
| 53 | + $request->validate([ | ||
| 54 | + 'ids'=>['required', new Ids()] | ||
| 55 | + ],[ | ||
| 56 | + 'ids.required' => 'ID不能为空' | ||
| 57 | + ]); | ||
| 58 | + | ||
| 59 | + $data = $logic->delete($this->param['ids']); | ||
| 60 | + return $this->success($data); | ||
| 61 | + } | ||
| 62 | +} |
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace App\Http\Controllers\Aside; | ||
| 4 | - | ||
| 5 | -use App\Enums\Common\Code; | ||
| 6 | - | ||
| 7 | -use App\Models\Project as ProjectModel; | ||
| 8 | - | ||
| 9 | -/** | ||
| 10 | - * @name:项目信息 | ||
| 11 | - */ | ||
| 12 | -class ProjectController extends BaseController | ||
| 13 | -{ | ||
| 14 | - /** | ||
| 15 | - * @name :项目列表 | ||
| 16 | - * @return void | ||
| 17 | - * @author :liyuhang | ||
| 18 | - * @method | ||
| 19 | - */ | ||
| 20 | - public function lists(){ | ||
| 21 | - $projectModel = new ProjectModel(); | ||
| 22 | - $lists = $projectModel->lists($this->map,$this->p,$this->row,$this->order); | ||
| 23 | - $this->response('success',Code::SUCCESS,$lists); | ||
| 24 | - } | ||
| 25 | - | ||
| 26 | - /** | ||
| 27 | - * @name :添加项目 | ||
| 28 | - * @return void | ||
| 29 | - * @author :liyuhang | ||
| 30 | - * @method | ||
| 31 | - */ | ||
| 32 | - public function add(){ | ||
| 33 | - $projectModel = new ProjectModel(); | ||
| 34 | - } | ||
| 35 | -} |
| @@ -4,6 +4,7 @@ namespace App\Http; | @@ -4,6 +4,7 @@ namespace App\Http; | ||
| 4 | 4 | ||
| 5 | use App\Http\Middleware\AccessToken; | 5 | use App\Http\Middleware\AccessToken; |
| 6 | use App\Http\Middleware\Aside\BlackListMiddleware as AsideBlackListMiddleware; | 6 | use App\Http\Middleware\Aside\BlackListMiddleware as AsideBlackListMiddleware; |
| 7 | +use App\Http\Middleware\Aside\ManageLogMiddleware; | ||
| 7 | use App\Http\Middleware\Aside\ParamMiddleware as AsideParamMiddleware; | 8 | use App\Http\Middleware\Aside\ParamMiddleware as AsideParamMiddleware; |
| 8 | use App\Http\Middleware\Bside\BlackListMiddleware as BsideBlackListMiddleware; | 9 | use App\Http\Middleware\Bside\BlackListMiddleware as BsideBlackListMiddleware; |
| 9 | use App\Http\Middleware\Bside\ParamMiddleware as BsideParamMiddleware; | 10 | use App\Http\Middleware\Bside\ParamMiddleware as BsideParamMiddleware; |
| @@ -59,7 +60,9 @@ class Kernel extends HttpKernel | @@ -59,7 +60,9 @@ class Kernel extends HttpKernel | ||
| 59 | //黑名单处理中间件 | 60 | //黑名单处理中间件 |
| 60 | AsideBlackListMiddleware::class, | 61 | AsideBlackListMiddleware::class, |
| 61 | //防重复调用接口 | 62 | //防重复调用接口 |
| 62 | - PreventRepeatQuitCallMiddleware::class | 63 | + PreventRepeatQuitCallMiddleware::class, |
| 64 | + //操作日志中间件 | ||
| 65 | + ManageLogMiddleware::class, | ||
| 63 | ], | 66 | ], |
| 64 | //B端中间件组 | 67 | //B端中间件组 |
| 65 | 'bside'=>[ | 68 | 'bside'=>[ |
| @@ -11,8 +11,8 @@ class ProjectLogic extends BaseLogic | @@ -11,8 +11,8 @@ class ProjectLogic extends BaseLogic | ||
| 11 | public function __construct() | 11 | public function __construct() |
| 12 | { | 12 | { |
| 13 | parent::__construct(); | 13 | parent::__construct(); |
| 14 | + | ||
| 14 | $this->model = new Project(); | 15 | $this->model = new Project(); |
| 15 | - $this->param = $this->requestAll; | ||
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | } | 18 | } |
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | namespace App\Http\Middleware\Aside; | 3 | namespace App\Http\Middleware\Aside; |
| 4 | 4 | ||
| 5 | use App\Enums\Common\Code; | 5 | use App\Enums\Common\Code; |
| 6 | +use App\Http\Logic\Aside\LoginLogic; | ||
| 6 | use App\Models\Manage\Group; | 7 | use App\Models\Manage\Group; |
| 7 | use App\Models\Manage\Manage; | 8 | use App\Models\Manage\Manage; |
| 8 | use App\Models\Manage\Menu; | 9 | use App\Models\Manage\Menu; |
| @@ -23,8 +24,7 @@ class LoginAuthMiddleware | @@ -23,8 +24,7 @@ class LoginAuthMiddleware | ||
| 23 | */ | 24 | */ |
| 24 | public function handle(Request $request, Closure $next) | 25 | public function handle(Request $request, Closure $next) |
| 25 | { | 26 | { |
| 26 | - $manage = Session::get('manage'); | ||
| 27 | - | 27 | + $manage = LoginLogic::manage(); |
| 28 | if (!$manage) { | 28 | if (!$manage) { |
| 29 | if($request->ajax()){ | 29 | if($request->ajax()){ |
| 30 | return response(['status'=> Code::USER_ERROR,'msg'=>'当前用户未登录']); | 30 | return response(['status'=> Code::USER_ERROR,'msg'=>'当前用户未登录']); |
| @@ -33,9 +33,6 @@ class LoginAuthMiddleware | @@ -33,9 +33,6 @@ class LoginAuthMiddleware | ||
| 33 | } | 33 | } |
| 34 | } | 34 | } |
| 35 | //权限 | 35 | //权限 |
| 36 | - $manage['id'] = 2; | ||
| 37 | - $manage['gid'] = 1; | ||
| 38 | - | ||
| 39 | if($manage['id'] != Manage::ADMINISTRATOR_ID){ //排除超级管理员 | 36 | if($manage['id'] != Manage::ADMINISTRATOR_ID){ //排除超级管理员 |
| 40 | $route = Route::getCurrentRoute()->getName(); | 37 | $route = Route::getCurrentRoute()->getName(); |
| 41 | if(!Str::endsWith($route, '.white')){ //排除白名单路由 | 38 | if(!Str::endsWith($route, '.white')){ //排除白名单路由 |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Middleware\Aside; | ||
| 4 | + | ||
| 5 | +use App\Models\Manage\ManageLog; | ||
| 6 | +use Closure; | ||
| 7 | +use Illuminate\Http\Request; | ||
| 8 | + | ||
| 9 | +class ManageLogMiddleware | ||
| 10 | +{ | ||
| 11 | + /** | ||
| 12 | + * @param Request $request | ||
| 13 | + * @param Closure $next | ||
| 14 | + * @return mixed | ||
| 15 | + * @author zbj | ||
| 16 | + * @date 2023/4/25 | ||
| 17 | + */ | ||
| 18 | + public function handle(Request $request, Closure $next) | ||
| 19 | + { | ||
| 20 | + if ($request->isMethod('post')) { | ||
| 21 | + ManageLog::record(); | ||
| 22 | + } | ||
| 23 | + return $next($request); | ||
| 24 | + } | ||
| 25 | +} |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Requests\Aside\Project; | ||
| 4 | + | ||
| 5 | +use Illuminate\Foundation\Http\FormRequest; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * Class ProjectRequest | ||
| 9 | + * @package App\Http\Requests\Aside\product | ||
| 10 | + * @author zbj | ||
| 11 | + * @date 2023/4/25 | ||
| 12 | + */ | ||
| 13 | +class ProjectRequest extends FormRequest | ||
| 14 | +{ | ||
| 15 | + /** | ||
| 16 | + * Determine if the user is authorized to make this request. | ||
| 17 | + * | ||
| 18 | + * @return bool | ||
| 19 | + */ | ||
| 20 | + public function authorize() | ||
| 21 | + { | ||
| 22 | + return true; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * Get the validation rules that apply to the request. | ||
| 27 | + * | ||
| 28 | + * @return array | ||
| 29 | + */ | ||
| 30 | + public function rules() | ||
| 31 | + { | ||
| 32 | + return [ | ||
| 33 | + 'title'=>'required|max:50', | ||
| 34 | + 'remark'=>'max:200', | ||
| 35 | + ]; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + public function messages() | ||
| 39 | + { | ||
| 40 | + return [ | ||
| 41 | + 'title.required' => '请输入部门名称', | ||
| 42 | + 'title.max' => '部门名称不能超过50个字符', | ||
| 43 | + 'remark.max' => '备注不能超过200个字符', | ||
| 44 | + ]; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | +} |
app/Models/Manage/ManageLog.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Models\Manage; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use App\Http\Logic\Aside\LoginLogic; | ||
| 7 | +use App\Models\Base; | ||
| 8 | + | ||
| 9 | +class ManageLog extends Base | ||
| 10 | +{ | ||
| 11 | + //设置关联表名 | ||
| 12 | + protected $table = 'gl_manage_log'; | ||
| 13 | + | ||
| 14 | + const UPDATED_AT = null; | ||
| 15 | + | ||
| 16 | + /** | ||
| 17 | + * 操作日志 | ||
| 18 | + * @author zbj | ||
| 19 | + * @date 2023/4/25 | ||
| 20 | + */ | ||
| 21 | + public static function record(){ | ||
| 22 | + $route_name = request()->route()->getName(); | ||
| 23 | + $menu = Menu::getByRouteName($route_name); | ||
| 24 | + | ||
| 25 | + $log = new self(); | ||
| 26 | + $log->title = $menu ? $menu['title'] : ''; | ||
| 27 | + $log->manage_id = LoginLogic::manage('id'); | ||
| 28 | + $log->route_name = request()->route()->getName(); | ||
| 29 | + $log->action = request()->path(); | ||
| 30 | + $log->method = request()->method(); | ||
| 31 | + $log->url = request()->url(); | ||
| 32 | + $log->param = Arr::a2s(request()->all()); | ||
| 33 | + $log->ip = request()->ip(); | ||
| 34 | + $log->user_agent = request()->server('HTTP_USER_AGENT'); | ||
| 35 | + $log->save(); | ||
| 36 | + } | ||
| 37 | +} |
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | namespace App\Models\Manage; | 3 | namespace App\Models\Manage; |
| 4 | 4 | ||
| 5 | use App\Models\Base; | 5 | use App\Models\Base; |
| 6 | +use Illuminate\Support\Facades\Cache; | ||
| 6 | 7 | ||
| 7 | class Menu extends Base | 8 | class Menu extends Base |
| 8 | { | 9 | { |
| @@ -37,4 +38,22 @@ class Menu extends Base | @@ -37,4 +38,22 @@ class Menu extends Base | ||
| 37 | self::TYPE_DELETE => '删除', | 38 | self::TYPE_DELETE => '删除', |
| 38 | ]; | 39 | ]; |
| 39 | } | 40 | } |
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * @param $route_name | ||
| 44 | + * @return mixed | ||
| 45 | + * @author zbj | ||
| 46 | + * @date 2023/4/25 | ||
| 47 | + */ | ||
| 48 | + public static function getByRouteName($route_name){ | ||
| 49 | + $cache_key = 'manage_menu_'.$route_name; | ||
| 50 | + $data = Cache::get($cache_key); | ||
| 51 | + if(!$data){ | ||
| 52 | + $data = self::where('route_name', $route_name)->first(); | ||
| 53 | + if($data){ | ||
| 54 | + Cache::put($cache_key, $data); | ||
| 55 | + } | ||
| 56 | + } | ||
| 57 | + return $data; | ||
| 58 | + } | ||
| 40 | } | 59 | } |
| @@ -2,34 +2,30 @@ | @@ -2,34 +2,30 @@ | ||
| 2 | 2 | ||
| 3 | namespace App\Models; | 3 | namespace App\Models; |
| 4 | 4 | ||
| 5 | -use Illuminate\Support\Facades\DB; | 5 | +use App\Models\Devops\ServerConfig; |
| 6 | 6 | ||
| 7 | class Project extends Base | 7 | class Project extends Base |
| 8 | { | 8 | { |
| 9 | //设置关联表名 | 9 | //设置关联表名 |
| 10 | protected $table = 'gl_project'; | 10 | protected $table = 'gl_project'; |
| 11 | - //自动维护create_at创建时间 updated_at修改时间 | ||
| 12 | - public $timestamps = true; | ||
| 13 | - protected $dateFormat = 'Y-m-d'; | ||
| 14 | 11 | ||
| 15 | const DATABASE_NAME_FIX = 'globalso_project_'; | 12 | const DATABASE_NAME_FIX = 'globalso_project_'; |
| 16 | 13 | ||
| 17 | /** | 14 | /** |
| 18 | - * @name:获取当前对象不分页列表 | 15 | + * 星级客户 |
| 16 | + * @return string[] | ||
| 17 | + * @author zbj | ||
| 18 | + * @date 2023/4/25 | ||
| 19 | */ | 19 | */ |
| 20 | - public function page_lists(){ | ||
| 21 | - $lists = DB::table($this->table)->select(['*'])->where($this->map)->orderBy($this->order)->get(); | ||
| 22 | - return $lists; | ||
| 23 | - } | ||
| 24 | - | ||
| 25 | - /** | ||
| 26 | - * 通过ID获取项目信息 | ||
| 27 | - * @param $id | ||
| 28 | - * @return self | ||
| 29 | - */ | ||
| 30 | - public static function getProjectById($id) | 20 | + public static function levelMap() |
| 31 | { | 21 | { |
| 32 | - return self::where(['id' => $id])->first(); | 22 | + return [ |
| 23 | + 1 => '★★★Ads-Customer', | ||
| 24 | + 2 => '暂停优化', | ||
| 25 | + 3 => '告知书一', | ||
| 26 | + 4 => '告知书二', | ||
| 27 | + 5 => 'Q告知书二', | ||
| 28 | + ]; | ||
| 33 | } | 29 | } |
| 34 | 30 | ||
| 35 | /** | 31 | /** |
| @@ -44,7 +44,9 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w | @@ -44,7 +44,9 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w | ||
| 44 | 44 | ||
| 45 | //项目管理 | 45 | //项目管理 |
| 46 | Route::prefix('project')->group(function () { | 46 | Route::prefix('project')->group(function () { |
| 47 | - | 47 | + Route::get('/', [Aside\Project\ProjectController::class, 'list'])->name('admin.project'); |
| 48 | + Route::get('/info', [Aside\Project\ProjectController::class, 'info'])->name('admin.project_info'); | ||
| 49 | + Route::post('/save', [Aside\Project\ProjectController::class, 'save'])->name('admin.project_save'); | ||
| 48 | }); | 50 | }); |
| 49 | 51 | ||
| 50 | //运维 | 52 | //运维 |
-
请 注册 或 登录 后发表评论