Toggle navigation
Toggle navigation
This project
Loading...
Sign in
crp
/
crp-operation
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
zhongdaoyi@wondertek.com.cn
2025-07-23 17:51:14 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
2dad0a2f8a89019936d6f359f4a665d49b276a66
2dad0a2f
1 parent
eb0214bf
审片间详情接口登录登出鉴权接口
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
305 additions
and
10 deletions
src/main/java/com/wondertek/config/WebMvcConfig.java
src/main/java/com/wondertek/controller/AdminController.java
src/main/java/com/wondertek/controller/LiveMonitorRoomController.java
src/main/java/com/wondertek/entity/Admin.java
src/main/java/com/wondertek/enums/GlobalCodeEnum.java
src/main/java/com/wondertek/service/LiveMonitorRoomService.java
src/main/java/com/wondertek/service/impl/LiveMonitorRoomServiceImpl.java
src/main/java/com/wondertek/util/ResultBean.java
src/main/resources/application-dev.yml
src/main/resources/application-test.yml
src/main/resources/application.yml
src/main/java/com/wondertek/config/WebMvcConfig.java
View file @
2dad0a2
...
...
@@ -8,6 +8,7 @@
package
com
.
wondertek
.
config
;
import
com.alibaba.fastjson.JSON
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.PropertyAccessor
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
...
...
@@ -17,7 +18,13 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.wondertek.enums.GlobalCodeEnum
;
import
com.wondertek.util.DateUtil
;
import
com.wondertek.util.ResultBean
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.http.converter.ByteArrayHttpMessageConverter
;
...
...
@@ -26,9 +33,13 @@ import org.springframework.http.converter.ResourceHttpMessageConverter;
import
org.springframework.http.converter.StringHttpMessageConverter
;
import
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
;
import
org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
...
...
@@ -40,10 +51,15 @@ import java.util.TimeZone;
*
* @author Mark sunlightcs@gmail.com
*/
@Slf4j
@Configuration
public
class
WebMvcConfig
extends
WebMvcConfigurationSupport
{
@Value
(
"${spring.profiles.active}"
)
private
String
ENV
;
//当前激活的配置文件
@Override
public
void
configureMessageConverters
(
List
<
HttpMessageConverter
<?>>
converters
)
{
converters
.
add
(
new
ByteArrayHttpMessageConverter
());
...
...
@@ -80,4 +96,47 @@ public class WebMvcConfig extends WebMvcConfigurationSupport {
converter
.
setObjectMapper
(
mapper
);
return
converter
;
}
//添加拦截器
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
// 管理员登录拦截器,实现简单的权限控制
if
(!
"dev"
.
equals
(
ENV
))
{
//开发环境忽略该拦截器
registry
.
addInterceptor
(
new
HandlerInterceptor
()
{
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
if
(
request
.
getSession
().
getAttribute
(
"admin"
)
!=
null
)
{
return
true
;
}
ResultBean
result
=
new
ResultBean
();
result
.
setCode
(
GlobalCodeEnum
.
NOT_LOGIN
.
getCode
());
result
.
setMsg
(
GlobalCodeEnum
.
NOT_LOGIN
.
getMsg
());
responseResult
(
response
,
result
);
return
false
;
}
}).
addPathPatterns
(
"/**"
).
excludePathPatterns
(
"/crp/admin/login"
,
"/crp/admin/logout"
);
}
}
private
void
responseResult
(
HttpServletResponse
response
,
ResultBean
result
)
{
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setHeader
(
"Content-type"
,
"application/json;charset=UTF-8"
);
response
.
setStatus
(
200
);
try
{
response
.
getWriter
().
write
(
JSON
.
toJSONString
(
result
));
}
catch
(
IOException
ex
)
{
log
.
error
(
ex
.
getMessage
());
}
}
}
...
...
src/main/java/com/wondertek/controller/AdminController.java
0 → 100644
View file @
2dad0a2
package
com
.
wondertek
.
controller
;
import
com.wondertek.entity.Admin
;
import
com.wondertek.util.ResultBean
;
import
jakarta.annotation.Resource
;
import
jakarta.servlet.http.HttpServletRequest
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.UUID
;
@Slf4j
@RestController
@RequestMapping
(
"crp/admin"
)
public
class
AdminController
{
@Resource
private
Admin
admin
;
@PostMapping
(
"/login"
)
public
ResultBean
login
(
String
username
,
String
password
,
HttpServletRequest
request
)
{
// Admin admin = new Admin();
if
(
admin
.
getUsername
().
equals
(
username
)
&&
admin
.
getPassword
().
equals
(
password
))
{
request
.
getSession
().
setAttribute
(
"admin"
,
admin
.
getUsername
());
Map
<
String
,
String
>
tokenMap
=
new
HashMap
<>();
String
token
=
getToken
(
admin
);
tokenMap
.
put
(
"token"
,
token
);
request
.
getSession
().
setAttribute
(
"token"
,
token
);
return
ResultBean
.
ok
(
tokenMap
);
}
return
ResultBean
.
error
(
"用户名或密码错误!"
);
}
@PostMapping
(
"/logout"
)
public
ResultBean
logout
(
HttpServletRequest
request
)
{
if
(
request
.
getSession
().
getAttribute
(
"admin"
)
==
null
)
{
return
ResultBean
.
error
(
"注销失败,当前并没有用户登录!"
);
}
request
.
getSession
().
setAttribute
(
"admin"
,
null
);
return
ResultBean
.
ok
(
"注销成功!"
);
}
private
String
getToken
(
Admin
admin
)
{
return
UUID
.
randomUUID
().
toString
();
}
}
...
...
src/main/java/com/wondertek/controller/LiveMonitorRoomController.java
View file @
2dad0a2
...
...
@@ -35,18 +35,34 @@ public class LiveMonitorRoomController {
* @param lmRoomDto
* @return
*/
@GetMapping
(
"
editPage
"
)
@GetMapping
(
"
queryRoom
"
)
PageBean
editPage
(
LMRoomDto
lmRoomDto
){
return
liveMonitorRoomService
.
queryPage
(
lmRoomDto
);
}
/**
* 新增审片间
* @param lmRoomParam
* @return
*/
@PostMapping
(
"create"
)
ResultBean
create
(
@RequestBody
LMRoomParam
lmRoomParam
){
return
liveMonitorRoomService
.
create
(
lmRoomParam
);
}
/**
* 更新审片间
* @param
* @return
*/
@PostMapping
(
"update"
)
ResultBean
update
(
@RequestBody
LMRoomParam
lmRoomParam
){
return
liveMonitorRoomService
.
update
(
lmRoomParam
);
}
@GetMapping
(
"setStatus"
)
ResultBean
updateStatus
(
@RequestParam
(
value
=
"id"
,
required
=
true
)
Long
id
,
@RequestParam
(
value
=
"status"
,
required
=
true
)
String
status
){
...
...
@@ -59,10 +75,23 @@ public class LiveMonitorRoomController {
return
liveMonitorRoomService
.
delete
(
id
);
}
/**
* 获取任务详情
* @param id
* @return
*/
@GetMapping
(
"taskDetail"
)
ResultBean
taskDetail
(
@RequestParam
(
value
=
"id"
,
required
=
true
)
Long
id
){
return
liveMonitorRoomService
.
taskDetail
(
id
);
}
/**
* 获取房间详情
* @param id
* @return
*/
@GetMapping
(
"getLMRoomDetail"
)
ResultBean
getLMRoomDetail
(
@RequestParam
(
value
=
"id"
,
required
=
true
)
Long
id
){
return
liveMonitorRoomService
.
getLMRoomDetail
(
id
);
}
}
...
...
src/main/java/com/wondertek/entity/Admin.java
0 → 100644
View file @
2dad0a2
package
com
.
wondertek
.
entity
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
@Component
@Data
public
class
Admin
implements
java
.
io
.
Serializable
{
/**
* 主键
*/
private
Integer
id
=
1
;
/**
* 名字
*/
private
String
nickname
;
/**
* 简介
*/
private
String
profile
;
/**
* 头像
*/
private
String
avatar
;
/**
* 密码
*/
@Value
(
"${crp.user.password}"
)
private
String
password
;
/**
* 用户名
*/
@Value
(
"${crp.user.username}"
)
private
String
username
;
/**
* 邮箱
*/
private
String
email
;
}
...
...
src/main/java/com/wondertek/enums/GlobalCodeEnum.java
View file @
2dad0a2
...
...
@@ -10,6 +10,7 @@ public enum GlobalCodeEnum {
SUCCESS
(
"0"
,
"成功"
),
FAILURE
(
"1"
,
"失败"
),
INVALID_PARAMS
(
"2"
,
"请求参数无效"
),
NOT_LOGIN
(
"4011"
,
"未登录"
),
//未登录
UNSUPPORTED_URI
(
"3"
,
"未知URI"
),
TOUCH_API_LIMIT
(
"4"
,
"接口调用次数已达到设定的上限"
),
NO_AUTHORIZATION
(
"6"
,
"无访问权限"
),
...
...
src/main/java/com/wondertek/service/LiveMonitorRoomService.java
View file @
2dad0a2
...
...
@@ -17,6 +17,9 @@ public interface LiveMonitorRoomService extends IService<LiveMonitorRoom> {
ResultBean
create
(
LMRoomParam
lmRoomParam
);
ResultBean
getLMRoomDetail
(
Long
id
);
ResultBean
update
(
LMRoomParam
lmRoomParam
);
ResultBean
updateStatus
(
Long
id
,
String
status
);
...
...
src/main/java/com/wondertek/service/impl/LiveMonitorRoomServiceImpl.java
View file @
2dad0a2
...
...
@@ -22,11 +22,12 @@ import com.wondertek.util.PageBean;
import
com.wondertek.util.ResultBean
;
import
com.wondertek.vo.LMRoomListVo
;
import
jakarta.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
@Slf4j
@Service
public
class
LiveMonitorRoomServiceImpl
extends
ServiceImpl
<
LiveMonitorRoomMapper
,
LiveMonitorRoom
>
implements
LiveMonitorRoomService
{
...
...
@@ -140,6 +141,7 @@ public class LiveMonitorRoomServiceImpl extends ServiceImpl<LiveMonitorRoomMappe
monitorRoom
.
setUpdatedTime
(
LocalDateTime
.
now
());
saveOrUpdate
(
monitorRoom
);
log
.
info
(
JSON
.
toJSONString
(
ResultBean
.
ok
(
"修改成功"
)));
return
ResultBean
.
ok
(
"修改成功"
);
}
...
...
@@ -194,7 +196,9 @@ public class LiveMonitorRoomServiceImpl extends ServiceImpl<LiveMonitorRoomMappe
String
reqUrl
=
getTaskDetail
+
"?taskId="
+
taskId
;
String
res
=
HttpClientUtils
.
executeByGET
(
reqUrl
);
Map
<
Object
,
Object
>
output
=
new
HashMap
<>();
// Map<Object,Object> output = new HashMap<>();
List
<
Map
<
String
,
Object
>>
outputDirList
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotBlank
(
res
)){
Map
<
String
,
Object
>
resMap
=
JSON
.
parseObject
(
res
,
new
TypeReference
<
Map
<
String
,
Object
>>()
{
});
...
...
@@ -211,7 +215,7 @@ public class LiveMonitorRoomServiceImpl extends ServiceImpl<LiveMonitorRoomMappe
for
(
Map
<
String
,
Object
>
item
:
tasks
)
{
//输出地址
Object
outGroupNo
=
item
.
get
(
"outGroupNo"
);
List
<
Map
<
String
,
Object
>>
outputDirList
=
new
ArrayList
<>();
if
(
item
.
get
(
"outPutList"
)!=
null
){
List
<
Map
<
String
,
Object
>>
outPutList
=
(
List
<
Map
<
String
,
Object
>>)
item
.
get
(
"outPutList"
);
for
(
Map
<
String
,
Object
>
opmap
:
outPutList
)
{
...
...
@@ -219,20 +223,23 @@ public class LiveMonitorRoomServiceImpl extends ServiceImpl<LiveMonitorRoomMappe
Map
<
String
,
Object
>
outputDirMap
=
new
HashMap
<>();
outputDirMap
.
put
(
"outputDir"
,
outputDir
);
outputDirMap
.
put
(
"checked"
,
false
);
outputDirMap
.
put
(
"outGroupNo"
,
outGroupNo
);
if
(
outputDir
.
equals
(
outputDirCheck
)){
outputDirMap
.
put
(
"checked"
,
true
);
}
outputDirList
.
add
(
outputDirMap
);
}
}
output
.
put
(
outGroupNo
,
outputDirList
);
// output.put(outGroupNo,outputDirList);
}
}
}
}
}
streamTaskMap
.
put
(
"output"
,
output
);
streamTaskMap
.
put
(
"output"
,
output
DirList
);
streamTaskMapList
.
add
(
streamTaskMap
);
}
...
...
@@ -243,4 +250,22 @@ public class LiveMonitorRoomServiceImpl extends ServiceImpl<LiveMonitorRoomMappe
return
ResultBean
.
ok
(
result
);
}
@Override
public
ResultBean
getLMRoomDetail
(
Long
id
)
{
LiveMonitorRoom
monitorRoom
=
getById
(
id
);
if
(
monitorRoom
==
null
){
return
ResultBean
.
error
(
"房间不存在"
);
}
Map
<
String
,
Object
>
result
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
monitorRoom
),
new
TypeReference
<
Map
<
String
,
Object
>>()
{
});
List
<
StreamTask
>
taskList
=
monitorMarkService
.
list
(
new
QueryWrapper
<
StreamTask
>().
eq
(
"room_id"
,
id
));
result
.
put
(
"taskList"
,
taskList
);
return
ResultBean
.
ok
(
result
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
ResultBean
.
ok
(
"result"
));
}
}
...
...
src/main/java/com/wondertek/util/ResultBean.java
View file @
2dad0a2
...
...
@@ -44,9 +44,9 @@ public class ResultBean<T> {
return
new
ResultBean
<
T
>(
GlobalCodeEnum
.
SUCCESS
.
getCode
(),
GlobalCodeEnum
.
SUCCESS
.
getMsg
(),
result
);
}
public
boolean
isSuccess
()
{
return
GlobalCodeEnum
.
SUCCESS
.
getCode
().
equals
(
this
.
code
);
}
// public boolean isSuccess() {
// return GlobalCodeEnum.SUCCESS.getCode().equals(this.code);
// }
public
static
<
T
>
ResultBean
<
T
>
error
()
{
return
new
ResultBean
<
T
>(
GlobalCodeEnum
.
FAILURE
.
getCode
(),
GlobalCodeEnum
.
FAILURE
.
getMsg
());
...
...
src/main/resources/application-dev.yml
View file @
2dad0a2
...
...
@@ -64,6 +64,9 @@ transcode:
getTaskDetail
:
http://192.168.1.237:9002/api/v1/getTaskDetail
crp
:
user
:
username
:
admin
password
:
123456
log
:
open_console
:
true
...
...
src/main/resources/application-test.yml
0 → 100644
View file @
2dad0a2
server
:
port
:
8150
tomcat
:
threads
:
max
:
1000
min-spare
:
30
uri-encoding
:
UTF-8
spring
:
application
:
name
:
crp-operation
datasource
:
type
:
com.alibaba.druid.pool.DruidDataSource
url
:
jdbc:mysql://192.168.1.41:3306/crp_cloud?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=GMT%2B8
username
:
root
password
:
root
driver-class-name
:
com.mysql.cj.jdbc.Driver
druid
:
##配置初始化大小、最小、最大
initial-size
:
5
max-active
:
100
min-idle
:
5
#配置获取连接等待超时的时间
max-wait
:
60000
##打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements
:
true
max-pool-prepared-statement-per-connection-size
:
20
validation-query
:
SELECT 1 FROM DUAL
validation-query-timeout
:
60000
##这里建议配置为TRUE,防止取到的连接不可用
test-on-borrow
:
true
test-on-return
:
false
test-while-idle
:
true
##配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis
:
60000
min-evictable-idle-time-millis
:
100000
jackson
:
date-format
:
yyy-MM-dd HH:mm:ss
time-zone
:
GMT+8
banner
:
charset
:
UTF-8
location
:
classpath:banner.txt
servlet
:
multipart
:
location
:
/opt/upload/tmp
max-file-size
:
10MB
max-request-size
:
100MB
mybatis-plus
:
mapper-locations
:
classpath*:/mapper/*Mapper.xml
typeAliasesPackage
:
com.wondertek.entity
#开启类型别名,降低冗余的全限定类名书写
configuration
:
mapUnderscoreToCamelCase
:
true
#开启自动驼峰命名规则(camel case)映射
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 配置sql打印日志
global-config
:
db-config
:
logic-not-delete-value
:
1
logic-delete-value
:
0
transcode
:
delayTimeUrl
:
http://192.168.1.41:8080/transcode/delayTime
# 延迟接口
getTaskDetail
:
http://192.168.1.237:9002/api/v1/getTaskDetail
crp
:
user
:
username
:
admin
password
:
123456
log
:
open_console
:
true
...
...
src/main/resources/application.yml
View file @
2dad0a2
spring
:
profiles
:
active
:
dev
# active: test
...
...
Please
register
or
login
to post a comment