Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
signal
traffic-signal-platform
Commits
155bec87
Commit
155bec87
authored
Mar 01, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 策略管理,添加参数校验
parent
6f26352a
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
3 deletions
+65
-3
GlobalExceptionHandler.java
...et/wanji/opt/common/exception/GlobalExceptionHandler.java
+43
-0
IdeaController.java
...ava/net/wanji/opt/controller/strategy/IdeaController.java
+2
-1
StrategyController.java
...net/wanji/opt/controller/strategy/StrategyController.java
+2
-1
AddOrUpdateIdeaDTO.java
...n/java/net/wanji/opt/dto/strategy/AddOrUpdateIdeaDTO.java
+5
-0
AddOrUpdateSceneDTO.java
.../java/net/wanji/opt/dto/strategy/AddOrUpdateSceneDTO.java
+3
-0
AddOrUpdateStrategyDTO.java
...va/net/wanji/opt/dto/strategy/AddOrUpdateStrategyDTO.java
+5
-0
SceneServiceImpl.java
...net/wanji/opt/service/strategy/impl/SceneServiceImpl.java
+5
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/common/exception/GlobalExceptionHandler.java
0 → 100644
View file @
155bec87
package
net
.
wanji
.
opt
.
common
.
exception
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.FieldError
;
import
org.springframework.validation.ObjectError
;
import
org.springframework.web.bind.MethodArgumentNotValidException
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 全局异常处理
*
* @author Kent HAN
* @date 2023/1/5 13:18
*/
@RestControllerAdvice
public
class
GlobalExceptionHandler
{
@ExceptionHandler
(
value
=
MethodArgumentNotValidException
.
class
)
public
JsonViewObject
methodArgumentExceptionHandler
(
MethodArgumentNotValidException
e
)
{
BindingResult
bindingResult
=
e
.
getBindingResult
();
List
<
ObjectError
>
allErrors
=
bindingResult
.
getAllErrors
();
String
message
=
""
;
for
(
ObjectError
error
:
allErrors
)
{
message
=
error
.
getDefaultMessage
();
}
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
fail
(
message
);
}
private
Map
<
String
,
String
>
getErrors
(
BindingResult
result
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>();
List
<
FieldError
>
list
=
result
.
getFieldErrors
();
for
(
FieldError
error
:
list
)
{
map
.
put
(
error
.
getField
(),
error
.
getDefaultMessage
());
}
return
map
;
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/controller/strategy/IdeaController.java
View file @
155bec87
...
...
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.Valid
;
import
javax.ws.rs.core.MediaType
;
/**
...
...
@@ -41,7 +42,7 @@ public class IdeaController {
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
JsonViewObject
.
class
),
})
public
JsonViewObject
addOrUpdateIdea
(
@RequestBody
AddOrUpdateIdeaDTO
addOrUpdateIdeaDTO
)
{
public
JsonViewObject
addOrUpdateIdea
(
@RequestBody
@Valid
AddOrUpdateIdeaDTO
addOrUpdateIdeaDTO
)
{
ideaService
.
addOrUpdateIdea
(
addOrUpdateIdeaDTO
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/strategy/StrategyController.java
View file @
155bec87
...
...
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.validation.Valid
;
import
javax.ws.rs.core.MediaType
;
/**
...
...
@@ -41,7 +42,7 @@ public class StrategyController {
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
JsonViewObject
.
class
),
})
public
JsonViewObject
addOrUpdateStrategy
(
@RequestBody
AddOrUpdateStrategyDTO
addOrUpdateStrategyDTO
)
{
public
JsonViewObject
addOrUpdateStrategy
(
@RequestBody
@Valid
AddOrUpdateStrategyDTO
addOrUpdateStrategyDTO
)
{
strategyService
.
addOrUpdateStrategy
(
addOrUpdateStrategyDTO
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/dto/strategy/AddOrUpdateIdeaDTO.java
View file @
155bec87
...
...
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Pattern
;
/**
* @author Kent HAN
* @date 2023/2/27 9:39
...
...
@@ -14,14 +16,17 @@ public class AddOrUpdateIdeaDTO {
@ApiModelProperty
(
value
=
"方法ID(不传ID为新增,传ID为修改)"
,
notes
=
""
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"编号"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,16}$"
,
message
=
"编号只能包含中文、英文、数字、下划线和中横线,0~16个字符"
)
private
String
ideaCode
;
/** 优化方法 */
@ApiModelProperty
(
value
=
"优化方法"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,50}$"
,
message
=
"优化方法只能包含中文、英文、数字、下划线和中横线,0~50个字符"
)
private
String
ideaName
;
/** 应用对象 1路口;2干线;3区域 */
@ApiModelProperty
(
value
=
"应用对象 1路口;2干线;3区域"
,
required
=
true
,
notes
=
""
)
private
Integer
ideaTarget
;
/** 优化详情 */
@ApiModelProperty
(
value
=
"优化详情"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,50}$"
,
message
=
"优化详情只能包含中文、英文、数字、下划线和中横线,0~50个字符"
)
private
String
ideaDetail
;
}
signal-optimize-service/src/main/java/net/wanji/opt/dto/strategy/AddOrUpdateSceneDTO.java
View file @
155bec87
...
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
/**
...
...
@@ -18,8 +19,10 @@ public class AddOrUpdateSceneDTO {
@ApiModelProperty
(
value
=
"场景ID(不传ID为新增,传ID为修改)"
,
notes
=
""
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"编号"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,16}$"
,
message
=
"编号只能包含中文、英文、数字、下划线和中横线,0~16个字符"
)
private
String
sceneCode
;
@ApiModelProperty
(
value
=
"场景名称"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,50}$"
,
message
=
"场景名称只能包含中文、英文、数字、下划线和中横线,0~50个字符"
)
private
String
sceneName
;
@ApiModelProperty
(
value
=
"应用对象 1路口;2干线;3区域"
,
required
=
true
,
notes
=
""
)
private
Integer
secneTarget
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/dto/strategy/AddOrUpdateStrategyDTO.java
View file @
155bec87
...
...
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Pattern
;
/**
* @author Kent HAN
* @date 2023/2/27 9:39
...
...
@@ -14,14 +16,17 @@ public class AddOrUpdateStrategyDTO {
@ApiModelProperty
(
value
=
"策略ID(不传ID为新增,传ID为修改)"
,
notes
=
""
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"编号"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,16}$"
,
message
=
"编号只能包含中文、英文、数字、下划线和中横线,0~16个字符"
)
private
String
strategyCode
;
/** 优化方法 */
@ApiModelProperty
(
value
=
"策略名称"
,
required
=
true
,
notes
=
""
)
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,50}$"
,
message
=
"策略名称只能包含中文、英文、数字、下划线和中横线,0~50个字符"
)
private
String
strategyName
;
/** 应用对象 1路口;2干线;3区域 */
@ApiModelProperty
(
value
=
"应用对象 1路口;2干线;3区域"
,
required
=
true
,
notes
=
""
)
private
Integer
strategyTarget
;
/** 优化详情 */
@Pattern
(
regexp
=
"^[\\u4E00-\\u9FA5\\w\\-]{0,50}$"
,
message
=
"策略详情只能包含中文、英文、数字、下划线和中横线,0~50个字符"
)
@ApiModelProperty
(
value
=
"策略详情"
,
required
=
true
,
notes
=
""
)
private
String
strategyDetail
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/strategy/impl/SceneServiceImpl.java
View file @
155bec87
...
...
@@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author Kent HAN
...
...
@@ -163,7 +164,10 @@ public class SceneServiceImpl implements SceneService {
strategyListElement
.
setIdeaList
(
ideaList
);
strategyList
.
add
(
strategyListElement
);
}
return
strategyList
;
List
<
AddOrUpdateSceneDTO
.
StrategyListElement
>
collect
=
strategyList
.
stream
()
.
sorted
(
Comparator
.
comparing
(
AddOrUpdateSceneDTO
.
StrategyListElement
::
getPriority
).
reversed
())
.
collect
(
Collectors
.
toList
());
return
collect
;
}
private
List
<
AddOrUpdateSceneDTO
.
IdeaListElement
>
buildIdeaList
(
Integer
sceneId
,
Integer
strategyId
)
{
...
...
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