Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Springboot Plus
Commits
29ef2d76
Commit
29ef2d76
authored
Apr 06, 2020
by
trumansdo
Browse files
用户管理功能,待完成最后一个操作角色功能
parent
4614a9a3
Changes
28
Hide whitespace changes
Inline
Side-by-side
plus-admin/admin-console/src/main/java/com/ibeetl/admin/console/service/UserConsoleService.java
View file @
29ef2d76
...
@@ -184,7 +184,12 @@ public class UserConsoleService extends CoreBaseService<CoreUser> {
...
@@ -184,7 +184,12 @@ public class UserConsoleService extends CoreBaseService<CoreUser> {
sqlManager
.
insert
(
userRole
);
sqlManager
.
insert
(
userRole
);
}
}
public
List
<
UserExcelExportData
>
queryExcel
(
PageQuery
<
CoreUser
>
query
)
{
public
List
<
UserExcelExportData
>
queryExcel
(
CoreUserParam
coreUserParam
)
{
PageQuery
<
CoreUser
>
query
=
coreUserParam
.
createPageQuery
();
// 取出全部符合条件的
// page.setPageSize(Integer.MAX_VALUE);
// page.setPageNumber(1);
// page.setTotalRow(Integer.MAX_VALUE);
PageQuery
<
CoreUser
>
ret
=
userConsoleDao
.
queryByCondtion
(
query
);
PageQuery
<
CoreUser
>
ret
=
userConsoleDao
.
queryByCondtion
(
query
);
List
<
CoreUser
>
list
=
ret
.
getList
();
List
<
CoreUser
>
list
=
ret
.
getList
();
OrgItem
orgRoot
=
platformService
.
buildOrg
();
OrgItem
orgRoot
=
platformService
.
buildOrg
();
...
@@ -203,7 +208,7 @@ public class UserConsoleService extends CoreBaseService<CoreUser> {
...
@@ -203,7 +208,7 @@ public class UserConsoleService extends CoreBaseService<CoreUser> {
dict
=
dictService
.
findCoreDict
(
CoreDictType
.
JOB_TYPE
,
dictValue
);
dict
=
dictService
.
findCoreDict
(
CoreDictType
.
JOB_TYPE
,
dictValue
);
userItem
.
setJobType1Text
(
dict
.
getName
());
userItem
.
setJobType1Text
(
dict
.
getName
());
}
}
Long
orgId
=
user
.
getOrgId
(
);
Long
orgId
=
Optional
.
ofNullable
(
user
.
getOrg
()).
map
(
CoreOrg:
:
getId
).
orElse
(
1L
);
String
orgName
=
orgRoot
.
findChild
(
orgId
).
getName
();
String
orgName
=
orgRoot
.
findChild
(
orgId
).
getName
();
userItem
.
setOrgText
(
orgName
);
userItem
.
setOrgText
(
orgName
);
items
.
add
(
userItem
);
items
.
add
(
userItem
);
...
...
plus-admin/admin-console/src/main/java/com/ibeetl/admin/console/web/RoleCascaderElController.java
0 → 100644
View file @
29ef2d76
package
com.ibeetl.admin.console.web
;
import
com.ibeetl.admin.console.service.CoreOrgConsoleElService
;
import
com.ibeetl.admin.core.entity.CoreRole
;
import
com.ibeetl.admin.core.entity.ElCascaderData
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.service.CoreRoleService
;
import
com.ibeetl.admin.core.util.enums.RoleTypeEnum
;
import
com.ibeetl.admin.core.web.JsonResult
;
import
java.util.ArrayList
;
import
java.util.List
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 角色字典数据获取
*
* @author 一日看尽长安花
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/core/roles"
)
public
class
RoleCascaderElController
{
@Autowired
CorePlatformService
corePlatformService
;
@Autowired
CoreOrgConsoleElService
coreOrgConsoleElService
;
@Autowired
CoreRoleService
coreRoleService
;
@GetMapping
(
"/immediateLoad"
)
public
JsonResult
<
List
<
ElCascaderData
>>
immediateLoadCascaderDict
()
{
List
<
CoreRole
>
childDictList
=
coreRoleService
.
getAllRoles
(
RoleTypeEnum
.
ACCESS
.
getValue
());
return
JsonResult
.
success
(
coreRoleToElCascaderData
(
childDictList
));
}
/**
* .将字典树转成element级联器组件的格式
*
* @author 一日看尽长安花
* @return List<ElCascaderData>
*/
private
List
<
ElCascaderData
>
coreRoleToElCascaderData
(
List
<
CoreRole
>
coreRoles
)
{
List
<
ElCascaderData
>
elCascaderDatas
=
new
ArrayList
<
ElCascaderData
>(
coreRoles
.
size
());
for
(
CoreRole
role
:
coreRoles
)
{
ElCascaderData
data
=
new
ElCascaderData
();
data
.
setId
(
role
.
getId
());
data
.
setLabel
(
role
.
getName
());
data
.
setValue
(
role
.
getId
());
elCascaderDatas
.
add
(
data
);
}
return
elCascaderDatas
.
isEmpty
()
?
null
:
elCascaderDatas
;
}
}
plus-admin/admin-console/src/main/java/com/ibeetl/admin/console/web/RoleConsoleElController.java
0 → 100644
View file @
29ef2d76
package
com.ibeetl.admin.console.web
;
import
com.ibeetl.admin.console.service.FunctionConsoleService
;
import
com.ibeetl.admin.console.service.OrgConsoleService
;
import
com.ibeetl.admin.console.service.RoleConsoleService
;
import
com.ibeetl.admin.console.web.dto.RoleDataAccessFunction
;
import
com.ibeetl.admin.console.web.query.RoleQuery
;
import
com.ibeetl.admin.console.web.query.RoleUserQuery
;
import
com.ibeetl.admin.core.annotation.Function
;
import
com.ibeetl.admin.core.annotation.Query
;
import
com.ibeetl.admin.core.entity.CoreRole
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
com.ibeetl.admin.core.entity.ElCascaderData
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.util.AnnotationUtil
;
import
com.ibeetl.admin.core.util.ConvertUtil
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
import
com.ibeetl.admin.core.web.JsonResult
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.servlet.ModelAndView
;
/** 角色管理功能相关 */
@Slf4j
@RequestMapping
(
"/admin/roles"
)
@RestController
public
class
RoleConsoleElController
{
@Autowired
private
RoleConsoleService
roleConsoleService
;
@Autowired
private
FunctionConsoleService
functionConsoleService
;
@Autowired
CorePlatformService
platformService
;
/**
* 列表页、 分页数据
*
* @param condtion
* @return
*/
@PostMapping
(
"/list.json"
)
@Function
(
"role.query"
)
public
JsonResult
<
PageQuery
>
list
(
RoleQuery
condtion
)
{
PageQuery
page
=
condtion
.
getPageQuery
();
roleConsoleService
.
queryByCondtion
(
page
);
return
JsonResult
.
success
(
page
);
}
@GetMapping
(
"/all.json"
)
@Function
(
"role.query"
)
public
JsonResult
<
List
<
CoreRole
>>
all
()
{
List
<
CoreRole
>
list
=
roleConsoleService
.
queryAllPermissionList
();
return
JsonResult
.
success
(
list
);
}
/**
* 获取列表查询条件
*
* @return
*/
@PostMapping
(
"/list/condition.json"
)
@Function
(
"role.query"
)
public
JsonResult
<
List
<
Map
<
String
,
Object
>>>
listCondtion
()
{
List
<
Map
<
String
,
Object
>>
list
=
AnnotationUtil
.
getInstance
().
getAnnotations
(
Query
.
class
,
RoleQuery
.
class
);
return
JsonResult
.
success
(
list
);
}
/**
* 保存
*
* @return
*/
@PostMapping
(
"/add.json"
)
@Function
(
"role.add"
)
public
JsonResult
addRole
(
@Validated
(
ValidateConfig
.
ADD
.
class
)
CoreRole
role
)
{
CoreRole
role1
=
roleConsoleService
.
queryByCode
(
role
.
getCode
());
if
(
role1
!=
null
)
{
return
JsonResult
.
failMessage
(
"用户编号已存在"
);
}
JsonResult
result
=
new
JsonResult
();
role
.
setCreateTime
(
new
Date
());
roleConsoleService
.
save
(
role
);
platformService
.
clearFunctionCache
();
return
result
.
success
();
}
/**
* 更新
*
* @param role
* @return
*/
@PostMapping
(
"/update.json"
)
@Function
(
"role.edit"
)
public
JsonResult
<
String
>
update
(
@Validated
(
ValidateConfig
.
UPDATE
.
class
)
CoreRole
role
)
{
boolean
success
=
roleConsoleService
.
update
(
role
);
if
(
success
)
{
platformService
.
clearFunctionCache
();
return
new
JsonResult
().
success
();
}
else
{
return
JsonResult
.
failMessage
(
"保存失败"
);
}
}
/**
* 查询角色信息
*
* @param id
* @return
*/
@GetMapping
(
"/view.json"
)
@Function
(
"role.query"
)
public
JsonResult
<
CoreRole
>
queryInfo
(
Long
id
)
{
CoreRole
role
=
roleConsoleService
.
queryById
(
id
);
return
JsonResult
.
success
(
role
);
}
/**
* (批量)删除
*
* @param ids 角色id
* @return
*/
@PostMapping
(
"/delete.json"
)
@Function
(
"role.delete"
)
public
JsonResult
delete
(
String
ids
)
{
if
(
ids
.
endsWith
(
","
))
{
ids
=
StringUtils
.
substringBeforeLast
(
ids
,
","
);
}
List
<
Long
>
idList
=
ConvertUtil
.
str2longs
(
ids
);
roleConsoleService
.
deleteById
(
idList
);
return
new
JsonResult
().
success
();
}
/** 查询角色下授权用户列表 */
@PostMapping
(
"/user/list.json"
)
@Function
(
"role.user.query"
)
public
JsonResult
<
PageQuery
<
CoreUser
>>
userList
(
RoleUserQuery
query
)
{
PageQuery
page
=
query
.
getPageQuery
();
PageQuery
<
CoreUser
>
pageQuery
=
roleConsoleService
.
queryRoleUser
(
page
);
return
JsonResult
.
success
(
page
);
}
@PostMapping
(
"/function/ids.json"
)
@Function
(
"role.function.query"
)
public
JsonResult
<
List
<
Long
>>
getFunctionIdByRole
(
Long
roleId
)
{
List
<
Long
>
list
=
functionConsoleService
.
getFunctionByRole
(
roleId
);
return
JsonResult
.
success
(
list
);
}
@GetMapping
(
"/function/queryFunction.json"
)
@Function
(
"role.function.query"
)
public
JsonResult
<
List
<
RoleDataAccessFunction
>>
getQueryFunctionByRole
(
Long
roleId
)
{
List
<
RoleDataAccessFunction
>
list
=
functionConsoleService
.
getQueryFunctionByRole
(
roleId
);
return
JsonResult
.
success
(
list
);
}
@PostMapping
(
"/function/update.json"
)
@Function
(
"role.function.edit"
)
public
JsonResult
updateFunction
(
Long
roleId
,
String
ids
)
{
List
<
Long
>
all
=
ConvertUtil
.
str2longs
(
ids
);
List
<
Long
>
addIds
=
new
ArrayList
<
Long
>();
List
<
Long
>
delIds
=
new
ArrayList
<
Long
>();
List
<
Long
>
dbs
=
functionConsoleService
.
getFunctionByRole
(
roleId
);
Iterator
<
Long
>
it
=
all
.
iterator
();
for
(
Long
id
:
all
)
{
if
(!
dbs
.
contains
(
id
))
{
addIds
.
add
(
id
);
}
}
for
(
Long
id
:
dbs
)
{
if
(!
all
.
contains
(
id
))
{
delIds
.
add
(
id
);
}
}
functionConsoleService
.
updateSysRoleFunction
(
roleId
,
addIds
,
delIds
);
return
JsonResult
.
success
();
}
@PostMapping
(
"/function/updateDataAccess.json"
)
@Function
(
"role.function.updateDataAccess"
)
public
JsonResult
updateFunctionDataAccess
(
Long
roleId
,
Long
fnId
,
Integer
accessType
)
{
RoleDataAccessFunction
data
=
new
RoleDataAccessFunction
();
data
.
setRoleId
(
roleId
);
data
.
setId
(
fnId
);
data
.
setDataAccessType
(
accessType
);
functionConsoleService
.
updateFunctionAccessByRole
(
Arrays
.
asList
(
data
));
return
JsonResult
.
success
();
}
/*后端模板渲染*/
@PostMapping
(
"/function/dataAccess.do"
)
@Function
(
"role.function.updateDataAccess"
)
public
ModelAndView
datapage
(
Long
roleId
)
{
List
<
RoleDataAccessFunction
>
list
=
functionConsoleService
.
getQueryFunctionByRole
(
roleId
);
ModelAndView
view
=
new
ModelAndView
(
"/admin/role/dataConfigPart.html"
);
view
.
addObject
(
"list"
,
list
);
return
view
;
}
}
plus-admin/admin-console/src/main/java/com/ibeetl/admin/console/web/UserConsoleController.java
View file @
29ef2d76
package
com.ibeetl.admin.console.web
;
package
com.ibeetl.admin.console.web
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Properties
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.jxls.common.Context
;
import
org.jxls.util.JxlsHelper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.ModelAndView
;
import
com.ibeetl.admin.console.service.OrgConsoleService
;
import
com.ibeetl.admin.console.service.OrgConsoleService
;
import
com.ibeetl.admin.console.service.RoleConsoleService
;
import
com.ibeetl.admin.console.service.RoleConsoleService
;
import
com.ibeetl.admin.console.service.UserConsoleService
;
import
com.ibeetl.admin.console.service.UserConsoleService
;
...
@@ -38,12 +13,32 @@ import com.ibeetl.admin.core.entity.CoreUserRole;
...
@@ -38,12 +13,32 @@ import com.ibeetl.admin.core.entity.CoreUserRole;
import
com.ibeetl.admin.core.file.FileItem
;
import
com.ibeetl.admin.core.file.FileItem
;
import
com.ibeetl.admin.core.file.FileService
;
import
com.ibeetl.admin.core.file.FileService
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.service.param.CoreUserParam
;
import
com.ibeetl.admin.core.util.AnnotationUtil
;
import
com.ibeetl.admin.core.util.AnnotationUtil
;
import
com.ibeetl.admin.core.util.ConvertUtil
;
import
com.ibeetl.admin.core.util.ConvertUtil
;
import
com.ibeetl.admin.core.util.PlatformException
;
import
com.ibeetl.admin.core.util.PlatformException
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
import
com.ibeetl.admin.core.util.enums.GeneralStateEnum
;
import
com.ibeetl.admin.core.util.enums.GeneralStateEnum
;
import
com.ibeetl.admin.core.web.JsonResult
;
import
com.ibeetl.admin.core.web.JsonResult
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.jxls.common.Context
;
import
org.jxls.util.JxlsHelper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.ModelAndView
;
/**
/**
* 用户管理接口
* 用户管理接口
...
@@ -223,12 +218,7 @@ public class UserConsoleController {
...
@@ -223,12 +218,7 @@ public class UserConsoleController {
return
new
JsonResult
().
success
();
return
new
JsonResult
().
success
();
}
}
/**
/** 用户所有授权角色列表 */
* 用户所有授权角色列表
*
* @param id 用户id
* @return
*/
@PostMapping
(
MODEL
+
"/role/list.json"
)
@PostMapping
(
MODEL
+
"/role/list.json"
)
@Function
(
"user.role"
)
@Function
(
"user.role"
)
@ResponseBody
@ResponseBody
...
@@ -271,14 +261,9 @@ public class UserConsoleController {
...
@@ -271,14 +261,9 @@ public class UserConsoleController {
@PostMapping
(
MODEL
+
"/excel/export.json"
)
@PostMapping
(
MODEL
+
"/excel/export.json"
)
@Function
(
"user.export"
)
@Function
(
"user.export"
)
@ResponseBody
@ResponseBody
public
JsonResult
<
String
>
export
(
HttpServletResponse
response
,
UserQuery
condtion
)
{
public
JsonResult
<
String
>
export
(
HttpServletResponse
response
,
CoreUserParam
coreUserParam
)
{
String
excelTemplate
=
"excelTemplates/admin/user/user_collection_template.xls"
;
String
excelTemplate
=
"excelTemplates/admin/user/user_collection_template.xls"
;
PageQuery
<
CoreUser
>
page
=
condtion
.
getPageQuery
();
List
<
UserExcelExportData
>
users
=
userConsoleService
.
queryExcel
(
coreUserParam
);
// 取出全部符合条件的
page
.
setPageSize
(
Integer
.
MAX_VALUE
);
page
.
setPageNumber
(
1
);
page
.
setTotalRow
(
Integer
.
MAX_VALUE
);
List
<
UserExcelExportData
>
users
=
userConsoleService
.
queryExcel
(
page
);
try
(
InputStream
is
=
try
(
InputStream
is
=
Thread
.
currentThread
().
getContextClassLoader
().
getResourceAsStream
(
excelTemplate
))
{
Thread
.
currentThread
().
getContextClassLoader
().
getResourceAsStream
(
excelTemplate
))
{
if
(
is
==
null
)
{
if
(
is
==
null
)
{
...
...
plus-admin/admin-console/src/main/java/com/ibeetl/admin/console/web/UserConsoleElController.java
View file @
29ef2d76
package
com.ibeetl.admin.console.web
;
package
com.ibeetl.admin.console.web
;
import
cn.hutool.core.convert.Convert
;
import
com.ibeetl.admin.console.service.UserConsoleService
;
import
com.ibeetl.admin.console.service.UserConsoleService
;
import
com.ibeetl.admin.console.util.VOUtil
;
import
com.ibeetl.admin.console.util.VOUtil
;
import
com.ibeetl.admin.console.web.dto.UserExcelExportData
;
import
com.ibeetl.admin.console.web.query.CoreUserElQuery
;
import
com.ibeetl.admin.console.web.query.CoreUserElQuery
;
import
com.ibeetl.admin.console.web.query.UserRoleQuery
;
import
com.ibeetl.admin.core.annotation.Function
;
import
com.ibeetl.admin.core.annotation.Function
;
import
com.ibeetl.admin.core.annotation.RequestBodyPlus
;
import
com.ibeetl.admin.core.annotation.RequestBodyPlus
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
com.ibeetl.admin.core.entity.CoreUserRole
;
import
com.ibeetl.admin.core.file.FileItem
;
import
com.ibeetl.admin.core.file.FileService
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.service.param.CoreUserParam
;
import
com.ibeetl.admin.core.service.param.CoreUserParam
;
import
com.ibeetl.admin.core.util.PlatformException
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
import
com.ibeetl.admin.core.web.JsonResult
;
import
com.ibeetl.admin.core.web.JsonResult
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.jxls.common.Context
;
import
org.jxls.util.JxlsHelper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
...
@@ -21,6 +37,7 @@ import org.springframework.web.bind.annotation.PostMapping;
...
@@ -21,6 +37,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
@Validated
@Validated
...
@@ -32,6 +49,8 @@ public class UserConsoleElController {
...
@@ -32,6 +49,8 @@ public class UserConsoleElController {
@Autowired
private
CorePlatformService
platformService
;
@Autowired
private
CorePlatformService
platformService
;
@Autowired
FileService
fileService
;
@Function
(
"user.query"
)
@Function
(
"user.query"
)
@GetMapping
(
"/metadata"
)
@GetMapping
(
"/metadata"
)
public
JsonResult
<
Map
>
usersMetedata
()
{
public
JsonResult
<
Map
>
usersMetedata
()
{
...
@@ -73,4 +92,69 @@ public class UserConsoleElController {
...
@@ -73,4 +92,69 @@ public class UserConsoleElController {
userConsoleService
.
batchDelSysUser
(
Arrays
.
asList
(
ids
));
userConsoleService
.
batchDelSysUser
(
Arrays
.
asList
(
ids
));
return
JsonResult
.
success
();
return
JsonResult
.
success
();
}
}
/** 用户所有授权角色列表 */
@GetMapping
(
"/roles"
)
@Function
(
"user.role"
)
@ResponseBody
public
JsonResult
<
List
<
CoreUserRole
>>
getRoleList
(
UserRoleQuery
roleQuery
)
{
List
<
CoreUserRole
>
list
=
userConsoleService
.
getUserRoles
(
roleQuery
);
return
JsonResult
.
success
(
list
);
}
/**
* 用户添加授权角色页
*
* @return
*/
@PostMapping
(
"/roles"
)
@Function
(
"user.role"
)
@ResponseBody
public
JsonResult
saveUserRole
(
@Validated
CoreUserRole
userRole
)
{
userRole
.
setCreateTime
(
new
Date
());
this
.
userConsoleService
.
saveUserRole
(
userRole
);
this
.
platformService
.
clearFunctionCache
();
return
JsonResult
.
success
(
userRole
.
getId
());
}
/**
* 删除用户角色授权
*
* @return
*/
@DeleteMapping
(
"/roles"
)
@Function
(
"user.role"
)
@ResponseBody
public
JsonResult
delUserRole
(
String
[]
ids
)
{
List
<
Long
>
dels
=
Arrays
.
stream
(
ids
)
.
map
(
id
->
Convert
.
toLong
(
id
,
null
))
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toList
());
userConsoleService
.
deleteUserRoles
(
dels
);
this
.
platformService
.
clearFunctionCache
();
return
JsonResult
.
success
();
}
@PostMapping
(
"/excel/export"
)
@Function
(
"user.export"
)
public
JsonResult
<
String
>
export
(
@RequestBody
CoreUserParam
coreUserParam
)
{
String
excelTemplate
=
"excelTemplates/admin/user/user_collection_template.xls"
;
List
<
UserExcelExportData
>
users
=
userConsoleService
.
queryExcel
(
coreUserParam
);
try
(
InputStream
is
=
Thread
.
currentThread
().
getContextClassLoader
().
getResourceAsStream
(
excelTemplate
))
{
if
(
is
==
null
)
{
throw
new
PlatformException
(
"模板资源不存在:"
+
excelTemplate
);
}
FileItem
item
=
fileService
.
createFileTemp
(
"user_collection.xls"
);
OutputStream
os
=
item
.
openOutpuStream
();
Context
context
=
new
Context
();
context
.
putVar
(
"users"
,
users
);
JxlsHelper
.
getInstance
().
processTemplate
(
is
,
os
,
context
);
// 下载参考FileSystemContorller
return
JsonResult
.
success
(
item
.
getPath
());
}
catch
(
IOException
e
)
{
throw
new
PlatformException
(
e
.
getMessage
());
}
}
}
}
plus-admin/admin-console/src/main/java/com/ibeetl/admin/console/web/query/UserRoleQuery.java
View file @
29ef2d76
package
com.ibeetl.admin.console.web.query
;
package
com.ibeetl.admin.console.web.query
;
import
com.ibeetl.admin.core.annotation.Query
;
import
com.ibeetl.admin.core.web.query.PageParam
;
import
com.ibeetl.admin.core.web.query.PageParam
;
import
lombok.Data
;
/** */
/**
* 用户管理》操作角色
* */
@Data
public
class
UserRoleQuery
extends
PageParam
{
public
class
UserRoleQuery
extends
PageParam
{
@Query
(
name
=
"角色"
,
display
=
true
,
type
=
Query
.
TYPE_CONTROL
,
control
=
"role"
)
private
Long
roleId
;
private
Long
roleId
;
@Query
(
name
=
"部门"
,
display
=
true
,
type
=
Query
.
TYPE_CONTROL
,
control
=
"org"
)
private
Long
orgId
;
private
Long
orgId
;
private
Long
userId
;
private
Long
userId
;
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
}
public
Long
getRoleId
()
{
return
roleId
;
}
public
void
setRoleId
(
Long
roleId
)
{
this
.
roleId
=
roleId
;
}
public
Long
getOrgId
()
{
return
orgId
;
}
public
void
setOrgId
(
Long
orgId
)
{
this
.
orgId
=
orgId
;
}
}
}
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/conf/beetl/processor/JsonBeanProcessor.java
View file @
29ef2d76
...
@@ -3,7 +3,6 @@ package com.ibeetl.admin.core.conf.beetl.processor;
...
@@ -3,7 +3,6 @@ package com.ibeetl.admin.core.conf.beetl.processor;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.ClassUtil
;
import
com.ibeetl.admin.core.conf.beetl.resultmap.DBColumnProperty
;
import
com.ibeetl.admin.core.conf.beetl.resultmap.DBColumnProperty
;
import
com.ibeetl.admin.core.conf.beetl.resultmap.GridCell
;
import
com.ibeetl.admin.core.conf.beetl.resultmap.GridCell
;
import
com.ibeetl.admin.core.conf.beetl.resultmap.GridHeader
;
import
com.ibeetl.admin.core.conf.beetl.resultmap.GridHeader
;
...
@@ -251,7 +250,7 @@ public class JsonBeanProcessor extends BeanProcessor {
...
@@ -251,7 +250,7 @@ public class JsonBeanProcessor extends BeanProcessor {
String
sqlId
,
ResultSet
resultSet
,
GridHeader
header
,
GridCell
virtualCell
)
{
String
sqlId
,
ResultSet
resultSet
,
GridHeader
header
,
GridCell
virtualCell
)
{
/*通过当前header获取对应的结果集列*/
/*通过当前header获取对应的结果集列*/
Map
<
String
,
Object
>
beanMap
=
extractMapFromRs
(
sqlId
,
resultSet
,
header
);
Map
<
String
,
Object
>
beanMap
=
extractMapFromRs
(
sqlId
,
resultSet
,
header
);
GridCell
realContainerCell
=
virtualCell
.
ad
dOrCreateNestedCell
(
header
,
beanMap
);
GridCell
realContainerCell
=
virtualCell
.
fin
dOrCreateNestedCell
(
header
,
beanMap
);
List
<
GridHeader
>
nestedHeaders
=
header
.
getNestedHeaders
();
List
<
GridHeader
>
nestedHeaders
=
header
.
getNestedHeaders
();
for
(
GridHeader
nestedHeader
:
nestedHeaders
)
{
for
(
GridHeader
nestedHeader
:
nestedHeaders
)
{
/*在 realContainerCell 中找到对应header的虚拟cell*/
/*在 realContainerCell 中找到对应header的虚拟cell*/
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/conf/beetl/resultmap/DBColumnProperty.java
View file @
29ef2d76
...
@@ -5,15 +5,16 @@ import java.sql.JDBCType;
...
@@ -5,15 +5,16 @@ import java.sql.JDBCType;
public
class
DBColumnProperty
{
public
class
DBColumnProperty
{
/** json映射中value */
/** json映射中value */
String
value
;
String
value
;
/** SQL select 中as 别名 */
/** SQL select 中
as 别名 */
String
columnLabel
;
String
columnLabel
;
/** 对应列索引位置,从1开始 */
/** 对应
resultset
列索引位置,从1开始 */
int
columnIndex
;
int
columnIndex
;
/** 对应的jdbc类型 */
/** 对应的jdbc类型 */
JDBCType
jdbcType
;
JDBCType
jdbcType
;
/**当前resultset是否存在对应的列,不存在就不需要获取,避免报错*/
boolean
hasEffective
;
boolean
hasEffective
;
public
DBColumnProperty
(
String
columnLabel
)
{
public
DBColumnProperty
(
String
columnLabel
)
{
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/conf/beetl/resultmap/GridCell.java
View file @
29ef2d76
...
@@ -18,24 +18,28 @@ import java.util.Set;
...
@@ -18,24 +18,28 @@ import java.util.Set;
*/
*/
public
class
GridCell
implements
Serializable
{
public
class
GridCell
implements
Serializable
{
/** 对应的
属性
与数据库中值的映射,用于map to Bean 转换 */
/** 对应的
pojo字段
与数据库中值的映射,用于map to Bean 转换 */
Map
<
String
,
Object
>
beanMap
=
MapUtil
.
newHashMap
();
Map
<
String
,
Object
>
beanMap
=
MapUtil
.
newHashMap
();
/** 映射类型 */
/**
当前节点的
映射类型 */
Class
resultType
;
Class
resultType
;
/** 一个
单元格
包含一个对象中的所有数据列,通过对这些数据列进行hash得到数据列的唯一性 */
/** 一个
节点
包含一个对象中的所有数据列,通过对这些数据列进行hash得到数据列的唯一性 */
Integer
hashKey
;
Integer
hashKey
;
/** 包含的网格单元格 */
/** 包含的网格单元格 */
List
<
GridCell
>
nestedCell
=
CollUtil
.<
GridCell
>
newArrayList
();
List
<
GridCell
>
nestedCell
=
CollUtil
.<
GridCell
>
newArrayList
();
/**
归属的网格单元格
*/
/**
父节点
*/
GridCell
parentCell
;
GridCell
parentCell
;
/**对应的gridheader节点,在to bean时,需要json映射规则的信息*/
GridHeader
relationGridHeader
;
GridHeader
relationGridHeader
;
/** 是否是作为容器 */
/**
* 是否是作为容器
* 并没有用到
* */
boolean
hasContainer
;
boolean
hasContainer
;
public
Map
<
String
,
Object
>
getBeanMap
()
{
public
Map
<
String
,
Object
>
getBeanMap
()
{
...
@@ -108,7 +112,7 @@ public class GridCell implements Serializable {
...
@@ -108,7 +112,7 @@ public class GridCell implements Serializable {
return
this
.
relationGridHeader
;
return
this
.
relationGridHeader
;
}
}
public
GridCell
ad
dOrCreateNestedCell
(
GridHeader
header
,
Map
<
String
,
Object
>
beanMap
)
{
public
GridCell
fin
dOrCreateNestedCell
(
GridHeader
header
,
Map
<
String
,
Object
>
beanMap
)
{
GridCell
contentCell
=
new
GridCell
();
GridCell
contentCell
=
new
GridCell
();
contentCell
.
setHasContainer
(
false
);
contentCell
.
setHasContainer
(
false
);
contentCell
.
setRelationGridHeader
(
header
);
contentCell
.
setRelationGridHeader
(
header
);
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/conf/beetl/resultmap/GridHeader.java
View file @
29ef2d76
...
@@ -17,27 +17,33 @@ import java.util.Map.Entry;
...
@@ -17,27 +17,33 @@ import java.util.Map.Entry;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
*
网格头
,保存了属性与列的映射关系,以及映射的java类型。<br>
*
节点
,保存了属性与列的映射关系,以及映射的java类型。<br>
* 内嵌的
网格头,内嵌网格头
的映射java类型,是否是映射至List集合字段
* 内嵌的
节点,内嵌节点
的映射java类型,是否是映射至List集合字段
*/
*/
public
class
GridHeader
implements
Serializable
{
public
class
GridHeader
implements
Serializable
{
/** java属性名与数据库列名的对应。顺序:prop:column */
/** java属性名与数据库列名的对应。顺序:prop:column */
Map
<
JavaFieldProperty
,
DBColumnProperty
>
fieldToColumnMap
=
new
HashMap
<>();
Map
<
JavaFieldProperty
,
DBColumnProperty
>
fieldToColumnMap
=
new
HashMap
<>();
/** 当前
网格头
对应映射java类型,只有嵌套的是非基本类型和string才有值 */
/** 当前
节点
对应映射java类型,只有嵌套的是非基本类型和string才有值
(也可以将包装类型赋值,为了简单处理,我并没有做)
*/
Class
resultType
;
Class
resultType
;
/** 嵌套类型的
网格头
*/
/** 嵌套类型的
子节点,可以改为map存储field:gridheader
*/
List
<
GridHeader
>
nestedHeaders
=
CollUtil
.<
GridHeader
>
newArrayList
();
List
<
GridHeader
>
nestedHeaders
=
CollUtil
.<
GridHeader
>
newArrayList
();
/** 嵌套类型的
网格头
*/
/** 嵌套类型的
父节点
*/
GridHeader
parentHeader
;
GridHeader
parentHeader
;
/** 当前header所属上级的嵌套字段名。如果是第一级就说明没有嵌套,为null */
/**
* 当前header所属上级的嵌套字段名。如果是第一级就说明没有嵌套,为null。
* 保存这个信息,是为了在处理当前节点转换为pojo时,有个是否为数组的判断
* */
JavaFieldProperty
belongNestedField
;
JavaFieldProperty
belongNestedField
;
/** 网格头所属的网格映射 */
/**
* 节点所属的Gridmapping
* 只是尽可能的保留上下文而已,可以设法用其它的外部信息类保持,不过也没有使用到它
* */
GridMapping
belongMapping
;
GridMapping
belongMapping
;
public
GridHeader
(
Map
<
String
,
Object
>
resultMapping
,
GridMapping
belongMapping
)
{
public
GridHeader
(
Map
<
String
,
Object
>
resultMapping
,
GridMapping
belongMapping
)
{
...
@@ -118,7 +124,7 @@ public class GridHeader implements Serializable {
...
@@ -118,7 +124,7 @@ public class GridHeader implements Serializable {
keyField
.
setKey
(
key
);
keyField
.
setKey
(
key
);
Class
<?>
valClass
=
ClassUtil
.
getClass
(
value
);
Class
<?>
valClass
=
ClassUtil
.
getClass
(
value
);
if
(
Collection
.
class
.
isAssignableFrom
(
valClass
))
{
if
(
Collection
.
class
.
isAssignableFrom
(
valClass
))
{
/*生成嵌套
网格头
,此嵌套的类型对应集合字段*/
/*生成嵌套
节点
,此嵌套的类型对应集合字段*/
Map
<
String
,
Object
>
nestedMapping
=
Map
<
String
,
Object
>
nestedMapping
=
(
Map
<
String
,
Object
>)
(
Map
<
String
,
Object
>)
((
Collection
)
value
).
stream
().
findFirst
().
orElse
(
MapUtil
.
newHashMap
(
0
));
((
Collection
)
value
).
stream
().
findFirst
().
orElse
(
MapUtil
.
newHashMap
(
0
));
...
@@ -127,7 +133,7 @@ public class GridHeader implements Serializable {
...
@@ -127,7 +133,7 @@ public class GridHeader implements Serializable {
nestedHeader
.
setBelongNestedField
(
keyField
);
nestedHeader
.
setBelongNestedField
(
keyField
);
this
.
getNestedHeaders
().
add
(
nestedHeader
);
this
.
getNestedHeaders
().
add
(
nestedHeader
);
}
else
if
(
Map
.
class
.
isAssignableFrom
(
valClass
))
{
}
else
if
(
Map
.
class
.
isAssignableFrom
(
valClass
))
{
/*生成嵌套
网格头
,此嵌套的类型对应单个对象字段*/
/*生成嵌套
节点
,此嵌套的类型对应单个对象字段*/
Map
<
String
,
Object
>
nestedMapping
=
(
Map
<
String
,
Object
>)
value
;
Map
<
String
,
Object
>
nestedMapping
=
(
Map
<
String
,
Object
>)
value
;
GridHeader
nestedHeader
=
new
GridHeader
(
nestedMapping
,
this
.
getBelongMapping
());
GridHeader
nestedHeader
=
new
GridHeader
(
nestedMapping
,
this
.
getBelongMapping
());
nestedHeader
.
setParentHeader
(
this
);
nestedHeader
.
setParentHeader
(
this
);
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/conf/beetl/resultmap/GridMapping.java
View file @
29ef2d76
...
@@ -19,9 +19,10 @@ public class GridMapping implements Serializable {
...
@@ -19,9 +19,10 @@ public class GridMapping implements Serializable {
/** 当前映射配置对应的class类型 */
/** 当前映射配置对应的class类型 */
String
resultType
;
String
resultType
;
/**
网格头
*/
/**
root节点
*/
GridHeader
header
;
GridHeader
header
;
/** 虚拟root节点,为了递归算法需要一个虚拟root节点*/
GridCell
virtualCell
;
GridCell
virtualCell
;
public
GridMapping
(
Map
<
String
,
Object
>
resultMapping
)
{
public
GridMapping
(
Map
<
String
,
Object
>
resultMapping
)
{
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/file/LocalFileItem.java
View file @
29ef2d76
...
@@ -49,15 +49,14 @@ public class LocalFileItem extends PersistFileItem {
...
@@ -49,15 +49,14 @@ public class LocalFileItem extends PersistFileItem {
try
{
try
{
input
.
close
();
input
.
close
();
os
.
close
();
os
.
close
();
if
(
isTemp
)
{
this
.
delete
();
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
// TODO Auto-generated catch block
// TODO Auto-generated catch block
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
if
(
isTemp
)
{
this
.
delete
();
}
}
}
@Override
@Override
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreRoleService.java
View file @
29ef2d76
...
@@ -2,13 +2,9 @@ package com.ibeetl.admin.core.service;
...
@@ -2,13 +2,9 @@ package com.ibeetl.admin.core.service;
import
com.ibeetl.admin.core.dao.CoreRoleDao
;
import
com.ibeetl.admin.core.dao.CoreRoleDao
;
import
com.ibeetl.admin.core.entity.CoreRole
;
import
com.ibeetl.admin.core.entity.CoreRole
;
import
com.ibeetl.admin.core.entity.CoreUserRole
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.extern.log4j.Log4j2
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.beetl.sql.core.query.Query
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -25,9 +21,17 @@ public class CoreRoleService extends CoreBaseService<CoreRole> {
...
@@ -25,9 +21,17 @@ public class CoreRoleService extends CoreBaseService<CoreRole> {
@Autowired
private
CoreRoleDao
roleDao
;
@Autowired
private
CoreRoleDao
roleDao
;
/**
*
* @param type : R0 操作角色;R1 是工作流角色
*
* @author 一日看尽长安花
*/
public
List
<
CoreRole
>
getAllRoles
(
String
type
)
{
public
List
<
CoreRole
>
getAllRoles
(
String
type
)
{
CoreRole
template
=
new
CoreRole
();
return
roleDao
template
.
setType
(
type
);
.
getSQLManager
()
return
roleDao
.
template
(
template
);
.
lambdaQuery
(
CoreRole
.
class
)
.
andEq
(
CoreRole:
:
getType
,
Query
.
filterEmpty
(
type
))
.
select
();
}
}
}
}
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/util/enums/RoleTypeEnum.java
View file @
29ef2d76
package
com.ibeetl.admin.core.util.enums
;
package
com.ibeetl.admin.core.util.enums
;
import
com.fasterxml.jackson.annotation.JsonCreator
;
import
com.fasterxml.jackson.annotation.JsonValue
;
import
org.beetl.sql.core.annotatoin.EnumMapping
;
import
org.beetl.sql.core.annotatoin.EnumMapping
;
/**
/**
* 描述:
工作流角色
* 描述:
角色字典枚举
*
*
* @author : Administrator
* @author : Administrator
*/
*/
@EnumMapping
(
"value"
)
@EnumMapping
(
"value"
)
public
enum
RoleTypeEnum
{
public
enum
RoleTypeEnum
implements
DictTypeEnum
<
RoleTypeEnum
>
{
/** 操作角色 */
/** 操作角色 */
ACCESS
(
"R0"
),
ACCESS
(
"R0"
),
...
@@ -21,6 +23,7 @@ public enum RoleTypeEnum {
...
@@ -21,6 +23,7 @@ public enum RoleTypeEnum {
this
.
value
=
value
;
this
.
value
=
value
;
}
}
@JsonValue
public
String
getValue
()
{
public
String
getValue
()
{
return
value
;
return
value
;
}
}
...
@@ -29,17 +32,15 @@ public enum RoleTypeEnum {
...
@@ -29,17 +32,15 @@ public enum RoleTypeEnum {
this
.
value
=
value
;
this
.
value
=
value
;
}
}
public
static
RoleTypeEnum
getEnum
(
String
value
)
{
@JsonCreator
for
(
RoleTypeEnum
stateEnum
:
RoleTypeEnum
.
values
())
{
@Override
if
(
stateEnum
.
value
==
value
)
{
public
RoleTypeEnum
findEnum
(
String
value
)
{
return
stateEnum
;
RoleTypeEnum
[]
values
=
values
();
for
(
RoleTypeEnum
typeEnum
:
values
)
{
if
(
typeEnum
.
value
.
equals
(
value
))
{
return
typeEnum
;
}
}
}
}
return
null
;
return
null
;
}
}
@Override
public
String
toString
()
{
return
String
.
valueOf
(
this
.
value
);
}
}
}
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/web/FileSystemElContorller.java
View file @
29ef2d76
...
@@ -16,6 +16,7 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -16,6 +16,7 @@ import javax.servlet.http.HttpServletResponse;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
...
@@ -113,15 +114,11 @@ public class FileSystemElContorller {
...
@@ -113,15 +114,11 @@ public class FileSystemElContorller {
*/
*/
@GetMapping
(
"/download"
)
@GetMapping
(
"/download"
)
public
void
downloadFileByPath
(
HttpServletResponse
response
,
String
path
)
throws
IOException
{
public
void
downloadFileByPath
(
HttpServletResponse
response
,
String
path
)
throws
IOException
{
response
.
setContentType
(
"text/html; charset = UTF-8"
);
FileItem
fileItem
=
fileService
.
loadFileItemByPath
(
path
);
FileItem
fileItem
=
fileService
.
loadFileItemByPath
(
path
);
response
.
setHeader
(
response
.
setHeader
(
"Content-Disposition"
,
HttpHeaders
.
CONTENT_DISPOSITION
,
"attachment; filename="
+
java
.
net
.
URLEncoder
.
encode
(
fileItem
.
getName
(),
"UTF-8"
));
"attachment; filename="
+
java
.
net
.
URLEncoder
.
encode
(
fileItem
.
getName
(),
"UTF-8"
));
fileItem
.
copy
(
response
.
getOutputStream
());
fileItem
.
copy
(
response
.
getOutputStream
());
if
(
fileItem
.
isTemp
())
{
fileItem
.
delete
();
}
}
}
@GetMapping
(
"/downloadTemplate"
)
@GetMapping
(
"/downloadTemplate"
)
...
...
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/web/query/PageParam.java
View file @
29ef2d76
...
@@ -31,6 +31,11 @@ public class PageParam {
...
@@ -31,6 +31,11 @@ public class PageParam {
this
.
limit
=
limit
;
this
.
limit
=
limit
;
}
}
/**
* 以当前类中被{@link Query} 注解的字段为SQL参数
* @author 一日看尽长安花
* Created on 2020/3/26
*/
@JsonIgnore
@JsonIgnore
public
PageQuery
getPageQuery
()
{
public
PageQuery
getPageQuery
()
{
Field
[]
fs
=
this
.
getClass
().
getDeclaredFields
();
Field
[]
fs
=
this
.
getClass
().
getDeclaredFields
();
...
@@ -62,6 +67,11 @@ public class PageParam {
...
@@ -62,6 +67,11 @@ public class PageParam {
return
query
;
return
query
;
}
}
/**
* 以当前类所有字段为SQL 参数
*
* @author 一日看尽长安花
*/
@JsonIgnore
@JsonIgnore
public
PageQuery
createPageQuery
()
{
public
PageQuery
createPageQuery
()
{
PageQuery
query
=
new
PageQuery
();
PageQuery
query
=
new
PageQuery
();
...
...
ve-admin/admin-web/package.json
View file @
29ef2d76
...
@@ -56,6 +56,7 @@
...
@@ -56,6 +56,7 @@
"file-saver"
:
"2.0.1"
,
"file-saver"
:
"2.0.1"
,
"fuse.js"
:
"3.4.4"
,
"fuse.js"
:
"3.4.4"
,
"js-cookie"
:
"2.2.0"
,
"js-cookie"
:
"2.2.0"
,
"js-file-download"
:
"^0.4.10"
,
"jsonlint"
:
"1.6.3"
,
"jsonlint"
:
"1.6.3"
,
"jszip"
:
"3.2.1"
,
"jszip"
:
"3.2.1"
,
"lodash"
:
"^4.17.15"
,
"lodash"
:
"^4.17.15"
,
...
...
ve-admin/admin-web/src/api/file.js
View file @
29ef2d76
/*
/*
* @Author: 一日看尽长安花
* @Author: 一日看尽长安花
* @since: 2020-03-16 11:16:52
* @since: 2020-03-16 11:16:52
* @LastEditTime: 2020-03-
19 21:04:54
* @LastEditTime: 2020-03-
27 20:49:27
* @LastEditors: 一日看尽长安花
* @LastEditors: 一日看尽长安花
* @Description:
* @Description:
*/
*/
import
request
from
'
@/utils/request
'
;
import
request
from
'
@/utils/request
'
;
import
fileDownload
from
'
js-file-download
'
;
/**
/**
* 一些常量
* 一些常量
*/
*/
...
@@ -42,10 +42,18 @@ export function downloadMutipleFile(params) {
...
@@ -42,10 +42,18 @@ export function downloadMutipleFile(params) {
* @param {object} params 包含的参数:path
* @param {object} params 包含的参数:path
*/
*/
export
function
download
(
params
)
{
export
function
download
(
params
)
{
const
_fileDownload
=
fileDownload
;
return
request
({
return
request
({
url
:
'
/core/file/download
'
,
url
:
'
/core/file/download
'
,
method
:
'
get
'
,
method
:
'
get
'
,
responseType
:
'
blob
'
,
timeout
:
undefined
,
params
params
}).
then
((
response
,
b
,
c
,
d
)
=>
{
const
matchs
=
/filename=
(
.*
)
/gi
.
exec
(
response
.
headers
[
'
content-disposition
'
]
);
_fileDownload
(
response
.
data
,
matchs
[
1
]);
});
});
}
}
...
...
ve-admin/admin-web/src/api/role.js
View file @
29ef2d76
import
request
from
'
@/utils/request
'
import
request
from
'
@/utils/request
'
;
export
function
getRoutes
()
{
export
function
getRoutes
()
{
return
request
({
return
request
({
url
:
'
/routes
'
,
url
:
'
/routes
'
,
method
:
'
get
'
method
:
'
get
'
})
})
;
}
}
export
function
get
Roles
()
{
export
function
immaditeLoad
Roles
()
{
return
request
({
return
request
({
url
:
'
/
roles
'
,
url
:
'
/
core/roles/immediateLoad
'
,
method
:
'
get
'
method
:
'
get
'
})
})
;
}
}
export
function
addRole
(
data
)
{
export
function
addRole
(
data
)
{
...
@@ -19,7 +19,7 @@ export function addRole(data) {
...
@@ -19,7 +19,7 @@ export function addRole(data) {
url
:
'
/role
'
,
url
:
'
/role
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
data
})
})
;
}
}
export
function
updateRole
(
id
,
data
)
{
export
function
updateRole
(
id
,
data
)
{
...
@@ -27,12 +27,12 @@ export function updateRole(id, data) {
...
@@ -27,12 +27,12 @@ export function updateRole(id, data) {
url
:
`/role/
${
id
}
`
,
url
:
`/role/
${
id
}
`
,
method
:
'
put
'
,
method
:
'
put
'
,
data
data
})
})
;
}
}
export
function
deleteRole
(
id
)
{
export
function
deleteRole
(
id
)
{
return
request
({
return
request
({
url
:
`/role/
${
id
}
`
,
url
:
`/role/
${
id
}
`
,
method
:
'
delete
'
method
:
'
delete
'
})
})
;
}
}
ve-admin/admin-web/src/api/user.js
View file @
29ef2d76
...
@@ -68,3 +68,19 @@ export function deleteUserData(data) {
...
@@ -68,3 +68,19 @@ export function deleteUserData(data) {
data
data
});
});
}
}
export
function
exportExcelUserData
(
data
)
{
return
request
({
url
:
'
/users/excel/export
'
,
method
:
'
post
'
,
data
});
}
export
function
getUserRoles
(
params
)
{
return
request
({
url
:
'
/users/roles
'
,
method
:
'
get
'
,
params
});
}
Prev
1
2
Next
Write
Preview
Supports
Markdown
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