Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
fcf14f9f
提交
fcf14f9f
authored
4月 21, 2022
作者:
谭志磊
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat : 访客邀请
上级
8b21acf2
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
191 行增加
和
50 行删除
+191
-50
VisitorExportExcel.java
...java/com/yiring/app/excel/visitor/VisitorExportExcel.java
+1
-1
VisitorInfoParam.java
...n/java/com/yiring/app/param/visitor/VisitorInfoParam.java
+41
-0
VisitorListParam.java
...n/java/com/yiring/app/param/visitor/VisitorListParam.java
+49
-0
VideoServiceImpl.java
...a/com/yiring/app/service/video/impl/VideoServiceImpl.java
+48
-45
VisitorService.java
...n/java/com/yiring/app/service/visitor/VisitorService.java
+8
-0
VisitorServiceImpl.java
...m/yiring/app/service/visitor/impl/VisitorServiceImpl.java
+44
-4
没有找到文件。
app/src/main/java/com/yiring/app/excel/visitor/VisitorExportExcel.java
浏览文件 @
fcf14f9f
...
...
@@ -45,7 +45,7 @@ public class VisitorExportExcel implements Serializable {
@ExcelColumn
(
title
=
"标签卡"
)
String
labelCard
;
@ExcelColumn
(
title
=
"标签卡状态"
)
@ExcelColumn
(
title
=
"标签卡状态"
,
mapping
=
"1:未发卡,2:使用中,3:已收卡"
)
String
labelCardStatus
;
@ExcelColumn
(
title
=
"所属单位"
)
...
...
app/src/main/java/com/yiring/app/param/visitor/VisitorInfoParam.java
0 → 100644
浏览文件 @
fcf14f9f
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
visitor
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/21 14:04
*/
@ApiModel
(
"VisitorInfo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorInfoParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
3419577080791245488L
;
@ApiModelProperty
(
value
=
"到访人姓名"
,
example
=
"张三"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人姓名不能为空"
)
String
visitorName
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
String
visitorMobile
;
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人身份证不能为空"
)
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
,
required
=
true
)
boolean
taskType
;
}
app/src/main/java/com/yiring/app/param/visitor/VisitorListParam.java
0 → 100644
浏览文件 @
fcf14f9f
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/21 13:51
*/
@ApiModel
(
"VisitorParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorListParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
6356324790945367160L
;
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"内部邀请"
,
required
=
true
)
String
visitorSource
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"2022-04-19 14:28:00"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
appOfVisitTime
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
,
required
=
true
)
String
intervieweeId
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"看看"
,
required
=
true
)
String
reason
;
@ApiModelProperty
(
value
=
"访客所属公司"
,
example
=
"壹润科技"
,
required
=
true
)
String
orgId
;
@ApiModelProperty
(
value
=
"邀请人数"
,
example
=
"1"
,
required
=
true
)
Integer
numOfVisitor
;
List
<
VisitorInfoParam
>
visitorInfos
;
}
app/src/main/java/com/yiring/app/service/video/impl/VideoServiceImpl.java
浏览文件 @
fcf14f9f
...
...
@@ -144,40 +144,40 @@ public class VideoServiceImpl implements VideoService {
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的编号已存在"
);
}
//当修改跟国标相关联的信息时同步更新国标数据
if
(
!
video
.
getVideoName
().
equals
(
videoParam
.
getVideoName
())
&&
!
video
.
getM3u8
().
equals
(
videoParam
.
getM3u8
())
)
{
new
Thread
(()
->
{
JSONObject
jsonObject
=
gbClient
.
proxyDel
(
"stream"
,
video
.
getUuid
(),
gbCookie
());
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
throw
new
RuntimeException
(
jsonObject
.
get
(
"msg"
).
toString
());
}
})
.
start
();
}
// if (
// !video.getVideoName().equals(videoParam.getVideoName()) && !video.getM3u8().equals(videoParam.getM3u8())
// ) {
new
Thread
(()
->
{
JSONObject
jsonObject
=
gbClient
.
proxyDel
(
"stream"
,
video
.
getUuid
(),
gbCookie
());
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
throw
new
RuntimeException
(
jsonObject
.
get
(
"msg"
).
toString
());
}
})
.
start
();
}
// }
BeanUtils
.
copyProperties
(
videoParam
,
video
);
videoRepository
.
saveAndFlush
(
video
);
//将信息发送到队列,等待同步至国标
new
Thread
(()
->
{
StreamProxyItem
streamProxyItem
=
StreamProxyItem
.
builder
()
.
name
(
video
.
getVideoName
())
.
app
(
"stream"
)
.
stream
(
video
.
getUuid
())
.
url
(
video
.
getM3u8
())
.
mediaServerId
(
"ZbnQN5csqxrPix7a"
)
.
enable
(
true
)
.
enable_hls
(
true
)
.
type
(
video
.
getM3u8
().
contains
(
"sss"
)
?
"ffmpeg"
:
"default"
)
.
timeout_ms
(
video
.
getM3u8
().
contains
(
"sss"
)
?
60
:
null
)
.
build
();
JSONObject
jsonObject
=
gbClient
.
proxySave
(
streamProxyItem
,
gbCookie
());
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
throw
new
RuntimeException
(
jsonObject
.
get
(
"msg"
).
toString
());
}
})
.
start
();
//
new Thread(() -> {
StreamProxyItem
streamProxyItem
=
StreamProxyItem
.
builder
()
.
name
(
video
.
getVideoName
())
.
app
(
"stream"
)
.
stream
(
video
.
getUuid
())
.
url
(
video
.
getM3u8
())
.
mediaServerId
(
"ZbnQN5csqxrPix7a"
)
.
enable
(
true
)
.
enable_hls
(
true
)
.
type
(
video
.
getM3u8
().
contains
(
"sss"
)
?
"ffmpeg"
:
"default"
)
.
timeout_ms
(
video
.
getM3u8
().
contains
(
"sss"
)
?
60
:
null
)
.
build
();
JSONObject
jsonObject
=
gbClient
.
proxySave
(
streamProxyItem
,
gbCookie
());
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
throw
new
RuntimeException
(
jsonObject
.
get
(
"msg"
).
toString
());
}
//
})
//
.start();
return
Result
.
ok
();
}
...
...
@@ -343,24 +343,26 @@ public class VideoServiceImpl implements VideoService {
//如果存在则操作修改
video
.
setId
(
one
.
getId
());
//删除国标关联监控信息
// gbClient.proxyDel("stream", video.getUuid(),s
);
gbClient
.
proxyDel
(
"stream"
,
video
.
getUuid
(),
gbCookie
()
);
});
videoRepository
.
saveAndFlush
(
video
);
//导入监控点位后,还需要同步数据到国标28181
// StreamProxyItem streamProxyItem = StreamProxyItem
// .builder()
// .name(video.getVideoName())
// .app("stream")
// .stream(video.getUuid())
// .url(video.getM3u8())
// .mediaServerId("ZbnQN5csqxrPix7a")
// .enable(true)
// .enable_hls(true)
// .type(video.getM3u8().contains("sss") ? "default" : "ffmpeg")
// .timeout_ms(video.getM3u8().contains("sss") ? 60 : null)
// .build();
// JSONObject jsonObject = gbClient.proxySave(streamProxyItem, gbCookie());
// System.out.println(jsonObject);
StreamProxyItem
streamProxyItem
=
StreamProxyItem
.
builder
()
.
name
(
video
.
getVideoName
())
.
app
(
"stream"
)
.
stream
(
video
.
getUuid
())
.
url
(
video
.
getM3u8
())
.
mediaServerId
(
"ZbnQN5csqxrPix7a"
)
.
enable
(
true
)
.
enable_hls
(
true
)
.
type
(
video
.
getM3u8
().
contains
(
"sss"
)
?
"default"
:
"ffmpeg"
)
.
timeout_ms
(
video
.
getM3u8
().
contains
(
"sss"
)
?
60
:
null
)
.
build
();
JSONObject
jsonObject
=
gbClient
.
proxySave
(
streamProxyItem
,
gbCookie
());
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
throw
new
RuntimeException
(
jsonObject
.
get
(
"msg"
).
toString
());
}
});
}
return
Result
.
ok
();
...
...
@@ -373,6 +375,7 @@ public class VideoServiceImpl implements VideoService {
/**
* 获取国标系统登录cookie
*
* @return cookie
*/
String
gbCookie
()
{
...
...
app/src/main/java/com/yiring/app/service/visitor/VisitorService.java
浏览文件 @
fcf14f9f
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
;
import
com.yiring.app.param.visitor.VisitorListParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.vo.visitor.VisitorVo
;
...
...
@@ -22,6 +23,13 @@ public interface VisitorService {
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
);
/**
* 访客批量新增
* @param visitorListParam 批量访客新增入参
* @return 是否成功
*/
Result
<
String
>
saveVisitor
(
VisitorListParam
visitorListParam
);
/**
* 访客删除
* @param idParam 主键id
* @return 是否成功
...
...
app/src/main/java/com/yiring/app/service/visitor/impl/VisitorServiceImpl.java
浏览文件 @
fcf14f9f
...
...
@@ -6,6 +6,8 @@ import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
import
com.yiring.app.domain.visitor.Visitor
;
import
com.yiring.app.domain.visitor.VisitorRepository
;
import
com.yiring.app.excel.visitor.VisitorExportExcel
;
import
com.yiring.app.param.visitor.VisitorInfoParam
;
import
com.yiring.app.param.visitor.VisitorListParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.service.visitor.VisitorService
;
...
...
@@ -63,6 +65,38 @@ public class VisitorServiceImpl implements VisitorService {
}
@Override
public
Result
<
String
>
saveVisitor
(
VisitorListParam
visitorListParam
)
{
List
<
VisitorInfoParam
>
visitorInfos
=
visitorListParam
.
getVisitorInfos
();
List
<
String
>
mobileList
=
new
ArrayList
<>();
List
<
String
>
carList
=
new
ArrayList
<>();
visitorInfos
.
forEach
(
visitorInfoParam
->
{
if
(
hasVisitorMobile
(
visitorInfoParam
.
getVisitorMobile
()))
{
mobileList
.
add
(
visitorInfoParam
.
getVisitorMobile
());
}
if
(
hasCarNum
(
visitorInfoParam
.
getVisitorCarNum
()))
{
carList
.
add
(
visitorInfoParam
.
getVisitorCarNum
());
}
});
if
(
mobileList
.
size
()
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
mobileList
+
"手机号已经预约,请勿重复预约"
);
}
if
(
carList
.
size
()
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
carList
+
"身份证已经预约,请勿重复预约"
);
}
visitorInfos
.
forEach
(
visitorInfoParam
->
{
Visitor
visitor
=
new
Visitor
();
BeanUtils
.
copyProperties
(
visitorInfoParam
,
visitor
);
visitor
.
setOrgId
(
visitorListParam
.
getOrgId
());
visitor
.
setNumOfVisitor
(
visitorListParam
.
getNumOfVisitor
());
visitor
.
setReason
(
visitorListParam
.
getReason
());
visitor
.
setIntervieweeId
(
visitorListParam
.
getIntervieweeId
());
visitorRepository
.
saveAndFlush
(
visitor
);
});
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteVisitor
(
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
...
...
@@ -214,13 +248,19 @@ public class VisitorServiceImpl implements VisitorService {
}
public
boolean
hasCarNum
(
String
carNum
)
{
Visitor
visitor
=
Visitor
.
builder
().
visitorCarNum
(
carNum
).
build
();
return
visitorRepository
.
count
(
Example
.
of
(
visitor
))
>
0
;
Visitor
visitor
=
Visitor
.
builder
().
visitorCarNum
(
carNum
).
labelCardStatus
(
"1"
).
build
();
long
count
=
visitorRepository
.
count
(
Example
.
of
(
visitor
));
Visitor
visitor1
=
Visitor
.
builder
().
visitorCarNum
(
carNum
).
labelCardStatus
(
"2"
).
build
();
long
count1
=
visitorRepository
.
count
(
Example
.
of
(
visitor1
));
return
count
+
count1
>
0
;
}
public
boolean
hasVisitorMobile
(
String
mobile
)
{
Visitor
visitor
=
Visitor
.
builder
().
visitorMobile
(
mobile
).
build
();
return
visitorRepository
.
count
(
Example
.
of
(
visitor
))
>
0
;
Visitor
visitor
=
Visitor
.
builder
().
visitorMobile
(
mobile
).
labelCardStatus
(
"1"
).
build
();
long
count
=
visitorRepository
.
count
(
Example
.
of
(
visitor
));
Visitor
visitor1
=
Visitor
.
builder
().
visitorMobile
(
mobile
).
labelCardStatus
(
"1"
).
build
();
long
count1
=
visitorRepository
.
count
(
Example
.
of
(
visitor1
));
return
count
+
count1
>
0
;
}
public
Specification
<
Visitor
>
condition
(
VisitorQueryParam
visitorQueryParam
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论