From c07ecdb8e2c656f4bd0f5cb3c226c789e9b9e8b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E4=B8=91=E8=B7=AF=E4=BA=BA?= <2278757482@qq.com>
Date: Tue, 5 Jan 2021 10:13:28 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E6=8C=89=E7=85=A7=E6=97=A5=E5=BF=97?=
=?UTF-8?q?=E7=9A=84=E8=AF=B7=E6=B1=82=E7=B1=BB=E5=9E=8B=E6=9D=A5=E8=8E=B7?=
=?UTF-8?q?=E5=8F=96=E5=AF=B9=E5=BA=94=E7=9A=84=E7=BB=9F=E8=AE=A1=E5=9B=BE?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=9ACache=E7=BC=93=E5=AD=98=EF=BC=88?=
=?UTF-8?q?=E6=97=A0=E8=AE=B0=E5=BD=95=E6=97=B6=EF=BC=8C=E4=B8=8B=E4=B8=80?=
=?UTF-8?q?=E6=AC=A1=E8=87=AA=E5=8A=A8=E6=89=A9=E5=A4=A7=E6=97=B6=E9=97=B4?=
=?UTF-8?q?=E9=97=B4=E9=9A=94=E7=9B=B4=E8=87=B3=E6=9C=89=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E4=B8=BA=E6=AD=A2=EF=BC=8C=E5=8F=AF=E4=BB=A5=E7=9B=B4=E8=A7=82?=
=?UTF-8?q?=E7=9C=8B=E5=88=B0=E6=9C=89=E6=95=88=E6=95=B0=E6=8D=AE=E3=80=82?=
=?UTF-8?q?=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Modules/Admin/Services/IndexService.php | 120 +++++++++++---------
1 file changed, 65 insertions(+), 55 deletions(-)
diff --git a/app/Modules/Admin/Services/IndexService.php b/app/Modules/Admin/Services/IndexService.php
index 1686721..d41e49a 100644
--- a/app/Modules/Admin/Services/IndexService.php
+++ b/app/Modules/Admin/Services/IndexService.php
@@ -7,6 +7,7 @@ use App\Modules\Admin\Entities\Log\AdminLog;
use App\Modules\Admin\Entities\Rabc\Admin;
use App\Modules\Admin\Entities\System\Banner;
use App\Modules\Admin\Entities\System\Friendlink;
+use Illuminate\Support\Facades\Cache;
class IndexService extends BaseService
{
@@ -58,73 +59,82 @@ class IndexService extends BaseService
*/
public function logsStatistics()
{
- $default_data = [
- 'xAxis' => [
- 'data' => [
-
+ $default_time_interval = 300;
+ // 时段间隔:5分钟,自己调整
+ $time_interval_key = "logs-statistics's-time-interval";
+ $time_interval = Cache::get($time_interval_key, $default_time_interval);
+ // 通过缓存进行读写
+ return Cache::remember('logs-statistics', $time_interval, function() use ($time_interval, $time_interval_key){
+ $default_data = [
+ 'xAxis' => [
+ 'data' => [],
],
- ],
- 'list_name' => [
- // 'GET',
- 'POST',
- 'PUT',
- 'DELETE',
- ],
- 'data_lists' => [
- // 'GET' => [],
- 'POST' => [
-
+ 'list_name' => [
+ // 'GET',
+ 'POST',
+ 'PUT',
+ 'DELETE',
],
- 'PUT' => [
-
+ 'data_lists' => [
+ // 'GET' => [],
+ 'POST' => [],
+ 'PUT' => [],
+ 'DELETE' => [],
],
- 'DELETE' => [
+ ];
+ $adminLogInstance = AdminLog::getInstance();
+ $interval_nums = 100; // 时段次数:100个时间段,自己调整
+ $hours = ceil($time_interval / 3600); // 时间间隔设置,超过几小时:查询时的开始时间需要加上才有意义
+ $time = strtotime(date('Y-m-d H:i', strtotime('+' . $hours . ' hour')) . ':00');
- ],
- ],
- ];
- $adminLogInstance = AdminLog::getInstance();
- $interval_nums = 100; // 时段次数:100个时间段,自己调整
- $time_interval = 300; // 时段间隔:5分钟,自己调整
- $hours = ceil($time_interval / 3600); // 时间间隔设置,超过几小时:查询时的开始时间需要加上才有意义
- $time = strtotime(date('Y-m-d H:i', strtotime('+' . $hours . ' hour')) . ':00');
+ // 数据查询
+ $list = $adminLogInstance->whereBetWeen('created_time', [
+ $time - $interval_nums * $time_interval,
+ $time,
+ ])->get();
- // 数据查询
- $list = $adminLogInstance->whereBetWeen('created_time', [
- $time - $interval_nums * $time_interval,
- $time,
- ])->get();
- for ($i = 0; $i < $interval_nums; $i++) {
- $end_time = $time - $time_interval;
- // 默认X轴的时段
- $default_data['xAxis']['data'][$i] = date('Y-m-d H:i', $end_time);
+ // 是否存在区间有效的日志记录
+ $has_records = false;
- // $default_data['data_lists']['GET'][$i] =
- $default_data['data_lists']['POST'][$i]
- = $default_data['data_lists']['PUT'][$i]
- = $default_data['data_lists']['DELETE'][$i]
- = 0;
+ for ($i = 0; $i < $interval_nums; $i++) {
+ $end_time = $time - $time_interval;
+ // 默认X轴的时段
+ $default_data['xAxis']['data'][$i] = date('Y-m-d H:i', $end_time);
- if ( $list ) {
- foreach ($list as $v) {
- if ($v->created_time >= $end_time && $v->created_time <= $time){
- if ( $v->log_method == 'GET' ) {
- // ++$default_data['data_lists']['GET'][$i];
- } elseif ( $v->log_method == 'POST' ) {
- ++$default_data['data_lists']['POST'][$i];
- } elseif ( $v->log_method == 'PUT' ) {
- ++$default_data['data_lists']['PUT'][$i];
- } elseif ( $v->log_method == 'DELETE' ) {
- ++$default_data['data_lists']['DELETE'][$i];
+ // $default_data['data_lists']['GET'][$i] =
+ $default_data['data_lists']['POST'][$i]
+ = $default_data['data_lists']['PUT'][$i]
+ = $default_data['data_lists']['DELETE'][$i]
+ = 0;
+
+ if ( $list ) {
+ foreach ($list as $v) {
+ if ($v->created_time >= $end_time && $v->created_time <= $time){
+ $has_records = true;
+ if ( $v->log_method == 'GET' ) {
+ // ++$default_data['data_lists']['GET'][$i];
+ } elseif ( $v->log_method == 'POST' ) {
+ ++$default_data['data_lists']['POST'][$i];
+ } elseif ( $v->log_method == 'PUT' ) {
+ ++$default_data['data_lists']['PUT'][$i];
+ } elseif ( $v->log_method == 'DELETE' ) {
+ ++$default_data['data_lists']['DELETE'][$i];
+ }
}
}
}
+
+ // 把当前的结束时间设置为下一次的开始时间
+ $time = $end_time;
}
- // 把当前的结束时间设置为下一次的开始时间
- $time = $end_time;
- }
- return (array)$default_data;
+ // 当没有记录是,时间间隔慢慢往上扩大两倍,实现统计图效果
+ if (!$has_records){
+ Cache::put($time_interval_key, $time_interval * 2);
+ }
+
+ return (array)$default_data;
+ });
}
/**
--
Gitee
From 7ea84bee1a2f721e463c6029178e709d0447120a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E4=B8=91=E8=B7=AF=E4=BA=BA?= <2278757482@qq.com>
Date: Tue, 5 Jan 2021 10:30:16 +0800
Subject: [PATCH 2/4] =?UTF-8?q?1.=E4=BB=BB=E5=8A=A1=E8=B0=83=E5=BA=A6?=
=?UTF-8?q?=EF=BC=9B=202.Readme.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.en.md | 3 ++-
README.md | 7 +++----
app/Console/Kernel.php | 5 +++++
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/README.en.md b/README.en.md
index a469cdb..5935db6 100644
--- a/README.en.md
+++ b/README.en.md
@@ -1,7 +1,7 @@
# laravel-vue-admin
#### Description
-{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
+laravel+vue-element-admin
#### Software Architecture
Software architecture description
@@ -13,6 +13,7 @@ Software architecture description
* 命令行,生成 APP_KEY:`php artisan key:generate`
* 命令行,JWT的key:`php artisan jwt:secret`
* 导入根目录sql:laravel-vue-admin.sql
+* 任务调度:`php artisan schedule:run`
#### Instructions
diff --git a/README.md b/README.md
index a9ff128..ccb3b77 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,12 @@
# laravel-vue-admin
#### 介绍
-{**以下是 Gitee 平台说明,您可以替换此简介**
-Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
-无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
+laravel+vue-element-admin
#### 软件架构
软件架构说明
-文档地址(无文档,自己对接):https://docs.apipost.cn/view/680a60d8e13e4745
+文档地址(无需文档,自己对接):https://docs.apipost.cn/view/680a60d8e13e4745
#### 安装教程
@@ -17,6 +15,7 @@ Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN
* 命令行,生成 APP_KEY:`php artisan key:generate`
* 命令行,JWT的key:`php artisan jwt:secret`
* 导入根目录sql:laravel-vue-admin.sql
+* 任务调度:`php artisan schedule:run`
#### 使用说明
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index fe7c1b5..c24df94 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -25,6 +25,11 @@ class Kernel extends ConsoleKernel
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
+
+ // var_dump('schedule:' . date('Y-m-d H:i:s'));
+
+ // 每月1号调用:按月分表自动生成
+ $schedule->command('autotablebuild')->monthlyOn();
}
/**
--
Gitee
From 728a8ce88044534562e96a86086d655cd1a27e8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E4=B8=91=E8=B7=AF=E4=BA=BA?= <2278757482@qq.com>
Date: Tue, 5 Jan 2021 14:06:01 +0800
Subject: [PATCH 3/4] =?UTF-8?q?1.Rabc=E4=B8=AD=E9=97=B4=E4=BB=B6=E9=AA=8C?=
=?UTF-8?q?=E8=AF=81=E6=9D=83=E9=99=90=EF=BC=9B=202.=E5=A2=9E=E5=88=A0?=
=?UTF-8?q?=E6=94=B9=E7=9A=84=E8=B7=AF=E7=94=B1=E6=B7=BB=E5=8A=A0=E5=AF=B9?=
=?UTF-8?q?=E5=BA=94=EF=BC=9Acreate=E3=80=81update=E3=80=81delete=E7=9A=84?=
=?UTF-8?q?=E5=90=8E=E7=BC=80=EF=BC=8C=E4=BE=BF=E4=BA=8E=E6=9D=83=E9=99=90?=
=?UTF-8?q?=E8=AE=A4=E8=AF=81=E4=B8=AD=E9=97=B4=E4=BB=B6=E5=BF=AB=E9=80=9F?=
=?UTF-8?q?=E5=A4=84=E7=90=86=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Modules/Admin/Entities/Rabc/AdminMenu.php | 16 +-
.../Admin/Entities/Rabc/AdminRoleWithMenu.php | 5 +
.../Admin/Http/Controllers/AuthController.php | 2 +-
.../Admin/Http/Middleware/CheckAuth.php | 7 +-
.../Admin/Http/Middleware/CheckRabc.php | 62 ++++++
.../vue-element-admin/api/admin_menus.js | 6 +-
.../vue-element-admin/api/admin_roles.js | 6 +-
.../vue-element-admin/api/adminloginlogs.js | 2 +-
.../vue-element-admin/api/adminlogs.js | 2 +-
.../Resources/vue-element-admin/api/admins.js | 6 +-
.../api/article_categories.js | 12 +-
.../vue-element-admin/api/articles.js | 6 +-
.../vue-element-admin/api/banners.js | 6 +-
.../vue-element-admin/api/configs.js | 6 +-
.../vue-element-admin/api/friendlinks.js | 6 +-
.../Resources/vue-element-admin/api/login.js | 34 +--
.../vue-element-admin/api/remote-search.js | 17 --
app/Modules/Admin/Routes/web.php | 200 +++++++++---------
18 files changed, 233 insertions(+), 168 deletions(-)
create mode 100644 app/Modules/Admin/Http/Middleware/CheckRabc.php
delete mode 100644 app/Modules/Admin/Resources/vue-element-admin/api/remote-search.js
diff --git a/app/Modules/Admin/Entities/Rabc/AdminMenu.php b/app/Modules/Admin/Entities/Rabc/AdminMenu.php
index 0d84a9e..c599b96 100644
--- a/app/Modules/Admin/Entities/Rabc/AdminMenu.php
+++ b/app/Modules/Admin/Entities/Rabc/AdminMenu.php
@@ -9,13 +9,25 @@ class AdminMenu extends Model
protected $primaryKey = 'menu_id';
protected $is_delete = 0;
- public static function getAllMenus()
+ public function getAllMenus()
{
- return self::orderBy('menu_sort', 'ASC')->get();
+ return $this->orderBy('menu_sort', 'ASC')->get();
}
public function getSelectLists()
{
return list_to_tree($this->orderBy('menu_sort', 'ASC')->get()->toArray());
}
+
+ public function getMenusByIds(array $menu_ids)
+ {
+ return $this->whereIn('menu_id', $menu_ids)
+ ->orderBy('menu_sort', 'ASC')
+ ->get();
+ }
+
+ public function getMenusByIdsForRabc(array $menu_ids)
+ {
+ return $this->whereIn('menu_id', $menu_ids)->where('api_url', '<>', '')->pluck('api_method', 'api_url');
+ }
}
diff --git a/app/Modules/Admin/Entities/Rabc/AdminRoleWithMenu.php b/app/Modules/Admin/Entities/Rabc/AdminRoleWithMenu.php
index f58acb3..28aeb42 100644
--- a/app/Modules/Admin/Entities/Rabc/AdminRoleWithMenu.php
+++ b/app/Modules/Admin/Entities/Rabc/AdminRoleWithMenu.php
@@ -8,4 +8,9 @@ class AdminRoleWithMenu extends Model
{
protected $primaryKey = 'with_id';
public $timestamps = false;
+
+ public function getMenuIdsByRoles(array $role_ids)
+ {
+ return array_unique(array_column($this->whereIn('role_id', $role_ids)->select('menu_id')->get()->toArray(), 'menu_id'));
+ }
}
diff --git a/app/Modules/Admin/Http/Controllers/AuthController.php b/app/Modules/Admin/Http/Controllers/AuthController.php
index 2e63e0d..e811b8c 100644
--- a/app/Modules/Admin/Http/Controllers/AuthController.php
+++ b/app/Modules/Admin/Http/Controllers/AuthController.php
@@ -59,6 +59,6 @@ class AuthController extends BaseController
public function getRabcList()
{
// 临时测试数据
- return $this->successJson(list_to_tree(AdminMenu::getAllMenus()->toArray()));
+ return $this->successJson(list_to_tree(AdminMenu::getInstance()->getAllMenus()->toArray()));
}
}
diff --git a/app/Modules/Admin/Http/Middleware/CheckAuth.php b/app/Modules/Admin/Http/Middleware/CheckAuth.php
index 55b67d3..eaf612d 100644
--- a/app/Modules/Admin/Http/Middleware/CheckAuth.php
+++ b/app/Modules/Admin/Http/Middleware/CheckAuth.php
@@ -24,12 +24,11 @@ class CheckAuth
*/
public function handle(Request $request, Closure $next)
{
- return $next($request);
-
$this->guard = 'admin';
-
+ // Auth认证
+ $auth = Auth()->guard($this->guard);
try {
- if ( !Auth()->guard($this->guard)->check() ) { //未登录踢回,给予错误返回提示
+ if ( !$auth->check() ) { //未登录踢回,给予错误返回提示
return $this->errorJson('认证失败,请重新登录!');
}
} catch (TokenExpiredException $e) {
diff --git a/app/Modules/Admin/Http/Middleware/CheckRabc.php b/app/Modules/Admin/Http/Middleware/CheckRabc.php
new file mode 100644
index 0000000..5e53e05
--- /dev/null
+++ b/app/Modules/Admin/Http/Middleware/CheckRabc.php
@@ -0,0 +1,62 @@
+guard = 'admin';
+ // 开始验证路由权限
+ if (!$this->checkRabc($request, Auth()->guard($this->guard)->user()->getAuthIdentifier(), $load_error)){
+ return $this->errorJson('无权限' . (empty($load_error) ? '!' : ',' . $load_error), -2);
+ }
+
+ return $next($request);
+ }
+
+ private function checkRabc($request, int $admin_id, &$load_error = ''):bool
+ {
+ // if ($admin_id == 1) return true;
+
+ $roles = Admin::getInstance()->detail($admin_id)->roles->toArray();
+ $role_ids = array_column($roles, 'role_id');
+ if (empty($role_ids)) return false;
+ $menu_ids = AdminRoleWithMenu::getInstance()->getMenuIdsByRoles($role_ids);
+ if (empty($menu_ids)) return false;
+ $menus = AdminMenu::getInstance()->getMenusByIdsForRabc($menu_ids)->toArray();
+ if (empty($menus)) return false;
+
+ // 获取当前路由
+ $route_path = $request->route()->uri();
+ // 检测是否存在当前API
+ if (isset($menus[$route_path])){
+ // 验证请求方式
+ if ($menus[$route_path] == $request->getMethod()){
+ return true;
+ }
+ $load_error = '请求方式有误!';
+ }
+ return false;
+ }
+}
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/admin_menus.js b/app/Modules/Admin/Resources/vue-element-admin/api/admin_menus.js
index f703136..4d5aef9 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/admin_menus.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/admin_menus.js
@@ -17,7 +17,7 @@ export function getList(params) {
export function create(data) {
return request({
- url: '/admin_menus',
+ url: '/admin_menus/create',
method: 'post',
data
})
@@ -25,7 +25,7 @@ export function create(data) {
export function update(data) {
return request({
- url: `/admin_menus`,
+ url: `/admin_menus/update`,
method: 'put',
data
})
@@ -33,7 +33,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: `/admin_menus`,
+ url: `/admin_menus/delete`,
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/admin_roles.js b/app/Modules/Admin/Resources/vue-element-admin/api/admin_roles.js
index a73024e..150c680 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/admin_roles.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/admin_roles.js
@@ -17,7 +17,7 @@ export function getList(params) {
export function create(data) {
return request({
- url: '/admin_roles',
+ url: '/admin_roles/create',
method: 'post',
data
})
@@ -25,7 +25,7 @@ export function create(data) {
export function update(data) {
return request({
- url: `/admin_roles`,
+ url: `/admin_roles/update`,
method: 'put',
data
})
@@ -33,7 +33,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: `/admin_roles`,
+ url: `/admin_roles/delete`,
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/adminloginlogs.js b/app/Modules/Admin/Resources/vue-element-admin/api/adminloginlogs.js
index 79d6ed6..2e3fea3 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/adminloginlogs.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/adminloginlogs.js
@@ -10,7 +10,7 @@ export function getList(params) {
export function setDel(data) {
return request({
- url: `/adminloginlogs`,
+ url: `/adminloginlogs/delete`,
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/adminlogs.js b/app/Modules/Admin/Resources/vue-element-admin/api/adminlogs.js
index 5b0062f..c303f10 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/adminlogs.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/adminlogs.js
@@ -10,7 +10,7 @@ export function getList(params) {
export function setDel(data) {
return request({
- url: `/adminlogs`,
+ url: `/adminlogs/delete`,
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/admins.js b/app/Modules/Admin/Resources/vue-element-admin/api/admins.js
index 6ef7f82..201bbe3 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/admins.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/admins.js
@@ -26,7 +26,7 @@ export function getList(params) {
export function create(data) {
return request({
- url: '/admins',
+ url: '/admins/create',
method: 'post',
data
})
@@ -34,7 +34,7 @@ export function create(data) {
export function update(data) {
return request({
- url: `/admins`,
+ url: `/admins/update`,
method: 'put',
data
})
@@ -42,7 +42,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: `/admins`,
+ url: `/admins/delete`,
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/article_categories.js b/app/Modules/Admin/Resources/vue-element-admin/api/article_categories.js
index b3914ff..99b3a5d 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/article_categories.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/article_categories.js
@@ -2,14 +2,14 @@ import request from '@/utils/request'
export function getCategorySelect() {
return request({
- url: '/article_categorys/getSelectLists',
+ url: '/article_categories/getSelectLists',
method: 'get'
})
}
export function getList(params) {
return request({
- url: 'article_categorys',
+ url: 'article_categories',
method: 'get',
params
})
@@ -17,7 +17,7 @@ export function getList(params) {
export function create(data) {
return request({
- url: '/article_categorys',
+ url: '/article_categories/create',
method: 'post',
data
})
@@ -25,7 +25,7 @@ export function create(data) {
export function update(data) {
return request({
- url: `/article_categorys`,
+ url: `/article_categories/update`,
method: 'put',
data
})
@@ -33,7 +33,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: `/article_categorys`,
+ url: `/article_categories/delete`,
method: 'delete',
data
})
@@ -41,7 +41,7 @@ export function setDel(data) {
export function changeFiledStatus(data) {
return request({
- url: `/article_categorys/changeFiledStatus`,
+ url: `/article_categories/changeFiledStatus`,
method: 'put',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/articles.js b/app/Modules/Admin/Resources/vue-element-admin/api/articles.js
index f020954..74cc060 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/articles.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/articles.js
@@ -25,7 +25,7 @@ export function detail(id) {
export function create(data) {
return request({
- url: '/articles',
+ url: '/articles/create',
method: 'post',
data
})
@@ -33,7 +33,7 @@ export function create(data) {
export function update(data) {
return request({
- url: `/articles`,
+ url: `/articles/update`,
method: 'put',
data
})
@@ -41,7 +41,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: `/articles`,
+ url: `/articles/delete`,
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/banners.js b/app/Modules/Admin/Resources/vue-element-admin/api/banners.js
index 6804acb..188f87d 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/banners.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/banners.js
@@ -10,7 +10,7 @@ export function getList(params) {
export function create(data) {
return request({
- url: '/banners',
+ url: '/banners/create',
method: 'post',
data
});
@@ -18,7 +18,7 @@ export function create(data) {
export function update(data) {
return request({
- url: '/banners',
+ url: '/banners/update',
method: 'put',
data
});
@@ -26,7 +26,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: '/banners',
+ url: '/banners/delete',
method: 'delete',
data
});
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/configs.js b/app/Modules/Admin/Resources/vue-element-admin/api/configs.js
index 0316ce4..92ea787 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/configs.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/configs.js
@@ -10,7 +10,7 @@ export function getList(query) {
export function create(data) {
return request({
- url: '/configs',
+ url: '/configs/create',
method: 'post',
data
})
@@ -18,7 +18,7 @@ export function create(data) {
export function update(data) {
return request({
- url: '/configs',
+ url: '/configs/update',
method: 'put',
data
})
@@ -26,7 +26,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: '/configs',
+ url: '/configs/delete',
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/friendlinks.js b/app/Modules/Admin/Resources/vue-element-admin/api/friendlinks.js
index e06be8a..d4804ee 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/friendlinks.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/friendlinks.js
@@ -10,7 +10,7 @@ export function getList(params) {
export function create(data) {
return request({
- url: '/friendlinks',
+ url: '/friendlinks/create',
method: 'post',
data
})
@@ -19,7 +19,7 @@ export function create(data) {
export function update(data) {
console.log(data)
return request({
- url: '/friendlinks',
+ url: '/friendlinks/update',
method: 'put',
data
})
@@ -27,7 +27,7 @@ export function update(data) {
export function setDel(data) {
return request({
- url: '/friendlinks',
+ url: '/friendlinks/delete',
method: 'delete',
data
})
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/login.js b/app/Modules/Admin/Resources/vue-element-admin/api/login.js
index 1e694b1..13124ef 100644
--- a/app/Modules/Admin/Resources/vue-element-admin/api/login.js
+++ b/app/Modules/Admin/Resources/vue-element-admin/api/login.js
@@ -1,30 +1,30 @@
import request from '@/utils/request'
export function login(data) {
- return request({
- url: '/auth/login',
- method: 'post',
- data
- })
+ return request({
+ url: '/auth/login',
+ method: 'post',
+ data
+ })
}
export function getInfo() {
- return request({
- url: '/auth/me',
- method: 'post'
- })
+ return request({
+ url: '/auth/me',
+ method: 'post'
+ })
}
export function getMenus() {
- return request({
- url: '/auth/getRabcList',
- method: 'post'
- })
+ return request({
+ url: '/auth/getRabcList',
+ method: 'post'
+ })
}
export function logout() {
- return request({
- url: '/auth/logout',
- method: 'post'
- })
+ return request({
+ url: '/auth/logout',
+ method: 'post'
+ })
}
diff --git a/app/Modules/Admin/Resources/vue-element-admin/api/remote-search.js b/app/Modules/Admin/Resources/vue-element-admin/api/remote-search.js
deleted file mode 100644
index 02e42b4..0000000
--- a/app/Modules/Admin/Resources/vue-element-admin/api/remote-search.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import request from '@/utils/request'
-
-export function searchUser(name) {
- return request({
- url: '/vue-element-admin/search/user',
- method: 'get',
- params: { name }
- })
-}
-
-export function transactionList(query) {
- return request({
- url: '/vue-element-admin/transaction/list',
- method: 'get',
- params: query
- })
-}
diff --git a/app/Modules/Admin/Routes/web.php b/app/Modules/Admin/Routes/web.php
index 8854528..4f398be 100644
--- a/app/Modules/Admin/Routes/web.php
+++ b/app/Modules/Admin/Routes/web.php
@@ -13,6 +13,7 @@
use Illuminate\Support\Facades\Route;
use App\Modules\Admin\Http\Middleware\CheckAuth;
+use App\Modules\Admin\Http\Middleware\CheckRabc;
use App\Modules\Admin\Http\Middleware\AdminLog;
Route::prefix('admin')->group(function() {
@@ -39,107 +40,110 @@ Route::prefix('admin')->group(function() {
Route::get('logsStatistics', 'IndexController@logsStatistics');
// 月份表列表
Route::get('get_month_lists', 'IndexController@getMonthList');
-
// 文件上传
Route::post('upload_file', 'UploadController@file');
- Route::prefix('banners')->group(function() {
- Route::get('/', 'System\BannerController@index');
- Route::post('/', 'System\BannerController@create');
- Route::put('/', 'System\BannerController@update');
- Route::delete('/', 'System\BannerController@delete');
- Route::put('/changeFiledStatus', 'System\BannerController@changeFiledStatus');
- });
-
- // 配置管理
- Route::prefix('configs')->group(function() {
- Route::get('/', 'System\ConfigController@index');
- Route::post('/', 'System\ConfigController@create');
- Route::put('/', 'System\ConfigController@update');
- Route::delete('/', 'System\ConfigController@delete');
- Route::put('/changeFiledStatus', 'System\ConfigController@changeFiledStatus');
- });
-
- // 友情链接
- Route::prefix('friendlinks')->group(function() {
- Route::get('/', 'System\FriendlinkController@index');
- Route::post('/', 'System\FriendlinkController@create');
- Route::put('/', 'System\FriendlinkController@update');
- Route::delete('/', 'System\FriendlinkController@delete');
- Route::put('/changeFiledStatus', 'System\FriendlinkController@changeFiledStatus');
- });
-
- Route::prefix('protocols')->group(function() {
- Route::get('/', 'System\ProtocolController@index');
- Route::post('/', 'System\ProtocolController@create');
- Route::put('/', 'System\ProtocolController@update');
- Route::delete('/', 'System\ProtocolController@delete');
- });
-
- Route::prefix('versions')->group(function() {
- Route::get('/', 'System\VersionController@index');
- Route::post('/', 'System\VersionController@create');
- Route::put('/', 'System\VersionController@update');
- Route::delete('/', 'System\VersionController@delete');
- Route::put('/changeFiledStatus', 'System\VersionController@changeFiledStatus');
- });
-
- Route::prefix('admins')->group(function() {
- Route::get('/', 'Rabc\AdminController@index');
- Route::post('/', 'Rabc\AdminController@create');
- Route::put('/', 'Rabc\AdminController@update');
- Route::delete('/', 'Rabc\AdminController@delete');
- Route::get('/getSelectLists', 'Rabc\AdminController@getSelectLists');
- Route::put('/changeFiledStatus', 'Rabc\AdminController@changeFiledStatus');
- });
-
- Route::prefix('admin_roles')->group(function() {
- Route::get('/', 'Rabc\AdminRoleController@index');
- Route::post('/', 'Rabc\AdminRoleController@create');
- Route::put('/', 'Rabc\AdminRoleController@update');
- Route::delete('/', 'Rabc\AdminRoleController@delete');
- Route::get('/getSelectLists', 'Rabc\AdminRoleController@getSelectLists');
- Route::put('/changeFiledStatus', 'Rabc\AdminRoleController@changeFiledStatus');
- });
-
- Route::prefix('admin_menus')->group(function() {
- Route::get('/', 'Rabc\AdminMenuController@index');
- Route::post('/', 'Rabc\AdminMenuController@create');
- Route::put('/', 'Rabc\AdminMenuController@update');
- Route::delete('/', 'Rabc\AdminMenuController@delete');
- Route::get('/getSelectLists', 'Rabc\AdminMenuController@getSelectLists');
- Route::put('/changeFiledStatus', 'Rabc\AdminMenuController@changeFiledStatus');
- });
-
- // 管理员日志
- Route::prefix('adminlogs')->group(function() {
- Route::get('/', 'Log\AdminLogController@index');
- Route::delete('/', 'Log\AdminLogController@delete');
- });
-
- // 管理员登录日志
- Route::prefix('adminloginlogs')->group(function() {
- Route::get('/', 'Log\AdminLoginLogController@index');
- Route::delete('/', 'Log\AdminLoginLogController@delete');
- });
-
- // 文章分类
- Route::prefix('article_categorys')->group(function() {
- Route::get('/', 'Article\ArticleCategoryController@index');
- Route::post('/', 'Article\ArticleCategoryController@create');
- Route::put('/', 'Article\ArticleCategoryController@update');
- Route::delete('/', 'Article\ArticleCategoryController@delete');
- Route::get('/getSelectLists', 'Article\ArticleCategoryController@getSelectLists');
- Route::put('/changeFiledStatus', 'Article\ArticleCategoryController@changeFiledStatus');
- });
-
- // 文章管理
- Route::prefix('articles')->group(function() {
- Route::get('/', 'Article\ArticleController@index');
- Route::get('/detail', 'Article\ArticleController@detail');
- Route::post('/', 'Article\ArticleController@create');
- Route::put('/', 'Article\ArticleController@update');
- Route::delete('/', 'Article\ArticleController@delete');
+ // 权限中间件
+ Route::middleware([CheckRabc::class])->group(function () {
+ Route::prefix('banners')->group(function() {
+ Route::get('/', 'System\BannerController@index');
+ Route::post('/create', 'System\BannerController@create');
+ Route::put('/update', 'System\BannerController@update');
+ Route::delete('/delete', 'System\BannerController@delete');
+ Route::put('/changeFiledStatus', 'System\BannerController@changeFiledStatus');
+ });
+
+ // 配置管理
+ Route::prefix('configs')->group(function() {
+ Route::get('/', 'System\ConfigController@index');
+ Route::post('/create', 'System\ConfigController@create');
+ Route::put('/update', 'System\ConfigController@update');
+ Route::delete('/delete', 'System\ConfigController@delete');
+ Route::put('/changeFiledStatus', 'System\ConfigController@changeFiledStatus');
+ });
+
+ // 友情链接
+ Route::prefix('friendlinks')->group(function() {
+ Route::get('/', 'System\FriendlinkController@index');
+ Route::post('/create', 'System\FriendlinkController@create');
+ Route::put('/update', 'System\FriendlinkController@update');
+ Route::delete('/delete', 'System\FriendlinkController@delete');
+ Route::put('/changeFiledStatus', 'System\FriendlinkController@changeFiledStatus');
+ });
+
+ Route::prefix('protocols')->group(function() {
+ Route::get('/', 'System\ProtocolController@index');
+ Route::post('/create', 'System\ProtocolController@create');
+ Route::put('/update', 'System\ProtocolController@update');
+ Route::delete('/delete', 'System\ProtocolController@delete');
+ });
+
+ Route::prefix('versions')->group(function() {
+ Route::get('/', 'System\VersionController@index');
+ Route::post('/create', 'System\VersionController@create');
+ Route::put('/update', 'System\VersionController@update');
+ Route::delete('/delete', 'System\VersionController@delete');
+ Route::put('/changeFiledStatus', 'System\VersionController@changeFiledStatus');
+ });
+
+ Route::prefix('admins')->group(function() {
+ Route::get('/', 'Rabc\AdminController@index');
+ Route::post('/create', 'Rabc\AdminController@create');
+ Route::put('/update', 'Rabc\AdminController@update');
+ Route::delete('/delete', 'Rabc\AdminController@delete');
+ Route::get('/getSelectLists', 'Rabc\AdminController@getSelectLists');
+ Route::put('/changeFiledStatus', 'Rabc\AdminController@changeFiledStatus');
+ });
+
+ Route::prefix('admin_roles')->group(function() {
+ Route::get('/', 'Rabc\AdminRoleController@index');
+ Route::post('/create', 'Rabc\AdminRoleController@create');
+ Route::put('/update', 'Rabc\AdminRoleController@update');
+ Route::delete('/delete', 'Rabc\AdminRoleController@delete');
+ Route::get('/getSelectLists', 'Rabc\AdminRoleController@getSelectLists');
+ Route::put('/changeFiledStatus', 'Rabc\AdminRoleController@changeFiledStatus');
+ });
+
+ Route::prefix('admin_menus')->group(function() {
+ Route::get('/', 'Rabc\AdminMenuController@index');
+ Route::post('/create', 'Rabc\AdminMenuController@create');
+ Route::put('/update', 'Rabc\AdminMenuController@update');
+ Route::delete('/delete', 'Rabc\AdminMenuController@delete');
+ Route::get('/getSelectLists', 'Rabc\AdminMenuController@getSelectLists');
+ Route::put('/changeFiledStatus', 'Rabc\AdminMenuController@changeFiledStatus');
+ });
+
+ // 管理员日志
+ Route::prefix('adminlogs')->group(function() {
+ Route::get('/', 'Log\AdminLogController@index');
+ Route::delete('/delete', 'Log\AdminLogController@delete');
+ });
+
+ // 管理员登录日志
+ Route::prefix('adminloginlogs')->group(function() {
+ Route::get('/', 'Log\AdminLoginLogController@index');
+ Route::delete('/delete', 'Log\AdminLoginLogController@delete');
+ });
+
+ // 文章分类
+ Route::prefix('article_categories')->group(function() {
+ Route::get('/', 'Article\ArticleCategoryController@index');
+ Route::post('/create', 'Article\ArticleCategoryController@create');
+ Route::put('/update', 'Article\ArticleCategoryController@update');
+ Route::delete('/delete', 'Article\ArticleCategoryController@delete');
+ Route::get('/getSelectLists', 'Article\ArticleCategoryController@getSelectLists');
+ Route::put('/changeFiledStatus', 'Article\ArticleCategoryController@changeFiledStatus');
+ });
+
+ // 文章管理
+ Route::prefix('articles')->group(function() {
+ Route::get('/', 'Article\ArticleController@index');
+ Route::get('/detail', 'Article\ArticleController@detail');
+ Route::post('/create', 'Article\ArticleController@create');
+ Route::put('/update', 'Article\ArticleController@update');
+ Route::delete('/delete', 'Article\ArticleController@delete');
+ Route::put('/changeFiledStatus', 'Article\ArticleController@changeFiledStatus');
+ });
});
});
});
--
Gitee
From bbb3c6a1f061cd6b6103ac2a1e0bc6df9034bacb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E4=B8=91=E8=B7=AF=E4=BA=BA?= <2278757482@qq.com>
Date: Tue, 5 Jan 2021 15:18:35 +0800
Subject: [PATCH 4/4] =?UTF-8?q?Request=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=EF=BC=8C=E5=AE=8C=E5=96=84=E5=94=AF=E4=B8=80=E6=80=A7=E9=AA=8C?=
=?UTF-8?q?=E8=AF=81=EF=BC=9A=E5=81=87=E5=88=A0=E9=99=A4=E7=9A=84=E6=9D=A1?=
=?UTF-8?q?=E4=BB=B6=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Modules/Admin/Entities/Rabc/Admin.php | 10 +
.../Admin/Http/Middleware/CheckRabc.php | 4 +-
.../Article/ArticleCategoryRequest.php | 11 +-
.../Http/Requests/Article/ArticleRequest.php | 11 +-
.../Admin/Http/Requests/BaseRequest.php | 22 ++
.../Http/Requests/Rabc/AdminMenuRequest.php | 11 +-
.../Admin/Http/Requests/Rabc/AdminRequest.php | 11 +-
.../Http/Requests/Rabc/AdminRoleRequest.php | 11 +-
.../Http/Requests/System/BannerRequest.php | 11 +-
.../Http/Requests/System/ConfigRequest.php | 11 +-
.../Requests/System/FriendlinkRequest.php | 11 +-
.../Http/Requests/System/ProtocolRequest.php | 11 +-
.../Http/Requests/System/VersionRequest.php | 11 +-
composer.lock | 332 +++++++++++++++---
14 files changed, 378 insertions(+), 100 deletions(-)
diff --git a/app/Modules/Admin/Entities/Rabc/Admin.php b/app/Modules/Admin/Entities/Rabc/Admin.php
index 7aa794a..891b305 100644
--- a/app/Modules/Admin/Entities/Rabc/Admin.php
+++ b/app/Modules/Admin/Entities/Rabc/Admin.php
@@ -19,6 +19,16 @@ class Admin extends Authenticatable implements JWTSubject
protected $is_delete = 0; //是否开启删除(1.开启删除,就是直接删除;0.假删除)
protected $delete_field = 'is_delete'; //删除字段
+ public function getIsDelete()
+ {
+ return $this->is_delete;
+ }
+
+ public function getDeleteField()
+ {
+ return $this->delete_field;
+ }
+
/**
* 是否主动维护时间戳
*
diff --git a/app/Modules/Admin/Http/Middleware/CheckRabc.php b/app/Modules/Admin/Http/Middleware/CheckRabc.php
index 5e53e05..dec3e91 100644
--- a/app/Modules/Admin/Http/Middleware/CheckRabc.php
+++ b/app/Modules/Admin/Http/Middleware/CheckRabc.php
@@ -37,9 +37,11 @@ class CheckRabc
private function checkRabc($request, int $admin_id, &$load_error = ''):bool
{
- // if ($admin_id == 1) return true;
+ // 超级管理员账户无需验证
+ if ($admin_id == 1) return true;
$roles = Admin::getInstance()->detail($admin_id)->roles->toArray();
+ if (empty($roles)) return false;
$role_ids = array_column($roles, 'role_id');
if (empty($role_ids)) return false;
$menu_ids = AdminRoleWithMenu::getInstance()->getMenuIdsByRoles($role_ids);
diff --git a/app/Modules/Admin/Http/Requests/Article/ArticleCategoryRequest.php b/app/Modules/Admin/Http/Requests/Article/ArticleCategoryRequest.php
index 6d8a7ad..c66d421 100644
--- a/app/Modules/Admin/Http/Requests/Article/ArticleCategoryRequest.php
+++ b/app/Modules/Admin/Http/Requests/Article/ArticleCategoryRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class ArticleCategoryRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = ArticleCategory::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class ArticleCategoryRequest extends BaseRequest
*/
public function rules()
{
- $instance = ArticleCategory::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'category_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',category_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',category_name' . $this->validate_id
],
'category_sort' => [
'required',
diff --git a/app/Modules/Admin/Http/Requests/Article/ArticleRequest.php b/app/Modules/Admin/Http/Requests/Article/ArticleRequest.php
index 104ad61..8336bf2 100644
--- a/app/Modules/Admin/Http/Requests/Article/ArticleRequest.php
+++ b/app/Modules/Admin/Http/Requests/Article/ArticleRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class ArticleRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Article::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class ArticleRequest extends BaseRequest
*/
public function rules()
{
- $instance = Article::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'article_title' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',article_title' . $validate_id,
+ 'unique:' . $this->instance->getTable() . ',article_title' . $this->validate_id,
],
'category_id' => [
'required',
diff --git a/app/Modules/Admin/Http/Requests/BaseRequest.php b/app/Modules/Admin/Http/Requests/BaseRequest.php
index 2c17922..00711c4 100644
--- a/app/Modules/Admin/Http/Requests/BaseRequest.php
+++ b/app/Modules/Admin/Http/Requests/BaseRequest.php
@@ -6,6 +6,28 @@ use Illuminate\Foundation\Http\FormRequest;
class BaseRequest extends FormRequest
{
+ protected $instance;
+ protected $validate_id = '';
+
+ public function __construct(array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null)
+ {
+ parent::__construct($query, $request, $attributes, $cookies, $files, $server, $content);
+
+ if ( method_exists($this, 'setInstance') ) {
+ $this->setInstance();
+ }
+
+ $this->setValidateId();
+ }
+
+ protected function setValidateId()
+ {
+ if ($this->instance){
+ $primarykey = $this->instance->getKeyName();
+ $this->validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey . ($this->instance->getIsDelete() == 0 ? ',is_delete,0' : '');
+ }
+ }
+
/**
* Get the validation rules that apply to the request.
*
diff --git a/app/Modules/Admin/Http/Requests/Rabc/AdminMenuRequest.php b/app/Modules/Admin/Http/Requests/Rabc/AdminMenuRequest.php
index 0be8cf4..be8ffb6 100644
--- a/app/Modules/Admin/Http/Requests/Rabc/AdminMenuRequest.php
+++ b/app/Modules/Admin/Http/Requests/Rabc/AdminMenuRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class AdminMenuRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = AdminMenu::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class AdminMenuRequest extends BaseRequest
*/
public function rules()
{
- $instance = AdminMenu::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'menu_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',menu_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',menu_name' . $this->validate_id
],
];
}
diff --git a/app/Modules/Admin/Http/Requests/Rabc/AdminRequest.php b/app/Modules/Admin/Http/Requests/Rabc/AdminRequest.php
index 21343fe..5b59750 100644
--- a/app/Modules/Admin/Http/Requests/Rabc/AdminRequest.php
+++ b/app/Modules/Admin/Http/Requests/Rabc/AdminRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class AdminRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Admin::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class AdminRequest extends BaseRequest
*/
public function rules()
{
- $instance = Admin::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'admin_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',admin_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',admin_name' . $this->validate_id
],
'admin_email' => [
'required',
diff --git a/app/Modules/Admin/Http/Requests/Rabc/AdminRoleRequest.php b/app/Modules/Admin/Http/Requests/Rabc/AdminRoleRequest.php
index 9d191f3..c52ba76 100644
--- a/app/Modules/Admin/Http/Requests/Rabc/AdminRoleRequest.php
+++ b/app/Modules/Admin/Http/Requests/Rabc/AdminRoleRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class AdminRoleRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = AdminRole::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class AdminRoleRequest extends BaseRequest
*/
public function rules()
{
- $instance = AdminRole::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'role_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',role_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',role_name' . $this->validate_id
],
'is_check' => [
'required',
diff --git a/app/Modules/Admin/Http/Requests/System/BannerRequest.php b/app/Modules/Admin/Http/Requests/System/BannerRequest.php
index e89679f..7671bab 100644
--- a/app/Modules/Admin/Http/Requests/System/BannerRequest.php
+++ b/app/Modules/Admin/Http/Requests/System/BannerRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class BannerRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Banner::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class BannerRequest extends BaseRequest
*/
public function rules()
{
- $instance = Banner::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'banner_title' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',banner_title' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',banner_title' . $this->validate_id
],
'banner_cover' => [
'required',
diff --git a/app/Modules/Admin/Http/Requests/System/ConfigRequest.php b/app/Modules/Admin/Http/Requests/System/ConfigRequest.php
index 7a0387d..ba37ccb 100644
--- a/app/Modules/Admin/Http/Requests/System/ConfigRequest.php
+++ b/app/Modules/Admin/Http/Requests/System/ConfigRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class ConfigRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Config::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,10 +19,6 @@ class ConfigRequest extends BaseRequest
*/
public function rules()
{
- $instance = Config::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'config_title' => [
'required',
@@ -26,7 +27,7 @@ class ConfigRequest extends BaseRequest
'config_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',config_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',config_name' . $this->validate_id
]
];
}
diff --git a/app/Modules/Admin/Http/Requests/System/FriendlinkRequest.php b/app/Modules/Admin/Http/Requests/System/FriendlinkRequest.php
index fb09d2b..bf1248a 100644
--- a/app/Modules/Admin/Http/Requests/System/FriendlinkRequest.php
+++ b/app/Modules/Admin/Http/Requests/System/FriendlinkRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class FriendlinkRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Friendlink::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class FriendlinkRequest extends BaseRequest
*/
public function rules()
{
- $instance = Friendlink::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'link_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',link_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',link_name' . $this->validate_id
],
'link_url' => [
'url',
diff --git a/app/Modules/Admin/Http/Requests/System/ProtocolRequest.php b/app/Modules/Admin/Http/Requests/System/ProtocolRequest.php
index 324cd54..d339d53 100644
--- a/app/Modules/Admin/Http/Requests/System/ProtocolRequest.php
+++ b/app/Modules/Admin/Http/Requests/System/ProtocolRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class ProtocolRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Protocol::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class ProtocolRequest extends BaseRequest
*/
public function rules()
{
- $instance = Protocol::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'protocol_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',protocol_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',protocol_name' . $this->validate_id
],
'protocol_type' => [
'required',
diff --git a/app/Modules/Admin/Http/Requests/System/VersionRequest.php b/app/Modules/Admin/Http/Requests/System/VersionRequest.php
index 25fdc37..1165aa5 100644
--- a/app/Modules/Admin/Http/Requests/System/VersionRequest.php
+++ b/app/Modules/Admin/Http/Requests/System/VersionRequest.php
@@ -7,6 +7,11 @@ use App\Modules\Admin\Http\Requests\BaseRequest;
class VersionRequest extends BaseRequest
{
+ public function setInstance()
+ {
+ $this->instance = Version::getInstance();
+ }
+
/**
* Get the validation rules that apply to the request.
*
@@ -14,15 +19,11 @@ class VersionRequest extends BaseRequest
*/
public function rules()
{
- $instance = Version::getInstance();
- $primarykey = $instance->getKeyName();
- $validate_id = ',' . request()->input($primarykey, 0) . ',' . $primarykey;
-
return [
'version_name' => [
'required',
'max:256',
- 'unique:' . $instance->getTable() . ',version_name' . $validate_id
+ 'unique:' . $this->instance->getTable() . ',version_name' . $this->validate_id
],
'version_number' => [
'required',
diff --git a/composer.lock b/composer.lock
index 31c707e..10876da 100644
--- a/composer.lock
+++ b/composer.lock
@@ -405,16 +405,16 @@
},
{
"name": "egulias/email-validator",
- "version": "2.1.24",
+ "version": "2.1.25",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "ca90a3291eee1538cd48ff25163240695bd95448"
+ "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ca90a3291eee1538cd48ff25163240695bd95448",
- "reference": "ca90a3291eee1538cd48ff25163240695bd95448",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+ "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
"shasum": "",
"mirrors": [
{
@@ -471,7 +471,7 @@
"type": "github"
}
],
- "time": "2020-11-14T15:56:27+00:00"
+ "time": "2020-12-29T14:50:06+00:00"
},
{
"name": "fideloper/proxy",
@@ -5576,7 +5576,13 @@
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/233c10688f4c1a6e66ed2ef123038b1363d1bedc",
"reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"illuminate/routing": "^6|^7|^8",
@@ -5719,7 +5725,13 @@
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
"reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.1 || ^8.0"
@@ -5784,7 +5796,13 @@
"type": "zip",
"url": "https://api.github.com/repos/facade/flare-client-php/zipball/fd688d3c06658f2b3b5f7bb19f051ee4ddf02492",
"reference": "fd688d3c06658f2b3b5f7bb19f051ee4ddf02492",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"facade/ignition-contracts": "~1.0",
@@ -5835,17 +5853,23 @@
},
{
"name": "facade/ignition",
- "version": "2.5.3",
+ "version": "2.5.8",
"source": {
"type": "git",
"url": "https://github.com/facade/ignition.git",
- "reference": "d8dc4f90ed469f9f9313b976fb078c20585d5c99"
+ "reference": "8e907d81244649c5ea746e2ec30c32c5f59df472"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/d8dc4f90ed469f9f9313b976fb078c20585d5c99",
- "reference": "d8dc4f90ed469f9f9313b976fb078c20585d5c99",
- "shasum": ""
+ "url": "https://api.github.com/repos/facade/ignition/zipball/8e907d81244649c5ea746e2ec30c32c5f59df472",
+ "reference": "8e907d81244649c5ea746e2ec30c32c5f59df472",
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-json": "*",
@@ -5902,7 +5926,7 @@
"laravel",
"page"
],
- "time": "2020-12-09T20:25:45+00:00"
+ "time": "2020-12-29T09:12:55+00:00"
},
{
"name": "facade/ignition-contracts",
@@ -5916,7 +5940,13 @@
"type": "zip",
"url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
"reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.3|^8.0"
@@ -6019,7 +6049,13 @@
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/307fb34a5ab697461ec4c9db865b20ff2fd40771",
"reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.5.9 || ^7.0 || ^8.0",
@@ -6080,7 +6116,13 @@
"type": "zip",
"url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
"reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^5.3|^7.0|^8.0"
@@ -6127,7 +6169,13 @@
"type": "zip",
"url": "https://api.github.com/repos/laravel/sail/zipball/d9b0575ece889a35b9741789452c1c7abca5bc2f",
"reference": "d9b0575ece889a35b9741789452c1c7abca5bc2f",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"illuminate/contracts": "^8.0|^9.0",
@@ -6182,7 +6230,13 @@
"type": "zip",
"url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/c86c717e4bf3c6d98422da5c38bfa7b0f494b04c",
"reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.1|^8",
@@ -6243,7 +6297,13 @@
"type": "zip",
"url": "https://api.github.com/repos/mockery/mockery/zipball/20cab678faed06fac225193be281ea0fddb43b93",
"reference": "20cab678faed06fac225193be281ea0fddb43b93",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"hamcrest/hamcrest-php": "^2.0.1",
@@ -6311,7 +6371,13 @@
"type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
"reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.1 || ^8.0"
@@ -6365,7 +6431,13 @@
"type": "zip",
"url": "https://api.github.com/repos/nunomaduro/collision/zipball/7c2b95589bf81e274e61e47f7672a1b2c3e06eaa",
"reference": "7c2b95589bf81e274e61e47f7672a1b2c3e06eaa",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"facade/ignition-contracts": "^1.0",
@@ -6449,7 +6521,13 @@
"type": "zip",
"url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
"reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-dom": "*",
@@ -6558,7 +6636,13 @@
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
"reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2 || ^8.0"
@@ -6607,7 +6691,13 @@
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
"reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-filter": "*",
@@ -6659,7 +6749,13 @@
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
"reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": "^7.2 || ^8.0",
@@ -6773,7 +6869,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1",
"reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-dom": "*",
@@ -6846,7 +6948,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
"reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -6902,7 +7010,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
"reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -6961,7 +7075,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
"reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7016,7 +7136,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
"reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7071,7 +7197,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
"reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"doctrine/instantiator": "^1.3.1",
@@ -7170,7 +7302,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
"reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7222,7 +7360,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
"reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7274,7 +7418,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
"reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7325,7 +7475,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
"reference": "55f4261989e546dc112258c7a75935a81a7ce382",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3",
@@ -7395,7 +7551,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
"reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"nikic/php-parser": "^4.7",
@@ -7448,7 +7610,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
"reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7510,7 +7678,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
"reference": "388b6ced16caa751030f6a69e588299fa09200ac",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7569,7 +7743,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
"reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3",
@@ -7642,7 +7822,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455",
"reference": "a90ccbddffa067b51f574dea6eb25d5680839455",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3",
@@ -7702,7 +7888,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
"reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"nikic/php-parser": "^4.6",
@@ -7755,7 +7947,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
"reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3",
@@ -7808,7 +8006,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
"reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7859,7 +8063,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
"reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7918,7 +8128,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
"reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -7969,7 +8185,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
"reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -8021,7 +8243,13 @@
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
"reference": "c6c1022351a901512170118436c764e473f6de8c",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"php": ">=7.3"
@@ -8142,7 +8370,13 @@
"type": "zip",
"url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a",
"reference": "75a63c33a8577608444246075ea0af0d052e452a",
- "shasum": ""
+ "shasum": "",
+ "mirrors": [
+ {
+ "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+ "preferred": true
+ }
+ ]
},
"require": {
"ext-dom": "*",
--
Gitee