作者 Your Name

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

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 -}  
@@ -5,7 +5,7 @@ namespace App\Http\Controllers\Bside; @@ -5,7 +5,7 @@ namespace App\Http\Controllers\Bside;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Helper\Common; 6 use App\Helper\Common;
7 use App\Http\Controllers\Controller; 7 use App\Http\Controllers\Controller;
8 -use App\Models\User\User; 8 +use App\Models\User\User as UserModel;
9 use Illuminate\Http\JsonResponse; 9 use Illuminate\Http\JsonResponse;
10 use Illuminate\Http\Request; 10 use Illuminate\Http\Request;
11 use Illuminate\Http\Exceptions\HttpResponseException; 11 use Illuminate\Http\Exceptions\HttpResponseException;
@@ -155,12 +155,16 @@ class BaseController extends Controller @@ -155,12 +155,16 @@ class BaseController extends Controller
155 $data[$k] = ''; 155 $data[$k] = '';
156 continue; 156 continue;
157 } 157 }
  158 + //获取操作人
158 switch ((string) $k) { 159 switch ((string) $k) {
159 case 'image': 160 case 'image':
160 $data['image_link'] = url('/b/image/' . $v); 161 $data['image_link'] = url('/b/image/' . $v);
161 break; 162 break;
162 case 'operator_id': 163 case 'operator_id':
163 - $data['operator_name'] = '1111'; 164 + if(!empty($v)){
  165 + $name = $this->get_name(['operator_id'=>$v]);
  166 + $data['operator_name'] = isset($name) && !empty($name) ? $name : '无名称';
  167 + }
164 break; 168 break;
165 169
166 } 170 }
@@ -168,7 +172,17 @@ class BaseController extends Controller @@ -168,7 +172,17 @@ class BaseController extends Controller
168 } 172 }
169 return $data; 173 return $data;
170 } 174 }
171 - 175 + /**
  176 + * @name :获取操作人名称
  177 + * @return void
  178 + * @author :liyuhang
  179 + * @method
  180 + */
  181 + public function get_name($data){
  182 + $user = new UserModel();
  183 + $info = $user->read($data,['name']);
  184 + return $info['name'];
  185 + }
172 /** 186 /**
173 * @name :写入操作日志 187 * @name :写入操作日志
174 * @return void 188 * @return void
@@ -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 +}
  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 /**
@@ -121,14 +121,4 @@ class User extends Base @@ -121,14 +121,4 @@ class User extends Base
121 return true; 121 return true;
122 } 122 }
123 123
124 - /**  
125 - * @name :获取操作人名称  
126 - * @return void  
127 - * @author :liyuhang  
128 - * @method  
129 - */  
130 - public function get_name($data){  
131 - $info = $this->read(['operator_id'=>$data['operator_id']],['name']);  
132 - return $info;  
133 - }  
134 } 124 }
@@ -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 //运维