Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
55f6b34c
提交
55f6b34c
authored
4月 20, 2022
作者:
谭志磊
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
合并,备份
上级
9a8d3151
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
435 行增加
和
0 行删除
+435
-0
Visitor.java
app/src/main/java/com/yiring/app/domain/visitor/Visitor.java
+97
-0
VisitorRepository.java
...java/com/yiring/app/domain/visitor/VisitorRepository.java
+14
-0
GbClient.java
app/src/main/java/com/yiring/app/feign/GbClient.java
+34
-0
StreamProxyItem.java
...main/java/com/yiring/app/param/video/StreamProxyItem.java
+40
-0
VisitorParam.java
.../main/java/com/yiring/app/param/visitor/VisitorParam.java
+78
-0
VisitorQueryParam.java
.../java/com/yiring/app/param/visitor/VisitorQueryParam.java
+22
-0
VisitorService.java
...n/java/com/yiring/app/service/visitor/VisitorService.java
+37
-0
VisitorServiceImpl.java
...m/yiring/app/service/visitor/impl/VisitorServiceImpl.java
+100
-0
VisitorVo.java
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
+13
-0
没有找到文件。
app/src/main/java/com/yiring/app/domain/visitor/Visitor.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotaions.Comment
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.snowflake.SnowflakeId
;
/**
* @author tzl
* 2022/4/19 11:41
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_VISITOR"
)
@Comment
(
"监控视频"
)
public
class
Visitor
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
7367226565168197562L
;
@Id
@Comment
(
"主键"
)
@GeneratedValue
(
generator
=
SnowflakeId
.
GENERATOR
)
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
LONG
)
Long
id
;
@Comment
(
"到访人姓名"
)
String
visitorName
;
@Comment
(
"到访人电话"
)
String
visitorMobile
;
@Comment
(
"到访人身份证"
)
String
visitorCarNum
;
@Comment
(
"是否特殊作业"
)
boolean
taskType
;
@Comment
(
"邀请人数"
)
Integer
numOfVisitor
;
@Comment
(
"访客来源"
)
String
visitorSource
;
@Comment
(
"标签卡"
)
String
labelCard
;
@Comment
(
"标签卡状态"
)
String
labelCardStatus
;
@Comment
(
"所属单位id"
)
String
orgId
;
@Comment
(
"被访人id"
)
String
intervieweeId
;
@Comment
(
"来访原因"
)
String
reason
;
@Comment
(
"收卡时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
cardRecTime
;
@Comment
(
"预约到访时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
appOfVisitTime
;
@Comment
(
"创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
createTime
;
@Comment
(
"发卡时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
cardSendTime
;
@Comment
(
"备用字段"
)
String
reserve1
;
@Comment
(
"备用字段"
)
String
reserve2
;
@Comment
(
"备用字段"
)
String
reserve3
;
}
app/src/main/java/com/yiring/app/domain/visitor/VisitorRepository.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tzl
* 2022/4/19 14:06
*/
@Repository
public
interface
VisitorRepository
extends
JpaRepository
<
Visitor
,
Serializable
>,
JpaSpecificationExecutor
<
Visitor
>
{}
app/src/main/java/com/yiring/app/feign/GbClient.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
feign
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yiring.app.param.video.StreamProxyItem
;
import
feign.Response
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author tzl
* 2022/4/18 14:22
*/
@FeignClient
(
url
=
"${env.host}:3008"
,
name
=
"gb"
)
public
interface
GbClient
{
@RequestMapping
(
value
=
"/api/user/login"
,
method
=
RequestMethod
.
GET
)
Response
userLogin
(
@RequestParam
(
name
=
"username"
)
String
username
,
@RequestParam
(
name
=
"password"
)
String
password
);
@RequestMapping
(
value
=
"/api/proxy/save"
,
method
=
RequestMethod
.
POST
)
@Async
JSONObject
proxySave
(
@RequestBody
StreamProxyItem
streamProxyItem
,
@RequestHeader
(
"Cookie"
)
String
cookie
);
@RequestMapping
(
value
=
"/api/proxy/del"
,
method
=
RequestMethod
.
DELETE
)
@Async
JSONObject
proxyDel
(
@RequestParam
(
name
=
"app"
)
String
app
,
@RequestParam
(
name
=
"stream"
)
String
stream
,
@RequestHeader
(
"Cookie"
)
String
cookie
);
}
app/src/main/java/com/yiring/app/param/video/StreamProxyItem.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
video
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/18 15:21
*/
@ApiModel
(
"StreamProxyItem"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
StreamProxyItem
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
7345369573992941431L
;
//名称
String
name
;
//流应用名称
String
app
;
//流id
String
stream
;
//拉流地址
String
url
;
//类型,根据地址是否有关键字判断
String
type
;
//节点选择
String
mediaServerId
;
//是否启用
boolean
enable
;
//是否转HLS
boolean
enable_hls
;
Integer
timeout_ms
;
}
app/src/main/java/com/yiring/app/param/visitor/VisitorParam.java
0 → 100644
浏览文件 @
55f6b34c
/* (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.Serializable
;
import
java.time.LocalDateTime
;
import
javax.validation.constraints.NotEmpty
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/19 14:15
*/
@ApiModel
(
"VisitorParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1444009404727514785L
;
@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
;
// @Comment("邀请人数")
// Integer numOfVisitor;
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"外部邀请"
,
required
=
true
)
String
visitorSource
;
// @Comment("标签卡")
// String labelCard;
//
// @Comment("标签卡状态")
// String labelCardStatus;
@ApiModelProperty
(
value
=
"访客所属公司"
,
example
=
"壹润科技"
)
String
orgId
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
,
required
=
true
)
String
intervieweeId
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"看看"
,
required
=
true
)
String
reason
;
// @ApiModelProperty(value = "发卡时间", example = "看看", required = true)
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime cardRecTime;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"2022-04-19 14:28:00"
,
required
=
true
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
appOfVisitTime
;
// @Comment("创建时间")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime createTime;
//
// @Comment("发卡时间")
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// LocalDateTime cardSendTime;
}
app/src/main/java/com/yiring/app/param/visitor/VisitorQueryParam.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
visitor
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/19 14:15
*/
@ApiModel
(
"VisitorQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorQueryParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
4314254785949101573L
;
}
app/src/main/java/com/yiring/app/service/visitor/VisitorService.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
/**
* @author tzl
* 2022/4/19 14:12
*/
public
interface
VisitorService
{
/**
* 访客新增
* @param visitorParam 新增访客入参
* @return 是否成功
*/
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
);
/**
* 访客删除
* @param idParam 主键id
* @return 是否成功
*/
Result
<
String
>
deleteVisitor
(
IdParam
idParam
);
/**
* 修改访客信息
* @param visitorParam 修改访客入参
* @param idParam 修改访客的主键id
* @return 是否成功
*/
Result
<
String
>
updateVisitor
(
VisitorParam
visitorParam
,
IdParam
idParam
);
Result
<
VisitorVo
>
selectVisitor
(
IdParam
idParam
);
}
app/src/main/java/com/yiring/app/service/visitor/impl/VisitorServiceImpl.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
.
impl
;
import
com.yiring.app.domain.visitor.Visitor
;
import
com.yiring.app.domain.visitor.VisitorRepository
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
java.time.LocalDateTime
;
import
java.util.Optional
;
import
javax.annotation.Resource
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.data.domain.Example
;
import
org.springframework.stereotype.Service
;
/**
* @author tzl
* 2022/4/19 14:12
*/
@Service
public
class
VisitorServiceImpl
implements
VisitorService
{
@Resource
VisitorRepository
visitorRepository
;
@Override
public
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
)
{
if
(
hasVisitorMobile
(
visitorParam
.
getVisitorMobile
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的手机号码已经预约"
);
}
if
(
hasCarNum
(
visitorParam
.
getVisitorCarNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的身份证号码已经预约"
);
}
//设置创建时间和默认状态
Visitor
visitor
=
Visitor
.
builder
().
createTime
(
LocalDateTime
.
now
()).
build
();
BeanUtils
.
copyProperties
(
visitorParam
,
visitor
);
visitorRepository
.
saveAndFlush
(
visitor
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteVisitor
(
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
visitorRepository
.
delete
(
optional
.
get
());
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
updateVisitor
(
VisitorParam
visitorParam
,
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Visitor
visitor
=
optional
.
get
();
if
(!
visitor
.
getVisitorCarNum
().
equals
(
visitorParam
.
getVisitorCarNum
()))
{
//当修改身份证时
if
(
hasCarNum
(
visitorParam
.
getVisitorCarNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的身份证号码已经预约"
);
}
}
if
(!
visitor
.
getVisitorMobile
().
equals
(
visitorParam
.
getVisitorMobile
()))
{
//当修改手机号码时
if
(
hasVisitorMobile
(
visitorParam
.
getVisitorMobile
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"您输入的手机号码已经预约"
);
}
}
BeanUtils
.
copyProperties
(
visitorParam
,
visitor
);
visitorRepository
.
saveAndFlush
(
visitor
);
return
Result
.
ok
();
}
@Override
public
Result
<
VisitorVo
>
selectVisitor
(
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Visitor
visitor
=
optional
.
get
();
VisitorVo
vo
=
new
VisitorVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
return
Result
.
ok
(
vo
);
}
public
boolean
hasCarNum
(
String
carNum
)
{
Visitor
visitor
=
Visitor
.
builder
().
visitorCarNum
(
carNum
).
build
();
return
visitorRepository
.
count
(
Example
.
of
(
visitor
))
>
0
;
}
public
boolean
hasVisitorMobile
(
String
mobile
)
{
Visitor
visitor
=
Visitor
.
builder
().
visitorMobile
(
mobile
).
build
();
return
visitorRepository
.
count
(
Example
.
of
(
visitor
))
>
0
;
}
}
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
0 → 100644
浏览文件 @
55f6b34c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
visitor
;
import
java.io.Serializable
;
/**
* @author tzl
* 2022/4/19 14:16
*/
public
class
VisitorVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
9004209982164273860L
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论