Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
education
Project
Project
Details
Activity
Releases
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
李丛阳
education
Commits
4ffa67f5
Commit
4ffa67f5
authored
Jan 22, 2018
by
YangZhaoJun1
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://103.249.252.109:90/lcy/education
# Conflicts: # src/main/resources/application-dev.yml
parents
7398ef7d
d4c9f080
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
478 additions
and
178 deletions
+478
-178
BCodeController.java
...rg/rcisoft/business/bcode/controller/BCodeController.java
+30
-3
BCodeLxcService.java
...a/org/rcisoft/business/bcode/service/BCodeLxcService.java
+1
-1
BCodeService.java
...java/org/rcisoft/business/bcode/service/BCodeService.java
+17
-0
BCodeLxcServiceImpl.java
...soft/business/bcode/service/impl/BCodeLxcServiceImpl.java
+26
-14
BCodeServiceImpl.java
...rcisoft/business/bcode/service/impl/BCodeServiceImpl.java
+41
-0
ClearLxcJob.java
...ain/java/org/rcisoft/business/bcode/task/ClearLxcJob.java
+8
-7
StopLxcJob.java
...main/java/org/rcisoft/business/bcode/task/StopLxcJob.java
+12
-4
RcApplicationRunner.java
...a/org/rcisoft/business/component/RcApplicationRunner.java
+50
-0
ApplicationContextHolder.java
...rg/rcisoft/common/component/ApplicationContextHolder.java
+2
-2
Global.java
src/main/java/org/rcisoft/common/component/Global.java
+5
-0
PaginationController.java
...a/org/rcisoft/common/controller/PaginationController.java
+15
-9
ValidatedController.java
...va/org/rcisoft/common/controller/ValidatedController.java
+17
-4
AopConfig.java
src/main/java/org/rcisoft/config/AopConfig.java
+43
-0
MvcConfig.java
src/main/java/org/rcisoft/config/MvcConfig.java
+1
-12
SecurityConfig.java
src/main/java/org/rcisoft/config/SecurityConfig.java
+2
-2
EntityParamAspect.java
src/main/java/org/rcisoft/core/aop/EntityParamAspect.java
+79
-0
IdGenAspect.java
src/main/java/org/rcisoft/core/aop/IdGenAspect.java
+2
-2
PageUtil.java
src/main/java/org/rcisoft/core/aop/PageUtil.java
+5
-5
LxcCommand.java
src/main/java/org/rcisoft/core/command/LxcCommand.java
+9
-5
MainStatus.java
src/main/java/org/rcisoft/core/result/MainStatus.java
+0
-28
ResponseMessage.java
src/main/java/org/rcisoft/core/result/ResponseMessage.java
+2
-0
ValidatedMessage.java
src/main/java/org/rcisoft/core/result/ValidatedMessage.java
+33
-9
TaskUtil.java
src/main/java/org/rcisoft/core/util/TaskUtil.java
+39
-0
ValidatedResult.java
src/main/java/org/rcisoft/core/validate/ValidatedResult.java
+21
-7
SysDeptController.java
...va/org/rcisoft/sys/dept/controller/SysDeptController.java
+3
-20
SysDept.java
src/main/java/org/rcisoft/sys/dept/entity/SysDept.java
+3
-1
SysDeptServiceImpl.java
...org/rcisoft/sys/dept/service/impl/SysDeptServiceImpl.java
+5
-2
SysMenuController.java
...va/org/rcisoft/sys/menu/controller/SysMenuController.java
+0
-17
SysRoleController.java
...va/org/rcisoft/sys/role/controller/SysRoleController.java
+4
-22
application-prod.yml
src/main/resources/application-prod.yml
+3
-2
No files found.
src/main/java/org/rcisoft/business/bcode/controller/BCodeController.java
View file @
4ffa67f5
package
org
.
rcisoft
.
business
.
bcode
.
controller
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.*
;
import
org.apache.commons.io.FileUtils
;
import
org.rcisoft.business.bcode.model.BCodeFile
;
import
org.rcisoft.business.bcode.service.BCodeService
;
...
...
@@ -11,6 +9,7 @@ import org.rcisoft.common.controller.PaginationController;
import
org.rcisoft.core.constant.MessageConstant
;
import
org.rcisoft.core.exception.ServiceException
;
import
org.rcisoft.core.model.PersistModel
;
import
org.rcisoft.core.result.CommandResult
;
import
org.rcisoft.core.result.Result
;
import
org.rcisoft.core.result.ResultServiceEnums
;
import
org.rcisoft.core.util.CompileUtil
;
...
...
@@ -74,6 +73,34 @@ public class BCodeController extends PaginationController {
@ApiOperation
(
value
=
"实验是否启动"
,
notes
=
"实验是否启动"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"slId"
,
value
=
"开课ID"
,
required
=
true
,
dataType
=
"varchar"
),
@ApiImplicitParam
(
name
=
"chapId"
,
value
=
"章节ID"
,
required
=
true
,
dataType
=
"varchar"
)})
@GetMapping
(
value
=
"/isStartedExam"
)
public
Result
isStartedExam
(
@RequestParam
(
"slId"
)
String
slId
,
@RequestParam
(
"chapId"
)
String
chapId
){
Integer
result
=
bCodeServiceImpl
.
isOpenLxcFromUser
(
UserUtil
.
getUserInfoProp
(
getToken
(),
UserUtil
.
USER_ID
),
slId
,
chapId
);
return
Result
.
builder
(
new
PersistModel
(
result
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
result
);
}
@ApiOperation
(
value
=
"关闭实验"
,
notes
=
"关闭实验"
)
@GetMapping
(
value
=
"/stopExam"
)
public
Result
stopExam
(){
CommandResult
result
=
bCodeServiceImpl
.
stopExam
(
UserUtil
.
getUserInfoProp
(
getToken
(),
UserUtil
.
USER_ID
));
return
Result
.
builder
(
new
PersistModel
(
result
.
isSuccess
()?
1
:
0
),
result
.
getMessage
(),
result
.
getMessage
(),
result
);
}
@ApiOperation
(
value
=
"保存实验代码"
,
notes
=
"学生保存自己的实验"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"slId"
,
value
=
"开课ID"
,
required
=
true
,
dataType
=
"varchar"
),
@ApiImplicitParam
(
name
=
"chapId"
,
value
=
"章节ID"
,
required
=
true
,
dataType
=
"varchar"
),
...
...
src/main/java/org/rcisoft/business/bcode/service/BCodeLxcService.java
View file @
4ffa67f5
...
...
@@ -20,7 +20,7 @@ public interface BCodeLxcService {
* 关闭code 容器
* @param lxc
*/
public
void
stopBCodeLxc
(
BCodeLxc
lxc
);
public
CommandResult
stopBCodeLxc
(
BCodeLxc
lxc
);
/**
* 清理 code 容器
...
...
src/main/java/org/rcisoft/business/bcode/service/BCodeService.java
View file @
4ffa67f5
...
...
@@ -2,6 +2,7 @@ package org.rcisoft.business.bcode.service;
import
org.rcisoft.business.bcode.model.BCodeFile
;
import
org.rcisoft.business.bcode.model.StudentFile
;
import
org.rcisoft.core.result.CommandResult
;
import
java.util.List
;
...
...
@@ -34,4 +35,20 @@ public interface BCodeService {
String
exportFiles
(
String
slId
,
String
studentId
,
String
type
,
String
slCode
);
List
<
StudentFile
>
queryAllStudentCode
(
String
slId
,
String
chapterId
);
/**
* 判断是否开启
*
* @param userId
* @return 1 未开
* 0 已开
*/
Integer
isOpenLxcFromUser
(
String
userId
,
String
slId
,
String
chapterId
);
/**
* 关闭 实验环境
* @param userId
* @return
*/
CommandResult
stopExam
(
String
userId
);
}
src/main/java/org/rcisoft/business/bcode/service/impl/BCodeLxcServiceImpl.java
View file @
4ffa67f5
...
...
@@ -12,6 +12,7 @@ import org.rcisoft.core.result.ResultCode;
import
org.rcisoft.core.service.RcRedisService
;
import
org.rcisoft.core.service.SerializationUtils
;
import
org.rcisoft.core.util.FreemarkerUtil
;
import
org.rcisoft.core.util.TaskUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.quartz.SchedulerFactoryBean
;
import
org.springframework.stereotype.Service
;
...
...
@@ -82,8 +83,12 @@ public class BCodeLxcServiceImpl implements BCodeLxcService {
result
=
new
CommandResult
(
ResultCode
.
FAIL
,
"容器配置文件有误!"
,
lxc
);
return
result
;
}
/*启动路径*/
String
dockerPath
=
global
.
getPHYSICAL_UPLOAD_SERVER_LOCATION
()
+
File
.
separator
+
global
.
getLxcDockerfilePath
()
+
File
.
separator
+
lxc
.
getUserId
()
+
File
.
separator
;
/*2.docker-compose 起容器*/
result
=
lxcCommand
.
startOrDownLxc
(
destPath
);
log
.
info
(
"执行路径:{}"
,
dockerPath
);
result
=
lxcCommand
.
startOrDownLxc
(
dockerPath
);
if
(!
result
.
isSuccess
())
{
result
=
new
CommandResult
(
ResultCode
.
FAIL
,
"容器启动失败!"
,
lxc
);
return
result
;
...
...
@@ -103,7 +108,7 @@ public class BCodeLxcServiceImpl implements BCodeLxcService {
Map
jobParam
=
new
HashMap
();
jobParam
.
put
(
"redisKeyId"
,
key
);
jobParam
.
put
(
"containerName"
,
this
.
getModelProject
(
lxc
.
getCode
())
+
"_"
+
lxc
.
getUserId
());
jobParam
.
put
(
"containerPath"
,
d
est
Path
);
jobParam
.
put
(
"containerPath"
,
d
ocker
Path
);
jobParam
.
put
(
"containerPort"
,
port
);
JobDetail
job
=
JobBuilder
.
newJob
(
StopLxcJob
.
class
).
withIdentity
(
global
.
getLxcPrefix
()
+
lxc
.
getUserId
(),
JOB_LXC_GROUP
).
...
...
@@ -113,17 +118,8 @@ public class BCodeLxcServiceImpl implements BCodeLxcService {
.
withIdentity
(
global
.
getLxcPrefix
()
+
lxc
.
getUserId
())
.
startAt
(
endTime
).
build
();
// 触发器时间设定
Scheduler
sched
=
schedulerFactoryBean
.
getScheduler
();
/*触发器*/
try
{
sched
.
scheduleJob
(
job
,
trigger
);
// 启动
if
(!
sched
.
isShutdown
())
{
sched
.
start
();
}
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
());
}
TaskUtil
.
startSchedule
(
schedulerFactoryBean
.
getScheduler
(),
trigger
,
job
);
/*5.端口放进去 */
rcRedisServiceImpl
.
setList
(
"lxcKeys"
,
key
);
...
...
@@ -178,8 +174,24 @@ public class BCodeLxcServiceImpl implements BCodeLxcService {
@Override
public
void
stopBCodeLxc
(
BCodeLxc
lxc
)
{
public
CommandResult
stopBCodeLxc
(
BCodeLxc
lxc
)
{
/*1.拼key*/
String
key
=
global
.
getLxcPrefix
()
+
"_"
+
lxc
.
getUserId
();
/*2.拼docker-compose.yml */
String
destPath
=
global
.
getPHYSICAL_UPLOAD_SERVER_LOCATION
()
+
File
.
separator
+
global
.
getLxcDockerfilePath
()
+
File
.
separator
+
lxc
.
getUserId
()
+
File
.
separator
;;
CommandResult
commandResult
=
null
;
commandResult
=
lxcCommand
.
startOrDownLxc
(
destPath
,
false
);
if
(!
commandResult
.
isSuccess
())
return
commandResult
;
/*3.移除容器*/
rcRedisServiceImpl
.
remove
(
key
);
/*4.移除端口*/
rcRedisServiceImpl
.
removeList
(
"lxcKeys"
,
key
);
rcRedisServiceImpl
.
removeList
(
"lxcPorts"
,
lxc
.
getContainerPort
()
+
""
);
return
commandResult
;
}
...
...
src/main/java/org/rcisoft/business/bcode/service/impl/BCodeServiceImpl.java
View file @
4ffa67f5
...
...
@@ -18,6 +18,7 @@ import org.rcisoft.business.bstudent.entity.BStudentDto;
import
org.rcisoft.common.component.Global
;
import
org.rcisoft.core.exception.ServiceException
;
import
org.rcisoft.core.result.CommandResult
;
import
org.rcisoft.core.result.ResultCode
;
import
org.rcisoft.core.result.ResultExceptionEnum
;
import
org.rcisoft.core.result.ResultServiceEnums
;
import
org.rcisoft.core.service.RcRedisService
;
...
...
@@ -509,4 +510,44 @@ public class BCodeServiceImpl implements BCodeService {
}
return
studentFiles
;
}
@Override
public
Integer
isOpenLxcFromUser
(
String
userId
,
String
slId
,
String
chapterId
)
{
BCodeLxc
lxc
=
null
;
/*容器是否已启动*/
byte
[]
results
=
rcRedisServiceImpl
.
getBytes
(
global
.
getLxcPrefix
()
+
"_"
+
userId
);
if
(
null
!=
results
)
{
lxc
=
SerializationUtils
.
deserializer
(
results
,
BCodeLxc
.
class
);
/*别的课或别的节已开启容器,返回错误*/
if
(
null
!=
lxc
&&
(!
slId
.
equals
(
lxc
.
getSl
())
||
!
chapterId
.
equals
(
lxc
.
getChapterId
()))){
/*已开*/
return
0
;
}
/*再次打开已开启的容器*/
return
1
;
}
/*未开*/
return
1
;
}
@Override
public
CommandResult
stopExam
(
String
userId
)
{
BCodeLxc
lxc
=
null
;
/*容器是否已启动*/
byte
[]
results
=
rcRedisServiceImpl
.
getBytes
(
global
.
getLxcPrefix
()
+
"_"
+
userId
);
if
(
null
!=
results
)
{
lxc
=
SerializationUtils
.
deserializer
(
results
,
BCodeLxc
.
class
);
/*别的课或别的节已开启容器,返回错误*/
if
(
null
==
lxc
)
return
new
CommandResult
(
ResultCode
.
FAIL
,
"未开启实验"
,
null
);
else
{
/*关闭容器*/
return
bCodeLxcServiceImpl
.
stopBCodeLxc
(
lxc
);
}
}
/*未开*/
return
new
CommandResult
(
ResultCode
.
FAIL
,
"未开启实验"
,
null
);
}
}
src/main/java/org/rcisoft/business/bcode/task/ClearLxcJob.java
View file @
4ffa67f5
...
...
@@ -70,20 +70,21 @@ public class ClearLxcJob implements Job {
if
(
null
!=
shutdown
&&
shutdown
.
after
(
new
Date
()))
return
;
/*到点了*/
containerPath
=
global
.
get
BASE
_UPLOAD_SERVER_LOCATION
()
+
File
.
separator
+
containerPath
=
global
.
get
PHYSICAL
_UPLOAD_SERVER_LOCATION
()
+
File
.
separator
+
global
.
getLxcDockerfilePath
()
+
File
.
separator
+
lxc
.
getUserId
()
+
File
.
separator
;
/*关闭容器*/
/*2.docker-compose 起容器*/
CommandResult
commandResult
=
null
;
commandResult
=
lxcCommand
.
startOrDownLxc
(
containerPath
,
false
);
/*关闭失败 返回 不删除key*/
if
(!
commandResult
.
isSuccess
())
return
;
/*3.移除容器*/
rcRedisServiceImpl
.
remove
(
key
);
/*4.移除端口*/
rcRedisServiceImpl
.
removeList
(
"lxcKeys"
,
key
);
rcRedisServiceImpl
.
removeList
(
"lxcPorts"
,
lxc
.
getContainerPort
()
+
""
);
}
/*3.移除容器*/
rcRedisServiceImpl
.
remove
(
key
);
/*4.移除端口*/
rcRedisServiceImpl
.
removeList
(
"lxcKeys"
,
key
);
rcRedisServiceImpl
.
removeList
(
"lxcPorts"
,
lxc
.
getContainerPort
()
+
""
);
}
}
src/main/java/org/rcisoft/business/bcode/task/StopLxcJob.java
View file @
4ffa67f5
...
...
@@ -5,6 +5,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.quartz.Job
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.rcisoft.common.component.Global
;
import
org.rcisoft.core.command.LxcCommand
;
import
org.rcisoft.core.result.CommandResult
;
import
org.rcisoft.core.service.RcRedisService
;
...
...
@@ -25,6 +26,10 @@ public class StopLxcJob implements Job {
@Autowired
private
LxcCommand
lxcCommand
;
@Autowired
private
Global
global
;
@Override
public
void
execute
(
JobExecutionContext
jobExecutionContext
)
throws
JobExecutionException
{
/*1.容器名称*/
...
...
@@ -37,10 +42,13 @@ public class StopLxcJob implements Job {
log
.
info
(
"----任务异常----"
);
return
;
}
File
filePath
=
new
File
(
containerPath
);
if
(!
filePath
.
exists
()
||
!
filePath
.
isDirectory
()){
log
.
info
(
"----任务路径异常----"
);
return
;
/*非远程*/
if
(!
"1"
.
equals
(
global
.
getLxcIsRemote
())){
File
filePath
=
new
File
(
containerPath
);
if
(!
filePath
.
exists
()
||
!
filePath
.
isDirectory
())
{
log
.
info
(
"----任务路径异常----"
);
return
;
}
}
/*关闭容器*/
/*2.docker-compose 起容器*/
...
...
src/main/java/org/rcisoft/business/
listener/RcListe
ner.java
→
src/main/java/org/rcisoft/business/
component/RcApplicationRun
ner.java
View file @
4ffa67f5
package
org
.
rcisoft
.
business
.
listener
;
package
org
.
rcisoft
.
business
.
component
;
import
lombok.extern.slf4j.Slf4j
;
import
org.quartz.*
;
import
org.rcisoft.business.bcode.task.ClearLxcJob
;
import
org.rcisoft.core.util.TaskUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.ApplicationArguments
;
import
org.springframework.boot.ApplicationRunner
;
import
org.springframework.scheduling.quartz.SchedulerFactoryBean
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.ServletContextEvent
;
import
javax.servlet.ServletContextListener
;
import
java.util.HashMap
;
/**
* Created by lcy on 18/1/
19
.
* Created by lcy on 18/1/
20
.
*
*
*
* JobDetail job = JobBuilder.newJob(ClearLxcJob.class).
withIdentity(IDENTITY_LXC_GROUP, JOB_LXC_GROUP).
usingJobData(new JobDataMap(new HashMap())).build();
Trigger trigger = TriggerBuilder.newTrigger().forJob(job)
.usingJobData(new JobDataMap(new HashMap()))
.withIdentity(IDENTITY_LXC_GROUP)
.startNow().build();
// 触发器时间设定
Scheduler sched = schedulerFactoryBean.getScheduler();
try {
sched.scheduleJob(job, trigger);
// 启动
if (!sched.isShutdown()) {
sched.start();
}
}catch (Exception e){
log.error(e.getMessage());
}
* 容器所有bean都被defined 之后触发
*/
@Slf4j
public
class
RcListener
implements
ServletContextListener
{
@Component
public
class
RcApplicationRunner
implements
ApplicationRunner
{
/*任务组名*/
...
...
@@ -48,16 +34,17 @@ public class RcListener implements ServletContextListener {
@Override
public
void
contextDestroyed
(
ServletContextEvent
arg0
)
{
}
/**
* 执行任务
* @param arg0
*/
@Override
public
void
contextInitialized
(
ServletContextEvent
arg0
)
{
public
void
run
(
ApplicationArguments
args
)
throws
Exception
{
JobDetail
job
=
JobBuilder
.
newJob
(
ClearLxcJob
.
class
).
withIdentity
(
IDENTITY_LXC_GROUP
,
JOB_LXC_GROUP
).
usingJobData
(
new
JobDataMap
(
new
HashMap
())).
build
();
Trigger
trigger
=
TriggerBuilder
.
newTrigger
().
forJob
(
job
)
.
usingJobData
(
new
JobDataMap
(
new
HashMap
()))
.
withIdentity
(
IDENTITY_LXC_GROUP
)
.
startNow
().
build
();
// 触发器时间设定
/*触发器*/
TaskUtil
.
startSchedule
(
schedulerFactoryBean
.
getScheduler
(),
trigger
,
job
);
}
}
src/main/java/org/rcisoft/common/component/ApplicationContextHolder.java
View file @
4ffa67f5
...
...
@@ -27,7 +27,7 @@ public class ApplicationContextHolder implements ApplicationContextAware {
}
/**
* Get
bean
by class
* Get
component
by class
*
* @param clazz
* @param <T>
...
...
@@ -38,7 +38,7 @@ public class ApplicationContextHolder implements ApplicationContextAware {
}
/**
* Get
bean
by class name
* Get
component
by class name
*
* @param name
* @param <T>
...
...
src/main/java/org/rcisoft/common/component/Global.java
View file @
4ffa67f5
...
...
@@ -34,6 +34,11 @@ public class Global {
@Value
(
"${global.path.base_upload_server_location}"
)
private
String
BASE_UPLOAD_SERVER_LOCATION
;
/*容器外路径*/
@Value
(
"${global.path.physical_upload_server_location}"
)
private
String
PHYSICAL_UPLOAD_SERVER_LOCATION
;
/*课程相关文件路径*/
@Value
(
"${global.path.course_location}"
)
private
String
COURSE_LOCATION
;
...
...
src/main/java/org/rcisoft/common/controller/PaginationController.java
View file @
4ffa67f5
...
...
@@ -19,6 +19,10 @@ public class PaginationController<T> extends ResponseController {
protected
static
final
String
PAGINATIONKEY
=
"pagination"
;
protected
static
final
int
INIT_PAGE
=
1
;
protected
static
final
int
INIT_ROWS
=
10
;
public
PaginationController
()
{
}
...
...
@@ -32,10 +36,9 @@ public class PaginationController<T> extends ResponseController {
}
@ModelAttribute
private
void
setPagnationAttribute
(
HttpServletRequest
request
,
Integer
rows
,
Integer
page
,
String
sort
,
String
order
)
{
PageUtil
_paginationUtility
;
private
void
setPagnationAttribute
(
HttpServletRequest
request
,
Integer
rows
,
Integer
page
,
String
sort
)
{
PageUtil
_paginationUtility
=
new
PageUtil
()
;
if
(
rows
!=
null
&&
page
!=
null
&&
sort
!=
null
)
{
_paginationUtility
=
new
PageUtil
();
_paginationUtility
.
setPageNum
(
page
.
intValue
());
_paginationUtility
.
setPageSize
(
rows
.
intValue
());
_paginationUtility
.
setOrderBy
(
sort
);
...
...
@@ -43,15 +46,18 @@ public class PaginationController<T> extends ResponseController {
}
else
if
(
rows
!=
null
&&
page
!=
null
)
{
_paginationUtility
=
new
PageUtil
();
_paginationUtility
.
setPageNum
(
page
.
intValue
());
_paginationUtility
.
setPageSize
(
rows
.
intValue
());
request
.
setAttribute
(
PAGINATIONKEY
,
_paginationUtility
);
}
else
if
(
sort
!=
null
&&
order
!=
null
)
{
_paginationUtility
=
new
PageUtil
();
_paginationUtility
.
setOrderBy
(
sort
+
" "
+
order
);
request
.
setAttribute
(
PAGINATIONKEY
,
_paginationUtility
);
}
else
if
(
sort
!=
null
)
{
_paginationUtility
.
setOrderBy
(
sort
);
}
else
{
_paginationUtility
.
setPageNum
(
INIT_ROWS
);
_paginationUtility
.
setPageSize
(
INIT_PAGE
);
}
request
.
setAttribute
(
PAGINATIONKEY
,
_paginationUtility
);
}
...
...
src/main/java/org/rcisoft/common/controller/ValidatedController.java
View file @
4ffa67f5
...
...
@@ -26,13 +26,27 @@ public class ValidatedController extends HttpServletController {
public
ValidatedController
()
{
}
/**
* 第一版 验证写在controller里的
* @param br
* @return
*/
public
boolean
hasErrors
(
BindingResult
br
)
{
ValidatedResult
vr
=
new
ValidatedResult
();
vr
.
dealBindingResult
(
br
);
ValidatedResult
vr
=
ValidatedResult
.
builder
(
br
);
this
.
request
.
setAttribute
(
"validerrors"
,
vr
);
return
vr
.
hasErrors
().
booleanValue
();
}
/**
* 第二版写在 aop里的
* @param br
* @return
*/
public
static
boolean
hasErrorsByStatic
(
BindingResult
br
)
{
ValidatedResult
vr
=
ValidatedResult
.
builder
(
br
);
return
vr
.
hasErrors
().
booleanValue
();
}
public
Map
<
String
,
String
[]>
getErrorsMap
()
{
ValidatedResult
vr
=
(
ValidatedResult
)
this
.
request
.
getAttribute
(
"validerrors"
);
return
vr
.
getErrorsMap
();
...
...
@@ -49,8 +63,7 @@ public class ValidatedController extends HttpServletController {
}
protected
void
setBindError
(
BindingResult
br
,
Result
result
,
String
message
){
ValidatedResult
vr
=
new
ValidatedResult
();
ValidatedResult
vr
=
ValidatedResult
.
builder
(
br
);
result
.
setErrorMessage
(
message
,
vr
);
}
}
src/main/java/org/rcisoft/config/AopConfig.java
0 → 100644
View file @
4ffa67f5
package
org
.
rcisoft
.
config
;
import
org.apache.poi.ss.formula.functions.T
;
import
org.rcisoft.core.aop.EntityParamAspect
;
import
org.rcisoft.core.aop.IdGenAspect
;
import
org.rcisoft.core.aop.PageUtil
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* Created by lcy on 18/1/21.
*/
@Configuration
public
class
AopConfig
{
/**
* 分页 bean
* @return
*/
@Bean
public
PageUtil
<
T
>
pageUtil
(){
return
new
PageUtil
<
T
>();
}
/**
* id bean
* @return
*/
@Bean
public
IdGenAspect
idGenAspect
(){
return
new
IdGenAspect
();
}
/**
* web param validation
* @return
*/
@Bean
public
EntityParamAspect
entityParamAspect
(){
return
new
EntityParamAspect
();
}
}
src/main/java/org/rcisoft/config/MvcConfig.java
View file @
4ffa67f5
...
...
@@ -4,13 +4,11 @@ import com.alibaba.fastjson.JSON;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.rcisoft.business.listener.RcListener
;
import
org.rcisoft.core.exception.ServiceException
;
import
org.rcisoft.core.result.Result
;
import
org.rcisoft.core.result.ResultCode
;
import
org.rcisoft.core.util.ResultGenerator
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.web.servlet.ServletListenerRegistrationBean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.converter.HttpMessageConverter
;
...
...
@@ -241,14 +239,5 @@ public class MvcConfig extends WebMvcConfigurerAdapter {
}
/**
* 监听器
* @return
*/
@Bean
public
ServletListenerRegistrationBean
servletListenerRegistrationBean
(){
ServletListenerRegistrationBean
servletListenerRegistrationBean
=
new
ServletListenerRegistrationBean
();
servletListenerRegistrationBean
.
setListener
(
new
RcListener
());
return
servletListenerRegistrationBean
;
}
}
src/main/java/org/rcisoft/config/SecurityConfig.java
View file @
4ffa67f5
...
...
@@ -21,7 +21,7 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
*/
@Configuration
@EnableWebSecurity
//开启WebSecurity支持
@EnableGlobalMethodSecurity
(
prePostEnabled
=
true
)
//开启prePostEnabled注解支持
@EnableGlobalMethodSecurity
(
prePostEnabled
=
true
)
//开启prePostEnabled注解支持
支持方法级别的安全设置 hasRole()
public
class
SecurityConfig
extends
WebSecurityConfigurerAdapter
{
...
...
@@ -67,7 +67,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
protected
void
configure
(
HttpSecurity
http
)
throws
Exception
{
http
.
csrf
()
.
csrf
()
//csrf 对 post delete put 等 进行校验 token 和jwt一样 beforeSecond:{ request.setRequestHeader()}
.
disable
()
//由于使用的是JWT,我们这里不需要csrf
.
sessionManagement
().
sessionCreationPolicy
(
SessionCreationPolicy
.
STATELESS
)
//禁用session
.
and
()
...
...
src/main/java/org/rcisoft/core/aop/EntityParamAspect.java
0 → 100644
View file @
4ffa67f5
package
org
.
rcisoft
.
core
.
aop
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.rcisoft.common.controller.ValidatedController
;
import
org.rcisoft.core.exception.ServiceException
;
import
org.rcisoft.core.validate.ValidatedResult
;
import
org.springframework.validation.BindingResult
;
/**
* Created by lcy on 18/1/21.
*/
@Aspect
@Slf4j
public
class
EntityParamAspect
{
/**
* 环绕aop service.*ByPagination 分页拦截
* @param proceedingJoinPoint
* @return
*/
@Around
(
"execution(* org.rcisoft..*.controller.*Controller.add*(..))"
)
public
Object
beforeAddValidate
(
ProceedingJoinPoint
proceedingJoinPoint
)
throws
Throwable
{
return
dealWithParameterValidate
(
proceedingJoinPoint
);
}
@Around
(
"execution(* org.rcisoft..*.controller.*Controller.update*(..))"
)
public
Object
beforeUpdateValidate
(
ProceedingJoinPoint
proceedingJoinPoint
)
throws
Throwable
{
return
dealWithParameterValidate
(
proceedingJoinPoint
);
}
/**
* 处理 增加/修改 方法参数验证
* @param proceedingJoinPoint
* @return
*/
private
Object
dealWithParameterValidate
(
ProceedingJoinPoint
proceedingJoinPoint
)
throws
Throwable
{
try
{
/*验证 长度必须大于1*/
if
(
proceedingJoinPoint
.
getArgs
().
length
<
2
)
return
proceedingJoinPoint
.
proceed
();
/*BindingResult 必须写在第二个参数里*/
Object
bindResult
=
proceedingJoinPoint
.
getArgs
()[
1
];
if
(!(
bindResult
instanceof
BindingResult
))
return
proceedingJoinPoint
.
proceed
();
BindingResult
br
=
(
BindingResult
)
bindResult
;
/*有无异常*/
if
(
ValidatedController
.
hasErrorsByStatic
(
br
))
throw
new
ServiceException
(
4004
,
ValidatedResult
.
builder
(
br
).
getValidatedMessage
().
getResponse
());
/*
不能直接返回
return Result.builder(new PersistModel(0),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_INFO_INVALID,
ValidatedResult.builder(br));
com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.springframework.validation.DefaultMessageCodesResolver
and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
(through reference chain: org.rcisoft.core.result.Result["data"]->org.rcisoft.core.validate.ValidatedResult["br"]->
org.springframework.validation.BeanPropertyBindingResult["messageCodesResolver"])
getOutputStream() has already been called for this response
*/
else
return
proceedingJoinPoint
.
proceed
();
}
catch
(
Throwable
var5
)
{
log
.
error
(
var5
.
getMessage
());
throw
var5
;
}
}
}
src/main/java/org/rcisoft/core/aop/IdGenAspect.java
View file @
4ffa67f5
...
...
@@ -2,6 +2,7 @@ package org.rcisoft.core.aop;
import
org.apache.commons.lang3.StringUtils
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Before
;
import
org.rcisoft.core.entity.IdEntity
;
import
org.rcisoft.core.util.IdGen
;
...
...
@@ -11,8 +12,7 @@ import java.util.Date;
/**
* Created by lcy on 17/11/23.
*/
//@Aspect
//@Component
@Aspect
public
class
IdGenAspect
{
/**
* 插入前 判断是否 存在id
...
...
src/main/java/org/rcisoft/core/aop/PageUtil.java
View file @
4ffa67f5
...
...
@@ -2,13 +2,13 @@ package org.rcisoft.core.aop;
import
com.github.pagehelper.PageHelper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.rcisoft.common.model.CommonPageGridModel
;
import
org.rcisoft.common.model.GridModel
;
import
org.rcisoft.core.model.PageInfo
;
import
org.springframework.stereotype.Component
;
import
java.io.Serializable
;
import
java.util.List
;
...
...
@@ -18,8 +18,8 @@ import java.util.List;
* @author cy
* Created by cy on 16/5/20.
*/
@Component
@Aspect
@Slf4j
public
class
PageUtil
<
T
>
extends
PageInfo
<
T
>
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8730332880750989562L
;
...
...
@@ -67,7 +67,7 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
* @return
*/
@Around
(
"execution(* org.rcisoft..*.service.impl.*ServiceImpl.*ByPagination(..))"
)
public
List
<
T
>
preparedPageHeplerAndloadingPageInfoSetResults
(
ProceedingJoinPoint
proceedingJoinPoint
)
{
public
List
<
T
>
preparedPageHeplerAndloadingPageInfoSetResults
(
ProceedingJoinPoint
proceedingJoinPoint
)
throws
Throwable
{
PageUtil
paginationUtility
=
(
PageUtil
)
proceedingJoinPoint
.
getArgs
()[
0
];
PageHelper
.
startPage
(
paginationUtility
.
getPageNum
(),
paginationUtility
.
getPageSize
(),
paginationUtility
.
getOrderBy
());
try
{
...
...
@@ -76,8 +76,8 @@ public class PageUtil<T> extends PageInfo<T> implements Serializable {
this
.
setPageInfo
(
paginationUtility
,
pageInfo
);
return
e
;
}
catch
(
Throwable
var5
)
{
var5
.
printStackTrace
(
);
return
null
;
log
.
error
(
var5
.
getMessage
()
);
throw
var5
;
}
}
...
...
src/main/java/org/rcisoft/core/command/LxcCommand.java
View file @
4ffa67f5
...
...
@@ -58,10 +58,12 @@ public class LxcCommand {
CommandResult
commandResult
=
null
;
try
{
File
dirPath
=
new
File
(
dest
);
if
(!
dirPath
.
exists
()
||
!
dirPath
.
isDirectory
()){
log
.
error
(
"目录错误 ...."
+
dest
);
commandResult
=
new
CommandResult
(
ResultCode
.
FAIL
,
"目录不存在"
,
null
);
return
commandResult
;
if
(!
isRemote
)
{
if
(!
dirPath
.
exists
()
||
!
dirPath
.
isDirectory
())
{
log
.
error
(
"目录错误 ...."
+
dest
);
commandResult
=
new
CommandResult
(
ResultCode
.
FAIL
,
"目录不存在"
,
null
);
return
commandResult
;
}
}
if
(
isStart
)
if
(
isRemote
)
...
...
@@ -73,7 +75,9 @@ public class LxcCommand {
remoteExecuteCommand
.
execute
(
DOWN_LXC_COMMAND
,
dest
);
else
Runtime
.
getRuntime
().
exec
(
"cd "
+
dest
+
" && "
+
DOWN_LXC_COMMAND
);
dirPath
.
delete
();
if
(!
isRemote
)
{
dirPath
.
delete
();
}
}
commandResult
=
new
CommandResult
(
ResultCode
.
SUCCESS
,
null
,
null
);
}
catch
(
Exception
e
){
...
...
src/main/java/org/rcisoft/core/result/MainStatus.java
deleted
100644 → 0
View file @
7398ef7d
package
org
.
rcisoft
.
core
.
result
;
/**
* Created with family.
* User: cy
* Date: 16/5/20
* Time: 下午1:47
* description:
*/
public
class
MainStatus
implements
ResponseMessage
{
private
static
final
long
serialVersionUID
=
-
7441079017861505376L
;
private
String
status
;
public
MainStatus
()
{
}
public
String
getStatus
()
{
return
this
.
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
public
String
getMapperKey
()
{
return
"mainstatus"
;
}
}
\ No newline at end of file
src/main/java/org/rcisoft/core/result/ResponseMessage.java
View file @
4ffa67f5
...
...
@@ -11,4 +11,6 @@ import java.io.Serializable;
*/
public
interface
ResponseMessage
extends
Serializable
{
String
getMapperKey
();
String
getResponse
();
}
src/main/java/org/rcisoft/core/result/ValidatedMessage.java
View file @
4ffa67f5
package
org
.
rcisoft
.
core
.
result
;
import
lombok.Data
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -9,22 +14,41 @@ import java.util.Map;
* Time: 下午1:45
* description:
*/
public
class
ValidatedMessage
extends
MainStatus
implements
ResponseMessage
{
@Data
public
class
ValidatedMessage
implements
ResponseMessage
{
private
static
final
long
serialVersionUID
=
-
8037198481805394212L
;
private
Map
<
String
,
String
[]>
validmessage
;
public
ValidatedMessage
()
{
private
Map
<
String
,
String
[]>
validMap
;
private
ValidatedMessage
()
{
}
@Override
public
String
getMapperKey
(){
return
"validatedMessage"
;
}
p
ublic
Map
<
String
,
String
[]>
getValidmessage
()
{
return
this
.
validmessage
;
p
rivate
ValidatedMessage
(
Map
<
String
,
String
[]>
errorsMap
)
{
this
.
validMap
=
errorsMap
;
}
public
void
setValidmessage
(
Map
<
String
,
String
[]>
validmessage
)
{
this
.
validmessage
=
validmessage
;
public
static
ValidatedMessage
builder
(
Map
<
String
,
String
[]>
errorsMap
)
{
return
new
ValidatedMessage
(
errorsMap
)
;
}
public
String
getMapperKey
()
{
return
"validmessage"
;
private
String
validmessage
;
/**
* 错误信息
* @return
*/
@Override
public
String
getResponse
(){
List
<
String
>
list
=
new
ArrayList
<
String
>();
for
(
Map
.
Entry
<
String
,
String
[]>
entry
:
this
.
validMap
.
entrySet
()){
list
.
add
(
entry
.
getKey
()
+
" 异常 "
+
entry
.
getValue
()[
0
]);
}
return
StringUtils
.
join
(
list
,
";"
);
}
}
src/main/java/org/rcisoft/core/util/TaskUtil.java
0 → 100644
View file @
4ffa67f5
package
org
.
rcisoft
.
core
.
util
;
import
lombok.extern.slf4j.Slf4j
;
import
org.quartz.JobDetail
;
import
org.quartz.Scheduler
;
import
org.quartz.Trigger
;
import
java.io.Serializable
;
/**
* Created by lcy on 18/1/20.
*/
@Slf4j
public
class
TaskUtil
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
4513365435486468892L
;
/**
* 开启 schedule
* @param sched
* @param trigger
* @param job
* @return
*/
public
static
boolean
startSchedule
(
Scheduler
sched
,
Trigger
trigger
,
JobDetail
job
){
try
{
sched
.
scheduleJob
(
job
,
trigger
);
// 启动
if
(!
sched
.
isShutdown
())
{
sched
.
start
();
}
}
catch
(
Exception
e
){
log
.
error
(
e
.
getMessage
());
return
false
;
}
return
true
;
}
}
src/main/java/org/rcisoft/core/validate/ValidatedResult.java
View file @
4ffa67f5
...
...
@@ -5,6 +5,7 @@ import org.rcisoft.core.result.ValidatedMessage;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.FieldError
;
import
java.io.Serializable
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
...
...
@@ -14,12 +15,24 @@ import java.util.Map;
* @author cy
* Created by cy on 16/5/20.
*/
public
class
ValidatedResult
{
public
class
ValidatedResult
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
118855035745939849L
;
private
Boolean
hasErrors
=
Boolean
.
valueOf
(
false
);
private
Map
<
String
,
String
[]>
errorsMap
;
private
BindingResult
br
;
public
ValidatedResult
()
{
private
ValidatedResult
()
{
}
private
ValidatedResult
(
BindingResult
br
)
{
this
.
br
=
br
;
this
.
dealBindingResult
();
}
public
static
ValidatedResult
builder
(
BindingResult
br
){
return
new
ValidatedResult
(
br
);
}
public
Boolean
hasErrors
()
{
...
...
@@ -34,7 +47,11 @@ public class ValidatedResult {
return
this
.
br
;
}
public
Map
<
String
,
String
[]>
dealBindingResult
(
BindingResult
br
)
{
/**
* 生成map
* @return
*/
public
Map
<
String
,
String
[]>
dealBindingResult
()
{
this
.
br
=
br
;
this
.
errorsMap
=
new
HashMap
();
if
(
br
.
hasErrors
())
{
...
...
@@ -52,9 +69,6 @@ public class ValidatedResult {
}
public
ResponseMessage
getValidatedMessage
()
{
ValidatedMessage
vm
=
new
ValidatedMessage
();
vm
.
setStatus
(
"2"
);
vm
.
setValidmessage
(
this
.
errorsMap
);
return
vm
;
return
ValidatedMessage
.
builder
(
this
.
errorsMap
);
}
}
src/main/java/org/rcisoft/sys/dept/controller/SysDeptController.java
View file @
4ffa67f5
...
...
@@ -9,7 +9,6 @@ import org.rcisoft.common.model.TreeViewModel;
import
org.rcisoft.core.constant.MessageConstant
;
import
org.rcisoft.core.model.PersistModel
;
import
org.rcisoft.core.result.Result
;
import
org.rcisoft.core.validate.ValidatedResult
;
import
org.rcisoft.sys.dept.entity.SysDept
;
import
org.rcisoft.sys.dept.service.SysDeptService
;
import
org.rcisoft.sys.role.entity.SysRole
;
...
...
@@ -86,14 +85,6 @@ public class SysDeptController extends ResponseController {
@ApiImplicitParam
(
name
=
"remarks"
,
value
=
"备注"
,
required
=
false
,
dataType
=
"varchar"
)})
@PostMapping
(
"adminLog/deptAdd"
)
public
Result
deptAdd
(
@Valid
SysDept
dept
,
BindingResult
br
){
if
(
super
.
hasErrors
(
br
)){
ValidatedResult
vr
=
new
ValidatedResult
();
vr
.
dealBindingResult
(
br
);
return
Result
.
builder
(
new
PersistModel
(
0
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_INFO_INVALID
,
vr
);
}
PersistModel
persistModel
=
sysDeptServiceImpl
.
persistDept
(
dept
,
getToken
());
return
Result
.
builder
(
persistModel
,
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
...
...
@@ -113,16 +104,8 @@ public class SysDeptController extends ResponseController {
@ApiImplicitParam
(
name
=
"deptCode"
,
value
=
"部门编号"
,
required
=
false
,
dataType
=
"varchar"
),
@ApiImplicitParam
(
name
=
"seqDate"
,
value
=
"排序日期"
,
required
=
false
,
dataType
=
"varchar"
),
@ApiImplicitParam
(
name
=
"remarks"
,
value
=
"备注"
,
required
=
false
,
dataType
=
"varchar"
)})
@PostMapping
(
"adminLog/deptUpdate"
)
public
Result
deptUpdate
(
@Valid
SysDept
dept
,
BindingResult
br
){
if
(
super
.
hasErrors
(
br
)){
ValidatedResult
vr
=
new
ValidatedResult
();
vr
.
dealBindingResult
(
br
);
return
Result
.
builder
(
new
PersistModel
(
0
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_INFO_INVALID
,
vr
);
}
@PostMapping
(
"updateDept"
)
public
Result
update
(
@Valid
SysDept
dept
,
BindingResult
br
){
PersistModel
persistModel
=
sysDeptServiceImpl
.
mergeDept
(
dept
,
getToken
());
return
Result
.
builder
(
persistModel
,
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
...
...
@@ -132,7 +115,7 @@ public class SysDeptController extends ResponseController {
@ApiOperation
(
value
=
"删除部门"
,
notes
=
"根据ID删除部门"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"businessId"
,
required
=
true
,
dataType
=
"varchar"
,
paramType
=
"path"
)
@PostMapping
(
"
adminLog/
deptDelete/{id}"
)
@PostMapping
(
"deptDelete/{id}"
)
public
Result
deptDelete
(
@PathVariable
(
"id"
)
String
id
){
PersistModel
persistModel
=
sysDeptServiceImpl
.
removeDept
(
id
,
getToken
());
return
Result
.
builder
(
persistModel
,
...
...
src/main/java/org/rcisoft/sys/dept/entity/SysDept.java
View file @
4ffa67f5
...
...
@@ -5,6 +5,7 @@ package org.rcisoft.sys.dept.entity;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.hibernate.validator.constraints.Length
;
import
org.rcisoft.core.entity.IdEntity
;
import
javax.persistence.Entity
;
...
...
@@ -29,7 +30,8 @@ public class SysDept extends IdEntity<SysDept> {
private
String
parentId
;
//父机构id
/*<property name="useCodeAsDefaultMessage" value="false" />*/
@Length
(
min
=
2
,
max
=
10
,
message
=
"部门名称{min}和{max}之间"
)
private
String
name
;
//部门名称
private
String
deptCode
;
//部门编号
...
...
src/main/java/org/rcisoft/sys/dept/service/impl/SysDeptServiceImpl.java
View file @
4ffa67f5
...
...
@@ -2,7 +2,9 @@ package org.rcisoft.sys.dept.service.impl;
import
org.rcisoft.common.model.TreeViewModel
;
import
org.rcisoft.core.exception.ServiceException
;
import
org.rcisoft.core.model.PersistModel
;
import
org.rcisoft.core.result.ResultExceptionEnum
;
import
org.rcisoft.core.util.UserUtil
;
import
org.rcisoft.sys.dept.dao.SysDeptRepository
;
import
org.rcisoft.sys.dept.entity.SysDept
;
...
...
@@ -78,9 +80,10 @@ public class SysDeptServiceImpl implements SysDeptService {
@Override
public
PersistModel
mergeDept
(
SysDept
dept
,
String
token
)
{
//修改操作
UserUtil
.
setCurrentPersistOperation
(
dept
);
throw
new
ServiceException
(
ResultExceptionEnum
.
EXIST_LXC_SERVER
);
/*UserUtil.setCurrentPersistOperation(dept);
int line = sysDeptRepository.updateByPrimaryKeySelective(dept);
return
new
PersistModel
(
line
);
return new PersistModel(line);
*/
}
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
isolation
=
Isolation
.
DEFAULT
)
...
...
src/main/java/org/rcisoft/sys/menu/controller/SysMenuController.java
View file @
4ffa67f5
...
...
@@ -10,7 +10,6 @@ import org.rcisoft.common.model.TreeViewModel;
import
org.rcisoft.core.constant.MessageConstant
;
import
org.rcisoft.core.model.PersistModel
;
import
org.rcisoft.core.result.Result
;
import
org.rcisoft.core.validate.ValidatedResult
;
import
org.rcisoft.sys.menu.entity.SysMenu
;
import
org.rcisoft.sys.menu.service.SysMenuService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -83,14 +82,6 @@ public class SysMenuController extends ResponseController {
@ApiImplicitParam
(
name
=
"remarks"
,
value
=
"备注"
,
required
=
false
,
dataType
=
"varchar"
)})
@PostMapping
(
"adminLog/menuAdd"
)
public
Result
menuAdd
(
@Valid
SysMenu
menu
,
BindingResult
br
){
if
(
super
.
hasErrors
(
br
)){
ValidatedResult
vr
=
new
ValidatedResult
();
vr
.
dealBindingResult
(
br
);
return
Result
.
builder
(
new
PersistModel
(
0
),
MessageConstant
.
MESSAGE_ALERT_INFO_INVALID
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
vr
);
}
PersistModel
persistModel
=
sysMenuServiceImpl
.
persistMenu
(
menu
,
getToken
());
return
Result
.
builder
(
persistModel
,
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
...
...
@@ -115,14 +106,6 @@ public class SysMenuController extends ResponseController {
@ApiImplicitParam
(
name
=
"remarks"
,
value
=
"备注"
,
required
=
false
,
dataType
=
"varchar"
)})
@PostMapping
(
"adminLog/menuUpdate"
)
public
Result
menuUpdate
(
@Valid
SysMenu
menu
,
BindingResult
br
){
if
(
super
.
hasErrors
(
br
)){
ValidatedResult
vr
=
new
ValidatedResult
();
vr
.
dealBindingResult
(
br
);
return
Result
.
builder
(
new
PersistModel
(
0
),
MessageConstant
.
MESSAGE_ALERT_INFO_INVALID
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
vr
);
}
PersistModel
persistModel
=
sysMenuServiceImpl
.
mergeMenu
(
menu
,
getToken
());
return
Result
.
builder
(
persistModel
,
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
...
...
src/main/java/org/rcisoft/sys/role/controller/SysRoleController.java
View file @
4ffa67f5
...
...
@@ -8,7 +8,6 @@ import org.rcisoft.common.model.GridModel;
import
org.rcisoft.core.constant.MessageConstant
;
import
org.rcisoft.core.model.PersistModel
;
import
org.rcisoft.core.result.Result
;
import
org.rcisoft.core.validate.ValidatedResult
;
import
org.rcisoft.sys.role.entity.SysRole
;
import
org.rcisoft.sys.role.service.SysRoleService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -109,16 +108,6 @@ public class SysRoleController extends PaginationController<SysRole> {
@ApiImplicitParam
(
name
=
"remarks"
,
value
=
"备注"
,
required
=
false
,
dataType
=
"varchar"
)})
@PostMapping
(
value
=
"adminLog/roleUpdate"
)
public
Result
roleUpdate
(
@Valid
SysRole
sysRole
,
BindingResult
br
){
Result
result
=
new
Result
();
if
(
super
.
hasErrors
(
br
)){
ValidatedResult
vr
=
new
ValidatedResult
();
vr
.
dealBindingResult
(
br
);
result
.
setSucessMessage
(
MessageConstant
.
MESSAGE_ALERT_INFO_INVALID
,
vr
);
return
Result
.
builder
(
new
PersistModel
(
0
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_INFO_INVALID
,
vr
);
}
PersistModel
persistModel
=
sysRoleServiceImpl
.
mergeRole
(
sysRole
,
getToken
());
return
Result
.
builder
(
persistModel
,
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
...
...
@@ -150,17 +139,10 @@ public class SysRoleController extends PaginationController<SysRole> {
@PostMapping
(
value
=
"adminLog/rolePermission"
)
public
Result
rolePermission
(
@RequestParam
(
"roleId"
)
String
roleId
,
@RequestParam
(
"role_menus"
)
String
role_menus
){
PersistModel
persistModel
=
sysRoleServiceImpl
.
doAuthorization
(
roleId
,
role_menus
,
getToken
());
if
(
persistModel
.
isSuccessBySinglePersist
())
return
Result
.
builder
(
new
PersistModel
(
1
),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
roleId
);
else
return
Result
.
builder
(
new
PersistModel
(
0
),
MessageConstant
.
MESSAGE_ALERT_ERROR
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
roleId
);
return
Result
.
builder
(
sysRoleServiceImpl
.
doAuthorization
(
roleId
,
role_menus
,
getToken
()),
MessageConstant
.
MESSAGE_ALERT_SUCCESS
,
MessageConstant
.
MESSAGE_ALERT_ERROR
,
roleId
);
}
@ApiOperation
(
value
=
"岗位绑定"
,
notes
=
"岗位绑定"
)
...
...
src/main/resources/application-prod.yml
View file @
4ffa67f5
...
...
@@ -105,6 +105,7 @@ global:
max_password
:
16
path
:
base_upload_server_location
:
/working/resource/eduServer/
physical_upload_server_location
:
/working/dockervolume/edu2_data_ubuntu/eduServer
course_location
:
course
lesson_location
:
lesson
sl_location
:
sl
...
...
@@ -142,6 +143,6 @@ global:
html_project
:
'
1002'
serverLxc
:
ip
:
1
92.168.1.130
ip
:
1
06.2.3.134
username
:
root
password
:
123456
\ No newline at end of file
password
:
91isoft_xunda
\ No newline at end of file
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