Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
H
hzsomms
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
ZTGK
hzsomms
Commits
ec9df5b9
Commit
ec9df5b9
authored
Jul 03, 2023
by
hkl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:1.代码提交
parent
5f2bd8be
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1295 additions
and
1296 deletions
+1295
-1296
Result.java
...se-core/src/main/java/org/jeecg/common/api/vo/Result.java
+159
-152
RestDesformUtil.java
.../src/main/java/org/jeecg/common/util/RestDesformUtil.java
+2
-2
FileTypeFilter.java
...ain/java/org/jeecg/common/util/filter/FileTypeFilter.java
+53
-53
Swagger2Config.java
...e-core/src/main/java/org/jeecg/config/Swagger2Config.java
+5
-5
ShiroConfig.java
...ore/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+73
-73
SectionStationMap.java
...jeecg/modules/subwayNetwork/entity/SectionStationMap.java
+0
-63
LightRailServiceImpl.java
...ules/subwayNetwork/service/impl/LightRailServiceImpl.java
+0
-1
CommonController.java
...org/jeecg/modules/system/controller/CommonController.java
+57
-52
SysRoleController.java
...rg/jeecg/modules/system/controller/SysRoleController.java
+402
-394
SysUserController.java
...rg/jeecg/modules/system/controller/SysUserController.java
+539
-499
SysUserServiceImpl.java
...jeecg/modules/system/service/impl/SysUserServiceImpl.java
+1
-0
pom.xml
pom.xml
+4
-2
No files found.
jeecg-boot-base-core/src/main/java/org/jeecg/common/api/vo/Result.java
View file @
ec9df5b9
...
...
@@ -9,169 +9,176 @@ import org.jeecg.common.constant.CommonConstant;
import
java.io.Serializable
;
/**
* 接口返回数据格式
* 接口返回数据格式
*
* @author scott
* @email jeecgos@163.com
* @date
2019年1月19日
* @date 2019年1月19日
*/
@Data
@ApiModel
(
value
=
"接口返回对象"
,
description
=
"接口返回对象"
)
@ApiModel
(
value
=
"接口返回对象"
,
description
=
"接口返回对象"
)
public
class
Result
<
T
>
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 成功标志
*/
@ApiModelProperty
(
value
=
"成功标志"
)
private
boolean
success
=
true
;
/**
* 返回处理消息
*/
@ApiModelProperty
(
value
=
"返回处理消息"
)
private
String
message
=
""
;
/**
* 返回代码
*/
@ApiModelProperty
(
value
=
"返回代码"
)
private
Integer
code
=
0
;
/**
* 返回数据对象 data
*/
@ApiModelProperty
(
value
=
"返回数据对象"
)
private
T
result
;
/**
* 时间戳
*/
@ApiModelProperty
(
value
=
"时间戳"
)
private
long
timestamp
=
System
.
currentTimeMillis
();
public
Result
()
{
}
private
static
final
long
serialVersionUID
=
1L
;
public
void
setSuccess
(
boolean
success
)
{
this
.
success
=
success
;
this
.
code
=
200
;
}
/**
* 成功标志
*/
@ApiModelProperty
(
value
=
"成功标志"
)
private
boolean
success
=
true
;
/**
* 返回处理消息
*/
@ApiModelProperty
(
value
=
"返回处理消息"
)
private
String
message
=
""
;
/**
* 返回代码
*/
@ApiModelProperty
(
value
=
"返回代码"
)
private
Integer
code
=
0
;
/**
* 返回数据对象 data
*/
@ApiModelProperty
(
value
=
"返回数据对象"
)
private
T
result
;
/**
* 时间戳
*/
@ApiModelProperty
(
value
=
"时间戳"
)
private
long
timestamp
=
System
.
currentTimeMillis
();
public
Result
()
{
}
/**
* 兼容VUE3版token失效不跳转登录页面
*
* @param code
* @param message
*/
public
Result
(
Integer
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
Result
<
T
>
success
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_OK_200
;
this
.
success
=
true
;
return
this
;
}
public
static
<
T
>
Result
<
T
>
ok
()
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
ok
(
String
msg
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
r
.
setResult
((
T
)
msg
);
r
.
setMessage
(
msg
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
ok
(
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
()
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
return
r
;
}
/**
* 此方法是为了兼容升级所创建
*
* @param msg
* @param <T>
* @return
*/
public
static
<
T
>
Result
<
T
>
OK
(
String
msg
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setMessage
(
msg
);
//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
r
.
setResult
((
T
)
msg
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
(
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
(
String
msg
,
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setMessage
(
msg
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
error
(
String
msg
,
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
false
);
r
.
setCode
(
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
);
r
.
setMessage
(
msg
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
error
(
String
msg
)
{
return
error
(
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
,
msg
);
}
public
static
<
T
>
Result
<
T
>
error
(
int
code
,
String
msg
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
code
);
r
.
setMessage
(
msg
);
r
.
setSuccess
(
false
);
return
r
;
}
public
Result
<
T
>
error500
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
;
this
.
success
=
false
;
return
this
;
}
/**
* 无权限访问返回结果
*/
public
static
<
T
>
Result
<
T
>
noauth
(
String
msg
)
{
return
error
(
CommonConstant
.
SC_JEECG_NO_AUTHZ
,
msg
);
}
@JsonIgnore
private
String
onlTable
;
public
Result
(
Integer
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
Result
<
T
>
success
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_OK_200
;
this
.
success
=
true
;
return
this
;
}
public
static
<
T
>
Result
<
T
>
ok
()
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
ok
(
String
msg
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
r
.
setResult
((
T
)
msg
);
r
.
setMessage
(
msg
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
ok
(
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
()
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
return
r
;
}
/**
* 此方法是为了兼容升级所创建
*
* @param msg
* @param <T>
* @return
*/
public
static
<
T
>
Result
<
T
>
OK
(
String
msg
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setMessage
(
msg
);
//Result OK(String msg)方法会造成兼容性问题 issues/I4IP3D
r
.
setResult
((
T
)
msg
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
(
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
OK
(
String
msg
,
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
true
);
r
.
setCode
(
CommonConstant
.
SC_OK_200
);
r
.
setMessage
(
msg
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
error
(
String
msg
,
T
data
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setSuccess
(
false
);
r
.
setCode
(
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
);
r
.
setMessage
(
msg
);
r
.
setResult
(
data
);
return
r
;
}
public
static
<
T
>
Result
<
T
>
error
(
String
msg
)
{
return
error
(
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
,
msg
);
}
public
static
<
T
>
Result
<
T
>
error
(
int
code
,
String
msg
)
{
Result
<
T
>
r
=
new
Result
<
T
>();
r
.
setCode
(
code
);
r
.
setMessage
(
msg
);
r
.
setSuccess
(
false
);
return
r
;
}
public
Result
<
T
>
error500
(
String
message
)
{
this
.
message
=
message
;
this
.
code
=
CommonConstant
.
SC_INTERNAL_SERVER_ERROR_500
;
this
.
success
=
false
;
return
this
;
}
/**
* 无权限访问返回结果
*/
public
static
<
T
>
Result
<
T
>
noauth
(
String
msg
)
{
return
error
(
CommonConstant
.
SC_JEECG_NO_AUTHZ
,
msg
);
}
@JsonIgnore
private
String
onlTable
;
}
\ No newline at end of file
jeecg-boot-base-core/src/main/java/org/jeecg/common/util/RestDesformUtil.java
View file @
ec9df5b9
...
...
@@ -14,8 +14,8 @@ import org.springframework.http.ResponseEntity;
*/
public
class
RestDesformUtil
{
p
rivate
static
String
domain
=
null
;
p
rivate
static
String
path
=
null
;
p
ublic
static
String
domain
=
null
;
p
ublic
static
String
path
=
null
;
static
{
domain
=
SpringContextUtils
.
getDomain
();
...
...
jeecg-boot-base-core/src/main/java/org/jeecg/common/util/filter/FileTypeFilter.java
View file @
ec9df5b9
...
...
@@ -25,59 +25,59 @@ public class FileTypeFilter {
static
{
FILE_TYPE_MAP
.
put
(
"3c25402070616765206c"
,
"jsp"
);
FILE_TYPE_MAP
.
put
(
"3c3f7068700a0a2f2a2a0a202a205048"
,
"php"
);
/* fileTypeMap
.put("ffd8ffe000104a464946", "jpg");
fileTypeMap
.put("89504e470d0a1a0a0000", "png");
fileTypeMap
.put("47494638396126026f01", "gif");
fileTypeMap
.put("49492a00227105008037", "tif");
fileTypeMap
.put("424d228c010000000000", "bmp");
fileTypeMap
.put("424d8240090000000000", "bmp");
fileTypeMap
.put("424d8e1b030000000000", "bmp");
fileTypeMap
.put("41433130313500000000", "dwg");
fileTypeMap
.put("3c21444f435459504520", "html");
fileTypeMap
.put("3c21646f637479706520", "htm");
fileTypeMap
.put("48544d4c207b0d0a0942", "css");
fileTypeMap
.put("696b2e71623d696b2e71", "js");
fileTypeMap
.put("7b5c727466315c616e73", "rtf");
fileTypeMap
.put("38425053000100000000", "psd");
fileTypeMap
.put("46726f6d3a203d3f6762", "eml");
fileTypeMap
.put("d0cf11e0a1b11ae10000", "doc");
fileTypeMap
.put("5374616E64617264204A", "mdb");
fileTypeMap
.put("252150532D41646F6265", "ps");
fileTypeMap
.put("255044462d312e350d0a", "pdf");
fileTypeMap
.put("2e524d46000000120001", "rmvb");
fileTypeMap
.put("464c5601050000000900", "flv");
fileTypeMap
.put("00000020667479706d70", "mp4");
fileTypeMap
.put("49443303000000002176", "mp3");
fileTypeMap
.put("000001ba210001000180", "mpg");
fileTypeMap
.put("3026b2758e66cf11a6d9", "wmv");
fileTypeMap
.put("52494646e27807005741", "wav");
fileTypeMap
.put("52494646d07d60074156", "avi");
fileTypeMap
.put("4d546864000000060001", "mid");
fileTypeMap
.put("504b0304140000000800", "zip");
fileTypeMap
.put("526172211a0700cf9073", "rar");
fileTypeMap
.put("235468697320636f6e66", "ini");
fileTypeMap
.put("504b03040a0000000000", "jar");
fileTypeMap
.put("4d5a9000030000000400", "exe");
fileTypeMap
.put("3c25402070616765206c", "jsp");
fileTypeMap
.put("4d616e69666573742d56", "mf");
fileTypeMap
.put("3c3f786d6c2076657273", "xml");
fileTypeMap
.put("494e5345525420494e54", "sql");
fileTypeMap
.put("7061636b616765207765", "java");
fileTypeMap
.put("406563686f206f66660d", "bat");
fileTypeMap
.put("1f8b0800000000000000", "gz");
fileTypeMap
.put("6c6f67346a2e726f6f74", "properties");
fileTypeMap
.put("cafebabe0000002e0041", "class");
fileTypeMap
.put("49545346030000006000", "chm");
fileTypeMap
.put("04000000010000001300", "mxp");
fileTypeMap
.put("504b0304140006000800", "docx");
fileTypeMap
.put("6431303a637265617465", "torrent");
fileTypeMap
.put("6D6F6F76", "mov");
fileTypeMap
.put("FF575043", "wpd");
fileTypeMap
.put("CFAD12FEC5FD746F", "dbx");
fileTypeMap
.put("2142444E", "pst");
fileTypeMap
.put("AC9EBD8F", "qdf");
fileTypeMap
.put("E3828596", "pwl");
fileTypeMap.put("2E7261FD", "ram");*/
FILE_TYPE_MAP
.
put
(
"ffd8ffe000104a464946"
,
"jpg"
);
FILE_TYPE_MAP
.
put
(
"89504e470d0a1a0a0000"
,
"png"
);
FILE_TYPE_MAP
.
put
(
"47494638396126026f01"
,
"gif"
);
FILE_TYPE_MAP
.
put
(
"49492a00227105008037"
,
"tif"
);
FILE_TYPE_MAP
.
put
(
"424d228c010000000000"
,
"bmp"
);
FILE_TYPE_MAP
.
put
(
"424d8240090000000000"
,
"bmp"
);
FILE_TYPE_MAP
.
put
(
"424d8e1b030000000000"
,
"bmp"
);
FILE_TYPE_MAP
.
put
(
"41433130313500000000"
,
"dwg"
);
FILE_TYPE_MAP
.
put
(
"3c21444f435459504520"
,
"html"
);
FILE_TYPE_MAP
.
put
(
"3c21646f637479706520"
,
"htm"
);
FILE_TYPE_MAP
.
put
(
"48544d4c207b0d0a0942"
,
"css"
);
FILE_TYPE_MAP
.
put
(
"696b2e71623d696b2e71"
,
"js"
);
FILE_TYPE_MAP
.
put
(
"7b5c727466315c616e73"
,
"rtf"
);
FILE_TYPE_MAP
.
put
(
"38425053000100000000"
,
"psd"
);
FILE_TYPE_MAP
.
put
(
"46726f6d3a203d3f6762"
,
"eml"
);
FILE_TYPE_MAP
.
put
(
"d0cf11e0a1b11ae10000"
,
"doc"
);
FILE_TYPE_MAP
.
put
(
"5374616E64617264204A"
,
"mdb"
);
FILE_TYPE_MAP
.
put
(
"252150532D41646F6265"
,
"ps"
);
FILE_TYPE_MAP
.
put
(
"255044462d312e350d0a"
,
"pdf"
);
FILE_TYPE_MAP
.
put
(
"2e524d46000000120001"
,
"rmvb"
);
FILE_TYPE_MAP
.
put
(
"464c5601050000000900"
,
"flv"
);
FILE_TYPE_MAP
.
put
(
"00000020667479706d70"
,
"mp4"
);
FILE_TYPE_MAP
.
put
(
"49443303000000002176"
,
"mp3"
);
FILE_TYPE_MAP
.
put
(
"000001ba210001000180"
,
"mpg"
);
FILE_TYPE_MAP
.
put
(
"3026b2758e66cf11a6d9"
,
"wmv"
);
FILE_TYPE_MAP
.
put
(
"52494646e27807005741"
,
"wav"
);
FILE_TYPE_MAP
.
put
(
"52494646d07d60074156"
,
"avi"
);
FILE_TYPE_MAP
.
put
(
"4d546864000000060001"
,
"mid"
);
FILE_TYPE_MAP
.
put
(
"504b0304140000000800"
,
"zip"
);
FILE_TYPE_MAP
.
put
(
"526172211a0700cf9073"
,
"rar"
);
FILE_TYPE_MAP
.
put
(
"235468697320636f6e66"
,
"ini"
);
FILE_TYPE_MAP
.
put
(
"504b03040a0000000000"
,
"jar"
);
FILE_TYPE_MAP
.
put
(
"4d5a9000030000000400"
,
"exe"
);
FILE_TYPE_MAP
.
put
(
"3c25402070616765206c"
,
"jsp"
);
FILE_TYPE_MAP
.
put
(
"4d616e69666573742d56"
,
"mf"
);
FILE_TYPE_MAP
.
put
(
"3c3f786d6c2076657273"
,
"xml"
);
FILE_TYPE_MAP
.
put
(
"494e5345525420494e54"
,
"sql"
);
FILE_TYPE_MAP
.
put
(
"7061636b616765207765"
,
"java"
);
FILE_TYPE_MAP
.
put
(
"406563686f206f66660d"
,
"bat"
);
FILE_TYPE_MAP
.
put
(
"1f8b0800000000000000"
,
"gz"
);
FILE_TYPE_MAP
.
put
(
"6c6f67346a2e726f6f74"
,
"properties"
);
FILE_TYPE_MAP
.
put
(
"cafebabe0000002e0041"
,
"class"
);
FILE_TYPE_MAP
.
put
(
"49545346030000006000"
,
"chm"
);
FILE_TYPE_MAP
.
put
(
"04000000010000001300"
,
"mxp"
);
FILE_TYPE_MAP
.
put
(
"504b0304140006000800"
,
"docx"
);
FILE_TYPE_MAP
.
put
(
"6431303a637265617465"
,
"torrent"
);
FILE_TYPE_MAP
.
put
(
"6D6F6F76"
,
"mov"
);
FILE_TYPE_MAP
.
put
(
"FF575043"
,
"wpd"
);
FILE_TYPE_MAP
.
put
(
"CFAD12FEC5FD746F"
,
"dbx"
);
FILE_TYPE_MAP
.
put
(
"2142444E"
,
"pst"
);
FILE_TYPE_MAP
.
put
(
"AC9EBD8F"
,
"qdf"
);
FILE_TYPE_MAP
.
put
(
"E3828596"
,
"pwl"
);
FILE_TYPE_MAP
.
put
(
"2E7261FD"
,
"ram"
);
}
/**
...
...
jeecg-boot-base-core/src/main/java/org/jeecg/config/Swagger2Config.java
View file @
ec9df5b9
...
...
@@ -19,13 +19,11 @@ import springfox.documentation.builders.ApiInfoBuilder;
import
springfox.documentation.builders.ParameterBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.oas.annotations.EnableOpenApi
;
import
springfox.documentation.schema.ModelRef
;
import
springfox.documentation.service.*
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spi.service.contexts.SecurityContext
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider
;
import
springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
...
...
@@ -45,7 +43,6 @@ import java.util.stream.Collectors;
public
class
Swagger2Config
implements
WebMvcConfigurer
{
/**
*
* 显示swagger-ui.html文档展示页,还必须注入swagger资源:
*
* @param registry
...
...
@@ -89,8 +86,10 @@ public class Swagger2Config implements WebMvcConfigurer {
SecurityScheme
securityScheme
()
{
return
new
ApiKey
(
CommonConstant
.
X_ACCESS_TOKEN
,
CommonConstant
.
X_ACCESS_TOKEN
,
"header"
);
}
/**
* JWT token
*
* @return
*/
private
List
<
Parameter
>
setHeaderToken
()
{
...
...
@@ -115,7 +114,7 @@ public class Swagger2Config implements WebMvcConfigurer {
// 描述
.
description
(
"后台API接口"
)
// 作者
.
contact
(
new
Contact
(
" "
,
" "
,
" "
))
.
contact
(
new
Contact
(
" "
,
" "
,
" "
))
.
license
(
"The Apache License, Version 2.0"
)
.
licenseUrl
(
"http://www.apache.org/licenses/LICENSE-2.0.html"
)
.
build
();
...
...
@@ -143,6 +142,7 @@ public class Swagger2Config implements WebMvcConfigurer {
/**
* 解决springboot2.6 和springfox不兼容问题
*
* @return
*/
@Bean
...
...
@@ -151,7 +151,7 @@ public class Swagger2Config implements WebMvcConfigurer {
@Override
public
Object
postProcessAfterInitialization
(
Object
bean
,
String
beanName
)
throws
BeansException
{
if
(
bean
instanceof
WebMvcRequestHandlerProvider
||
bean
instanceof
WebFluxRequestHandlerProvider
)
{
if
(
bean
instanceof
WebMvcRequestHandlerProvider
)
{
customizeSpringfoxHandlerMappings
(
getHandlerMappings
(
bean
));
}
return
bean
;
...
...
jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
View file @
ec9df5b9
...
...
@@ -65,89 +65,89 @@ public class ShiroConfig {
Map
<
String
,
String
>
filterChainDefinitionMap
=
new
LinkedHashMap
<
String
,
String
>();
//支持yml方式,配置拦截排除
//
if(jeecgBaseConfig!=null && jeecgBaseConfig.getShiro()!=null){
//
String shiroExcludeUrls = jeecgBaseConfig.getShiro().getExcludeUrls();
//
if(oConvertUtils.isNotEmpty(shiroExcludeUrls)){
//
String[] permissionUrl = shiroExcludeUrls.split(",");
//
for(String url : permissionUrl){
//
filterChainDefinitionMap.put(url,"anon");
//
}
//
}
//
}
//
// 配置不会被拦截的链接 顺序判断
//
filterChainDefinitionMap.put("/sys/cas/client/validateLogin", "anon"); //cas验证登录
//
filterChainDefinitionMap.put("/sys/randomImage/**", "anon"); //登录验证码接口排除
//
filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除
//
filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除
//
filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除
//
filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除
//
filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录
//
filterChainDefinitionMap.put("/sys/getEncryptedString", "anon"); //获取加密串
//
filterChainDefinitionMap.put("/sys/sms", "anon");//短信验证码
//
filterChainDefinitionMap.put("/sys/phoneLogin", "anon");//手机登录
//
filterChainDefinitionMap.put("/sys/user/checkOnlyUser", "anon");//校验用户是否存在
//
filterChainDefinitionMap.put("/sys/user/register", "anon");//用户注册
//
filterChainDefinitionMap.put("/sys/user/phoneVerification", "anon");//用户忘记密码验证手机号
//
filterChainDefinitionMap.put("/sys/user/passwordChange", "anon");//用户更改密码
//
filterChainDefinitionMap.put("/auth/2step-code", "anon");//登录验证码
//
filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token
//
filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览
//
filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件
//
//
filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //登录二维码
//
filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //监听扫码
//
filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //授权接口排除
//
//
//
filterChainDefinitionMap.put("/", "anon");
//
filterChainDefinitionMap.put("/doc.html", "anon");
//
filterChainDefinitionMap.put("/**/*.js", "anon");
//
filterChainDefinitionMap.put("/**/*.css", "anon");
//
filterChainDefinitionMap.put("/**/*.html", "anon");
//
filterChainDefinitionMap.put("/**/*.svg", "anon");
//
filterChainDefinitionMap.put("/**/*.pdf", "anon");
//
filterChainDefinitionMap.put("/**/*.jpg", "anon");
//
filterChainDefinitionMap.put("/**/*.png", "anon");
//
filterChainDefinitionMap.put("/**/*.gif", "anon");
//
filterChainDefinitionMap.put("/**/*.ico", "anon");
//
filterChainDefinitionMap.put("/**/*.ttf", "anon");
//
filterChainDefinitionMap.put("/**/*.woff", "anon");
//
filterChainDefinitionMap.put("/**/*.woff2", "anon");
//
//
filterChainDefinitionMap.put("/druid/**", "anon");
//
filterChainDefinitionMap.put("/swagger-ui.html", "anon");
//
filterChainDefinitionMap.put("/swagger**/**", "anon");
//
filterChainDefinitionMap.put("/webjars/**", "anon");
//
filterChainDefinitionMap.put("/v2/**", "anon");
//
//
filterChainDefinitionMap.put("/sys/annountCement/show/**", "anon");
//
//
//积木报表排除
//
filterChainDefinitionMap.put("/jmreport/**", "anon");
//
filterChainDefinitionMap.put("/**/*.js.map", "anon");
//
filterChainDefinitionMap.put("/**/*.css.map", "anon");
//
//
//大屏模板例子
//
filterChainDefinitionMap.put("/test/bigScreen/**", "anon");
//
filterChainDefinitionMap.put("/bigscreen/template1/**", "anon");
//
filterChainDefinitionMap.put("/bigscreen/template1/**", "anon");
if
(
jeecgBaseConfig
!=
null
&&
jeecgBaseConfig
.
getShiro
()!=
null
){
String
shiroExcludeUrls
=
jeecgBaseConfig
.
getShiro
().
getExcludeUrls
();
if
(
oConvertUtils
.
isNotEmpty
(
shiroExcludeUrls
)){
String
[]
permissionUrl
=
shiroExcludeUrls
.
split
(
","
);
for
(
String
url
:
permissionUrl
){
filterChainDefinitionMap
.
put
(
url
,
"anon"
);
}
}
}
// 配置不会被拦截的链接 顺序判断
filterChainDefinitionMap
.
put
(
"/sys/cas/client/validateLogin"
,
"anon"
);
//cas验证登录
filterChainDefinitionMap
.
put
(
"/sys/randomImage/**"
,
"anon"
);
//登录验证码接口排除
filterChainDefinitionMap
.
put
(
"/sys/checkCaptcha"
,
"anon"
);
//登录验证码接口排除
filterChainDefinitionMap
.
put
(
"/sys/login"
,
"anon"
);
//登录接口排除
filterChainDefinitionMap
.
put
(
"/sys/mLogin"
,
"anon"
);
//登录接口排除
filterChainDefinitionMap
.
put
(
"/sys/logout"
,
"anon"
);
//登出接口排除
filterChainDefinitionMap
.
put
(
"/sys/thirdLogin/**"
,
"anon"
);
//第三方登录
filterChainDefinitionMap
.
put
(
"/sys/getEncryptedString"
,
"anon"
);
//获取加密串
filterChainDefinitionMap
.
put
(
"/sys/sms"
,
"anon"
);
//短信验证码
filterChainDefinitionMap
.
put
(
"/sys/phoneLogin"
,
"anon"
);
//手机登录
filterChainDefinitionMap
.
put
(
"/sys/user/checkOnlyUser"
,
"anon"
);
//校验用户是否存在
filterChainDefinitionMap
.
put
(
"/sys/user/register"
,
"anon"
);
//用户注册
filterChainDefinitionMap
.
put
(
"/sys/user/phoneVerification"
,
"anon"
);
//用户忘记密码验证手机号
filterChainDefinitionMap
.
put
(
"/sys/user/passwordChange"
,
"anon"
);
//用户更改密码
filterChainDefinitionMap
.
put
(
"/auth/2step-code"
,
"anon"
);
//登录验证码
filterChainDefinitionMap
.
put
(
"/sys/common/static/**"
,
"anon"
);
//图片预览 &下载文件不限制token
filterChainDefinitionMap
.
put
(
"/sys/common/pdf/**"
,
"anon"
);
//pdf预览
filterChainDefinitionMap
.
put
(
"/generic/**"
,
"anon"
);
//pdf预览需要文件
filterChainDefinitionMap
.
put
(
"/sys/getLoginQrcode/**"
,
"anon"
);
//登录二维码
filterChainDefinitionMap
.
put
(
"/sys/getQrcodeToken/**"
,
"anon"
);
//监听扫码
filterChainDefinitionMap
.
put
(
"/sys/checkAuth"
,
"anon"
);
//授权接口排除
filterChainDefinitionMap
.
put
(
"/"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/doc.html"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.js"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.css"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.html"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.svg"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.pdf"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.jpg"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.png"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.gif"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.ico"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.ttf"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.woff"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.woff2"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/druid/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/swagger-ui.html"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/swagger**/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/webjars/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/v2/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/sys/annountCement/show/**"
,
"anon"
);
//积木报表排除
filterChainDefinitionMap
.
put
(
"/jmreport/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.js.map"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/**/*.css.map"
,
"anon"
);
//大屏模板例子
filterChainDefinitionMap
.
put
(
"/test/bigScreen/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/bigscreen/template1/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/bigscreen/template1/**"
,
"anon"
);
//filterChainDefinitionMap.put("/test/jeecgDemo/rabbitMqClientTest/**", "anon"); //MQ测试
//filterChainDefinitionMap.put("/test/jeecgDemo/html", "anon"); //模板页面
//filterChainDefinitionMap.put("/test/jeecgDemo/redis/**", "anon"); //redis测试
//websocket排除
//
filterChainDefinitionMap.put("/websocket/**", "anon");//系统通知和公告
//
filterChainDefinitionMap.put("/newsWebsocket/**", "anon");//CMS模块
//
filterChainDefinitionMap.put("/vxeSocket/**", "anon");//JVxeTable无痕刷新示例
filterChainDefinitionMap
.
put
(
"/websocket/**"
,
"anon"
);
//系统通知和公告
filterChainDefinitionMap
.
put
(
"/newsWebsocket/**"
,
"anon"
);
//CMS模块
filterChainDefinitionMap
.
put
(
"/vxeSocket/**"
,
"anon"
);
//JVxeTable无痕刷新示例
//性能监控——安全隐患泄露TOEKN(durid连接池也有)
//filterChainDefinitionMap.put("/actuator/**", "anon");
//测试模块排除
//
filterChainDefinitionMap.put("/test/seata/**", "anon");
filterChainDefinitionMap
.
put
(
"/test/seata/**"
,
"anon"
);
// update-begin--author:liusq Date:20230522 for:[issues/4829]访问不存在的url时会提示Token失效,请重新登录呢
//错误路径排除
filterChainDefinitionMap
.
put
(
"/
**
"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/
error
"
,
"anon"
);
// update-end--author:liusq Date:20230522 for:[issues/4829]访问不存在的url时会提示Token失效,请重新登录呢
// 添加自己的过滤器并且取名为jwt
...
...
@@ -157,7 +157,7 @@ public class ShiroConfig {
filterMap
.
put
(
"jwt"
,
new
JwtFilter
(
cloudServer
==
null
));
shiroFilterFactoryBean
.
setFilters
(
filterMap
);
// <!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边
//
filterChainDefinitionMap.put("/**", "jwt");
filterChainDefinitionMap
.
put
(
"/**"
,
"jwt"
);
// 未授权界面返回JSON
shiroFilterFactoryBean
.
setUnauthorizedUrl
(
"/sys/common/403"
);
...
...
@@ -262,7 +262,7 @@ public class ShiroConfig {
//update-begin--Author:scott Date:20210531 for:修改集群模式下未设置redis密码的bug issues/I3QNIC
if
(
oConvertUtils
.
isNotEmpty
(
lettuceConnectionFactory
.
getPassword
()))
{
JedisCluster
jedisCluster
=
new
JedisCluster
(
portSet
,
2000
,
2000
,
5
,
lettuceConnectionFactory
.
getPassword
(),
new
GenericObjectPoolConfig
());
lettuceConnectionFactory
.
getPassword
(),
new
GenericObjectPoolConfig
());
redisManager
.
setPassword
(
lettuceConnectionFactory
.
getPassword
());
redisManager
.
setJedisCluster
(
jedisCluster
);
}
else
{
...
...
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/subwayNetwork/entity/SectionStationMap.java
deleted
100644 → 0
View file @
5f2bd8be
package
org
.
jeecg
.
modules
.
subwayNetwork
.
entity
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Date
;
import
java.math.BigDecimal
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
lombok.Data
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.jeecg.common.aspect.annotation.Dict
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* @Description: 线路车站-区间站点映射
* @Author: jeecg-boot
* @Date: 2023-06-15
* @Version: V1.0
*/
@Data
@TableName
(
"t_sn_section_station_map"
)
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"t_sn_section_station_map对象"
,
description
=
"线路车站-区间站点映射"
)
public
class
SectionStationMap
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**主键*/
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@ApiModelProperty
(
value
=
"主键"
)
private
java
.
lang
.
String
id
;
/**创建人*/
@ApiModelProperty
(
value
=
"创建人"
)
private
java
.
lang
.
String
createBy
;
/**创建日期*/
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"创建日期"
)
private
java
.
util
.
Date
createTime
;
/**更新人*/
@ApiModelProperty
(
value
=
"更新人"
)
private
java
.
lang
.
String
updateBy
;
/**更新日期*/
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"更新日期"
)
private
java
.
util
.
Date
updateTime
;
/**区间id*/
@Excel
(
name
=
"区间id"
,
width
=
15
)
@ApiModelProperty
(
value
=
"区间id"
)
private
java
.
lang
.
String
sectionId
;
/**车站id*/
@Excel
(
name
=
"车站id"
,
width
=
15
)
@ApiModelProperty
(
value
=
"车站id"
)
private
java
.
lang
.
String
stationId
;
}
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/subwayNetwork/service/impl/LightRailServiceImpl.java
View file @
ec9df5b9
...
...
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
org.jeecg.common.api.dto.PageSearch
;
import
org.jeecg.modules.subwayNetwork.dto.LightRailQueryDTO
;
import
org.jeecg.modules.subwayNetwork.entity.LightRail
;
import
org.jeecg.modules.subwayNetwork.entity.SectionStationMap
;
import
org.jeecg.modules.subwayNetwork.mapper.LightRailMapper
;
import
org.jeecg.modules.subwayNetwork.service.ILightRailService
;
import
org.jeecg.modules.subwayNetwork.vo.LightRailQueryVO
;
...
...
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/CommonController.java
View file @
ec9df5b9
package
org
.
jeecg
.
modules
.
system
.
controller
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.jeecg.common.api.vo.Result
;
import
org.jeecg.common.constant.CommonConstant
;
import
org.jeecg.common.constant.SymbolConstant
;
import
org.jeecg.common.exception.JeecgBootException
;
import
org.jeecg.common.util.CommonUtils
;
import
org.jeecg.common.util.RestUtil
;
import
org.jeecg.common.util.TokenUtils
;
import
org.jeecg.common.util.RestDesformUtil
;
import
org.jeecg.common.util.filter.FileTypeFilter
;
import
org.jeecg.common.util.oConvertUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.server.ServletServerHttpRequest
;
import
org.springframework.util.AntPathMatcher
;
import
org.springframework.util.FileCopyUtils
;
import
org.springframework.web.bind.annotation.*
;
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.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
org.springframework.web.servlet.HandlerMapping
;
...
...
@@ -28,10 +26,10 @@ import org.springframework.web.servlet.ModelAndView;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.net.URLDecoder
;
/**
* <p>
*
用户表
前端控制器
*
系统公共
前端控制器
* </p>
*
* @Author scott
...
...
@@ -40,6 +38,7 @@ import java.net.URLDecoder;
@Slf4j
@RestController
@RequestMapping
(
"/sys/common"
)
@Api
(
tags
=
"系统公共"
)
public
class
CommonController
{
@Value
(
value
=
"${jeecg.path.upload}"
)
...
...
@@ -48,33 +47,35 @@ public class CommonController {
/**
* 本地:local minio:minio 阿里:alioss
*/
@Value
(
value
=
"${jeecg.uploadType}"
)
@Value
(
value
=
"${jeecg.uploadType}"
)
private
String
uploadType
;
/**
* @Author 政辉
* @return
* @Author 政辉
*/
@GetMapping
(
"/403"
)
public
Result
<?>
noauth
()
{
public
Result
<?>
noauth
()
{
return
Result
.
error
(
"没有权限,请联系管理员授权"
);
}
/**
* 文件上传统一方法
*
* @param request
* @param response
* @return
*/
@PostMapping
(
value
=
"/upload"
)
@ApiOperation
(
value
=
"文件上传"
,
notes
=
"文件上传"
)
public
Result
<?>
upload
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
Result
<
?
>
result
=
new
Result
<>();
Result
<
String
>
result
=
new
Result
<>();
String
savePath
=
""
;
String
bizPath
=
request
.
getParameter
(
"biz"
);
//LOWCOD-2580 sys/common/upload接口存在任意文件上传漏洞
if
(
oConvertUtils
.
isNotEmpty
(
bizPath
))
{
if
(
bizPath
.
contains
(
SymbolConstant
.
SPOT_SINGLE_SLASH
)
||
bizPath
.
contains
(
SymbolConstant
.
SPOT_DOUBLE_BACKSLASH
))
{
if
(
bizPath
.
contains
(
SymbolConstant
.
SPOT_SINGLE_SLASH
)
||
bizPath
.
contains
(
SymbolConstant
.
SPOT_DOUBLE_BACKSLASH
))
{
throw
new
JeecgBootException
(
"上传目录bizPath,格式非法!"
);
}
}
...
...
@@ -82,44 +83,45 @@ public class CommonController {
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
// 获取上传文件对象
MultipartFile
file
=
multipartRequest
.
getFile
(
"file"
);
if
(
oConvertUtils
.
isEmpty
(
bizPath
))
{
if
(
CommonConstant
.
UPLOAD_TYPE_OSS
.
equals
(
uploadType
))
{
if
(
oConvertUtils
.
isEmpty
(
bizPath
))
{
if
(
CommonConstant
.
UPLOAD_TYPE_OSS
.
equals
(
uploadType
))
{
//未指定目录,则用阿里云默认目录 upload
bizPath
=
"upload"
;
//result.setMessage("使用阿里云文件上传时,必须添加目录!");
//result.setSuccess(false);
//return result;
}
else
{
}
else
{
bizPath
=
""
;
}
}
if
(
CommonConstant
.
UPLOAD_TYPE_LOCAL
.
equals
(
uploadType
))
{
if
(
CommonConstant
.
UPLOAD_TYPE_LOCAL
.
equals
(
uploadType
))
{
//update-begin-author:liusq date:20221102 for: 过滤上传文件类型
FileTypeFilter
.
fileTypeFilter
(
file
);
//update-end-author:liusq date:20221102 for: 过滤上传文件类型
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
savePath
=
this
.
uploadLocal
(
file
,
bizPath
);
savePath
=
this
.
uploadLocal
(
file
,
bizPath
);
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
/** 富文本编辑器及markdown本地上传时,采用返回链接方式
//针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储
String jeditor = request.getParameter("jeditor");
if(oConvertUtils.isNotEmpty(jeditor)){
result.setMessage(CommonConstant.UPLOAD_TYPE_LOCAL);
result.setSuccess(true);
return result;
}else{
savePath = this.uploadLocal(file,bizPath);
}
*/
}
else
{
//针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储
String jeditor = request.getParameter("jeditor");
if(oConvertUtils.isNotEmpty(jeditor)){
result.setMessage(CommonConstant.UPLOAD_TYPE_LOCAL);
result.setSuccess(true);
return result;
}else{
savePath = this.uploadLocal(file,bizPath);
}
*/
}
else
{
//update-begin-author:taoyan date:20200814 for:文件上传改造
savePath
=
CommonUtils
.
upload
(
file
,
bizPath
,
uploadType
);
//update-end-author:taoyan date:20200814 for:文件上传改造
}
if
(
oConvertUtils
.
isNotEmpty
(
savePath
)){
result
.
setMessage
(
savePath
);
if
(
oConvertUtils
.
isNotEmpty
(
savePath
))
{
savePath
=
RestDesformUtil
.
path
+
"/sys/common/static/"
+
savePath
;
result
.
setResult
(
savePath
);
result
.
setSuccess
(
true
);
}
else
{
}
else
{
result
.
setMessage
(
"上传失败!"
);
result
.
setSuccess
(
false
);
}
...
...
@@ -128,15 +130,16 @@ public class CommonController {
/**
* 本地文件上传
* @param mf 文件
* @param bizPath 自定义路径
*
* @param mf 文件
* @param bizPath 自定义路径
* @return
*/
private
String
uploadLocal
(
MultipartFile
mf
,
String
bizPath
)
{
private
String
uploadLocal
(
MultipartFile
mf
,
String
bizPath
)
{
try
{
String
ctxPath
=
uploadpath
;
String
fileName
=
null
;
File
file
=
new
File
(
ctxPath
+
File
.
separator
+
bizPath
+
File
.
separator
);
File
file
=
new
File
(
ctxPath
+
File
.
separator
+
bizPath
+
File
.
separator
);
if
(!
file
.
exists
())
{
// 创建文件根目录
file
.
mkdirs
();
...
...
@@ -144,18 +147,18 @@ public class CommonController {
// 获取文件名
String
orgName
=
mf
.
getOriginalFilename
();
orgName
=
CommonUtils
.
getFileName
(
orgName
);
if
(
orgName
.
indexOf
(
SymbolConstant
.
SPOT
)!=-
1
)
{
if
(
orgName
.
indexOf
(
SymbolConstant
.
SPOT
)
!=
-
1
)
{
fileName
=
orgName
.
substring
(
0
,
orgName
.
lastIndexOf
(
"."
))
+
"_"
+
System
.
currentTimeMillis
()
+
orgName
.
substring
(
orgName
.
lastIndexOf
(
"."
));
}
else
{
fileName
=
orgName
+
"_"
+
System
.
currentTimeMillis
();
}
else
{
fileName
=
orgName
+
"_"
+
System
.
currentTimeMillis
();
}
String
savePath
=
file
.
getPath
()
+
File
.
separator
+
fileName
;
File
savefile
=
new
File
(
savePath
);
FileCopyUtils
.
copy
(
mf
.
getBytes
(),
savefile
);
String
dbpath
=
null
;
if
(
oConvertUtils
.
isNotEmpty
(
bizPath
))
{
if
(
oConvertUtils
.
isNotEmpty
(
bizPath
))
{
dbpath
=
bizPath
+
File
.
separator
+
fileName
;
}
else
{
}
else
{
dbpath
=
fileName
;
}
if
(
dbpath
.
contains
(
SymbolConstant
.
DOUBLE_BACKSLASH
))
{
...
...
@@ -213,29 +216,30 @@ public class CommonController {
* @param response
*/
@GetMapping
(
value
=
"/static/**"
)
@ApiOperation
(
value
=
"预览图片&下载文件"
,
notes
=
"预览图片&下载文件"
)
public
void
view
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
// ISO-8859-1 ==> UTF-8 进行编码转换
String
imgPath
=
extractPathFromPattern
(
request
);
if
(
oConvertUtils
.
isEmpty
(
imgPath
)
||
CommonConstant
.
STRING_NULL
.
equals
(
imgPath
))
{
if
(
oConvertUtils
.
isEmpty
(
imgPath
)
||
CommonConstant
.
STRING_NULL
.
equals
(
imgPath
))
{
return
;
}
// 其余处理略
InputStream
inputStream
=
null
;
OutputStream
outputStream
=
null
;
try
{
imgPath
=
imgPath
.
replace
(
".."
,
""
).
replace
(
"../"
,
""
);
imgPath
=
imgPath
.
replace
(
".."
,
""
).
replace
(
"../"
,
""
);
if
(
imgPath
.
endsWith
(
SymbolConstant
.
COMMA
))
{
imgPath
=
imgPath
.
substring
(
0
,
imgPath
.
length
()
-
1
);
}
String
filePath
=
uploadpath
+
File
.
separator
+
imgPath
;
File
file
=
new
File
(
filePath
);
if
(!
file
.
exists
())
{
if
(!
file
.
exists
())
{
response
.
setStatus
(
404
);
throw
new
RuntimeException
(
"文件["
+
imgPath
+
"]不存在.."
);
throw
new
RuntimeException
(
"文件["
+
imgPath
+
"]不存在.."
);
}
// 设置强制下载不打开
response
.
setContentType
(
"application/force-download"
);
response
.
addHeader
(
"Content-Disposition"
,
"attachment;fileName="
+
new
String
(
file
.
getName
().
getBytes
(
"UTF-8"
),
"iso-8859-1"
));
response
.
addHeader
(
"Content-Disposition"
,
"attachment;fileName="
+
new
String
(
file
.
getName
().
getBytes
(
"UTF-8"
),
"iso-8859-1"
));
inputStream
=
new
BufferedInputStream
(
new
FileInputStream
(
filePath
));
outputStream
=
response
.
getOutputStream
();
byte
[]
buf
=
new
byte
[
1024
];
...
...
@@ -326,9 +330,9 @@ public class CommonController {
// }
/**
* @功能:pdf预览Iframe
* @param modelAndView
* @return
* @功能:pdf预览Iframe
*/
@RequestMapping
(
"/pdf/pdfPreviewIframe"
)
public
ModelAndView
pdfPreviewIframe
(
ModelAndView
modelAndView
)
{
...
...
@@ -337,8 +341,9 @@ public class CommonController {
}
/**
* 把指定URL后的字符串全部截断当成参数
* 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
* 把指定URL后的字符串全部截断当成参数
* 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
*
* @param request
* @return
*/
...
...
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java
View file @
ec9df5b9
...
...
@@ -64,415 +64,423 @@ import lombok.extern.slf4j.Slf4j;
@RequestMapping
(
"/sys/role"
)
@Slf4j
public
class
SysRoleController
{
@Autowired
private
ISysRoleService
sysRoleService
;
@Autowired
private
ISysPermissionDataRuleService
sysPermissionDataRuleService
;
@Autowired
private
ISysRolePermissionService
sysRolePermissionService
;
@Autowired
private
ISysPermissionService
sysPermissionService
;
@Autowired
private
ISysRoleService
sysRoleService
;
@Autowired
private
ISysPermissionDataRuleService
sysPermissionDataRuleService
;
@Autowired
private
ISysRolePermissionService
sysRolePermissionService
;
@Autowired
private
ISysPermissionService
sysPermissionService
;
@Autowired
private
ISysUserRoleService
sysUserRoleService
;
/**
* 分页列表查询 【系统角色,不做租户隔离】
* @param role
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@RequiresPermissions("system:role:list")
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysRole
>>
queryPageList
(
SysRole
role
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
SysRole
>>
result
=
new
Result
<
IPage
<
SysRole
>>();
QueryWrapper
<
SysRole
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
role
,
req
.
getParameterMap
());
Page
<
SysRole
>
page
=
new
Page
<
SysRole
>(
pageNo
,
pageSize
);
IPage
<
SysRole
>
pageList
=
sysRoleService
.
page
(
page
,
queryWrapper
);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
}
/**
* 分页列表查询【租户角色,做租户隔离】
* @param role
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@RequestMapping
(
value
=
"/listByTenant"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysRole
>>
listByTenant
(
SysRole
role
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
SysRole
>>
result
=
new
Result
<
IPage
<
SysRole
>>();
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
){
role
.
setTenantId
(
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
));
}
//------------------------------------------------------------------------------------------------
QueryWrapper
<
SysRole
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
role
,
req
.
getParameterMap
());
Page
<
SysRole
>
page
=
new
Page
<
SysRole
>(
pageNo
,
pageSize
);
IPage
<
SysRole
>
pageList
=
sysRoleService
.
page
(
page
,
queryWrapper
);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
}
/**
* 添加
* @param role
* @return
*/
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
POST
)
/**
* 分页列表查询 【系统角色,不做租户隔离】
*
* @param role
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@RequiresPermissions("system:role:list")
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysRole
>>
queryPageList
(
SysRole
role
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
SysRole
>>
result
=
new
Result
<
IPage
<
SysRole
>>();
QueryWrapper
<
SysRole
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
role
,
req
.
getParameterMap
());
Page
<
SysRole
>
page
=
new
Page
<
SysRole
>(
pageNo
,
pageSize
);
IPage
<
SysRole
>
pageList
=
sysRoleService
.
page
(
page
,
queryWrapper
);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
}
/**
* 分页列表查询【租户角色,做租户隔离】
*
* @param role
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@RequestMapping
(
value
=
"/listByTenant"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysRole
>>
listByTenant
(
SysRole
role
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
SysRole
>>
result
=
new
Result
<
IPage
<
SysRole
>>();
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
role
.
setTenantId
(
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
));
}
//------------------------------------------------------------------------------------------------
QueryWrapper
<
SysRole
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
role
,
req
.
getParameterMap
());
Page
<
SysRole
>
page
=
new
Page
<
SysRole
>(
pageNo
,
pageSize
);
IPage
<
SysRole
>
pageList
=
sysRoleService
.
page
(
page
,
queryWrapper
);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
}
/**
* 添加
*
* @param role
* @return
*/
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
POST
)
//@RequiresPermissions("system:role:add")
public
Result
<
SysRole
>
add
(
@RequestBody
SysRole
role
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
try
{
role
.
setCreateTime
(
new
Date
());
sysRoleService
.
save
(
role
);
result
.
success
(
"添加成功!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
);
}
return
result
;
}
/**
* 编辑
* @param role
* @return
*/
public
Result
<
SysRole
>
add
(
@RequestBody
SysRole
role
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
try
{
role
.
setCreateTime
(
new
Date
());
sysRoleService
.
save
(
role
);
result
.
success
(
"添加成功!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
);
}
return
result
;
}
/**
* 编辑
*
* @param role
* @return
*/
//@RequiresPermissions("system:role:edit")
@RequestMapping
(
value
=
"/edit"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
SysRole
>
edit
(
@RequestBody
SysRole
role
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
SysRole
sysrole
=
sysRoleService
.
getById
(
role
.
getId
());
if
(
sysrole
==
null
)
{
result
.
error500
(
"未找到对应实体"
);
}
else
{
role
.
setUpdateTime
(
new
Date
());
boolean
ok
=
sysRoleService
.
updateById
(
role
);
//TODO 返回false说明什么?
if
(
ok
)
{
result
.
success
(
"修改成功!"
);
}
}
return
result
;
}
/**
* 通过id删除
* @param id
* @return
*/
@RequestMapping
(
value
=
"/edit"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
SysRole
>
edit
(
@RequestBody
SysRole
role
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
SysRole
sysrole
=
sysRoleService
.
getById
(
role
.
getId
());
if
(
sysrole
==
null
)
{
result
.
error500
(
"未找到对应实体"
);
}
else
{
role
.
setUpdateTime
(
new
Date
());
boolean
ok
=
sysRoleService
.
updateById
(
role
);
//TODO 返回false说明什么?
if
(
ok
)
{
result
.
success
(
"修改成功!"
);
}
}
return
result
;
}
/**
* 通过id删除
*
* @param id
* @return
*/
//@RequiresPermissions("system:role:delete")
@RequestMapping
(
value
=
"/delete"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<?>
delete
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
sysRoleService
.
deleteRole
(
id
);
return
Result
.
ok
(
"删除角色成功"
);
}
/**
* 批量删除
* @param ids
* @return
*/
@RequestMapping
(
value
=
"/delete"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<?>
delete
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
sysRoleService
.
deleteRole
(
id
);
return
Result
.
ok
(
"删除角色成功"
);
}
/**
* 批量删除
*
* @param ids
* @return
*/
//@RequiresPermissions("system:role:deleteBatch")
@RequestMapping
(
value
=
"/deleteBatch"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<
SysRole
>
deleteBatch
(
@RequestParam
(
name
=
"ids"
,
required
=
true
)
String
ids
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
if
(
oConvertUtils
.
isEmpty
(
ids
))
{
result
.
error500
(
"未选中角色!"
);
}
else
{
sysRoleService
.
deleteBatchRole
(
ids
.
split
(
","
));
result
.
success
(
"删除角色成功!"
);
}
return
result
;
}
/**
* 通过id查询
* @param id
* @return
*/
@RequestMapping
(
value
=
"/queryById"
,
method
=
RequestMethod
.
GET
)
public
Result
<
SysRole
>
queryById
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
SysRole
sysrole
=
sysRoleService
.
getById
(
id
);
if
(
sysrole
==
null
)
{
result
.
error500
(
"未找到对应实体"
);
}
else
{
result
.
setResult
(
sysrole
);
result
.
setSuccess
(
true
);
}
return
result
;
}
@RequestMapping
(
value
=
"/deleteBatch"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<
SysRole
>
deleteBatch
(
@RequestParam
(
name
=
"ids"
,
required
=
true
)
String
ids
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
if
(
oConvertUtils
.
isEmpty
(
ids
))
{
result
.
error500
(
"未选中角色!"
);
}
else
{
sysRoleService
.
deleteBatchRole
(
ids
.
split
(
","
));
result
.
success
(
"删除角色成功!"
);
}
return
result
;
}
/**
* 通过id查询
*
* @param id
* @return
*/
@RequestMapping
(
value
=
"/queryById"
,
method
=
RequestMethod
.
GET
)
public
Result
<
SysRole
>
queryById
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
Result
<
SysRole
>
result
=
new
Result
<
SysRole
>();
SysRole
sysrole
=
sysRoleService
.
getById
(
id
);
if
(
sysrole
==
null
)
{
result
.
error500
(
"未找到对应实体"
);
}
else
{
result
.
setResult
(
sysrole
);
result
.
setSuccess
(
true
);
}
return
result
;
}
/**
* 查询全部角色(参与租户隔离)
*
* @return
*/
@RequestMapping
(
value
=
"/queryall"
,
method
=
RequestMethod
.
GET
)
public
Result
<
List
<
SysRole
>>
queryall
()
{
Result
<
List
<
SysRole
>>
result
=
new
Result
<>();
LambdaQueryWrapper
<
SysRole
>
query
=
new
LambdaQueryWrapper
<
SysRole
>();
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
query
.
eq
(
SysRole:
:
getTenantId
,
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
));
}
//------------------------------------------------------------------------------------------------
List
<
SysRole
>
list
=
sysRoleService
.
list
(
query
);
if
(
list
==
null
||
list
.
size
()<=
0
)
{
result
.
error500
(
"未找到角色信息"
);
}
else
{
result
.
setResult
(
list
);
result
.
setSuccess
(
true
);
}
return
result
;
}
/**
* 查询全部角色(参与租户隔离)
*
* @return
*/
@RequestMapping
(
value
=
"/queryall"
,
method
=
RequestMethod
.
GET
)
public
Result
<
List
<
SysRole
>>
queryall
()
{
Result
<
List
<
SysRole
>>
result
=
new
Result
<>();
LambdaQueryWrapper
<
SysRole
>
query
=
new
LambdaQueryWrapper
<
SysRole
>();
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
query
.
eq
(
SysRole:
:
getTenantId
,
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
));
}
//------------------------------------------------------------------------------------------------
List
<
SysRole
>
list
=
sysRoleService
.
list
(
query
);
if
(
list
==
null
||
list
.
size
()
<=
0
)
{
result
.
error500
(
"未找到角色信息"
);
}
else
{
result
.
setResult
(
list
);
result
.
setSuccess
(
true
);
}
return
result
;
}
/**
* 查询全部系统角色(不做租户隔离)
*
* @return
*/
//@RequiresPermissions("system:role:queryallNoByTenant")
@RequestMapping
(
value
=
"/queryallNoByTenant"
,
method
=
RequestMethod
.
GET
)
public
Result
<
List
<
SysRole
>>
queryallNoByTenant
()
{
Result
<
List
<
SysRole
>>
result
=
new
Result
<>();
LambdaQueryWrapper
<
SysRole
>
query
=
new
LambdaQueryWrapper
<
SysRole
>();
List
<
SysRole
>
list
=
sysRoleService
.
list
(
query
);
if
(
list
==
null
||
list
.
size
()<=
0
)
{
result
.
error500
(
"未找到角色信息"
);
}
else
{
result
.
setResult
(
list
);
result
.
setSuccess
(
true
);
}
return
result
;
}
/**
* 校验角色编码唯一
*/
@RequestMapping
(
value
=
"/checkRoleCode"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Boolean
>
checkUsername
(
String
id
,
String
roleCode
)
{
Result
<
Boolean
>
result
=
new
Result
<>();
/**
* 查询全部系统角色(不做租户隔离)
*
* @return
*/
//@RequiresPermissions("system:role:queryallNoByTenant")
@RequestMapping
(
value
=
"/queryallNoByTenant"
,
method
=
RequestMethod
.
GET
)
public
Result
<
List
<
SysRole
>>
queryallNoByTenant
()
{
Result
<
List
<
SysRole
>>
result
=
new
Result
<>();
LambdaQueryWrapper
<
SysRole
>
query
=
new
LambdaQueryWrapper
<
SysRole
>();
List
<
SysRole
>
list
=
sysRoleService
.
list
(
query
);
if
(
list
==
null
||
list
.
size
()
<=
0
)
{
result
.
error500
(
"未找到角色信息"
);
}
else
{
result
.
setResult
(
list
);
result
.
setSuccess
(
true
);
}
return
result
;
}
/**
* 校验角色编码唯一
*/
@RequestMapping
(
value
=
"/checkRoleCode"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Boolean
>
checkRoleCode
(
String
id
,
String
roleCode
)
{
Result
<
Boolean
>
result
=
new
Result
<>();
//如果此参数为false则程序发生异常
result
.
setResult
(
true
);
log
.
info
(
"--验证角色编码是否唯一---id:"
+
id
+
"--roleCode:"
+
roleCode
);
try
{
SysRole
role
=
null
;
if
(
oConvertUtils
.
isNotEmpty
(
id
))
{
role
=
sysRoleService
.
getById
(
id
);
}
SysRole
newRole
=
sysRoleService
.
getOne
(
new
QueryWrapper
<
SysRole
>().
lambda
().
eq
(
SysRole:
:
getRoleCode
,
roleCode
));
if
(
newRole
!=
null
)
{
//如果根据传入的roleCode查询到信息了,那么就需要做校验了。
if
(
role
==
null
)
{
//role为空=>新增模式=>只要roleCode存在则返回false
result
.
setSuccess
(
false
);
result
.
setMessage
(
"角色编码已存在"
);
return
result
;
}
else
if
(!
id
.
equals
(
newRole
.
getId
()))
{
//否则=>编辑模式=>判断两者ID是否一致-
result
.
setSuccess
(
false
);
result
.
setMessage
(
"角色编码已存在"
);
return
result
;
}
}
}
catch
(
Exception
e
)
{
result
.
setSuccess
(
false
);
result
.
setResult
(
false
);
result
.
setMessage
(
e
.
getMessage
());
return
result
;
}
result
.
setSuccess
(
true
);
return
result
;
}
result
.
setResult
(
true
);
log
.
info
(
"--验证角色编码是否唯一---id:"
+
id
+
"--roleCode:"
+
roleCode
);
try
{
SysRole
role
=
null
;
if
(
oConvertUtils
.
isNotEmpty
(
id
))
{
role
=
sysRoleService
.
getById
(
id
);
}
SysRole
newRole
=
sysRoleService
.
getOne
(
new
QueryWrapper
<
SysRole
>().
lambda
().
eq
(
SysRole:
:
getRoleCode
,
roleCode
));
if
(
newRole
!=
null
)
{
//如果根据传入的roleCode查询到信息了,那么就需要做校验了。
if
(
role
==
null
)
{
//role为空=>新增模式=>只要roleCode存在则返回false
result
.
error
(
"角色编码已存在"
);
return
result
;
}
else
if
(!
id
.
equals
(
newRole
.
getId
()))
{
//否则=>编辑模式=>判断两者ID是否一致-
result
.
error
(
"角色编码已存在"
);
return
result
;
}
}
}
catch
(
Exception
e
)
{
result
.
setSuccess
(
false
);
result
.
setResult
(
false
);
result
.
setMessage
(
e
.
getMessage
());
return
result
;
}
result
.
setSuccess
(
true
);
return
result
;
}
/**
* 导出excel
*
* @param request
*/
@RequestMapping
(
value
=
"/exportXls"
)
public
ModelAndView
exportXls
(
SysRole
sysRole
,
HttpServletRequest
request
)
{
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
sysRole
.
setTenantId
(
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
));
}
//------------------------------------------------------------------------------------------------
/**
* 导出excel
* @param request
*/
@RequestMapping
(
value
=
"/exportXls"
)
public
ModelAndView
exportXls
(
SysRole
sysRole
,
HttpServletRequest
request
)
{
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
){
sysRole
.
setTenantId
(
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
));
}
//------------------------------------------------------------------------------------------------
// Step.1 组装查询条件
QueryWrapper
<
SysRole
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
sysRole
,
request
.
getParameterMap
());
//Step.2 AutoPoi 导出Excel
ModelAndView
mv
=
new
ModelAndView
(
new
JeecgEntityExcelView
());
List
<
SysRole
>
pageList
=
sysRoleService
.
list
(
queryWrapper
);
//导出文件名称
mv
.
addObject
(
NormalExcelConstants
.
FILE_NAME
,
"角色列表"
);
mv
.
addObject
(
NormalExcelConstants
.
CLASS
,
SysRole
.
class
);
LoginUser
user
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
mv
.
addObject
(
NormalExcelConstants
.
PARAMS
,
new
ExportParams
(
"角色列表数据"
,
"导出人:"
+
user
.
getRealname
(),
"导出信息"
));
mv
.
addObject
(
NormalExcelConstants
.
DATA_LIST
,
pageList
);
return
mv
;
}
// Step.1 组装查询条件
QueryWrapper
<
SysRole
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
sysRole
,
request
.
getParameterMap
());
//Step.2 AutoPoi 导出Excel
ModelAndView
mv
=
new
ModelAndView
(
new
JeecgEntityExcelView
());
List
<
SysRole
>
pageList
=
sysRoleService
.
list
(
queryWrapper
);
//导出文件名称
mv
.
addObject
(
NormalExcelConstants
.
FILE_NAME
,
"角色列表"
);
mv
.
addObject
(
NormalExcelConstants
.
CLASS
,
SysRole
.
class
);
LoginUser
user
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
mv
.
addObject
(
NormalExcelConstants
.
PARAMS
,
new
ExportParams
(
"角色列表数据"
,
"导出人:"
+
user
.
getRealname
(),
"导出信息"
));
mv
.
addObject
(
NormalExcelConstants
.
DATA_LIST
,
pageList
);
return
mv
;
}
/**
* 通过excel导入数据
* @param request
* @param response
* @return
*/
@RequestMapping
(
value
=
"/importExcel"
,
method
=
RequestMethod
.
POST
)
public
Result
<?>
importExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
Map
<
String
,
MultipartFile
>
fileMap
=
multipartRequest
.
getFileMap
();
for
(
Map
.
Entry
<
String
,
MultipartFile
>
entity
:
fileMap
.
entrySet
())
{
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping
(
value
=
"/importExcel"
,
method
=
RequestMethod
.
POST
)
public
Result
<?>
importExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
Map
<
String
,
MultipartFile
>
fileMap
=
multipartRequest
.
getFileMap
();
for
(
Map
.
Entry
<
String
,
MultipartFile
>
entity
:
fileMap
.
entrySet
())
{
// 获取上传文件对象
MultipartFile
file
=
entity
.
getValue
();
ImportParams
params
=
new
ImportParams
();
params
.
setTitleRows
(
2
);
params
.
setHeadRows
(
1
);
params
.
setNeedSave
(
true
);
try
{
return
sysRoleService
.
importExcelCheckRoleCode
(
file
,
params
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
Result
.
error
(
"文件导入失败:"
+
e
.
getMessage
());
}
finally
{
try
{
file
.
getInputStream
().
close
();
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
}
return
Result
.
error
(
"文件导入失败!"
);
}
/**
* 查询数据规则数据
*/
@GetMapping
(
value
=
"/datarule/{permissionId}/{roleId}"
)
public
Result
<?>
loadDatarule
(
@PathVariable
(
"permissionId"
)
String
permissionId
,
@PathVariable
(
"roleId"
)
String
roleId
)
{
List
<
SysPermissionDataRule
>
list
=
sysPermissionDataRuleService
.
getPermRuleListByPermId
(
permissionId
);
if
(
list
==
null
||
list
.
size
()==
0
)
{
return
Result
.
error
(
"未找到权限配置信息"
);
}
else
{
Map
<
String
,
Object
>
map
=
new
HashMap
(
5
);
map
.
put
(
"datarule"
,
list
);
LambdaQueryWrapper
<
SysRolePermission
>
query
=
new
LambdaQueryWrapper
<
SysRolePermission
>()
.
eq
(
SysRolePermission:
:
getPermissionId
,
permissionId
)
.
isNotNull
(
SysRolePermission:
:
getDataRuleIds
)
.
eq
(
SysRolePermission:
:
getRoleId
,
roleId
);
SysRolePermission
sysRolePermission
=
sysRolePermissionService
.
getOne
(
query
);
if
(
sysRolePermission
==
null
)
{
//return Result.error("未找到角色菜单配置信息");
}
else
{
String
drChecked
=
sysRolePermission
.
getDataRuleIds
();
if
(
oConvertUtils
.
isNotEmpty
(
drChecked
))
{
map
.
put
(
"drChecked"
,
drChecked
.
endsWith
(
","
)?
drChecked
.
substring
(
0
,
drChecked
.
length
()-
1
):
drChecked
);
}
}
return
Result
.
ok
(
map
);
//TODO 以后按钮权限的查询也走这个请求 无非在map中多加两个key
}
}
/**
* 保存数据规则至角色菜单关联表
*/
@PostMapping
(
value
=
"/datarule"
)
public
Result
<?>
saveDatarule
(
@RequestBody
JSONObject
jsonObject
)
{
try
{
String
permissionId
=
jsonObject
.
getString
(
"permissionId"
);
String
roleId
=
jsonObject
.
getString
(
"roleId"
);
String
dataRuleIds
=
jsonObject
.
getString
(
"dataRuleIds"
);
log
.
info
(
"保存数据规则>>"
+
"菜单ID:"
+
permissionId
+
"角色ID:"
+
roleId
+
"数据权限ID:"
+
dataRuleIds
);
LambdaQueryWrapper
<
SysRolePermission
>
query
=
new
LambdaQueryWrapper
<
SysRolePermission
>()
.
eq
(
SysRolePermission:
:
getPermissionId
,
permissionId
)
.
eq
(
SysRolePermission:
:
getRoleId
,
roleId
);
SysRolePermission
sysRolePermission
=
sysRolePermissionService
.
getOne
(
query
);
if
(
sysRolePermission
==
null
)
{
return
Result
.
error
(
"请先保存角色菜单权限!"
);
}
else
{
sysRolePermission
.
setDataRuleIds
(
dataRuleIds
);
this
.
sysRolePermissionService
.
updateById
(
sysRolePermission
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"SysRoleController.saveDatarule()发生异常:"
+
e
.
getMessage
(),
e
);
return
Result
.
error
(
"保存失败"
);
}
return
Result
.
ok
(
"保存成功!"
);
}
/**
* 用户角色授权功能,查询菜单权限树
* @param request
* @return
*/
@RequestMapping
(
value
=
"/queryTreeList"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Map
<
String
,
Object
>>
queryTreeList
(
HttpServletRequest
request
)
{
Result
<
Map
<
String
,
Object
>>
result
=
new
Result
<>();
//全部权限ids
List
<
String
>
ids
=
new
ArrayList
<>();
try
{
LambdaQueryWrapper
<
SysPermission
>
query
=
new
LambdaQueryWrapper
<
SysPermission
>();
query
.
eq
(
SysPermission:
:
getDelFlag
,
CommonConstant
.
DEL_FLAG_0
);
query
.
orderByAsc
(
SysPermission:
:
getSortNo
);
List
<
SysPermission
>
list
=
sysPermissionService
.
list
(
query
);
for
(
SysPermission
sysPer
:
list
)
{
ids
.
add
(
sysPer
.
getId
());
}
List
<
TreeModel
>
treeList
=
new
ArrayList
<>();
getTreeModelList
(
treeList
,
list
,
null
);
Map
<
String
,
Object
>
resMap
=
new
HashMap
(
5
);
MultipartFile
file
=
entity
.
getValue
();
ImportParams
params
=
new
ImportParams
();
params
.
setTitleRows
(
2
);
params
.
setHeadRows
(
1
);
params
.
setNeedSave
(
true
);
try
{
return
sysRoleService
.
importExcelCheckRoleCode
(
file
,
params
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
Result
.
error
(
"文件导入失败:"
+
e
.
getMessage
());
}
finally
{
try
{
file
.
getInputStream
().
close
();
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
}
return
Result
.
error
(
"文件导入失败!"
);
}
/**
* 查询数据规则数据
*/
@GetMapping
(
value
=
"/datarule/{permissionId}/{roleId}"
)
public
Result
<?>
loadDatarule
(
@PathVariable
(
"permissionId"
)
String
permissionId
,
@PathVariable
(
"roleId"
)
String
roleId
)
{
List
<
SysPermissionDataRule
>
list
=
sysPermissionDataRuleService
.
getPermRuleListByPermId
(
permissionId
);
if
(
list
==
null
||
list
.
size
()
==
0
)
{
return
Result
.
error
(
"未找到权限配置信息"
);
}
else
{
Map
<
String
,
Object
>
map
=
new
HashMap
(
5
);
map
.
put
(
"datarule"
,
list
);
LambdaQueryWrapper
<
SysRolePermission
>
query
=
new
LambdaQueryWrapper
<
SysRolePermission
>()
.
eq
(
SysRolePermission:
:
getPermissionId
,
permissionId
)
.
isNotNull
(
SysRolePermission:
:
getDataRuleIds
)
.
eq
(
SysRolePermission:
:
getRoleId
,
roleId
);
SysRolePermission
sysRolePermission
=
sysRolePermissionService
.
getOne
(
query
);
if
(
sysRolePermission
==
null
)
{
//return Result.error("未找到角色菜单配置信息");
}
else
{
String
drChecked
=
sysRolePermission
.
getDataRuleIds
();
if
(
oConvertUtils
.
isNotEmpty
(
drChecked
))
{
map
.
put
(
"drChecked"
,
drChecked
.
endsWith
(
","
)
?
drChecked
.
substring
(
0
,
drChecked
.
length
()
-
1
)
:
drChecked
);
}
}
return
Result
.
ok
(
map
);
//TODO 以后按钮权限的查询也走这个请求 无非在map中多加两个key
}
}
/**
* 保存数据规则至角色菜单关联表
*/
@PostMapping
(
value
=
"/datarule"
)
public
Result
<?>
saveDatarule
(
@RequestBody
JSONObject
jsonObject
)
{
try
{
String
permissionId
=
jsonObject
.
getString
(
"permissionId"
);
String
roleId
=
jsonObject
.
getString
(
"roleId"
);
String
dataRuleIds
=
jsonObject
.
getString
(
"dataRuleIds"
);
log
.
info
(
"保存数据规则>>"
+
"菜单ID:"
+
permissionId
+
"角色ID:"
+
roleId
+
"数据权限ID:"
+
dataRuleIds
);
LambdaQueryWrapper
<
SysRolePermission
>
query
=
new
LambdaQueryWrapper
<
SysRolePermission
>()
.
eq
(
SysRolePermission:
:
getPermissionId
,
permissionId
)
.
eq
(
SysRolePermission:
:
getRoleId
,
roleId
);
SysRolePermission
sysRolePermission
=
sysRolePermissionService
.
getOne
(
query
);
if
(
sysRolePermission
==
null
)
{
return
Result
.
error
(
"请先保存角色菜单权限!"
);
}
else
{
sysRolePermission
.
setDataRuleIds
(
dataRuleIds
);
this
.
sysRolePermissionService
.
updateById
(
sysRolePermission
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"SysRoleController.saveDatarule()发生异常:"
+
e
.
getMessage
(),
e
);
return
Result
.
error
(
"保存失败"
);
}
return
Result
.
ok
(
"保存成功!"
);
}
/**
* 用户角色授权功能,查询菜单权限树
*
* @param request
* @return
*/
@RequestMapping
(
value
=
"/queryTreeList"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Map
<
String
,
Object
>>
queryTreeList
(
HttpServletRequest
request
)
{
Result
<
Map
<
String
,
Object
>>
result
=
new
Result
<>();
//全部权限ids
List
<
String
>
ids
=
new
ArrayList
<>();
try
{
LambdaQueryWrapper
<
SysPermission
>
query
=
new
LambdaQueryWrapper
<
SysPermission
>();
query
.
eq
(
SysPermission:
:
getDelFlag
,
CommonConstant
.
DEL_FLAG_0
);
query
.
orderByAsc
(
SysPermission:
:
getSortNo
);
List
<
SysPermission
>
list
=
sysPermissionService
.
list
(
query
);
for
(
SysPermission
sysPer
:
list
)
{
ids
.
add
(
sysPer
.
getId
());
}
List
<
TreeModel
>
treeList
=
new
ArrayList
<>();
getTreeModelList
(
treeList
,
list
,
null
);
Map
<
String
,
Object
>
resMap
=
new
HashMap
(
5
);
//全部树节点数据
resMap
.
put
(
"treeList"
,
treeList
);
resMap
.
put
(
"treeList"
,
treeList
);
//全部树ids
resMap
.
put
(
"ids"
,
ids
);
result
.
setResult
(
resMap
);
result
.
setSuccess
(
true
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
result
;
}
private
void
getTreeModelList
(
List
<
TreeModel
>
treeList
,
List
<
SysPermission
>
metaList
,
TreeModel
temp
)
{
for
(
SysPermission
permission
:
metaList
)
{
String
tempPid
=
permission
.
getParentId
();
TreeModel
tree
=
new
TreeModel
(
permission
.
getId
(),
tempPid
,
permission
.
getName
(),
permission
.
getRuleFlag
(),
permission
.
isLeaf
());
if
(
temp
==
null
&&
oConvertUtils
.
isEmpty
(
tempPid
))
{
treeList
.
add
(
tree
);
if
(!
tree
.
getIsLeaf
())
{
getTreeModelList
(
treeList
,
metaList
,
tree
);
}
}
else
if
(
temp
!=
null
&&
tempPid
!=
null
&&
tempPid
.
equals
(
temp
.
getKey
()))
{
temp
.
getChildren
().
add
(
tree
);
if
(!
tree
.
getIsLeaf
())
{
getTreeModelList
(
treeList
,
metaList
,
tree
);
}
}
}
}
resMap
.
put
(
"ids"
,
ids
);
result
.
setResult
(
resMap
);
result
.
setSuccess
(
true
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
result
;
}
private
void
getTreeModelList
(
List
<
TreeModel
>
treeList
,
List
<
SysPermission
>
metaList
,
TreeModel
temp
)
{
for
(
SysPermission
permission
:
metaList
)
{
String
tempPid
=
permission
.
getParentId
();
TreeModel
tree
=
new
TreeModel
(
permission
.
getId
(),
tempPid
,
permission
.
getName
(),
permission
.
getRuleFlag
(),
permission
.
isLeaf
());
if
(
temp
==
null
&&
oConvertUtils
.
isEmpty
(
tempPid
))
{
treeList
.
add
(
tree
);
if
(!
tree
.
getIsLeaf
())
{
getTreeModelList
(
treeList
,
metaList
,
tree
);
}
}
else
if
(
temp
!=
null
&&
tempPid
!=
null
&&
tempPid
.
equals
(
temp
.
getKey
()))
{
temp
.
getChildren
().
add
(
tree
);
if
(!
tree
.
getIsLeaf
())
{
getTreeModelList
(
treeList
,
metaList
,
tree
);
}
}
}
}
}
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java
View file @
ec9df5b9
...
...
@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.shiro.SecurityUtils
;
...
...
@@ -63,19 +65,20 @@ import java.util.stream.Collectors;
@Slf4j
@RestController
@RequestMapping
(
"/sys/user"
)
@Api
(
tags
=
"用户管理"
)
public
class
SysUserController
{
@Autowired
private
ISysUserService
sysUserService
;
@Autowired
private
ISysUserService
sysUserService
;
@Autowired
private
ISysDepartService
sysDepartService
;
@Autowired
private
ISysUserRoleService
sysUserRoleService
;
@Autowired
private
ISysUserRoleService
sysUserRoleService
;
@Autowired
private
ISysUserDepartService
sysUserDepartService
;
@Autowired
private
ISysUserDepartService
sysUserDepartService
;
@Autowired
private
ISysDepartRoleUserService
departRoleUserService
;
...
...
@@ -83,8 +86,8 @@ public class SysUserController {
@Autowired
private
ISysDepartRoleService
departRoleService
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
RedisUtil
redisUtil
;
@Value
(
"${jeecg.path.upload}"
)
private
String
upLoadPath
;
...
...
@@ -103,17 +106,19 @@ public class SysUserController {
/**
* 获取租户下用户数据(支持租户隔离)
*
* @param user
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@ApiOperation
(
"获取租户下用户数据"
)
@PermissionData
(
pageComponent
=
"system/UserList"
)
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysUser
>>
queryPageList
(
SysUser
user
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
QueryWrapper
<
SysUser
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
user
,
req
.
getParameterMap
());
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysUser
>>
queryPageList
(
SysUser
user
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
QueryWrapper
<
SysUser
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
user
,
req
.
getParameterMap
());
//------------------------------------------------------------------------------------------------
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
...
...
@@ -122,14 +127,14 @@ public class SysUserController {
List
<
String
>
userIds
=
userTenantService
.
getUserIdsByTenantId
(
Integer
.
valueOf
(
tenantId
));
if
(
oConvertUtils
.
listIsNotEmpty
(
userIds
))
{
queryWrapper
.
in
(
"id"
,
userIds
);
}
else
{
}
else
{
queryWrapper
.
eq
(
"id"
,
"通过租户查询不到任何用户"
);
}
//update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
}
//------------------------------------------------------------------------------------------------
return
sysUserService
.
queryPageList
(
req
,
queryWrapper
,
pageSize
,
pageNo
);
}
}
/**
* 获取系统用户数据(查询全部用户,不做租户隔离)
...
...
@@ -140,7 +145,8 @@ public class SysUserController {
* @param req
* @return
*/
//@RequiresPermissions("system:user:listAll")
// @RequiresPermissions("system:user:listAll")
@ApiOperation
(
"获取系统用户数据"
)
@RequestMapping
(
value
=
"/listAll"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysUser
>>
queryAllPageList
(
SysUser
user
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
...
...
@@ -149,121 +155,128 @@ public class SysUserController {
}
//@RequiresPermissions("system:user:add")
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
POST
)
public
Result
<
SysUser
>
add
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
String
selectedRoles
=
jsonObject
.
getString
(
"selectedroles"
);
String
selectedDeparts
=
jsonObject
.
getString
(
"selecteddeparts"
);
try
{
SysUser
user
=
JSON
.
parseObject
(
jsonObject
.
toJSONString
(),
SysUser
.
class
);
user
.
setCreateTime
(
new
Date
());
//设置创建时间
String
salt
=
oConvertUtils
.
randomGen
(
8
);
user
.
setSalt
(
salt
);
String
passwordEncode
=
PasswordUtil
.
encrypt
(
user
.
getUsername
(),
user
.
getPassword
(),
salt
);
user
.
setPassword
(
passwordEncode
);
user
.
setStatus
(
1
);
user
.
setDelFlag
(
CommonConstant
.
DEL_FLAG_0
);
//用户表字段org_code不能在这里设置他的值
@ApiOperation
(
"新增用户"
)
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
POST
)
public
Result
<
SysUser
>
add
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
String
selectedRoles
=
jsonObject
.
getString
(
"selectedroles"
);
String
selectedDeparts
=
jsonObject
.
getString
(
"selecteddeparts"
);
try
{
SysUser
user
=
JSON
.
parseObject
(
jsonObject
.
toJSONString
(),
SysUser
.
class
);
user
.
setCreateTime
(
new
Date
());
//设置创建时间
String
salt
=
oConvertUtils
.
randomGen
(
8
);
user
.
setSalt
(
salt
);
String
passwordEncode
=
PasswordUtil
.
encrypt
(
user
.
getUsername
(),
user
.
getPassword
(),
salt
);
user
.
setPassword
(
passwordEncode
);
user
.
setStatus
(
1
);
user
.
setDelFlag
(
CommonConstant
.
DEL_FLAG_0
);
//用户表字段org_code不能在这里设置他的值
user
.
setOrgCode
(
null
);
// 保存用户走一个service 保证事务
// 保存用户走一个service 保证事务
//获取租户ids
String
relTenantIds
=
jsonObject
.
getString
(
"relTenantIds"
);
sysUserService
.
saveUser
(
user
,
selectedRoles
,
selectedDeparts
,
relTenantIds
);
baseCommonService
.
addLog
(
"添加用户,username: "
+
user
.
getUsername
()
,
CommonConstant
.
LOG_TYPE_2
,
2
);
result
.
success
(
"添加成功!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
);
}
return
result
;
}
baseCommonService
.
addLog
(
"添加用户,username: "
+
user
.
getUsername
(),
CommonConstant
.
LOG_TYPE_2
,
2
);
result
.
success
(
"添加成功!"
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
);
}
return
result
;
}
//@RequiresPermissions("system:user:edit")
@RequestMapping
(
value
=
"/edit"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
SysUser
>
edit
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
try
{
SysUser
sysUser
=
sysUserService
.
getById
(
jsonObject
.
getString
(
"id"
));
baseCommonService
.
addLog
(
"编辑用户,username: "
+
sysUser
.
getUsername
()
,
CommonConstant
.
LOG_TYPE_2
,
2
);
if
(
sysUser
==
null
)
{
result
.
error500
(
"未找到对应实体"
);
}
else
{
SysUser
user
=
JSON
.
parseObject
(
jsonObject
.
toJSONString
(),
SysUser
.
class
);
user
.
setUpdateTime
(
new
Date
());
//String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt());
user
.
setPassword
(
sysUser
.
getPassword
());
String
roles
=
jsonObject
.
getString
(
"selectedroles"
);
@ApiOperation
(
"编辑用户"
)
@RequestMapping
(
value
=
"/edit"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
SysUser
>
edit
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
try
{
SysUser
sysUser
=
sysUserService
.
getById
(
jsonObject
.
getString
(
"id"
));
baseCommonService
.
addLog
(
"编辑用户,username: "
+
sysUser
.
getUsername
(),
CommonConstant
.
LOG_TYPE_2
,
2
);
if
(
sysUser
==
null
)
{
result
.
error500
(
"未找到对应实体"
);
}
else
{
SysUser
user
=
JSON
.
parseObject
(
jsonObject
.
toJSONString
(),
SysUser
.
class
);
user
.
setUpdateTime
(
new
Date
());
//String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), sysUser.getSalt());
user
.
setPassword
(
sysUser
.
getPassword
());
String
roles
=
jsonObject
.
getString
(
"selectedroles"
);
String
departs
=
jsonObject
.
getString
(
"selecteddeparts"
);
if
(
oConvertUtils
.
isEmpty
(
departs
))
{
if
(
oConvertUtils
.
isEmpty
(
departs
))
{
//vue3.0前端只传递了departIds
departs
=
user
.
getDepartIds
();
departs
=
user
.
getDepartIds
();
}
//用户表字段org_code不能在这里设置他的值
user
.
setOrgCode
(
null
);
// 修改用户走一个service 保证事务
//获取租户ids
String
relTenantIds
=
jsonObject
.
getString
(
"relTenantIds"
);
sysUserService
.
editUser
(
user
,
roles
,
departs
,
relTenantIds
);
result
.
success
(
"修改成功!"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
);
}
return
result
;
}
/**
* 删除用户
*/
sysUserService
.
editUser
(
user
,
roles
,
departs
,
relTenantIds
);
result
.
success
(
"修改成功!"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
);
}
return
result
;
}
/**
* 删除用户
*/
//@RequiresPermissions("system:user:delete")
@RequestMapping
(
value
=
"/delete"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<?>
delete
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
baseCommonService
.
addLog
(
"删除用户,id: "
+
id
,
CommonConstant
.
LOG_TYPE_2
,
3
);
this
.
sysUserService
.
deleteUser
(
id
);
return
Result
.
ok
(
"删除用户成功"
);
}
/**
* 批量删除用户
*/
@ApiOperation
(
"删除用户"
)
@RequestMapping
(
value
=
"/delete"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<?>
delete
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
baseCommonService
.
addLog
(
"删除用户,id: "
+
id
,
CommonConstant
.
LOG_TYPE_2
,
3
);
this
.
sysUserService
.
deleteUser
(
id
);
return
Result
.
ok
(
"删除用户成功"
);
}
/**
* 批量删除用户
*/
//@RequiresPermissions("system:user:deleteBatch")
@RequestMapping
(
value
=
"/deleteBatch"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<?>
deleteBatch
(
@RequestParam
(
name
=
"ids"
,
required
=
true
)
String
ids
)
{
baseCommonService
.
addLog
(
"批量删除用户, ids: "
+
ids
,
CommonConstant
.
LOG_TYPE_2
,
3
);
this
.
sysUserService
.
deleteBatchUsers
(
ids
);
return
Result
.
ok
(
"批量删除用户成功"
);
}
/**
* 冻结&解冻用户
* @param jsonObject
* @return
*/
@ApiOperation
(
"批量删除用户"
)
@RequestMapping
(
value
=
"/deleteBatch"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<?>
deleteBatch
(
@RequestParam
(
name
=
"ids"
,
required
=
true
)
String
ids
)
{
baseCommonService
.
addLog
(
"批量删除用户, ids: "
+
ids
,
CommonConstant
.
LOG_TYPE_2
,
3
);
this
.
sysUserService
.
deleteBatchUsers
(
ids
);
return
Result
.
ok
(
"批量删除用户成功"
);
}
/**
* 冻结&解冻用户
*
* @param jsonObject
* @return
*/
//@RequiresPermissions("system:user:frozenBatch")
@RequestMapping
(
value
=
"/frozenBatch"
,
method
=
RequestMethod
.
PUT
)
public
Result
<
SysUser
>
frozenBatch
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
try
{
String
ids
=
jsonObject
.
getString
(
"ids"
);
String
status
=
jsonObject
.
getString
(
"status"
);
String
[]
arr
=
ids
.
split
(
","
);
for
(
String
id
:
arr
)
{
if
(
oConvertUtils
.
isNotEmpty
(
id
))
{
this
.
sysUserService
.
update
(
new
SysUser
().
setStatus
(
Integer
.
parseInt
(
status
)),
new
UpdateWrapper
<
SysUser
>().
lambda
().
eq
(
SysUser:
:
getId
,
id
));
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
+
e
.
getMessage
());
}
result
.
success
(
"操作成功!"
);
return
result
;
@ApiOperation
(
"冻结&解冻用户"
)
@RequestMapping
(
value
=
"/frozenBatch"
,
method
=
RequestMethod
.
PUT
)
public
Result
<
SysUser
>
frozenBatch
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
try
{
String
ids
=
jsonObject
.
getString
(
"ids"
);
String
status
=
jsonObject
.
getString
(
"status"
);
String
[]
arr
=
ids
.
split
(
","
);
for
(
String
id
:
arr
)
{
if
(
oConvertUtils
.
isNotEmpty
(
id
))
{
this
.
sysUserService
.
update
(
new
SysUser
().
setStatus
(
Integer
.
parseInt
(
status
)),
new
UpdateWrapper
<
SysUser
>().
lambda
().
eq
(
SysUser:
:
getId
,
id
));
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"操作失败"
+
e
.
getMessage
());
}
result
.
success
(
"操作成功!"
);
return
result
;
}
//@RequiresPermissions("system:user:queryById")
@ApiOperation
(
"查询单个"
)
@RequestMapping
(
value
=
"/queryById"
,
method
=
RequestMethod
.
GET
)
public
Result
<
SysUser
>
queryById
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
...
...
@@ -278,6 +291,7 @@ public class SysUserController {
}
//@RequiresPermissions("system:user:queryUserRole")
@ApiOperation
(
"查询用户角色"
)
@RequestMapping
(
value
=
"/queryUserRole"
,
method
=
RequestMethod
.
GET
)
public
Result
<
List
<
String
>>
queryUserRole
(
@RequestParam
(
name
=
"userid"
,
required
=
true
)
String
userid
)
{
Result
<
List
<
String
>>
result
=
new
Result
<>();
...
...
@@ -297,12 +311,13 @@ public class SysUserController {
/**
*
校验用户账号是否唯一<br>
*
可以校验其他 需要检验什么就传什么。。。
*
校验用户账号是否唯一<br>
*
可以校验其他 需要检验什么就传什么。。。
*
* @param sysUser
* @return
*/
@ApiOperation
(
"校验用户账号是否唯一"
)
@RequestMapping
(
value
=
"/checkOnlyUser"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Boolean
>
checkOnlyUser
(
SysUser
sysUser
)
{
Result
<
Boolean
>
result
=
new
Result
<>();
...
...
@@ -340,7 +355,7 @@ public class SysUserController {
sysUser
.
setId
(
u
.
getId
());
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
LoginUser
loginUser
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
baseCommonService
.
addLog
(
"修改用户 "
+
sysUser
.
getUsername
()+
" 的密码,操作人: "
+
loginUser
.
getUsername
()
,
CommonConstant
.
LOG_TYPE_2
,
2
);
baseCommonService
.
addLog
(
"修改用户 "
+
sysUser
.
getUsername
()
+
" 的密码,操作人: "
+
loginUser
.
getUsername
(),
CommonConstant
.
LOG_TYPE_2
,
2
);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
return
sysUserService
.
changePassword
(
sysUser
);
}
...
...
@@ -366,7 +381,7 @@ public class SysUserController {
}
return
result
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
result
.
setSuccess
(
false
);
result
.
setMessage
(
"查找过程中出现了异常: "
+
e
.
getMessage
());
return
result
;
...
...
@@ -396,19 +411,19 @@ public class SysUserController {
* @return
*/
@RequestMapping
(
value
=
"/queryUserByDepId"
,
method
=
RequestMethod
.
GET
)
public
Result
<
List
<
SysUser
>>
queryUserByDepId
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
,
@RequestParam
(
name
=
"realname"
,
required
=
false
)
String
realname
)
{
public
Result
<
List
<
SysUser
>>
queryUserByDepId
(
@RequestParam
(
name
=
"id"
,
required
=
true
)
String
id
,
@RequestParam
(
name
=
"realname"
,
required
=
false
)
String
realname
)
{
Result
<
List
<
SysUser
>>
result
=
new
Result
<>();
//List<SysUser> userList = sysUserDepartService.queryUserByDepId(id);
SysDepart
sysDepart
=
sysDepartService
.
getById
(
id
);
List
<
SysUser
>
userList
=
sysUserDepartService
.
queryUserByDepCode
(
sysDepart
.
getOrgCode
(),
realname
);
List
<
SysUser
>
userList
=
sysUserDepartService
.
queryUserByDepCode
(
sysDepart
.
getOrgCode
(),
realname
);
//批量查询用户的所属部门
//step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List
<
String
>
userIds
=
userList
.
stream
().
map
(
SysUser:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
userIds
!=
null
&&
userIds
.
size
()>
0
)
{
Map
<
String
,
String
>
useDepNames
=
sysUserService
.
getDepNamesByUserIds
(
userIds
);
userList
.
forEach
(
item
->
{
if
(
userIds
!=
null
&&
userIds
.
size
()
>
0
)
{
Map
<
String
,
String
>
useDepNames
=
sysUserService
.
getDepNamesByUserIds
(
userIds
);
userList
.
forEach
(
item
->
{
//TODO 临时借用这个字段用于页面展示
item
.
setOrgCodeTxt
(
useDepNames
.
get
(
item
.
getId
()));
});
...
...
@@ -419,7 +434,7 @@ public class SysUserController {
result
.
setResult
(
userList
);
return
result
;
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
result
.
setSuccess
(
false
);
return
result
;
}
...
...
@@ -427,23 +442,24 @@ public class SysUserController {
/**
* 用户选择组件 专用 根据用户账号或部门分页查询
*
* @param departId
* @param username
* @return
*/
@RequestMapping
(
value
=
"/queryUserComponentData"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysUser
>>
queryUserComponentData
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"departId"
,
required
=
false
)
String
departId
,
@RequestParam
(
name
=
"realname"
,
required
=
false
)
String
realname
,
@RequestParam
(
name
=
"username"
,
required
=
false
)
String
username
,
@RequestParam
(
name
=
"id"
,
required
=
false
)
String
id
)
{
@RequestParam
(
name
=
"realname"
,
required
=
false
)
String
realname
,
@RequestParam
(
name
=
"username"
,
required
=
false
)
String
username
,
@RequestParam
(
name
=
"id"
,
required
=
false
)
String
id
)
{
//update-begin-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞
String
[]
arr
=
new
String
[]{
departId
,
realname
,
username
,
id
};
SqlInjectionUtil
.
filterContent
(
arr
,
SymbolConstant
.
SINGLE_QUOTATION_MARK
);
//update-end-author:taoyan date:2022-7-14 for: VUEN-1702【禁止问题】sql注入漏洞
IPage
<
SysUser
>
pageList
=
sysUserDepartService
.
queryDepartUserPageList
(
departId
,
username
,
realname
,
pageSize
,
pageNo
,
id
);
IPage
<
SysUser
>
pageList
=
sysUserDepartService
.
queryDepartUserPageList
(
departId
,
username
,
realname
,
pageSize
,
pageNo
,
id
);
return
Result
.
OK
(
pageList
);
}
...
...
@@ -455,24 +471,24 @@ public class SysUserController {
*/
//@RequiresPermissions("system:user:export")
@RequestMapping
(
value
=
"/exportXls"
)
public
ModelAndView
exportXls
(
SysUser
sysUser
,
HttpServletRequest
request
)
{
public
ModelAndView
exportXls
(
SysUser
sysUser
,
HttpServletRequest
request
)
{
// Step.1 组装查询条件
QueryWrapper
<
SysUser
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
sysUser
,
request
.
getParameterMap
());
//Step.2 AutoPoi 导出Excel
ModelAndView
mv
=
new
ModelAndView
(
new
JeecgEntityExcelView
());
//update-begin--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据--------------------
String
selections
=
request
.
getParameter
(
"selections"
);
if
(!
oConvertUtils
.
isEmpty
(
selections
))
{
queryWrapper
.
in
(
"id"
,
selections
.
split
(
","
));
}
if
(!
oConvertUtils
.
isEmpty
(
selections
))
{
queryWrapper
.
in
(
"id"
,
selections
.
split
(
","
));
}
//update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
List
<
SysUser
>
pageList
=
sysUserService
.
list
(
queryWrapper
);
//导出文件名称
mv
.
addObject
(
NormalExcelConstants
.
FILE_NAME
,
"用户列表"
);
mv
.
addObject
(
NormalExcelConstants
.
CLASS
,
SysUser
.
class
);
LoginUser
user
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
ExportParams
exportParams
=
new
ExportParams
(
"用户列表数据"
,
"导出人:"
+
user
.
getRealname
(),
"导出信息"
);
LoginUser
user
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
ExportParams
exportParams
=
new
ExportParams
(
"用户列表数据"
,
"导出人:"
+
user
.
getRealname
(),
"导出信息"
);
exportParams
.
setImageBasePath
(
upLoadPath
);
mv
.
addObject
(
NormalExcelConstants
.
PARAMS
,
exportParams
);
mv
.
addObject
(
NormalExcelConstants
.
DATA_LIST
,
pageList
);
...
...
@@ -488,7 +504,7 @@ public class SysUserController {
*/
//@RequiresPermissions("system:user:import")
@RequestMapping
(
value
=
"/importExcel"
,
method
=
RequestMethod
.
POST
)
public
Result
<?>
importExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
IOException
{
public
Result
<?>
importExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
IOException
{
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
Map
<
String
,
MultipartFile
>
fileMap
=
multipartRequest
.
getFileMap
();
// 错误信息
...
...
@@ -529,7 +545,7 @@ public class SysUserController {
errorMessage
.
add
(
"第 "
+
lineNumber
+
" 行:手机号已经存在,忽略导入。"
);
}
else
if
(
message
.
contains
(
CommonConstant
.
SQL_INDEX_UNIQ_SYS_USER_EMAIL
))
{
errorMessage
.
add
(
"第 "
+
lineNumber
+
" 行:电子邮件已经存在,忽略导入。"
);
}
else
if
(
message
.
contains
(
CommonConstant
.
SQL_INDEX_UNIQ_SYS_USER
))
{
}
else
if
(
message
.
contains
(
CommonConstant
.
SQL_INDEX_UNIQ_SYS_USER
))
{
errorMessage
.
add
(
"第 "
+
lineNumber
+
" 行:违反表唯一性约束。"
);
}
else
{
errorMessage
.
add
(
"第 "
+
lineNumber
+
" 行:未知错误,忽略导入"
);
...
...
@@ -556,80 +572,80 @@ public class SysUserController {
try
{
file
.
getInputStream
().
close
();
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
}
}
}
return
ImportExcelUtil
.
imporReturnRes
(
errorLines
,
successLines
,
errorMessage
);
return
ImportExcelUtil
.
imporReturnRes
(
errorLines
,
successLines
,
errorMessage
);
}
/**
* @功能:根据id 批量查询
* @param userIds
* @return
*/
@RequestMapping
(
value
=
"/queryByIds"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Collection
<
SysUser
>>
queryByIds
(
@RequestParam
String
userIds
)
{
Result
<
Collection
<
SysUser
>>
result
=
new
Result
<>();
String
[]
userId
=
userIds
.
split
(
","
);
Collection
<
String
>
idList
=
Arrays
.
asList
(
userId
);
Collection
<
SysUser
>
userRole
=
sysUserService
.
listByIds
(
idList
);
result
.
setSuccess
(
true
);
result
.
setResult
(
userRole
);
return
result
;
}
* @param userIds
* @return
* @功能:根据id 批量查询
*/
@RequestMapping
(
value
=
"/queryByIds"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Collection
<
SysUser
>>
queryByIds
(
@RequestParam
String
userIds
)
{
Result
<
Collection
<
SysUser
>>
result
=
new
Result
<>();
String
[]
userId
=
userIds
.
split
(
","
);
Collection
<
String
>
idList
=
Arrays
.
asList
(
userId
);
Collection
<
SysUser
>
userRole
=
sysUserService
.
listByIds
(
idList
);
result
.
setSuccess
(
true
);
result
.
setResult
(
userRole
);
return
result
;
}
/**
* @功能:根据id 批量查询
* @param userNames
* @return
* @功能:根据id 批量查询
*/
@RequestMapping
(
value
=
"/queryByNames"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Collection
<
SysUser
>>
queryByNames
(
@RequestParam
String
userNames
)
{
Result
<
Collection
<
SysUser
>>
result
=
new
Result
<>();
String
[]
names
=
userNames
.
split
(
","
);
QueryWrapper
<
SysUser
>
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
lambda
().
in
(
true
,
SysUser:
:
getUsername
,
names
);
QueryWrapper
<
SysUser
>
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
lambda
().
in
(
true
,
SysUser:
:
getUsername
,
names
);
Collection
<
SysUser
>
userRole
=
sysUserService
.
list
(
queryWrapper
);
result
.
setSuccess
(
true
);
result
.
setResult
(
userRole
);
return
result
;
}
/**
* 首页用户重置密码
*/
/**
* 首页用户重置密码
*/
//@RequiresPermissions("system:user:updatepwd")
@RequestMapping
(
value
=
"/updatePassword"
,
method
=
RequestMethod
.
PUT
)
public
Result
<?>
updatePassword
(
@RequestBody
JSONObject
json
)
{
String
username
=
json
.
getString
(
"username"
);
String
oldpassword
=
json
.
getString
(
"oldpassword"
);
String
password
=
json
.
getString
(
"password"
);
String
confirmpassword
=
json
.
getString
(
"confirmpassword"
);
LoginUser
sysUser
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
if
(!
sysUser
.
getUsername
().
equals
(
username
))
{
public
Result
<?>
updatePassword
(
@RequestBody
JSONObject
json
)
{
String
username
=
json
.
getString
(
"username"
);
String
oldpassword
=
json
.
getString
(
"oldpassword"
);
String
password
=
json
.
getString
(
"password"
);
String
confirmpassword
=
json
.
getString
(
"confirmpassword"
);
LoginUser
sysUser
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
if
(!
sysUser
.
getUsername
().
equals
(
username
))
{
return
Result
.
error
(
"只允许修改自己的密码!"
);
}
SysUser
user
=
this
.
sysUserService
.
getOne
(
new
LambdaQueryWrapper
<
SysUser
>().
eq
(
SysUser:
:
getUsername
,
username
));
if
(
user
==
null
)
{
return
Result
.
error
(
"用户不存在!"
);
}
SysUser
user
=
this
.
sysUserService
.
getOne
(
new
LambdaQueryWrapper
<
SysUser
>().
eq
(
SysUser:
:
getUsername
,
username
));
if
(
user
==
null
)
{
return
Result
.
error
(
"用户不存在!"
);
}
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
LoginUser
loginUser
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
baseCommonService
.
addLog
(
"修改密码,username: "
+
loginUser
.
getUsername
()
,
CommonConstant
.
LOG_TYPE_2
,
2
);
baseCommonService
.
addLog
(
"修改密码,username: "
+
loginUser
.
getUsername
(),
CommonConstant
.
LOG_TYPE_2
,
2
);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]修改密码添加敏感日志------------
return
sysUserService
.
resetPassword
(
username
,
oldpassword
,
password
,
confirmpassword
);
}
return
sysUserService
.
resetPassword
(
username
,
oldpassword
,
password
,
confirmpassword
);
}
@RequestMapping
(
value
=
"/userRoleList"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysUser
>>
userRoleList
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
public
Result
<
IPage
<
SysUser
>>
userRoleList
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
SysUser
>>
result
=
new
Result
<
IPage
<
SysUser
>>();
Page
<
SysUser
>
page
=
new
Page
<
SysUser
>(
pageNo
,
pageSize
);
String
roleId
=
req
.
getParameter
(
"roleId"
);
String
username
=
req
.
getParameter
(
"username"
);
IPage
<
SysUser
>
pageList
=
sysUserService
.
getUserByRoleId
(
page
,
roleId
,
username
);
IPage
<
SysUser
>
pageList
=
sysUserService
.
getUserByRoleId
(
page
,
roleId
,
username
);
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
return
result
;
...
...
@@ -647,12 +663,12 @@ public class SysUserController {
Result
<
String
>
result
=
new
Result
<
String
>();
try
{
String
sysRoleId
=
sysUserRoleVO
.
getRoleId
();
for
(
String
sysUserId:
sysUserRoleVO
.
getUserIdList
())
{
SysUserRole
sysUserRole
=
new
SysUserRole
(
sysUserId
,
sysRoleId
);
for
(
String
sysUserId
:
sysUserRoleVO
.
getUserIdList
())
{
SysUserRole
sysUserRole
=
new
SysUserRole
(
sysUserId
,
sysRoleId
);
QueryWrapper
<
SysUserRole
>
queryWrapper
=
new
QueryWrapper
<
SysUserRole
>();
queryWrapper
.
eq
(
"role_id"
,
sysRoleId
).
eq
(
"user_id"
,
sysUserId
);
queryWrapper
.
eq
(
"role_id"
,
sysRoleId
).
eq
(
"user_id"
,
sysUserId
);
SysUserRole
one
=
sysUserRoleService
.
getOne
(
queryWrapper
);
if
(
one
==
null
)
{
if
(
one
==
null
)
{
sysUserRoleService
.
save
(
sysUserRole
);
}
...
...
@@ -660,30 +676,32 @@ public class SysUserController {
result
.
setMessage
(
"添加成功!"
);
result
.
setSuccess
(
true
);
return
result
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
setSuccess
(
false
);
result
.
setMessage
(
"出错了: "
+
e
.
getMessage
());
return
result
;
}
}
/**
* 删除指定角色的用户关系
* 删除指定角色的用户关系
*
* @param
* @return
*/
//@RequiresPermissions("system:user:deleteRole")
@RequestMapping
(
value
=
"/deleteUserRole"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<
SysUserRole
>
deleteUserRole
(
@RequestParam
(
name
=
"roleId"
)
String
roleId
,
@RequestParam
(
name
=
"userId"
,
required
=
true
)
String
userId
public
Result
<
SysUserRole
>
deleteUserRole
(
@RequestParam
(
name
=
"roleId"
)
String
roleId
,
@RequestParam
(
name
=
"userId"
,
required
=
true
)
String
userId
)
{
Result
<
SysUserRole
>
result
=
new
Result
<
SysUserRole
>();
try
{
QueryWrapper
<
SysUserRole
>
queryWrapper
=
new
QueryWrapper
<
SysUserRole
>();
queryWrapper
.
eq
(
"role_id"
,
roleId
).
eq
(
"user_id"
,
userId
);
queryWrapper
.
eq
(
"role_id"
,
roleId
).
eq
(
"user_id"
,
userId
);
sysUserRoleService
.
remove
(
queryWrapper
);
result
.
success
(
"删除成功!"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"删除失败!"
);
}
...
...
@@ -699,15 +717,15 @@ public class SysUserController {
//@RequiresPermissions("system:user:deleteRoleBatch")
@RequestMapping
(
value
=
"/deleteUserRoleBatch"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<
SysUserRole
>
deleteUserRoleBatch
(
@RequestParam
(
name
=
"roleId"
)
String
roleId
,
@RequestParam
(
name
=
"userIds"
,
required
=
true
)
String
userIds
)
{
@RequestParam
(
name
=
"roleId"
)
String
roleId
,
@RequestParam
(
name
=
"userIds"
,
required
=
true
)
String
userIds
)
{
Result
<
SysUserRole
>
result
=
new
Result
<
SysUserRole
>();
try
{
QueryWrapper
<
SysUserRole
>
queryWrapper
=
new
QueryWrapper
<
SysUserRole
>();
queryWrapper
.
eq
(
"role_id"
,
roleId
).
in
(
"user_id"
,
Arrays
.
asList
(
userIds
.
split
(
","
)));
queryWrapper
.
eq
(
"role_id"
,
roleId
).
in
(
"user_id"
,
Arrays
.
asList
(
userIds
.
split
(
","
)));
sysUserRoleService
.
remove
(
queryWrapper
);
result
.
success
(
"删除成功!"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"删除失败!"
);
}
...
...
@@ -718,8 +736,8 @@ public class SysUserController {
* 部门用户列表
*/
@RequestMapping
(
value
=
"/departUserList"
,
method
=
RequestMethod
.
GET
)
public
Result
<
IPage
<
SysUser
>>
departUserList
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
public
Result
<
IPage
<
SysUser
>>
departUserList
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
HttpServletRequest
req
)
{
Result
<
IPage
<
SysUser
>>
result
=
new
Result
<
IPage
<
SysUser
>>();
Page
<
SysUser
>
page
=
new
Page
<
SysUser
>(
pageNo
,
pageSize
);
String
depId
=
req
.
getParameter
(
"depId"
);
...
...
@@ -727,22 +745,22 @@ public class SysUserController {
//根据部门ID查询,当前和下级所有的部门IDS
List
<
String
>
subDepids
=
new
ArrayList
<>();
//部门id为空时,查询我的部门下所有用户
if
(
oConvertUtils
.
isEmpty
(
depId
))
{
if
(
oConvertUtils
.
isEmpty
(
depId
))
{
LoginUser
user
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
int
userIdentity
=
user
.
getUserIdentity
()
!=
null
?
user
.
getUserIdentity
():
CommonConstant
.
USER_IDENTITY_1
;
if
(
oConvertUtils
.
isNotEmpty
(
userIdentity
)
&&
userIdentity
==
CommonConstant
.
USER_IDENTITY_2
)
{
int
userIdentity
=
user
.
getUserIdentity
()
!=
null
?
user
.
getUserIdentity
()
:
CommonConstant
.
USER_IDENTITY_1
;
if
(
oConvertUtils
.
isNotEmpty
(
userIdentity
)
&&
userIdentity
==
CommonConstant
.
USER_IDENTITY_2
)
{
subDepids
=
sysDepartService
.
getMySubDepIdsByDepId
(
user
.
getDepartIds
());
}
}
else
{
}
else
{
subDepids
=
sysDepartService
.
getSubDepIdsByDepId
(
depId
);
}
if
(
subDepids
!=
null
&&
subDepids
.
size
()>
0
)
{
IPage
<
SysUser
>
pageList
=
sysUserService
.
getUserByDepIds
(
page
,
subDepids
,
username
);
if
(
subDepids
!=
null
&&
subDepids
.
size
()
>
0
)
{
IPage
<
SysUser
>
pageList
=
sysUserService
.
getUserByDepIds
(
page
,
subDepids
,
username
);
//批量查询用户的所属部门
//step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List
<
String
>
userIds
=
pageList
.
getRecords
().
stream
().
map
(
SysUser:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
userIds
!=
null
&&
userIds
.
size
()>
0
)
{
if
(
userIds
!=
null
&&
userIds
.
size
()
>
0
)
{
Map
<
String
,
String
>
useDepNames
=
sysUserService
.
getDepNamesByUserIds
(
userIds
);
pageList
.
getRecords
().
forEach
(
item
->
{
//批量查询用户的所属部门
...
...
@@ -755,7 +773,7 @@ public class SysUserController {
//update-end---author:wangshuai ---date:20221223 for:[QQYUN-3371]租户逻辑改造,改成关系表------------
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
}
else
{
}
else
{
result
.
setSuccess
(
true
);
result
.
setResult
(
null
);
}
...
...
@@ -786,7 +804,7 @@ public class SysUserController {
public
Result
<?>
queryByOrgCodeForAddressList
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"orgCode"
,
required
=
false
)
String
orgCode
,
@RequestParam
(
name
=
"orgCode"
,
required
=
false
)
String
orgCode
,
SysUser
userParams
)
{
IPage
page
=
new
Page
(
pageNo
,
pageSize
);
...
...
@@ -833,19 +851,19 @@ public class SysUserController {
Result
<
String
>
result
=
new
Result
<
String
>();
try
{
String
sysDepId
=
sysDepartUsersVO
.
getDepId
();
for
(
String
sysUserId:
sysDepartUsersVO
.
getUserIdList
())
{
SysUserDepart
sysUserDepart
=
new
SysUserDepart
(
null
,
sysUserId
,
sysDepId
);
for
(
String
sysUserId
:
sysDepartUsersVO
.
getUserIdList
())
{
SysUserDepart
sysUserDepart
=
new
SysUserDepart
(
null
,
sysUserId
,
sysDepId
);
QueryWrapper
<
SysUserDepart
>
queryWrapper
=
new
QueryWrapper
<
SysUserDepart
>();
queryWrapper
.
eq
(
"dep_id"
,
sysDepId
).
eq
(
"user_id"
,
sysUserId
);
queryWrapper
.
eq
(
"dep_id"
,
sysDepId
).
eq
(
"user_id"
,
sysUserId
);
SysUserDepart
one
=
sysUserDepartService
.
getOne
(
queryWrapper
);
if
(
one
==
null
)
{
if
(
one
==
null
)
{
sysUserDepartService
.
save
(
sysUserDepart
);
}
}
result
.
setMessage
(
"添加成功!"
);
result
.
setSuccess
(
true
);
return
result
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
setSuccess
(
false
);
result
.
setMessage
(
"出错了: "
+
e
.
getMessage
());
...
...
@@ -854,31 +872,31 @@ public class SysUserController {
}
/**
*
删除指定机构的用户关系
* 删除指定机构的用户关系
*/
//@RequiresPermissions("system:user:deleteUserInDepart")
@RequestMapping
(
value
=
"/deleteUserInDepart"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<
SysUserDepart
>
deleteUserInDepart
(
@RequestParam
(
name
=
"depId"
)
String
depId
,
@RequestParam
(
name
=
"userId"
,
required
=
true
)
String
userId
public
Result
<
SysUserDepart
>
deleteUserInDepart
(
@RequestParam
(
name
=
"depId"
)
String
depId
,
@RequestParam
(
name
=
"userId"
,
required
=
true
)
String
userId
)
{
Result
<
SysUserDepart
>
result
=
new
Result
<
SysUserDepart
>();
try
{
QueryWrapper
<
SysUserDepart
>
queryWrapper
=
new
QueryWrapper
<
SysUserDepart
>();
queryWrapper
.
eq
(
"dep_id"
,
depId
).
eq
(
"user_id"
,
userId
);
queryWrapper
.
eq
(
"dep_id"
,
depId
).
eq
(
"user_id"
,
userId
);
boolean
b
=
sysUserDepartService
.
remove
(
queryWrapper
);
if
(
b
)
{
List
<
SysDepartRole
>
sysDepartRoleList
=
departRoleService
.
list
(
new
QueryWrapper
<
SysDepartRole
>().
eq
(
"depart_id"
,
depId
));
if
(
b
)
{
List
<
SysDepartRole
>
sysDepartRoleList
=
departRoleService
.
list
(
new
QueryWrapper
<
SysDepartRole
>().
eq
(
"depart_id"
,
depId
));
List
<
String
>
roleIds
=
sysDepartRoleList
.
stream
().
map
(
SysDepartRole:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
roleIds
!=
null
&&
roleIds
.
size
()>
0
)
{
if
(
roleIds
!=
null
&&
roleIds
.
size
()
>
0
)
{
QueryWrapper
<
SysDepartRoleUser
>
query
=
new
QueryWrapper
<>();
query
.
eq
(
"user_id"
,
userId
).
in
(
"drole_id"
,
roleIds
);
query
.
eq
(
"user_id"
,
userId
).
in
(
"drole_id"
,
roleIds
);
departRoleUserService
.
remove
(
query
);
}
result
.
success
(
"删除成功!"
);
}
else
{
}
else
{
result
.
error500
(
"当前选中部门与用户无关联关系!"
);
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"删除失败!"
);
}
...
...
@@ -891,92 +909,91 @@ public class SysUserController {
//@RequiresPermissions("system:user:deleteUserInDepartBatch")
@RequestMapping
(
value
=
"/deleteUserInDepartBatch"
,
method
=
RequestMethod
.
DELETE
)
public
Result
<
SysUserDepart
>
deleteUserInDepartBatch
(
@RequestParam
(
name
=
"depId"
)
String
depId
,
@RequestParam
(
name
=
"userIds"
,
required
=
true
)
String
userIds
)
{
@RequestParam
(
name
=
"depId"
)
String
depId
,
@RequestParam
(
name
=
"userIds"
,
required
=
true
)
String
userIds
)
{
Result
<
SysUserDepart
>
result
=
new
Result
<
SysUserDepart
>();
try
{
QueryWrapper
<
SysUserDepart
>
queryWrapper
=
new
QueryWrapper
<
SysUserDepart
>();
queryWrapper
.
eq
(
"dep_id"
,
depId
).
in
(
"user_id"
,
Arrays
.
asList
(
userIds
.
split
(
","
)));
queryWrapper
.
eq
(
"dep_id"
,
depId
).
in
(
"user_id"
,
Arrays
.
asList
(
userIds
.
split
(
","
)));
boolean
b
=
sysUserDepartService
.
remove
(
queryWrapper
);
if
(
b
)
{
departRoleUserService
.
removeDeptRoleUser
(
Arrays
.
asList
(
userIds
.
split
(
","
)),
depId
);
if
(
b
)
{
departRoleUserService
.
removeDeptRoleUser
(
Arrays
.
asList
(
userIds
.
split
(
","
)),
depId
);
}
result
.
success
(
"删除成功!"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"删除失败!"
);
}
return
result
;
}
/**
* 查询当前用户的所有部门/当前部门编码
* 查询当前用户的所有部门/当前部门编码
*
* @return
*/
@RequestMapping
(
value
=
"/getCurrentUserDeparts"
,
method
=
RequestMethod
.
GET
)
public
Result
<
Map
<
String
,
Object
>>
getCurrentUserDeparts
()
{
Result
<
Map
<
String
,
Object
>>
result
=
new
Result
<
Map
<
String
,
Object
>>();
public
Result
<
Map
<
String
,
Object
>>
getCurrentUserDeparts
()
{
Result
<
Map
<
String
,
Object
>>
result
=
new
Result
<
Map
<
String
,
Object
>>();
try
{
LoginUser
sysUser
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
LoginUser
sysUser
=
(
LoginUser
)
SecurityUtils
.
getSubject
().
getPrincipal
();
List
<
SysDepart
>
list
=
this
.
sysDepartService
.
queryUserDeparts
(
sysUser
.
getId
());
Map
<
String
,
Object
>
map
=
new
HashMap
(
5
);
Map
<
String
,
Object
>
map
=
new
HashMap
(
5
);
map
.
put
(
"list"
,
list
);
map
.
put
(
"orgCode"
,
sysUser
.
getOrgCode
());
result
.
setSuccess
(
true
);
result
.
setResult
(
map
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
result
.
error500
(
"查询失败!"
);
}
return
result
;
}
/**
* 用户注册接口
*
* @param jsonObject
* @param user
* @return
*/
@PostMapping
(
"/register"
)
public
Result
<
JSONObject
>
userRegister
(
@RequestBody
JSONObject
jsonObject
,
SysUser
user
)
{
Result
<
JSONObject
>
result
=
new
Result
<
JSONObject
>();
String
phone
=
jsonObject
.
getString
(
"phone"
);
String
smscode
=
jsonObject
.
getString
(
"smscode"
);
/**
* 用户注册接口
*
* @param jsonObject
* @param user
* @return
*/
@PostMapping
(
"/register"
)
public
Result
<
JSONObject
>
userRegister
(
@RequestBody
JSONObject
jsonObject
,
SysUser
user
)
{
Result
<
JSONObject
>
result
=
new
Result
<
JSONObject
>();
String
phone
=
jsonObject
.
getString
(
"phone"
);
String
smscode
=
jsonObject
.
getString
(
"smscode"
);
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
code
=
redisUtil
.
get
(
redisKey
);
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
code
=
redisUtil
.
get
(
redisKey
);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String
username
=
jsonObject
.
getString
(
"username"
);
//未设置用户名,则用手机号作为用户名
if
(
oConvertUtils
.
isEmpty
(
username
))
{
String
username
=
jsonObject
.
getString
(
"username"
);
//未设置用户名,则用手机号作为用户名
if
(
oConvertUtils
.
isEmpty
(
username
))
{
username
=
phone
;
}
//未设置密码,则随机生成一个密码
String
password
=
jsonObject
.
getString
(
"password"
);
if
(
oConvertUtils
.
isEmpty
(
password
))
{
String
password
=
jsonObject
.
getString
(
"password"
);
if
(
oConvertUtils
.
isEmpty
(
password
))
{
password
=
RandomUtil
.
randomString
(
8
);
}
String
email
=
jsonObject
.
getString
(
"email"
);
SysUser
sysUser1
=
sysUserService
.
getUserByName
(
username
);
if
(
sysUser1
!=
null
)
{
result
.
setMessage
(
"用户名已注册"
);
result
.
setSuccess
(
false
);
return
result
;
}
SysUser
sysUser2
=
sysUserService
.
getUserByPhone
(
phone
);
if
(
sysUser2
!=
null
)
{
result
.
setMessage
(
"该手机号已注册"
);
result
.
setSuccess
(
false
);
return
result
;
}
if
(
oConvertUtils
.
isNotEmpty
(
email
))
{
String
email
=
jsonObject
.
getString
(
"email"
);
SysUser
sysUser1
=
sysUserService
.
getUserByName
(
username
);
if
(
sysUser1
!=
null
)
{
result
.
setMessage
(
"用户名已注册"
);
result
.
setSuccess
(
false
);
return
result
;
}
SysUser
sysUser2
=
sysUserService
.
getUserByPhone
(
phone
);
if
(
sysUser2
!=
null
)
{
result
.
setMessage
(
"该手机号已注册"
);
result
.
setSuccess
(
false
);
return
result
;
}
if
(
oConvertUtils
.
isNotEmpty
(
email
))
{
SysUser
sysUser3
=
sysUserService
.
getUserByEmail
(
email
);
if
(
sysUser3
!=
null
)
{
result
.
setMessage
(
"邮箱已被注册"
);
...
...
@@ -984,42 +1001,42 @@ public class SysUserController {
return
result
;
}
}
if
(
null
==
code
)
{
if
(
null
==
code
)
{
result
.
setMessage
(
"手机验证码失效,请重新获取"
);
result
.
setSuccess
(
false
);
return
result
;
}
if
(!
smscode
.
equals
(
code
.
toString
()))
{
result
.
setMessage
(
"手机验证码错误"
);
result
.
setSuccess
(
false
);
return
result
;
}
if
(!
smscode
.
equals
(
code
.
toString
()))
{
result
.
setMessage
(
"手机验证码错误"
);
result
.
setSuccess
(
false
);
return
result
;
}
String
realname
=
jsonObject
.
getString
(
"realname"
);
if
(
oConvertUtils
.
isEmpty
(
realname
))
{
if
(
oConvertUtils
.
isEmpty
(
realname
))
{
realname
=
username
;
}
try
{
user
.
setCreateTime
(
new
Date
());
// 设置创建时间
String
salt
=
oConvertUtils
.
randomGen
(
8
);
String
passwordEncode
=
PasswordUtil
.
encrypt
(
username
,
password
,
salt
);
user
.
setSalt
(
salt
);
user
.
setUsername
(
username
);
user
.
setRealname
(
realname
);
user
.
setPassword
(
passwordEncode
);
user
.
setEmail
(
email
);
user
.
setPhone
(
phone
);
user
.
setStatus
(
CommonConstant
.
USER_UNFREEZE
);
user
.
setDelFlag
(
CommonConstant
.
DEL_FLAG_0
);
user
.
setActivitiSync
(
CommonConstant
.
ACT_SYNC_0
);
sysUserService
.
addUserWithRole
(
user
,
null
);
result
.
success
(
"注册成功"
);
}
catch
(
Exception
e
)
{
result
.
error500
(
"注册失败"
);
}
return
result
;
}
try
{
user
.
setCreateTime
(
new
Date
());
// 设置创建时间
String
salt
=
oConvertUtils
.
randomGen
(
8
);
String
passwordEncode
=
PasswordUtil
.
encrypt
(
username
,
password
,
salt
);
user
.
setSalt
(
salt
);
user
.
setUsername
(
username
);
user
.
setRealname
(
realname
);
user
.
setPassword
(
passwordEncode
);
user
.
setEmail
(
email
);
user
.
setPhone
(
phone
);
user
.
setStatus
(
CommonConstant
.
USER_UNFREEZE
);
user
.
setDelFlag
(
CommonConstant
.
DEL_FLAG_0
);
user
.
setActivitiSync
(
CommonConstant
.
ACT_SYNC_0
);
sysUserService
.
addUserWithRole
(
user
,
null
);
result
.
success
(
"注册成功"
);
}
catch
(
Exception
e
)
{
result
.
error500
(
"注册失败"
);
}
return
result
;
}
// /**
// * 根据用户名或手机号查询用户信息
...
...
@@ -1057,75 +1074,75 @@ public class SysUserController {
// return result;
// }
/**
* 用户手机号验证
*/
@PostMapping
(
"/phoneVerification"
)
public
Result
<
Map
<
String
,
String
>>
phoneVerification
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
Map
<
String
,
String
>>
result
=
new
Result
<
Map
<
String
,
String
>>();
String
phone
=
jsonObject
.
getString
(
"phone"
);
String
smscode
=
jsonObject
.
getString
(
"smscode"
);
/**
* 用户手机号验证
*/
@PostMapping
(
"/phoneVerification"
)
public
Result
<
Map
<
String
,
String
>>
phoneVerification
(
@RequestBody
JSONObject
jsonObject
)
{
Result
<
Map
<
String
,
String
>>
result
=
new
Result
<
Map
<
String
,
String
>>();
String
phone
=
jsonObject
.
getString
(
"phone"
);
String
smscode
=
jsonObject
.
getString
(
"smscode"
);
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
code
=
redisUtil
.
get
(
redisKey
);
if
(!
smscode
.
equals
(
code
))
{
result
.
setMessage
(
"手机验证码错误"
);
result
.
setSuccess
(
false
);
return
result
;
}
//设置有效时间
redisUtil
.
set
(
redisKey
,
smscode
,
600
);
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
code
=
redisUtil
.
get
(
redisKey
);
if
(!
smscode
.
equals
(
code
))
{
result
.
setMessage
(
"手机验证码错误"
);
result
.
setSuccess
(
false
);
return
result
;
}
//设置有效时间
redisUtil
.
set
(
redisKey
,
smscode
,
600
);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
//新增查询用户名
LambdaQueryWrapper
<
SysUser
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
SysUser:
:
getPhone
,
phone
);
//新增查询用户名
LambdaQueryWrapper
<
SysUser
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
SysUser:
:
getPhone
,
phone
);
SysUser
user
=
sysUserService
.
getOne
(
query
);
Map
<
String
,
String
>
map
=
new
HashMap
(
5
);
map
.
put
(
"smscode"
,
smscode
);
if
(
null
==
user
)
{
Map
<
String
,
String
>
map
=
new
HashMap
(
5
);
map
.
put
(
"smscode"
,
smscode
);
if
(
null
==
user
)
{
//前端根据文字做判断用户是否存在判断,不能修改
result
.
setMessage
(
"用户信息不存在"
);
result
.
setSuccess
(
false
);
return
result
;
}
map
.
put
(
"username"
,
user
.
getUsername
());
map
.
put
(
"username"
,
user
.
getUsername
());
result
.
setResult
(
map
);
result
.
setSuccess
(
true
);
return
result
;
}
/**
* 用户更改密码
*/
@GetMapping
(
"/passwordChange"
)
public
Result
<
SysUser
>
passwordChange
(
@RequestParam
(
name
=
"username"
)
String
username
,
@RequestParam
(
name
=
"password"
)
String
password
,
@RequestParam
(
name
=
"smscode"
)
String
smscode
,
@RequestParam
(
name
=
"phone"
)
String
phone
)
{
result
.
setSuccess
(
true
);
return
result
;
}
/**
* 用户更改密码
*/
@GetMapping
(
"/passwordChange"
)
public
Result
<
SysUser
>
passwordChange
(
@RequestParam
(
name
=
"username"
)
String
username
,
@RequestParam
(
name
=
"password"
)
String
password
,
@RequestParam
(
name
=
"smscode"
)
String
smscode
,
@RequestParam
(
name
=
"phone"
)
String
phone
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
if
(
oConvertUtils
.
isEmpty
(
username
)
||
oConvertUtils
.
isEmpty
(
password
)
||
oConvertUtils
.
isEmpty
(
smscode
)
||
oConvertUtils
.
isEmpty
(
phone
)
)
{
if
(
oConvertUtils
.
isEmpty
(
username
)
||
oConvertUtils
.
isEmpty
(
password
)
||
oConvertUtils
.
isEmpty
(
smscode
)
||
oConvertUtils
.
isEmpty
(
phone
)
)
{
result
.
setMessage
(
"重置密码失败!"
);
result
.
setSuccess
(
false
);
return
result
;
}
SysUser
sysUser
=
new
SysUser
();
SysUser
sysUser
=
new
SysUser
();
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
object
=
redisUtil
.
get
(
redisKey
);
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
object
=
redisUtil
.
get
(
redisKey
);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
if
(
null
==
object
)
{
result
.
setMessage
(
"短信验证码失效!"
);
if
(
null
==
object
)
{
result
.
setMessage
(
"短信验证码失效!"
);
result
.
setSuccess
(
false
);
return
result
;
}
if
(!
smscode
.
equals
(
object
.
toString
()))
{
result
.
setMessage
(
"短信验证码不匹配!"
);
if
(!
smscode
.
equals
(
object
.
toString
()))
{
result
.
setMessage
(
"短信验证码不匹配!"
);
result
.
setSuccess
(
false
);
return
result
;
}
sysUser
=
this
.
sysUserService
.
getOne
(
new
LambdaQueryWrapper
<
SysUser
>().
eq
(
SysUser:
:
getUsername
,
username
).
eq
(
SysUser:
:
getPhone
,
phone
));
sysUser
=
this
.
sysUserService
.
getOne
(
new
LambdaQueryWrapper
<
SysUser
>().
eq
(
SysUser:
:
getUsername
,
username
).
eq
(
SysUser:
:
getPhone
,
phone
));
if
(
sysUser
==
null
)
{
result
.
setMessage
(
"未找到用户!"
);
result
.
setSuccess
(
false
);
...
...
@@ -1137,88 +1154,89 @@ public class SysUserController {
sysUser
.
setPassword
(
passwordEncode
);
this
.
sysUserService
.
updateById
(
sysUser
);
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
baseCommonService
.
addLog
(
"重置 "
+
username
+
" 的密码,操作人: "
+
sysUser
.
getUsername
()
,
CommonConstant
.
LOG_TYPE_2
,
2
);
baseCommonService
.
addLog
(
"重置 "
+
username
+
" 的密码,操作人: "
+
sysUser
.
getUsername
(),
CommonConstant
.
LOG_TYPE_2
,
2
);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
result
.
setSuccess
(
true
);
result
.
setMessage
(
"密码重置完成!"
);
return
result
;
}
}
/**
* 根据TOKEN获取用户的部分信息(返回的数据是可供表单设计器使用的数据)
*
* @return
*/
@GetMapping
(
"/getUserSectionInfoByToken"
)
public
Result
<?>
getUserSectionInfoByToken
(
HttpServletRequest
request
,
@RequestParam
(
name
=
"token"
,
required
=
false
)
String
token
)
{
try
{
String
username
=
null
;
// 如果没有传递token,就从header中获取token并获取用户信息
if
(
oConvertUtils
.
isEmpty
(
token
))
{
username
=
JwtUtil
.
getUserNameByToken
(
request
);
}
else
{
username
=
JwtUtil
.
getUsername
(
token
);
}
log
.
debug
(
" ------ 通过令牌获取部分用户信息,当前用户: "
+
username
);
// 根据用户名查询用户信息
SysUser
sysUser
=
sysUserService
.
getUserByName
(
username
);
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"sysUserId"
,
sysUser
.
getId
());
map
.
put
(
"sysUserCode"
,
sysUser
.
getUsername
());
// 当前登录用户登录账号
map
.
put
(
"sysUserName"
,
sysUser
.
getRealname
());
// 当前登录用户真实名称
map
.
put
(
"sysOrgCode"
,
sysUser
.
getOrgCode
());
// 当前登录用户部门编号
log
.
debug
(
" ------ 通过令牌获取部分用户信息,已获取的用户信息: "
+
map
);
return
Result
.
ok
(
map
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
Result
.
error
(
500
,
"查询失败:"
+
e
.
getMessage
());
}
}
/**
* 【APP端接口】获取用户列表 根据用户名和真实名 模糊匹配
* @param keyword
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping
(
"/appUserList"
)
public
Result
<?>
appUserList
(
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
,
@RequestParam
(
name
=
"username"
,
required
=
false
)
String
username
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"syncFlow"
,
required
=
false
)
String
syncFlow
)
{
try
{
//TODO 从查询效率上将不要用mp的封装的page分页查询 建议自己写分页语句
LambdaQueryWrapper
<
SysUser
>
query
=
new
LambdaQueryWrapper
<
SysUser
>();
if
(
oConvertUtils
.
isNotEmpty
(
syncFlow
)){
/**
* 根据TOKEN获取用户的部分信息(返回的数据是可供表单设计器使用的数据)
*
* @return
*/
@GetMapping
(
"/getUserSectionInfoByToken"
)
public
Result
<?>
getUserSectionInfoByToken
(
HttpServletRequest
request
,
@RequestParam
(
name
=
"token"
,
required
=
false
)
String
token
)
{
try
{
String
username
=
null
;
// 如果没有传递token,就从header中获取token并获取用户信息
if
(
oConvertUtils
.
isEmpty
(
token
))
{
username
=
JwtUtil
.
getUserNameByToken
(
request
);
}
else
{
username
=
JwtUtil
.
getUsername
(
token
);
}
log
.
debug
(
" ------ 通过令牌获取部分用户信息,当前用户: "
+
username
);
// 根据用户名查询用户信息
SysUser
sysUser
=
sysUserService
.
getUserByName
(
username
);
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"sysUserId"
,
sysUser
.
getId
());
map
.
put
(
"sysUserCode"
,
sysUser
.
getUsername
());
// 当前登录用户登录账号
map
.
put
(
"sysUserName"
,
sysUser
.
getRealname
());
// 当前登录用户真实名称
map
.
put
(
"sysOrgCode"
,
sysUser
.
getOrgCode
());
// 当前登录用户部门编号
log
.
debug
(
" ------ 通过令牌获取部分用户信息,已获取的用户信息: "
+
map
);
return
Result
.
ok
(
map
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
Result
.
error
(
500
,
"查询失败:"
+
e
.
getMessage
());
}
}
/**
* 【APP端接口】获取用户列表 根据用户名和真实名 模糊匹配
*
* @param keyword
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping
(
"/appUserList"
)
public
Result
<?>
appUserList
(
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
,
@RequestParam
(
name
=
"username"
,
required
=
false
)
String
username
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"syncFlow"
,
required
=
false
)
String
syncFlow
)
{
try
{
//TODO 从查询效率上将不要用mp的封装的page分页查询 建议自己写分页语句
LambdaQueryWrapper
<
SysUser
>
query
=
new
LambdaQueryWrapper
<
SysUser
>();
if
(
oConvertUtils
.
isNotEmpty
(
syncFlow
))
{
query
.
eq
(
SysUser:
:
getActivitiSync
,
CommonConstant
.
ACT_SYNC_1
);
}
query
.
eq
(
SysUser:
:
getDelFlag
,
CommonConstant
.
DEL_FLAG_0
);
if
(
oConvertUtils
.
isNotEmpty
(
username
))
{
if
(
username
.
contains
(
","
))
{
query
.
in
(
SysUser:
:
getUsername
,
username
.
split
(
","
));
}
else
{
query
.
eq
(
SysUser:
:
getUsername
,
username
);
query
.
eq
(
SysUser:
:
getDelFlag
,
CommonConstant
.
DEL_FLAG_0
);
if
(
oConvertUtils
.
isNotEmpty
(
username
))
{
if
(
username
.
contains
(
","
))
{
query
.
in
(
SysUser:
:
getUsername
,
username
.
split
(
","
));
}
else
{
query
.
eq
(
SysUser:
:
getUsername
,
username
);
}
}
else
{
}
else
{
query
.
and
(
i
->
i
.
like
(
SysUser:
:
getUsername
,
keyword
).
or
().
like
(
SysUser:
:
getRealname
,
keyword
));
}
Page
<
SysUser
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
IPage
<
SysUser
>
res
=
this
.
sysUserService
.
page
(
page
,
query
);
return
Result
.
ok
(
res
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
Result
.
error
(
500
,
"查询失败:"
+
e
.
getMessage
());
}
}
Page
<
SysUser
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
IPage
<
SysUser
>
res
=
this
.
sysUserService
.
page
(
page
,
query
);
return
Result
.
ok
(
res
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
Result
.
error
(
500
,
"查询失败:"
+
e
.
getMessage
());
}
}
/**
* 获取被逻辑删除的用户列表,无分页
...
...
@@ -1275,59 +1293,60 @@ public class SysUserController {
/**
* 移动端修改用户信息
*
* @param jsonObject
* @return
*/
@RequiresRoles
({
"admin"
})
@RequestMapping
(
value
=
"/appEdit"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
SysUser
>
appEdit
(
HttpServletRequest
request
,
@RequestBody
JSONObject
jsonObject
)
{
@RequestMapping
(
value
=
"/appEdit"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
SysUser
>
appEdit
(
HttpServletRequest
request
,
@RequestBody
JSONObject
jsonObject
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
try
{
String
username
=
JwtUtil
.
getUserNameByToken
(
request
);
SysUser
sysUser
=
sysUserService
.
getUserByName
(
username
);
baseCommonService
.
addLog
(
"移动端编辑用户,id: "
+
jsonObject
.
getString
(
"id"
)
,
CommonConstant
.
LOG_TYPE_2
,
2
);
String
realname
=
jsonObject
.
getString
(
"realname"
);
String
avatar
=
jsonObject
.
getString
(
"avatar"
);
String
sex
=
jsonObject
.
getString
(
"sex"
);
String
phone
=
jsonObject
.
getString
(
"phone"
);
String
email
=
jsonObject
.
getString
(
"email"
);
Date
birthday
=
jsonObject
.
getDate
(
"birthday"
);
baseCommonService
.
addLog
(
"移动端编辑用户,id: "
+
jsonObject
.
getString
(
"id"
),
CommonConstant
.
LOG_TYPE_2
,
2
);
String
realname
=
jsonObject
.
getString
(
"realname"
);
String
avatar
=
jsonObject
.
getString
(
"avatar"
);
String
sex
=
jsonObject
.
getString
(
"sex"
);
String
phone
=
jsonObject
.
getString
(
"phone"
);
String
email
=
jsonObject
.
getString
(
"email"
);
Date
birthday
=
jsonObject
.
getDate
(
"birthday"
);
SysUser
userPhone
=
sysUserService
.
getUserByPhone
(
phone
);
if
(
sysUser
==
null
)
{
if
(
sysUser
==
null
)
{
result
.
error500
(
"未找到对应用户!"
);
}
else
{
if
(
userPhone
!=
null
)
{
}
else
{
if
(
userPhone
!=
null
)
{
String
userPhonename
=
userPhone
.
getUsername
();
if
(!
userPhonename
.
equals
(
username
))
{
if
(!
userPhonename
.
equals
(
username
))
{
result
.
error500
(
"手机号已存在!"
);
return
result
;
}
}
if
(
StringUtils
.
isNotBlank
(
realname
))
{
if
(
StringUtils
.
isNotBlank
(
realname
))
{
sysUser
.
setRealname
(
realname
);
}
if
(
StringUtils
.
isNotBlank
(
avatar
))
{
if
(
StringUtils
.
isNotBlank
(
avatar
))
{
sysUser
.
setAvatar
(
avatar
);
}
if
(
StringUtils
.
isNotBlank
(
sex
))
{
if
(
StringUtils
.
isNotBlank
(
sex
))
{
sysUser
.
setSex
(
Integer
.
parseInt
(
sex
));
}
if
(
StringUtils
.
isNotBlank
(
phone
))
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
sysUser
.
setPhone
(
phone
);
}
if
(
StringUtils
.
isNotBlank
(
email
))
{
if
(
StringUtils
.
isNotBlank
(
email
))
{
//update-begin---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确------------
LambdaQueryWrapper
<
SysUser
>
emailQuery
=
new
LambdaQueryWrapper
<>();
emailQuery
.
eq
(
SysUser:
:
getEmail
,
email
);
emailQuery
.
eq
(
SysUser:
:
getEmail
,
email
);
long
count
=
sysUserService
.
count
(
emailQuery
);
if
(!
email
.
equals
(
sysUser
.
getEmail
())
&&
count
!=
0
)
{
if
(!
email
.
equals
(
sysUser
.
getEmail
())
&&
count
!=
0
)
{
result
.
error500
(
"保存失败,邮箱已存在!"
);
return
result
;
}
//update-end---author:wangshuai ---date:20220708 for:[VUEN-1528]积木官网邮箱重复,应该提示准确--------------
sysUser
.
setEmail
(
email
);
}
if
(
null
!=
birthday
)
{
if
(
null
!=
birthday
)
{
sysUser
.
setBirthday
(
birthday
);
}
sysUser
.
setUpdateTime
(
new
Date
());
...
...
@@ -1339,20 +1358,22 @@ public class SysUserController {
}
return
result
;
}
/**
* 移动端保存设备信息
*
* @param clientId
* @return
*/
@RequestMapping
(
value
=
"/saveClientId"
,
method
=
RequestMethod
.
GET
)
public
Result
<
SysUser
>
saveClientId
(
HttpServletRequest
request
,
@RequestParam
(
"clientId"
)
String
clientId
)
{
public
Result
<
SysUser
>
saveClientId
(
HttpServletRequest
request
,
@RequestParam
(
"clientId"
)
String
clientId
)
{
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
try
{
String
username
=
JwtUtil
.
getUserNameByToken
(
request
);
SysUser
sysUser
=
sysUserService
.
getUserByName
(
username
);
if
(
sysUser
==
null
)
{
if
(
sysUser
==
null
)
{
result
.
error500
(
"未找到对应用户!"
);
}
else
{
}
else
{
sysUser
.
setClientId
(
clientId
);
sysUserService
.
updateById
(
sysUser
);
}
...
...
@@ -1362,6 +1383,7 @@ public class SysUserController {
}
return
result
;
}
/**
* 根据userid获取用户信息和部门员工信息
*
...
...
@@ -1370,50 +1392,54 @@ public class SysUserController {
@GetMapping
(
"/queryChildrenByUsername"
)
public
Result
queryChildrenByUsername
(
@RequestParam
(
"userId"
)
String
userId
)
{
//获取用户信息
Map
<
String
,
Object
>
map
=
new
HashMap
(
5
);
Map
<
String
,
Object
>
map
=
new
HashMap
(
5
);
SysUser
sysUser
=
sysUserService
.
getById
(
userId
);
String
username
=
sysUser
.
getUsername
();
Integer
identity
=
sysUser
.
getUserIdentity
();
map
.
put
(
"sysUser"
,
sysUser
);
if
(
identity
!=
null
&&
identity
==
2
)
{
map
.
put
(
"sysUser"
,
sysUser
);
if
(
identity
!=
null
&&
identity
==
2
)
{
//获取部门用户信息
String
departIds
=
sysUser
.
getDepartIds
();
if
(
StringUtils
.
isNotBlank
(
departIds
))
{
if
(
StringUtils
.
isNotBlank
(
departIds
))
{
List
<
String
>
departIdList
=
Arrays
.
asList
(
departIds
.
split
(
","
));
List
<
SysUser
>
childrenUser
=
sysUserService
.
queryByDepIds
(
departIdList
,
username
);
map
.
put
(
"children"
,
childrenUser
);
List
<
SysUser
>
childrenUser
=
sysUserService
.
queryByDepIds
(
departIdList
,
username
);
map
.
put
(
"children"
,
childrenUser
);
}
}
return
Result
.
ok
(
map
);
}
/**
* 移动端查询部门用户信息
*
* @param departId
* @return
*/
@GetMapping
(
"/appQueryByDepartId"
)
public
Result
<
List
<
SysUser
>>
appQueryByDepartId
(
@RequestParam
(
name
=
"departId"
,
required
=
false
)
String
departId
)
{
public
Result
<
List
<
SysUser
>>
appQueryByDepartId
(
@RequestParam
(
name
=
"departId"
,
required
=
false
)
String
departId
)
{
Result
<
List
<
SysUser
>>
result
=
new
Result
<
List
<
SysUser
>>();
List
<
String
>
list
=
new
ArrayList
<
String
>
();
List
<
String
>
list
=
new
ArrayList
<
String
>
();
list
.
add
(
departId
);
List
<
SysUser
>
childrenUser
=
sysUserService
.
queryByDepIds
(
list
,
null
);
List
<
SysUser
>
childrenUser
=
sysUserService
.
queryByDepIds
(
list
,
null
);
result
.
setResult
(
childrenUser
);
return
result
;
}
/**
* 移动端查询用户信息(通过用户名模糊查询)
*
* @param keyword
* @return
*/
@GetMapping
(
"/appQueryUser"
)
public
Result
<
List
<
SysUser
>>
appQueryUser
(
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
Result
<
List
<
SysUser
>>
result
=
new
Result
<
List
<
SysUser
>>();
LambdaQueryWrapper
<
SysUser
>
queryWrapper
=
new
LambdaQueryWrapper
<
SysUser
>();
LambdaQueryWrapper
<
SysUser
>
queryWrapper
=
new
LambdaQueryWrapper
<
SysUser
>();
//TODO 外部模拟登陆临时账号,列表不显示
queryWrapper
.
ne
(
SysUser:
:
getUsername
,
"_reserve_user_external"
);
if
(
StringUtils
.
isNotBlank
(
keyword
))
{
queryWrapper
.
ne
(
SysUser:
:
getUsername
,
"_reserve_user_external"
);
if
(
StringUtils
.
isNotBlank
(
keyword
))
{
queryWrapper
.
and
(
i
->
i
.
like
(
SysUser:
:
getUsername
,
keyword
).
or
().
like
(
SysUser:
:
getRealname
,
keyword
));
}
Page
<
SysUser
>
page
=
new
Page
<>(
pageNo
,
pageSize
);
...
...
@@ -1422,9 +1448,9 @@ public class SysUserController {
//step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List
<
String
>
userIds
=
pageList
.
getRecords
().
stream
().
map
(
SysUser:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
userIds
!=
null
&&
userIds
.
size
()>
0
)
{
Map
<
String
,
String
>
useDepNames
=
sysUserService
.
getDepNamesByUserIds
(
userIds
);
pageList
.
getRecords
().
forEach
(
item
->
{
if
(
userIds
!=
null
&&
userIds
.
size
()
>
0
)
{
Map
<
String
,
String
>
useDepNames
=
sysUserService
.
getDepNamesByUserIds
(
userIds
);
pageList
.
getRecords
().
forEach
(
item
->
{
item
.
setOrgCodeTxt
(
useDepNames
.
get
(
item
.
getId
()));
});
}
...
...
@@ -1434,37 +1460,38 @@ public class SysUserController {
/**
* 根据用户名修改手机号[该方法未使用]
*
* @param json
* @return
*/
@RequestMapping
(
value
=
"/updateMobile"
,
method
=
RequestMethod
.
PUT
)
public
Result
<?>
changMobile
(
@RequestBody
JSONObject
json
,
HttpServletRequest
request
)
{
public
Result
<?>
changMobile
(
@RequestBody
JSONObject
json
,
HttpServletRequest
request
)
{
String
smscode
=
json
.
getString
(
"smscode"
);
String
phone
=
json
.
getString
(
"phone"
);
Result
<
SysUser
>
result
=
new
Result
<
SysUser
>();
//获取登录用户名
String
username
=
JwtUtil
.
getUserNameByToken
(
request
);
if
(
oConvertUtils
.
isEmpty
(
username
)
||
oConvertUtils
.
isEmpty
(
smscode
)
||
oConvertUtils
.
isEmpty
(
phone
))
{
if
(
oConvertUtils
.
isEmpty
(
username
)
||
oConvertUtils
.
isEmpty
(
smscode
)
||
oConvertUtils
.
isEmpty
(
phone
))
{
result
.
setMessage
(
"修改手机号失败!"
);
result
.
setSuccess
(
false
);
return
result
;
}
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
object
=
redisUtil
.
get
(
redisKey
);
String
redisKey
=
CommonConstant
.
PHONE_REDIS_KEY_PRE
+
phone
;
Object
object
=
redisUtil
.
get
(
redisKey
);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
if
(
null
==
object
)
{
if
(
null
==
object
)
{
result
.
setMessage
(
"短信验证码失效!"
);
result
.
setSuccess
(
false
);
return
result
;
}
if
(!
smscode
.
equals
(
object
.
toString
()))
{
if
(!
smscode
.
equals
(
object
.
toString
()))
{
result
.
setMessage
(
"短信验证码不匹配!"
);
result
.
setSuccess
(
false
);
return
result
;
}
SysUser
user
=
sysUserService
.
getUserByName
(
username
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
Result
.
error
(
"用户不存在!"
);
}
user
.
setPhone
(
phone
);
...
...
@@ -1475,85 +1502,89 @@ public class SysUserController {
/**
* 根据对象里面的属性值作in查询 属性可能会变 用户组件用到
*
* @param sysUser
* @return
*/
@GetMapping
(
"/getMultiUser"
)
public
List
<
SysUser
>
getMultiUser
(
SysUser
sysUser
){
public
List
<
SysUser
>
getMultiUser
(
SysUser
sysUser
)
{
QueryWrapper
<
SysUser
>
queryWrapper
=
QueryGenerator
.
initQueryWrapper
(
sysUser
,
null
);
//update-begin---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------
queryWrapper
.
eq
(
"status"
,
Integer
.
parseInt
(
CommonConstant
.
STATUS_1
));
queryWrapper
.
eq
(
"status"
,
Integer
.
parseInt
(
CommonConstant
.
STATUS_1
));
//update-end---author:wangshuai ---date:20220104 for:[JTC-297]已冻结用户仍可设置为代理人------------
List
<
SysUser
>
ls
=
this
.
sysUserService
.
list
(
queryWrapper
);
for
(
SysUser
user:
ls
)
{
for
(
SysUser
user
:
ls
)
{
user
.
setPassword
(
null
);
user
.
setSalt
(
null
);
}
return
ls
;
}
/**
* 聊天 创建聊天组件专用 根据用户账号、用户姓名、部门id分页查询
*
* @param departId 部门id
* @param keyword 搜索值
* @param keyword
搜索值
* @return
*/
@GetMapping
(
value
=
"/getUserInformation"
)
public
Result
<
IPage
<
SysUser
>>
getUserInformation
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"departId"
,
required
=
false
)
String
departId
,
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
)
{
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
)
{
//------------------------------------------------------------------------------------------------
Integer
tenantId
=
null
;
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
tenantId
=
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
);
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
tenantId
=
oConvertUtils
.
getInt
(
TenantContext
.
getTenant
(),
0
);
}
//------------------------------------------------------------------------------------------------
IPage
<
SysUser
>
pageList
=
sysUserDepartService
.
getUserInformation
(
tenantId
,
departId
,
keyword
,
pageSize
,
pageNo
);
IPage
<
SysUser
>
pageList
=
sysUserDepartService
.
getUserInformation
(
tenantId
,
departId
,
keyword
,
pageSize
,
pageNo
);
return
Result
.
OK
(
pageList
);
}
/**
* 简版流程用户选择组件
*
* @param departId 部门id
* @param roleId 角色id
* @param keyword 搜索值
* @param roleId
角色id
* @param keyword
搜索值
* @return
*/
@GetMapping
(
value
=
"/selectUserList"
)
public
Result
<
IPage
<
SysUser
>>
selectUserList
(
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"departId"
,
required
=
false
)
String
departId
,
@RequestParam
(
name
=
"roleId"
,
required
=
false
)
String
roleId
,
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
)
{
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
)
{
//------------------------------------------------------------------------------------------------
Integer
tenantId
=
null
;
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
if
(
MybatisPlusSaasConfig
.
OPEN_SYSTEM_TENANT_CONTROL
)
{
String
tenantStr
=
TenantContext
.
getTenant
();
if
(
oConvertUtils
.
isNotEmpty
(
tenantStr
))
{
if
(
oConvertUtils
.
isNotEmpty
(
tenantStr
))
{
tenantId
=
Integer
.
parseInt
(
tenantStr
);
}
}
//------------------------------------------------------------------------------------------------
IPage
<
SysUser
>
pageList
=
sysUserDepartService
.
getUserInformation
(
tenantId
,
departId
,
roleId
,
keyword
,
pageSize
,
pageNo
);
IPage
<
SysUser
>
pageList
=
sysUserDepartService
.
getUserInformation
(
tenantId
,
departId
,
roleId
,
keyword
,
pageSize
,
pageNo
);
return
Result
.
OK
(
pageList
);
}
/**
* 用户离职(新增代理人和用户状态变更操作)【低代码应用专用接口】
*
* @param sysUserAgent
* @return
*/
@PutMapping
(
"/userQuitAgent"
)
public
Result
<
String
>
userQuitAgent
(
@RequestBody
SysUserAgent
sysUserAgent
){
public
Result
<
String
>
userQuitAgent
(
@RequestBody
SysUserAgent
sysUserAgent
)
{
//判断id是否为空
if
(
oConvertUtils
.
isNotEmpty
(
sysUserAgent
.
getId
()))
{
if
(
oConvertUtils
.
isNotEmpty
(
sysUserAgent
.
getId
()))
{
sysUserAgentService
.
updateById
(
sysUserAgent
);
}
else
{
}
else
{
sysUserAgentService
.
save
(
sysUserAgent
);
}
sysUserService
.
userQuit
(
sysUserAgent
.
getUserName
());
...
...
@@ -1567,7 +1598,7 @@ public class SysUserController {
*/
@GetMapping
(
"/getQuitList"
)
public
Result
<
List
<
SysUser
>>
getQuitList
(
HttpServletRequest
req
)
{
Integer
tenantId
=
oConvertUtils
.
getInt
(
TokenUtils
.
getTenantIdByRequest
(
req
),
0
);
Integer
tenantId
=
oConvertUtils
.
getInt
(
TokenUtils
.
getTenantIdByRequest
(
req
),
0
);
List
<
SysUser
>
quitList
=
sysUserService
.
getQuitList
(
tenantId
);
if
(
null
!=
quitList
&&
quitList
.
size
()
>
0
)
{
// 批量查询用户的所属部门
...
...
@@ -1582,22 +1613,23 @@ public class SysUserController {
/**
* 更新刪除状态和离职状态【低代码应用专用接口】
*
* @param jsonObject
* @return Result<String>
*/
@PutMapping
(
"/putCancelQuit"
)
public
Result
<
String
>
putCancelQuit
(
@RequestBody
JSONObject
jsonObject
,
HttpServletRequest
request
){
public
Result
<
String
>
putCancelQuit
(
@RequestBody
JSONObject
jsonObject
,
HttpServletRequest
request
)
{
String
userIds
=
jsonObject
.
getString
(
"userIds"
);
String
usernames
=
jsonObject
.
getString
(
"usernames"
);
Integer
tenantId
=
oConvertUtils
.
getInt
(
TokenUtils
.
getTenantIdByRequest
(
request
),
0
);
Integer
tenantId
=
oConvertUtils
.
getInt
(
TokenUtils
.
getTenantIdByRequest
(
request
),
0
);
//将状态改成未删除
if
(
StringUtils
.
isNotBlank
(
userIds
))
{
userTenantService
.
putCancelQuit
(
Arrays
.
asList
(
userIds
.
split
(
SymbolConstant
.
COMMA
)),
tenantId
);
userTenantService
.
putCancelQuit
(
Arrays
.
asList
(
userIds
.
split
(
SymbolConstant
.
COMMA
)),
tenantId
);
}
if
(
StringUtils
.
isNotEmpty
(
usernames
))
{
if
(
StringUtils
.
isNotEmpty
(
usernames
))
{
//根据用户名删除代理人
LambdaQueryWrapper
<
SysUserAgent
>
query
=
new
LambdaQueryWrapper
<>();
query
.
in
(
SysUserAgent:
:
getUserName
,
Arrays
.
asList
(
usernames
.
split
(
SymbolConstant
.
COMMA
)));
query
.
in
(
SysUserAgent:
:
getUserName
,
Arrays
.
asList
(
usernames
.
split
(
SymbolConstant
.
COMMA
)));
sysUserAgentService
.
remove
(
query
);
}
return
Result
.
ok
(
"取消离职成功"
);
...
...
@@ -1605,29 +1637,30 @@ public class SysUserController {
/**
* 获取用户信息(vue3用户设置专用)【低代码应用专用接口】
*
* @return
*/
@GetMapping
(
"/login/setting/getUserData"
)
public
Result
<
SysUser
>
getUserData
(
HttpServletRequest
request
)
{
String
username
=
JwtUtil
.
getUserNameByToken
(
request
);
SysUser
user
=
sysUserService
.
getUserByName
(
username
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
return
Result
.
error
(
"未找到该用户数据"
);
}
if
(
oConvertUtils
.
isNotEmpty
(
user
.
getPost
()))
{
if
(
oConvertUtils
.
isNotEmpty
(
user
.
getPost
()))
{
String
post
=
user
.
getPost
();
LambdaQueryWrapper
<
SysPosition
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
in
(
SysPosition:
:
getCode
,
Arrays
.
asList
(
post
.
split
(
SymbolConstant
.
COMMA
)));
queryWrapper
.
in
(
SysPosition:
:
getCode
,
Arrays
.
asList
(
post
.
split
(
SymbolConstant
.
COMMA
)));
queryWrapper
.
select
(
SysPosition:
:
getName
);
List
<
SysPosition
>
sysPositionList
=
sysPositionService
.
list
(
queryWrapper
);
StringBuilder
nameBuilder
=
new
StringBuilder
();
String
verticalBar
=
" | "
;
for
(
SysPosition
sysPosition
:
sysPositionList
)
{
for
(
SysPosition
sysPosition
:
sysPositionList
)
{
nameBuilder
.
append
(
sysPosition
.
getName
()).
append
(
verticalBar
);
}
String
names
=
nameBuilder
.
toString
();
if
(
oConvertUtils
.
isNotEmpty
(
names
))
{
names
=
names
.
substring
(
0
,
names
.
lastIndexOf
(
verticalBar
));
if
(
oConvertUtils
.
isNotEmpty
(
names
))
{
names
=
names
.
substring
(
0
,
names
.
lastIndexOf
(
verticalBar
));
user
.
setPostText
(
names
);
}
}
...
...
@@ -1636,6 +1669,7 @@ public class SysUserController {
/**
* 用户编辑(vue3用户设置专用)【低代码应用专用接口】
*
* @param sysUser
* @return
*/
...
...
@@ -1644,10 +1678,10 @@ public class SysUserController {
public
Result
<
String
>
userEdit
(
@RequestBody
SysUser
sysUser
,
HttpServletRequest
request
)
{
String
username
=
JwtUtil
.
getUserNameByToken
(
request
);
SysUser
user
=
sysUserService
.
getById
(
sysUser
.
getId
());
if
(
user
==
null
)
{
return
Result
.
error
(
"未找到该用户数据"
);
if
(
user
==
null
)
{
return
Result
.
error
(
"未找到该用户数据"
);
}
if
(!
username
.
equals
(
user
.
getUsername
()))
{
if
(!
username
.
equals
(
user
.
getUsername
()))
{
return
Result
.
error
(
"只能修改自己的数据"
);
}
sysUserService
.
updateById
(
sysUser
);
...
...
@@ -1656,6 +1690,7 @@ public class SysUserController {
/**
* 批量修改 【low-app】
*
* @param jsonObject
* @return
*/
...
...
@@ -1675,28 +1710,31 @@ public class SysUserController {
/**
* 根据关键词搜索部门和用户【low-app】
*
* @param keyword
* @return
*/
@GetMapping
(
"/searchByKeyword"
)
public
Result
<
DepartAndUserInfo
>
searchByKeyword
(
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
)
{
public
Result
<
DepartAndUserInfo
>
searchByKeyword
(
@RequestParam
(
name
=
"keyword"
,
required
=
false
)
String
keyword
)
{
DepartAndUserInfo
info
=
sysUserService
.
searchByKeyword
(
keyword
);
return
Result
.
ok
(
info
);
}
/**
* 编辑部门前获取部门相关信息 【low-app】
*
* @param id
* @return
*/
@GetMapping
(
"/getUpdateDepartInfo"
)
public
Result
<
UpdateDepartInfo
>
getUpdateDepartInfo
(
@RequestParam
(
name
=
"id"
,
required
=
false
)
String
id
)
{
public
Result
<
UpdateDepartInfo
>
getUpdateDepartInfo
(
@RequestParam
(
name
=
"id"
,
required
=
false
)
String
id
)
{
UpdateDepartInfo
info
=
sysUserService
.
getUpdateDepartInfo
(
id
);
return
Result
.
ok
(
info
);
}
/**
* 编辑部门 【low-app】
*
* @param updateDepartInfo
* @return
*/
...
...
@@ -1708,6 +1746,7 @@ public class SysUserController {
/**
* 设置负责人 取消负责人
*
* @param json
* @return
*/
...
...
@@ -1719,27 +1758,28 @@ public class SysUserController {
/**
* 修改租户下的用户【低代码应用专用接口】
*
* @param sysUser
* @param req
* @return
*/
@RequestMapping
(
value
=
"/editTenantUser"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
String
>
editTenantUser
(
@RequestBody
SysUser
sysUser
,
HttpServletRequest
req
)
{
@RequestMapping
(
value
=
"/editTenantUser"
,
method
=
{
RequestMethod
.
PUT
,
RequestMethod
.
POST
})
public
Result
<
String
>
editTenantUser
(
@RequestBody
SysUser
sysUser
,
HttpServletRequest
req
)
{
Result
<
String
>
result
=
new
Result
<>();
String
tenantId
=
TokenUtils
.
getTenantIdByRequest
(
req
);
if
(
oConvertUtils
.
isEmpty
(
tenantId
))
{
if
(
oConvertUtils
.
isEmpty
(
tenantId
))
{
return
result
.
error500
(
"无权修改他人信息!"
);
}
LambdaQueryWrapper
<
SysUserTenant
>
query
=
new
LambdaQueryWrapper
<>();
query
.
eq
(
SysUserTenant:
:
getTenantId
,
Integer
.
valueOf
(
tenantId
));
query
.
eq
(
SysUserTenant:
:
getUserId
,
sysUser
.
getId
());
query
.
eq
(
SysUserTenant:
:
getTenantId
,
Integer
.
valueOf
(
tenantId
));
query
.
eq
(
SysUserTenant:
:
getUserId
,
sysUser
.
getId
());
SysUserTenant
one
=
userTenantService
.
getOne
(
query
);
if
(
null
==
one
)
{
if
(
null
==
one
)
{
return
result
.
error500
(
"非当前租户下的用户,不允许修改!"
);
}
String
departs
=
req
.
getParameter
(
"selecteddeparts"
);
String
roles
=
req
.
getParameter
(
"selectedroles"
);
sysUserService
.
editTenantUser
(
sysUser
,
tenantId
,
departs
,
roles
);
sysUserService
.
editTenantUser
(
sysUser
,
tenantId
,
departs
,
roles
);
return
Result
.
ok
(
"修改成功"
);
}
}
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
View file @
ec9df5b9
...
...
@@ -156,6 +156,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
result
.
setSuccess
(
true
);
result
.
setResult
(
pageList
);
result
.
setCode
(
200
);
//log.info(pageList.toString());
return
result
;
}
...
...
pom.xml
View file @
ec9df5b9
...
...
@@ -28,8 +28,10 @@
<xxl-job-core.version>
2.2.0
</xxl-job-core.version>
<fastjson.version>
1.2.83
</fastjson.version>
<pegdown.version>
1.6.0
</pegdown.version>
<knife4j-spring-boot-starter.version>
3.0.3
</knife4j-spring-boot-starter.version>
<knife4j-spring-ui.version>
2.0.9
</knife4j-spring-ui.version>
<knife4j-spring-boot-starter.version>
2.0.2
</knife4j-spring-boot-starter.version>
<knife4j-spring-ui.version>
2.0.2
</knife4j-spring-ui.version>
<!-- <knife4j-spring-ui.version>2.0.9</knife4j-spring-ui.version>
<knife4j-spring-boot-starter.version>3.0.3</knife4j-spring-boot-starter.version>-->
<!-- 数据库驱动 -->
<postgresql.version>
42.2.25
</postgresql.version>
<ojdbc6.version>
11.2.0.3
</ojdbc6.version>
...
...
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