Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oa
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
朱招明
oa
Commits
7f421889
Commit
7f421889
authored
Oct 31, 2023
by
朱招明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
部门、公告接口
parent
bef6ec3a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
835 additions
and
109 deletions
+835
-109
2023_10_20_092649_create_admin_table.php
...abase/Migrations/2023_10_20_092649_create_admin_table.php
+3
-18
2023_10_30_191403_create_departments_table.php
...Migrations/2023_10_30_191403_create_departments_table.php
+35
-0
2023_10_31_090943_alter_admin_users_table.php
.../Migrations/2023_10_31_090943_alter_admin_users_table.php
+36
-0
2023_10_31_143609_create_announcements_table.php
...grations/2023_10_31_143609_create_announcements_table.php
+37
-0
AdminRole.php
Modules/Admin/Entities/AdminRole.php
+6
-1
AdminUser.php
Modules/Admin/Entities/AdminUser.php
+12
-4
Announcement.php
Modules/Admin/Entities/Announcement.php
+25
-0
Department.php
Modules/Admin/Entities/Department.php
+20
-0
AnnouncementController.php
Modules/Admin/Http/Controllers/AnnouncementController.php
+200
-0
AuthController.php
Modules/Admin/Http/Controllers/AuthController.php
+1
-1
DepartmentController.php
Modules/Admin/Http/Controllers/DepartmentController.php
+202
-0
RoleController.php
Modules/Admin/Http/Controllers/RoleController.php
+5
-41
UserController.php
Modules/Admin/Http/Controllers/UserController.php
+16
-30
Permission.php
Modules/Admin/Http/Middleware/Permission.php
+1
-1
AnnouncementRequest.php
Modules/Admin/Http/Requests/AnnouncementRequest.php
+38
-0
DepartmentRequest.php
Modules/Admin/Http/Requests/DepartmentRequest.php
+38
-0
UserRequest.php
Modules/Admin/Http/Requests/UserRequest.php
+3
-0
UserService.php
Modules/Admin/Http/Service/UserService.php
+51
-0
AdminRoleTransformer.php
Modules/Admin/Http/Transformers/AdminRoleTransformer.php
+1
-6
AdminUserTransformer.php
Modules/Admin/Http/Transformers/AdminUserTransformer.php
+18
-7
AnnouncementTransformer.php
Modules/Admin/Http/Transformers/AnnouncementTransformer.php
+40
-0
DepartmentTransformer.php
Modules/Admin/Http/Transformers/DepartmentTransformer.php
+41
-0
Helper.php
Modules/Admin/Http/Utils/Helper.php
+0
-0
api.php
Modules/Admin/Routes/api.php
+6
-0
No files found.
Modules/Admin/Database/Migrations/2023_10_20_092649_create_admin_table.php
View file @
7f421889
...
@@ -21,6 +21,7 @@ return new class extends Migration
...
@@ -21,6 +21,7 @@ return new class extends Migration
$table
->
string
(
'name'
);
$table
->
string
(
'name'
);
$table
->
string
(
'avatar'
)
->
nullable
();
$table
->
string
(
'avatar'
)
->
nullable
();
$table
->
string
(
'salt'
);
$table
->
string
(
'salt'
);
$table
->
integer
(
'role_id'
);
$table
->
timestamps
();
$table
->
timestamps
();
});
});
...
@@ -28,6 +29,7 @@ return new class extends Migration
...
@@ -28,6 +29,7 @@ return new class extends Migration
$table
->
increments
(
'id'
);
$table
->
increments
(
'id'
);
$table
->
string
(
'name'
,
50
);
$table
->
string
(
'name'
,
50
);
$table
->
string
(
'slug'
,
50
);
$table
->
string
(
'slug'
,
50
);
$table
->
json
(
'menus'
)
->
nullable
()
->
comment
(
'权限'
);
$table
->
timestamps
();
$table
->
timestamps
();
});
});
...
@@ -42,20 +44,6 @@ return new class extends Migration
...
@@ -42,20 +44,6 @@ return new class extends Migration
$table
->
timestamps
();
$table
->
timestamps
();
});
});
Schema
::
create
(
'admin_role_users'
,
function
(
Blueprint
$table
)
{
$table
->
integer
(
'role_id'
);
$table
->
integer
(
'user_id'
);
$table
->
index
([
'role_id'
,
'user_id'
]);
$table
->
timestamps
();
});
Schema
::
create
(
'admin_role_menus'
,
function
(
Blueprint
$table
)
{
$table
->
integer
(
'role_id'
);
$table
->
integer
(
'menu_id'
);
$table
->
index
([
'role_id'
,
'menu_id'
]);
$table
->
timestamps
();
});
Schema
::
create
(
'admin_operation_logs'
,
function
(
Blueprint
$table
)
{
Schema
::
create
(
'admin_operation_logs'
,
function
(
Blueprint
$table
)
{
$table
->
increments
(
'id'
);
$table
->
increments
(
'id'
);
$table
->
integer
(
'user_id'
);
$table
->
integer
(
'user_id'
);
...
@@ -74,16 +62,13 @@ return new class extends Migration
...
@@ -74,16 +62,13 @@ return new class extends Migration
"name"
=>
"admin"
,
"name"
=>
"admin"
,
"salt"
=>
"4IpZw+?%MD1c"
,
"salt"
=>
"4IpZw+?%MD1c"
,
"password"
=>
password_hash
(
md5
(
'1234564IpZw+?%MD1c'
),
PASSWORD_DEFAULT
),
"password"
=>
password_hash
(
md5
(
'1234564IpZw+?%MD1c'
),
PASSWORD_DEFAULT
),
"role_id"
=>
'1'
,
]);
]);
DB
::
table
(
"admin_roles"
)
->
insert
([
DB
::
table
(
"admin_roles"
)
->
insert
([
"id"
=>
"1"
,
"id"
=>
"1"
,
"name"
=>
"超级管理员"
,
"name"
=>
"超级管理员"
,
"slug"
=>
"超级管理员"
,
"slug"
=>
"超级管理员"
,
]);
]);
DB
::
table
(
"admin_role_users"
)
->
insert
([
"role_id"
=>
"1"
,
"user_id"
=>
"1"
,
]);
});
});
}
}
...
...
Modules/Admin/Database/Migrations/2023_10_30_191403_create_departments_table.php
0 → 100644
View file @
7f421889
<?php
use
Illuminate\Support\Facades\Schema
;
use
Illuminate\Database\Schema\Blueprint
;
use
Illuminate\Database\Migrations\Migration
;
return
new
class
extends
Migration
{
/**
* Run the migrations.
*
* @return void
*/
public
function
up
()
{
Schema
::
create
(
'departments'
,
function
(
Blueprint
$table
)
{
$table
->
comment
(
'部门表'
);
$table
->
id
();
$table
->
string
(
'name'
)
->
comment
(
'名称'
);
$table
->
string
(
'desc'
)
->
comment
(
'描述'
);
$table
->
integer
(
'parent_id'
)
->
default
(
0
)
->
comment
(
'上级部门ID'
);
$table
->
timestamps
();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function
down
()
{
Schema
::
dropIfExists
(
'departments'
);
}
};
Modules/Admin/Database/Migrations/2023_10_31_090943_alter_admin_users_table.php
0 → 100644
View file @
7f421889
<?php
use
Illuminate\Support\Facades\Schema
;
use
Illuminate\Database\Schema\Blueprint
;
use
Illuminate\Database\Migrations\Migration
;
return
new
class
extends
Migration
{
/**
* Run the migrations.
*
* @return void
*/
public
function
up
()
{
Schema
::
table
(
'admin_users'
,
function
(
Blueprint
$table
)
{
$table
->
string
(
'phone'
)
->
nullable
()
->
comment
(
'手机号码'
);
$table
->
dateTime
(
'entry_time'
)
->
nullable
()
->
comment
(
'入职时间'
);
$table
->
integer
(
'department_id'
)
->
nullable
()
->
comment
(
'部门ID'
);
$table
->
json
(
'skill'
)
->
nullable
()
->
comment
(
'技能'
);
$table
->
string
(
'job_name'
)
->
nullable
()
->
nullable
()
->
comment
(
'职位'
);
$table
->
string
(
'job_number'
)
->
nullable
()
->
comment
(
'工号'
);
$table
->
integer
(
'contract_id'
)
->
nullable
()
->
comment
(
'合同ID'
);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function
down
()
{
//
}
};
Modules/Admin/Database/Migrations/2023_10_31_143609_create_announcements_table.php
0 → 100644
View file @
7f421889
<?php
use
Illuminate\Support\Facades\Schema
;
use
Illuminate\Database\Schema\Blueprint
;
use
Illuminate\Database\Migrations\Migration
;
return
new
class
extends
Migration
{
/**
* Run the migrations.
*
* @return void
*/
public
function
up
()
{
Schema
::
create
(
'announcements'
,
function
(
Blueprint
$table
)
{
$table
->
comment
(
'公告表'
);
$table
->
id
();
$table
->
string
(
'title'
)
->
comment
(
'标题'
);
$table
->
string
(
'content'
)
->
comment
(
'内容'
);
$table
->
boolean
(
'show'
)
->
default
(
1
)
->
comment
(
'是否显示'
);
$table
->
boolean
(
'top'
)
->
default
(
0
)
->
comment
(
'是否置顶'
);
$table
->
timestamps
();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function
down
()
{
Schema
::
dropIfExists
(
'announcements'
);
}
};
Modules/Admin/Entities/AdminRole.php
View file @
7f421889
...
@@ -16,12 +16,17 @@ use Modules\Admin\Http\Utils\Helper;
...
@@ -16,12 +16,17 @@ use Modules\Admin\Http\Utils\Helper;
class
AdminRole
extends
Model
class
AdminRole
extends
Model
{
{
protected
$fillable
=
[
protected
$fillable
=
[
'name'
,
'slug'
,
'name'
,
'slug'
,
'menus'
,
];
];
protected
$casts
=
[
'menus'
=>
'json'
,
];
public
static
function
boot
()
public
static
function
boot
()
{
{
parent
::
boot
();
parent
::
boot
();
}
}
public
function
menu
()
:
BelongsToMany
public
function
menu
()
:
BelongsToMany
{
{
return
$this
->
belongsToMany
(
AdminMenu
::
class
,
'admin_role_menus'
,
'role_id'
,
'menu_id'
);
return
$this
->
belongsToMany
(
AdminMenu
::
class
,
'admin_role_menus'
,
'role_id'
,
'menu_id'
);
...
...
Modules/Admin/Entities/AdminUser.php
View file @
7f421889
...
@@ -16,9 +16,13 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany;
...
@@ -16,9 +16,13 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class
AdminUser
extends
Authenticatable
implements
JWTSubject
class
AdminUser
extends
Authenticatable
implements
JWTSubject
{
{
protected
$fillable
=
[
protected
$fillable
=
[
'username'
,
'password'
,
'name'
,
'avatar'
,
'salt'
'username'
,
'password'
,
'name'
,
'avatar'
,
'salt'
,
'role_id'
,
'phone'
,
'entry_time'
,
'department_id'
,
'skill'
,
'job_name'
,
'job_number'
,
'contract_id'
,
];
];
protected
$casts
=
[
'skill'
=>
'json'
,
];
/**
/**
* Get the identifier that will be stored in the subject claim of the JWT.
* Get the identifier that will be stored in the subject claim of the JWT.
*
*
...
@@ -59,8 +63,11 @@ class AdminUser extends Authenticatable implements JWTSubject
...
@@ -59,8 +63,11 @@ class AdminUser extends Authenticatable implements JWTSubject
];
];
}
}
public
function
roles
()
:
BelongsToMany
public
function
role
(){
{
return
$this
->
belongsTo
(
AdminRole
::
class
);
return
$this
->
belongsToMany
(
AdminRole
::
class
,
'admin_role_users'
,
'user_id'
,
'role_id'
);
}
public
function
department
(){
return
$this
->
belongsTo
(
Department
::
class
);
}
}
}
}
\ No newline at end of file
Modules/Admin/Entities/Announcement.php
0 → 100644
View file @
7f421889
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/31
* @copyright
*/
namespace
Modules\Admin\Entities
;
use
Illuminate\Database\Eloquent\Model
;
class
Announcement
extends
Model
{
protected
$fillable
=
[
'title'
,
'content'
];
public
function
scopeCanShow
(
$query
)
{
$query
->
where
(
'show'
,
1
);
}
}
\ No newline at end of file
Modules/Admin/Entities/Department.php
0 → 100644
View file @
7f421889
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/31
* @copyright
*/
namespace
Modules\Admin\Entities
;
use
Illuminate\Database\Eloquent\Model
;
class
Department
extends
Model
{
protected
$fillable
=
[
'name'
,
'desc'
];
}
\ No newline at end of file
Modules/Admin/Http/Controllers/AnnouncementController.php
0 → 100644
View file @
7f421889
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/31
* @copyright
*/
namespace
Modules\Admin\Http\Controllers
;
use
Modules\Admin\Entities\Announcement
;
use
Modules\Admin\Http\Requests\AnnouncementRequest
;
use
Modules\Admin\Http\Transformers\AnnouncementTransformer
;
class
AnnouncementController
extends
BaseController
{
/**
* @OA\Get(
* tags={"公告"},
* summary="列表",
* path="api/announcement/list",
* security={
* {"jwt_auth": {}}
* },
* @OA\Response(
* response="200",
* description="",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="data",
* type="array",
* @OA\Items(ref="#/components/schemas/Announcement"),
* description="列表"
* ),
* )
* )
* )
* )
*
*/
public
function
list
(){
$list
=
Announcement
::
canShow
()
->
paginate
(
request
(
'per_page'
,
null
));
return
$this
->
response
->
paginator
(
$list
,
new
AnnouncementTransformer
());
}
/**
* @OA\Post(
* tags={"公告"},
* summary="添加",
* path="api/announcement/add",
* security={
* {"jwt_auth": {}}
* },
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"title","content"},
* @OA\Property(
* property="title",
* type="string",
* description="标题",
* ),
* @OA\Property(
* property="content",
* type="string",
* description="内容",
* ),
* )
* )
* ),
* @OA\Response(
* response="201",
* description="",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="object",
* @OA\Property(property="data", type="object", ref="#/components/schemas/Announcement")
* )
* )
* )
* )
*
*/
public
function
add
(
AnnouncementRequest
$request
){
$params
=
array_filter
(
$request
->
all
([
'title'
,
'content'
,
'show'
,
'top'
]));
$announcement
=
Announcement
::
create
(
$params
);
return
$this
->
response
->
item
(
$announcement
,
new
AnnouncementTransformer
());
}
/**
* @OA\Get(
* tags={"公告"},
* summary="详情",
* path="api/announcement/{id}/detail",
* security={
* {"jwt_auth": {}}
* },
* @OA\Response(
* response="200",
* description="",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="object",
* @OA\Property(property="data", type="object", ref="#/components/schemas/Announcement")
* )
* )
* )
* )
*
*/
public
function
detail
(
$id
){
$announcement
=
Announcement
::
where
(
'id'
,
$id
)
->
first
();
if
(
!
$announcement
){
abort
(
500
,
'公告不存在'
);
}
return
$this
->
response
->
item
(
$announcement
,
new
AnnouncementTransformer
());
}
/**
* @OA\Put(
* tags={"公告"},
* summary="编辑",
* path="api/announcement/{id}/edit",
* security={
* {"jwt_auth": {}}
* },
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"title","content"},
* @OA\Property(
* property="title",
* type="string",
* description="标题",
* ),
* @OA\Property(
* property="content",
* type="string",
* description="内容",
* ),
* )
* )
* ),
* @OA\Response(
* response="204",
* description="",
* )
* )
*
*/
public
function
edit
(
AnnouncementRequest
$request
,
$id
){
$params
=
array_filter
(
$request
->
all
([
'title'
,
'content'
,
'show'
,
'top'
]));
$announcement
=
Announcement
::
where
(
'id'
,
$id
)
->
first
();
if
(
!
$announcement
){
abort
(
500
,
'公告不存在'
);
}
$announcement
->
update
(
$params
);
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
}
/**
* @OA\Delete(
* tags={"公告"},
* summary="删除",
* path="api/announcement/{id}/delete",
* security={
* {"jwt_auth": {}}
* },
* @OA\Response(
* response="204",
* description="",
* )
* )
*
*/
public
function
delete
(
$id
){
$announcement
=
Announcement
::
where
(
'id'
,
$id
)
->
first
();
if
(
$announcement
){
$announcement
->
delete
();
}
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
}
}
\ No newline at end of file
Modules/Admin/Http/Controllers/AuthController.php
View file @
7f421889
...
@@ -158,7 +158,7 @@ class AuthController extends BaseController
...
@@ -158,7 +158,7 @@ class AuthController extends BaseController
public
function
apiConfig
(
Request
$request
)
public
function
apiConfig
(
Request
$request
)
{
{
$user
=
$this
->
user
;
$user
=
$this
->
user
;
$role
=
$user
->
role
s
()
->
first
()
;
$role
=
$user
->
role
;
$data
=
[
$data
=
[
'user_info'
=>
Helper
::
mapAttr
(
$user
,[
'id'
,
'username'
,
'avatar'
,
'avatar_full_url'
,
'name'
,
'created_at'
,
'updated_at'
]),
'user_info'
=>
Helper
::
mapAttr
(
$user
,[
'id'
,
'username'
,
'avatar'
,
'avatar_full_url'
,
'name'
,
'created_at'
,
'updated_at'
]),
...
...
Modules/Admin/Http/Controllers/DepartmentController.php
0 → 100644
View file @
7f421889
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/31
* @copyright
*/
namespace
Modules\Admin\Http\Controllers
;
use
Modules\Admin\Entities\Department
;
use
Modules\Admin\Http\Requests\DepartmentRequest
;
use
Modules\Admin\Http\Transformers\DepartmentTransformer
;
use
Modules\Admin\Http\Utils\Helper
;
class
DepartmentController
extends
BaseController
{
/**
* @OA\Get(
* tags={"部门"},
* summary="列表",
* path="api/department/list",
* security={
* {"jwt_auth": {}}
* },
* @OA\Response(
* response="200",
* description="",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="object",
* @OA\Property(
* property="data",
* type="array",
* @OA\Items(ref="#/components/schemas/Department"),
* description="列表"
* ),
* )
* )
* )
* )
*
*/
public
function
list
(){
$list
=
Department
::
paginate
(
request
(
'per_page'
,
null
));
return
$this
->
response
->
paginator
(
$list
,
new
DepartmentTransformer
());
}
/**
* @OA\Post(
* tags={"部门"},
* summary="添加",
* path="api/department/add",
* security={
* {"jwt_auth": {}}
* },
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"name","desc"},
* @OA\Property(
* property="name",
* type="string",
* description="名称",
* ),
* @OA\Property(
* property="desc",
* type="string",
* description="说明",
* ),
* )
* )
* ),
* @OA\Response(
* response="201",
* description="",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="object",
* @OA\Property(property="data", type="object", ref="#/components/schemas/Department")
* )
* )
* )
* )
*
*/
public
function
add
(
DepartmentRequest
$request
){
$params
=
$request
->
all
([
'name'
,
'desc'
]);
$department
=
Department
::
create
(
$params
);
return
$this
->
response
->
item
(
$department
,
new
DepartmentTransformer
());
}
/**
* @OA\Get(
* tags={"部门"},
* summary="详情",
* path="api/department/{id}/detail",
* security={
* {"jwt_auth": {}}
* },
* @OA\Response(
* response="200",
* description="",
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="object",
* @OA\Property(property="data", type="object", ref="#/components/schemas/Department")
* )
* )
* )
* )
*
*/
public
function
detail
(
$id
){
$department
=
Department
::
where
(
'id'
,
$id
)
->
first
();
if
(
!
$department
){
abort
(
500
,
'部门不存在'
);
}
return
$this
->
response
->
item
(
$department
,
new
DepartmentTransformer
());
}
/**
* @OA\Put(
* tags={"部门"},
* summary="编辑",
* path="api/department/{id}/edit",
* security={
* {"jwt_auth": {}}
* },
* @OA\RequestBody(
* @OA\MediaType(
* mediaType="application/x-www-form-urlencoded",
* @OA\Schema(
* type="object",
* required={"name","desc"},
* @OA\Property(
* property="name",
* type="string",
* description="名称",
* ),
* @OA\Property(
* property="desc",
* type="string",
* description="说明",
* ),
* )
* )
* ),
* @OA\Response(
* response="204",
* description="",
* )
* )
*
*/
public
function
edit
(
DepartmentRequest
$request
,
$id
){
$params
=
$request
->
all
([
'name'
,
'desc'
]);
$department
=
Department
::
where
(
'id'
,
$id
)
->
first
();
if
(
!
$department
){
abort
(
500
,
'部门不存在'
);
}
$department
->
update
(
$params
);
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
}
/**
* @OA\Delete(
* tags={"部门"},
* summary="删除",
* path="api/department/{id}/delete",
* security={
* {"jwt_auth": {}}
* },
* @OA\Response(
* response="204",
* description="",
* )
* )
*
*/
public
function
delete
(
$id
){
$department
=
Department
::
where
(
'id'
,
$id
)
->
first
();
if
(
$department
){
$department
->
delete
();
}
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
}
}
\ No newline at end of file
Modules/Admin/Http/Controllers/RoleController.php
View file @
7f421889
...
@@ -87,7 +87,6 @@ class RoleController extends BaseController
...
@@ -87,7 +87,6 @@ class RoleController extends BaseController
public
function
add
(
RoleRequest
$request
){
public
function
add
(
RoleRequest
$request
){
$params
=
$request
->
all
([
'name'
,
'slug'
,
'menus'
]);
$params
=
$request
->
all
([
'name'
,
'slug'
,
'menus'
]);
logger
(
$params
);
if
(
!
is_array
(
$params
[
'menus'
])){
if
(
!
is_array
(
$params
[
'menus'
])){
abort
(
422
,
'菜单格式错误'
);
abort
(
422
,
'菜单格式错误'
);
}
}
...
@@ -97,23 +96,9 @@ class RoleController extends BaseController
...
@@ -97,23 +96,9 @@ class RoleController extends BaseController
abort
(
500
,
$error
);
abort
(
500
,
$error
);
}
}
$role
=
DB
::
transaction
(
function
()
use
(
$params
){
sort
(
$params
[
'menus'
]);
$role
=
AdminRole
::
create
(
$params
);
$insert
=
[];
foreach
(
$params
[
'menus'
]
as
$item
){
$insert
[]
=
[
'role_id'
=>
$role
->
id
,
'menu_id'
=>
(
int
)
$item
,
];
}
if
(
$insert
){
AdminRoleMenu
::
insert
(
$insert
);
}
return
$role
;
});
$role
=
AdminRole
::
create
(
$params
);
return
$this
->
response
->
item
(
$role
,
new
AdminRoleTransformer
());
return
$this
->
response
->
item
(
$role
,
new
AdminRoleTransformer
());
...
@@ -203,28 +188,10 @@ class RoleController extends BaseController
...
@@ -203,28 +188,10 @@ class RoleController extends BaseController
abort
(
500
,
$error
);
abort
(
500
,
$error
);
}
}
DB
::
transaction
(
function
()
use
(
$role
,
$params
,
$role_id
){
sort
(
$params
[
'menus'
]);
$role
->
name
=
$params
[
'name'
];
$role
->
slug
=
$params
[
'slug'
];
$role
->
save
();
AdminRoleMenu
::
where
(
'role_id'
,
$role_id
)
->
delete
();
$insert
=
[];
foreach
(
$params
[
'menus'
]
as
$item
){
$insert
[]
=
[
'role_id'
=>
$role_id
,
'menu_id'
=>
(
int
)
$item
,
];
}
if
(
$insert
){
AdminRoleMenu
::
insert
(
$insert
);
}
Helper
::
getRoleMenu
(
$role
,
true
);
$role
->
update
(
$params
);
Helper
::
getRoleApi
(
$role
,
true
);
});
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
}
}
...
@@ -255,10 +222,7 @@ class RoleController extends BaseController
...
@@ -255,10 +222,7 @@ class RoleController extends BaseController
abort
(
"此角色还有关联的用户,无法删除"
);
abort
(
"此角色还有关联的用户,无法删除"
);
}
}
DB
::
transaction
(
function
()
use
(
$role
){
$role
->
delete
();
$role
->
delete
();
AdminRoleMenu
::
where
(
'role_id'
,
$role
->
id
)
->
delete
();
});
}
}
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
...
...
Modules/Admin/Http/Controllers/UserController.php
View file @
7f421889
...
@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\DB;
...
@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\DB;
use
Modules\Admin\Entities\AdminRoleUser
;
use
Modules\Admin\Entities\AdminRoleUser
;
use
Modules\Admin\Entities\AdminUser
;
use
Modules\Admin\Entities\AdminUser
;
use
Modules\Admin\Http\Requests\UserRequest
;
use
Modules\Admin\Http\Requests\UserRequest
;
use
Modules\Admin\Http\Service\UserService
;
use
Modules\Admin\Http\Transformers\AdminUserTransformer
;
use
Modules\Admin\Http\Transformers\AdminUserTransformer
;
use
Modules\Admin\Http\Utils\Helper
;
use
Modules\Admin\Http\Utils\Helper
;
...
@@ -46,8 +47,8 @@ class UserController extends BaseController
...
@@ -46,8 +47,8 @@ class UserController extends BaseController
*
*
*/
*/
public
function
list
(){
public
function
list
(){
$list
=
AdminUser
::
all
(
);
$list
=
AdminUser
::
paginate
(
request
(
'per_page'
,
null
)
);
return
$this
->
response
->
collection
(
$list
,
new
AdminUserTransformer
());
return
$this
->
response
->
paginator
(
$list
,
new
AdminUserTransformer
());
}
}
/**
/**
...
@@ -101,7 +102,10 @@ class UserController extends BaseController
...
@@ -101,7 +102,10 @@ class UserController extends BaseController
*
*
*/
*/
public
function
add
(
UserRequest
$request
){
public
function
add
(
UserRequest
$request
){
$params
=
$request
->
all
([
'username'
,
'password'
,
'name'
,
'avatar'
,
'role_id'
]);
$params
=
$request
->
all
([
'username'
,
'password'
,
'name'
,
'avatar'
,
'role_id'
,
'phone'
,
'entry_time'
,
'department_id'
,
'skill'
,
'job_name'
,
'contract_id'
,
]);
#默认密码
#默认密码
if
(
empty
(
$params
[
'password'
])){
if
(
empty
(
$params
[
'password'
])){
...
@@ -111,16 +115,10 @@ class UserController extends BaseController
...
@@ -111,16 +115,10 @@ class UserController extends BaseController
$params
[
'salt'
]
=
Helper
::
generateRandomString
();
$params
[
'salt'
]
=
Helper
::
generateRandomString
();
$params
[
'password'
]
=
password_hash
(
md5
(
$params
[
'password'
]
.
$params
[
'salt'
]),
PASSWORD_DEFAULT
);
$params
[
'password'
]
=
password_hash
(
md5
(
$params
[
'password'
]
.
$params
[
'salt'
]),
PASSWORD_DEFAULT
);
$user
=
DB
::
transaction
(
function
()
use
(
$params
){
#工号生成
$role_id
=
$params
[
'role_id'
];
$params
[
'job_number'
]
=
UserService
::
createJobNumber
();
unset
(
$params
[
'role_id'
]);
$user
=
AdminUser
::
create
(
$params
);
$user
=
AdminUser
::
create
(
$params
);
AdminRoleUser
::
create
([
'role_id'
=>
$role_id
,
'user_id'
=>
$user
->
id
]);
return
$user
;
});
return
$this
->
response
->
item
(
$user
,
new
AdminUserTransformer
(
true
));
return
$this
->
response
->
item
(
$user
,
new
AdminUserTransformer
(
true
));
}
}
...
@@ -207,7 +205,10 @@ class UserController extends BaseController
...
@@ -207,7 +205,10 @@ class UserController extends BaseController
*
*
*/
*/
public
function
edit
(
UserRequest
$request
,
$id
){
public
function
edit
(
UserRequest
$request
,
$id
){
$params
=
$request
->
all
([
'username'
,
'password'
,
'name'
,
'avatar'
,
'role_id'
]);
$params
=
$request
->
all
([
'username'
,
'password'
,
'name'
,
'avatar'
,
'role_id'
,
'phone'
,
'entry_time'
,
'department_id'
,
'skill'
,
'job_name'
,
'contract_id'
,
]);
$user
=
AdminUser
::
where
(
'id'
,
$id
)
->
first
();
$user
=
AdminUser
::
where
(
'id'
,
$id
)
->
first
();
if
(
!
$user
){
if
(
!
$user
){
...
@@ -224,18 +225,7 @@ class UserController extends BaseController
...
@@ -224,18 +225,7 @@ class UserController extends BaseController
unset
(
$params
[
'password'
]);
unset
(
$params
[
'password'
]);
}
}
DB
::
transaction
(
function
()
use
(
$user
,
$params
){
$user
->
update
(
$params
);
$role_id
=
$params
[
'role_id'
];
unset
(
$params
[
'role_id'
]);
$user
->
update
(
$params
);
if
(
$role_id
&&
!
AdminRoleUser
::
where
([
'user_id'
=>
$user
->
id
,
'role_id'
=>
$role_id
])
->
first
()){
AdminRoleUser
::
where
(
'user_id'
,
$user
->
id
)
->
delete
();
AdminRoleUser
::
create
([
'role_id'
=>
$role_id
,
'user_id'
=>
$user
->
id
]);
}
});
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
}
}
...
@@ -258,11 +248,7 @@ class UserController extends BaseController
...
@@ -258,11 +248,7 @@ class UserController extends BaseController
public
function
delete
(
$id
){
public
function
delete
(
$id
){
$user
=
AdminUser
::
where
(
'id'
,
$id
)
->
first
();
$user
=
AdminUser
::
where
(
'id'
,
$id
)
->
first
();
if
(
$user
){
if
(
$user
){
DB
::
transaction
(
function
()
use
(
$user
){
$user
->
delete
();
$user
->
delete
();
AdminRoleUser
::
where
(
'user_id'
,
$user
->
id
)
->
delete
();
});
}
}
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
return
$this
->
response
->
noContent
()
->
statusCode
(
204
);
...
...
Modules/Admin/Http/Middleware/Permission.php
View file @
7f421889
...
@@ -20,7 +20,7 @@ class Permission
...
@@ -20,7 +20,7 @@ class Permission
{
{
$user
=
auth
()
->
user
();
$user
=
auth
()
->
user
();
#角色
#角色
$role
=
$user
->
role
s
()
->
first
()
;
$role
=
$user
->
role
;
$role_apis
=
array_filter
(
array_column
(
Helper
::
getRoleApi
(
$role
),
'api'
));
$role_apis
=
array_filter
(
array_column
(
Helper
::
getRoleApi
(
$role
),
'api'
));
$apis
=
array_filter
(
array_column
(
Helper
::
getAllApi
(),
'api'
));
$apis
=
array_filter
(
array_column
(
Helper
::
getAllApi
(),
'api'
));
...
...
Modules/Admin/Http/Requests/AnnouncementRequest.php
0 → 100644
View file @
7f421889
<?php
namespace
Modules\Admin\Http\Requests
;
use
Illuminate\Validation\Rule
;
use
Modules\Admin\Entities\AdminUser
;
class
AnnouncementRequest
extends
BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public
function
postRules
()
{
return
[
'title'
=>
'bail|required'
,
'content'
=>
'bail|required'
,
];
}
public
function
putRules
()
{
return
[
'title'
=>
'bail|required'
,
'content'
=>
'bail|required'
,
];
}
public
function
messages
()
{
return
[
'title.required'
=>
'标题不能为空'
,
'content.required'
=>
'内容不能为空'
,
];
}
}
Modules/Admin/Http/Requests/DepartmentRequest.php
0 → 100644
View file @
7f421889
<?php
namespace
Modules\Admin\Http\Requests
;
use
Illuminate\Validation\Rule
;
use
Modules\Admin\Entities\AdminUser
;
class
DepartmentRequest
extends
BaseRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public
function
postRules
()
{
return
[
'desc'
=>
'bail|required'
,
'name'
=>
'bail|required'
,
];
}
public
function
putRules
()
{
return
[
'desc'
=>
'bail|required'
,
'name'
=>
'bail|required'
,
];
}
public
function
messages
()
{
return
[
'name.required'
=>
'部门名称不能为空'
,
'desc.required'
=>
'部门说明不能为空'
,
];
}
}
Modules/Admin/Http/Requests/UserRequest.php
View file @
7f421889
...
@@ -18,6 +18,7 @@ class UserRequest extends BaseRequest
...
@@ -18,6 +18,7 @@ class UserRequest extends BaseRequest
'username'
=>
'bail|required|unique:admin_users'
,
'username'
=>
'bail|required|unique:admin_users'
,
'name'
=>
'bail|required'
,
'name'
=>
'bail|required'
,
'role_id'
=>
'bail|required|exists:admin_roles,id'
,
'role_id'
=>
'bail|required|exists:admin_roles,id'
,
'department_id'
=>
'bail|exists:departments,id'
,
];
];
}
}
...
@@ -27,6 +28,7 @@ class UserRequest extends BaseRequest
...
@@ -27,6 +28,7 @@ class UserRequest extends BaseRequest
'username'
=>
[
'bail'
,
'required'
],
'username'
=>
[
'bail'
,
'required'
],
'name'
=>
'bail|required'
,
'name'
=>
'bail|required'
,
'role_id'
=>
'bail|required|exists:admin_roles,id'
,
'role_id'
=>
'bail|required|exists:admin_roles,id'
,
'department_id'
=>
'bail|exists:departments,id'
,
];
];
}
}
...
@@ -38,6 +40,7 @@ class UserRequest extends BaseRequest
...
@@ -38,6 +40,7 @@ class UserRequest extends BaseRequest
'name.required'
=>
'账号名称不能为空'
,
'name.required'
=>
'账号名称不能为空'
,
'role_id.required'
=>
'角色必须'
,
'role_id.required'
=>
'角色必须'
,
'role_id.exists'
=>
'角色不存在'
,
'role_id.exists'
=>
'角色不存在'
,
'department_id.exists'
=>
'部门不存在'
,
];
];
}
}
}
}
Modules/Admin/Http/Service/UserService.php
0 → 100644
View file @
7f421889
<?php
/**
* @desc
* @author [ZZM]
* @since 2023/10/31
* @copyright
*/
namespace
Modules\Admin\Http\Service
;
use
Modules\Admin\Entities\AdminUser
;
class
UserService
extends
BaseService
{
/**
* 获取员工工号
* @desc
* @return string
* @since 2023/10/31
* @modify
* @author [ZZM]
*/
static
function
createJobNumber
()
{
$user
=
AdminUser
::
orderBy
(
'id'
,
'desc'
)
->
first
();
$job_number
=
$user
->
job_number
;
return
'SMG'
.
sprintf
(
"%08d"
,
self
::
findNum
(
$job_number
)
+
1
);
}
static
function
findNum
(
$str
=
''
)
{
$str
=
trim
(
$str
);
if
(
empty
(
$str
))
{
return
0
;
}
$result
=
''
;
for
(
$i
=
0
;
$i
<
strlen
(
$str
);
$i
++
)
{
if
(
is_numeric
(
$str
[
$i
]))
{
$result
.=
$str
[
$i
];
}
}
return
(
int
)
$result
;
}
}
\ No newline at end of file
Modules/Admin/Http/Transformers/AdminRoleTransformer.php
View file @
7f421889
...
@@ -36,14 +36,9 @@ class AdminRoleTransformer extends BaseTransformer
...
@@ -36,14 +36,9 @@ class AdminRoleTransformer extends BaseTransformer
*/
*/
public
function
transform
(
AdminRole
$role
)
public
function
transform
(
AdminRole
$role
)
{
{
$return
=
[
'id'
,
'name'
,
'slug'
,
'created_at'
];
$return
=
[
'id'
,
'name'
,
'slug'
,
'
menus'
,
'
created_at'
];
$return
=
Helper
::
mapAttr
(
$role
,
$return
);
$return
=
Helper
::
mapAttr
(
$role
,
$return
);
$return
[
'is_admin'
]
=
Helper
::
isAdministrator
(
$return
[
'id'
]);
$return
[
'is_admin'
]
=
Helper
::
isAdministrator
(
$return
[
'id'
]);
if
(
$this
->
show_menu
){
$return
[
'menus'
]
=
array_column
(
$role
->
menu
->
toArray
(),
'id'
);
}
return
$return
;
return
$return
;
}
}
}
}
Modules/Admin/Http/Transformers/AdminUserTransformer.php
View file @
7f421889
...
@@ -15,7 +15,7 @@ class AdminUserTransformer extends BaseTransformer
...
@@ -15,7 +15,7 @@ class AdminUserTransformer extends BaseTransformer
{
{
use
Macroable
;
use
Macroable
;
protected
array
$availableIncludes
=
[
'role
s
'
];
protected
array
$availableIncludes
=
[
'role
'
,
'department
'
];
protected
$show_role
=
false
;
protected
$show_role
=
false
;
...
@@ -34,24 +34,35 @@ class AdminUserTransformer extends BaseTransformer
...
@@ -34,24 +34,35 @@ class AdminUserTransformer extends BaseTransformer
* @OA\Property(property="username", type="string", description="用户名"),
* @OA\Property(property="username", type="string", description="用户名"),
* @OA\Property(property="avatar", type="string", description="头像"),
* @OA\Property(property="avatar", type="string", description="头像"),
* @OA\Property(property="name", type="string", description="名称"),
* @OA\Property(property="name", type="string", description="名称"),
* @OA\Property(property="phone", type="string", description="手机号码"),
* @OA\Property(property="entry_time", type="string", description="入职时间"),
* @OA\Property(property="skill", type="string", description="技能"),
* @OA\Property(property="job_name", type="string", description="职业"),
* @OA\Property(property="job_number", type="string", description="工号"),
* @OA\Property(property="created_at", type="string", description="注册时间"),
* @OA\Property(property="created_at", type="string", description="注册时间"),
* @OA\Property(property="updated_at", type="string", description="更新时间")
* @OA\Property(property="updated_at", type="string", description="更新时间")
* )
* )
*/
*/
public
function
transform
(
AdminUser
$user
)
public
function
transform
(
AdminUser
$user
)
{
{
$return
=
[
'id'
,
'username'
,
'avatar'
,
'avatar_full_url'
,
'name'
,
'created_at'
,
'updated_at'
];
$return
=
[
'id'
,
'username'
,
'avatar'
,
'avatar_full_url'
,
'name'
,
'role_id'
,
'phone'
,
'entry_time'
,
'department_id'
,
'skill'
,
'job_name'
,
'job_number'
,
'contract_id'
,
'created_at'
,
'updated_at'
];
$return
=
Helper
::
mapAttr
(
$user
,
$return
);
$return
=
Helper
::
mapAttr
(
$user
,
$return
);
$return
[
'is_admin'
]
=
Helper
::
isAdministrator
(
$return
[
'id'
]);
$return
[
'is_admin'
]
=
Helper
::
isAdministrator
(
$return
[
'id'
]);
if
(
$this
->
show_role
){
$return
[
'role'
]
=
$user
->
roles
()
->
first
();
}
return
$return
;
return
$return
;
}
}
public
function
includeRole
s
(
$user
)
public
function
includeRole
(
$user
)
{
{
return
$user
->
roles
()
?
$this
->
item
(
$user
->
roles
()
->
first
(),
new
AdminRoleTransformer
(
false
))
:
null
;
return
$user
->
role
?
$this
->
item
(
$user
->
role
,
new
AdminRoleTransformer
())
:
null
;
}
public
function
includeDepartment
(
$user
)
{
return
$user
->
department
?
$this
->
item
(
$user
->
department
,
new
DepartmentTransformer
())
:
null
;
}
}
}
}
Modules/Admin/Http/Transformers/AnnouncementTransformer.php
0 → 100644
View file @
7f421889
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/6/13
* Time: 11:12
*/
namespace
Modules\Admin\Http\Transformers
;
use
Illuminate\Support\Traits\Macroable
;
use
Modules\Admin\Entities\Announcement
;
use
Modules\Admin\Http\Utils\Helper
;
class
AnnouncementTransformer
extends
BaseTransformer
{
use
Macroable
;
public
function
__construct
()
{
parent
::
__construct
();
}
/**
* @OA\Schema(
* description="公告信息",
* type="object",
* schema="Announcement",
* @OA\Property(property="id", type="integer", description="ID"),
* @OA\Property(property="title", type="string", description="标题"),
* @OA\Property(property="content", type="string", description="内容"),
* @OA\Property(property="created_at", type="string", description="创建时间"),
* )
*/
public
function
transform
(
Announcement
$announcement
)
{
$return
=
[
'id'
,
'title'
,
'content'
,
'created_at'
];
$return
=
Helper
::
mapAttr
(
$announcement
,
$return
);
return
$return
;
}
}
Modules/Admin/Http/Transformers/DepartmentTransformer.php
0 → 100644
View file @
7f421889
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/6/13
* Time: 11:12
*/
namespace
Modules\Admin\Http\Transformers
;
use
Illuminate\Support\Traits\Macroable
;
use
Modules\Admin\Entities\AdminUser
;
use
Modules\Admin\Entities\Department
;
use
Modules\Admin\Http\Utils\Helper
;
class
DepartmentTransformer
extends
BaseTransformer
{
use
Macroable
;
public
function
__construct
()
{
parent
::
__construct
();
}
/**
* @OA\Schema(
* description="部门信息",
* type="object",
* schema="Department",
* @OA\Property(property="id", type="integer", description="ID"),
* @OA\Property(property="name", type="string", description="名称"),
* @OA\Property(property="desc", type="string", description="说明"),
* @OA\Property(property="created_at", type="string", description="创建时间"),
* )
*/
public
function
transform
(
Department
$department
)
{
$return
=
[
'id'
,
'name'
,
'desc'
,
'created_at'
];
$return
=
Helper
::
mapAttr
(
$department
,
$return
);
return
$return
;
}
}
Modules/Admin/Http/Utils/Helper.php
View file @
7f421889
This diff is collapsed.
Click to expand it.
Modules/Admin/Routes/api.php
View file @
7f421889
...
@@ -43,6 +43,12 @@ $api->version('v1', [
...
@@ -43,6 +43,12 @@ $api->version('v1', [
#角色
#角色
\Modules\Admin\Http\Utils\RouteRegister
::
registerApi
(
$api
,
'role'
,
'RoleController'
);
\Modules\Admin\Http\Utils\RouteRegister
::
registerApi
(
$api
,
'role'
,
'RoleController'
);
#部门
\Modules\Admin\Http\Utils\RouteRegister
::
registerApi
(
$api
,
'department'
,
'DepartmentController'
);
#公告
\Modules\Admin\Http\Utils\RouteRegister
::
registerApi
(
$api
,
'announcement'
,
'AnnouncementController'
);
});
});
});
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment