Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
ca409c7b
提交
ca409c7b
authored
4月 29, 2022
作者:
Administrator
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat : 访客,邀请功能增加
上级
c19783ee
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
315 行增加
和
40 行删除
+315
-40
Invitation.java
...c/main/java/com/yiring/app/domain/visitor/Invitation.java
+17
-2
InvitationRepository.java
...a/com/yiring/app/domain/visitor/InvitationRepository.java
+13
-1
Visitor.java
app/src/main/java/com/yiring/app/domain/visitor/Visitor.java
+9
-1
VisitorRepository.java
...java/com/yiring/app/domain/visitor/VisitorRepository.java
+5
-0
InvitationExportExcel.java
...a/com/yiring/app/excel/visitor/InvitationExportExcel.java
+2
-2
InvitationAppQueryParam.java
...com/yiring/app/param/visitor/InvitationAppQueryParam.java
+36
-0
InvitationParam.java
...in/java/com/yiring/app/param/visitor/InvitationParam.java
+1
-1
InvitationQueryParam.java
...va/com/yiring/app/param/visitor/InvitationQueryParam.java
+4
-4
VisitorParam.java
.../main/java/com/yiring/app/param/visitor/VisitorParam.java
+1
-0
InvitationService.java
...ava/com/yiring/app/service/visitor/InvitationService.java
+23
-2
VisitorService.java
...n/java/com/yiring/app/service/visitor/VisitorService.java
+3
-2
InvitationServiceImpl.java
...iring/app/service/visitor/impl/InvitationServiceImpl.java
+0
-0
VisitorServiceImpl.java
...m/yiring/app/service/visitor/impl/VisitorServiceImpl.java
+58
-6
InvitationDetailsVo.java
...n/java/com/yiring/app/vo/visitor/InvitationDetailsVo.java
+81
-0
InvitationVo.java
...src/main/java/com/yiring/app/vo/visitor/InvitationVo.java
+24
-0
VisitorVo.java
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
+21
-16
InvitationController.java
...java/com/yiring/app/web/visitor/InvitationController.java
+15
-2
VisitorController.java
...in/java/com/yiring/app/web/visitor/VisitorController.java
+2
-1
没有找到文件。
app/src/main/java/com/yiring/app/domain/visitor/Invitation.java
浏览文件 @
ca409c7b
...
@@ -3,6 +3,7 @@ package com.yiring.app.domain.visitor;
...
@@ -3,6 +3,7 @@ package com.yiring.app.domain.visitor;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.yiring.auth.domain.user.User
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -11,6 +12,8 @@ import lombok.*;
...
@@ -11,6 +12,8 @@ import lombok.*;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.snowflake.SnowflakeId
;
import
org.hibernate.snowflake.SnowflakeId
;
...
@@ -31,6 +34,8 @@ import org.hibernate.snowflake.SnowflakeId;
...
@@ -31,6 +34,8 @@ import org.hibernate.snowflake.SnowflakeId;
@FieldNameConstants
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Entity
@DynamicInsert
@DynamicUpdate
@Table
(
name
=
"BS_INVITATION"
)
@Table
(
name
=
"BS_INVITATION"
)
@Comment
(
"邀请信息"
)
@Comment
(
"邀请信息"
)
public
class
Invitation
implements
Serializable
{
public
class
Invitation
implements
Serializable
{
...
@@ -50,8 +55,8 @@ public class Invitation implements Serializable {
...
@@ -50,8 +55,8 @@ public class Invitation implements Serializable {
@Comment
(
"状态"
)
@Comment
(
"状态"
)
String
status
;
String
status
;
@Comment
(
"邀请人id"
)
//
@Comment("邀请人id")
Long
inviterId
;
//
Long inviterId;
@Comment
(
"邀请人数"
)
@Comment
(
"邀请人数"
)
Integer
numOfVisitor
;
Integer
numOfVisitor
;
...
@@ -60,6 +65,10 @@ public class Invitation implements Serializable {
...
@@ -60,6 +65,10 @@ public class Invitation implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
createTime
;
LocalDateTime
createTime
;
@Comment
(
"修改时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
updateTime
;
// @Comment("访客id")
// @Comment("访客id")
// Long visitorId;
// Long visitorId;
...
@@ -68,4 +77,10 @@ public class Invitation implements Serializable {
...
@@ -68,4 +77,10 @@ public class Invitation implements Serializable {
@OneToOne
@OneToOne
@JoinColumn
(
name
=
"visitor_id"
,
referencedColumnName
=
"id"
)
@JoinColumn
(
name
=
"visitor_id"
,
referencedColumnName
=
"id"
)
Visitor
visitor
;
Visitor
visitor
;
@Comment
(
"邀请人"
)
@JsonIgnore
@OneToOne
@JoinColumn
(
name
=
"inviter_id"
,
referencedColumnName
=
"id"
)
User
user
;
}
}
app/src/main/java/com/yiring/app/domain/visitor/InvitationRepository.java
浏览文件 @
ca409c7b
...
@@ -2,6 +2,8 @@
...
@@ -2,6 +2,8 @@
package
com
.
yiring
.
app
.
domain
.
visitor
;
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -12,4 +14,14 @@ import org.springframework.stereotype.Repository;
...
@@ -12,4 +14,14 @@ import org.springframework.stereotype.Repository;
*/
*/
@Repository
@Repository
public
interface
InvitationRepository
public
interface
InvitationRepository
extends
JpaRepository
<
Invitation
,
Serializable
>,
JpaSpecificationExecutor
<
Invitation
>
{}
extends
JpaRepository
<
Invitation
,
Serializable
>,
JpaSpecificationExecutor
<
Invitation
>
{
/**
* 小程序用户查看邀请信息
* @author tzl
* @date 2022/4/28 11:08
* @param mobile 手机
* @param deleted 是否删除
* @return java.util.List<com.yiring.app.domain.visitor.Invitation>
*/
Page
<
Invitation
>
findAllByVisitor_VisitorMobileAndVisitor_Deleted
(
String
mobile
,
String
deleted
,
Pageable
pageable
);
}
app/src/main/java/com/yiring/app/domain/visitor/Visitor.java
浏览文件 @
ca409c7b
...
@@ -71,7 +71,7 @@ public class Visitor implements Serializable {
...
@@ -71,7 +71,7 @@ public class Visitor implements Serializable {
String
orgId
;
String
orgId
;
@Comment
(
"被访人id"
)
@Comment
(
"被访人id"
)
Stri
ng
intervieweeId
;
Lo
ng
intervieweeId
;
@Comment
(
"来访原因/邀请原因"
)
@Comment
(
"来访原因/邀请原因"
)
String
reason
;
String
reason
;
...
@@ -108,4 +108,12 @@ public class Visitor implements Serializable {
...
@@ -108,4 +108,12 @@ public class Visitor implements Serializable {
@Comment
(
"访客车辆"
)
@Comment
(
"访客车辆"
)
@OneToOne
(
cascade
=
{
CascadeType
.
ALL
})
@OneToOne
(
cascade
=
{
CascadeType
.
ALL
})
Car
car
;
Car
car
;
@Comment
(
"修改时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
updateTime
;
// @Comment("邀请人")
// @OneToOne(cascade = { CascadeType.ALL })
// @JoinColumn(name = "main_visitor_id", referencedColumnName = "id")
// Visitor visitor;
}
}
app/src/main/java/com/yiring/app/domain/visitor/VisitorRepository.java
浏览文件 @
ca409c7b
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
package
com
.
yiring
.
app
.
domain
.
visitor
;
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -13,4 +14,8 @@ import org.springframework.stereotype.Repository;
...
@@ -13,4 +14,8 @@ import org.springframework.stereotype.Repository;
@Repository
@Repository
public
interface
VisitorRepository
extends
JpaRepository
<
Visitor
,
Serializable
>,
JpaSpecificationExecutor
<
Visitor
>
{
public
interface
VisitorRepository
extends
JpaRepository
<
Visitor
,
Serializable
>,
JpaSpecificationExecutor
<
Visitor
>
{
Visitor
findByIdAndDeleted
(
Long
id
,
String
deleted
);
Visitor
findByIdAndDeleted
(
Long
id
,
String
deleted
);
List
<
Visitor
>
findAllByMainVisitorIdAndDeletedEquals
(
Long
mainId
,
String
deleted
);
List
<
Visitor
>
findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot
(
Long
mainId
,
String
deleted
,
Long
id
);
}
}
app/src/main/java/com/yiring/app/excel/visitor/InvitationExportExcel.java
浏览文件 @
ca409c7b
...
@@ -29,7 +29,7 @@ public class InvitationExportExcel implements Serializable {
...
@@ -29,7 +29,7 @@ public class InvitationExportExcel implements Serializable {
@ExcelColumn
(
title
=
"邀请原因"
)
@ExcelColumn
(
title
=
"邀请原因"
)
String
reason
;
String
reason
;
@ExcelColumn
(
title
=
"邀请方式"
)
@ExcelColumn
(
title
=
"邀请方式"
,
mapping
=
"1:个人,2:公司"
)
String
InvitationMethod
;
String
InvitationMethod
;
@ExcelColumn
(
title
=
"邀请人数"
)
@ExcelColumn
(
title
=
"邀请人数"
)
...
@@ -44,7 +44,7 @@ public class InvitationExportExcel implements Serializable {
...
@@ -44,7 +44,7 @@ public class InvitationExportExcel implements Serializable {
@ExcelColumn
(
title
=
"到访人电话"
)
@ExcelColumn
(
title
=
"到访人电话"
)
String
visitorMobile
;
String
visitorMobile
;
@ExcelColumn
(
title
=
"是否特殊任务"
)
@ExcelColumn
(
title
=
"是否特殊任务"
,
mapping
=
"false:否,true:是"
)
String
taskType
;
String
taskType
;
// Long inviterId;
// Long inviterId;
...
...
app/src/main/java/com/yiring/app/param/visitor/InvitationAppQueryParam.java
0 → 100644
浏览文件 @
ca409c7b
/* (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
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description: TODO
* @date 2022/4/28 11:12
*/
@ApiModel
(
"InvitationAppQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
InvitationAppQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5194434249966317387L
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
)
String
visitorMobile
;
@ApiModelProperty
(
value
=
"分页条数"
,
example
=
"10"
)
Integer
pageSize
;
@ApiModelProperty
(
value
=
"当前页数"
,
example
=
"1"
)
Integer
pageNo
;
}
app/src/main/java/com/yiring/app/param/visitor/InvitationParam.java
浏览文件 @
ca409c7b
...
@@ -53,7 +53,7 @@ public class InvitationParam implements Serializable {
...
@@ -53,7 +53,7 @@ public class InvitationParam implements Serializable {
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
String
visitorCarNum
;
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
否
"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
false
"
,
required
=
true
)
String
taskType
;
String
taskType
;
// @ApiModelProperty(value = "访客来源", example = "外部邀请", required = true)
// @ApiModelProperty(value = "访客来源", example = "外部邀请", required = true)
...
...
app/src/main/java/com/yiring/app/param/visitor/InvitationQueryParam.java
浏览文件 @
ca409c7b
...
@@ -38,11 +38,11 @@ public class InvitationQueryParam implements Serializable {
...
@@ -38,11 +38,11 @@ public class InvitationQueryParam implements Serializable {
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
)
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
)
String
taskType
;
String
taskType
;
@ApiModelProperty
(
value
=
"邀请人
id"
,
example
=
"1
"
)
@ApiModelProperty
(
value
=
"邀请人
"
,
example
=
"张三
"
)
Long
inviterId
;
String
realName
;
// @ApiModelProperty(value = "邀请人部门id", example = "1
")
@ApiModelProperty
(
value
=
"邀请人部门"
,
example
=
"研发
"
)
// Long deptId
;
String
deptName
;
@ApiModelProperty
(
value
=
"预约到访时间(开始)"
,
example
=
"2022-04-19 14:28:00"
)
@ApiModelProperty
(
value
=
"预约到访时间(开始)"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
appOfVisitTimeStart
;
LocalDateTime
appOfVisitTimeStart
;
...
...
app/src/main/java/com/yiring/app/param/visitor/VisitorParam.java
浏览文件 @
ca409c7b
...
@@ -33,6 +33,7 @@ public class VisitorParam implements Serializable {
...
@@ -33,6 +33,7 @@ public class VisitorParam implements Serializable {
String
visitorName
;
String
visitorName
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
,
required
=
true
)
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
,
required
=
true
)
@Pattern
(
regexp
=
RegEx
.
MOBILE
,
message
=
"手机号码格式不正确"
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
String
visitorMobile
;
String
visitorMobile
;
...
...
app/src/main/java/com/yiring/app/service/visitor/InvitationService.java
浏览文件 @
ca409c7b
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
;
package
com
.
yiring
.
app
.
service
.
visitor
;
import
com.yiring.app.param.visitor.InvitationAppQueryParam
;
import
com.yiring.app.param.visitor.InvitationParam
;
import
com.yiring.app.param.visitor.InvitationParam
;
import
com.yiring.app.param.visitor.InvitationQueryParam
;
import
com.yiring.app.param.visitor.InvitationQueryParam
;
import
com.yiring.app.vo.visitor.InvitationVo
;
import
com.yiring.app.vo.visitor.Invitation
Details
Vo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
com.yiring.common.vo.PageVo
;
...
@@ -38,7 +39,7 @@ public interface InvitationService {
...
@@ -38,7 +39,7 @@ public interface InvitationService {
* @date 2022/4/24 17:56
* @date 2022/4/24 17:56
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<java.lang.String>>
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<java.lang.String>>
*/
*/
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
InvitationQueryParam
invitationQueryParam
);
Result
<
PageVo
<
Invitation
Details
Vo
>>
pageInv
(
InvitationQueryParam
invitationQueryParam
);
/**
/**
* 撤回邀请
* 撤回邀请
...
@@ -65,4 +66,24 @@ public interface InvitationService {
...
@@ -65,4 +66,24 @@ public interface InvitationService {
* @param invitationQueryParam 筛选条件
* @param invitationQueryParam 筛选条件
*/
*/
void
exportInv
(
InvitationQueryParam
invitationQueryParam
,
HttpServletResponse
response
);
void
exportInv
(
InvitationQueryParam
invitationQueryParam
,
HttpServletResponse
response
);
/**
* 小程序查询全部
* @author tzl
* @date 2022/4/28 10:56
* @param idParam 主键id
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.InvitationDetailsVo>
*/
Result
<
InvitationDetailsVo
>
detailsInv
(
IdParam
idParam
);
/**
* 小程序用户查看邀请信息
* @author tzl
* @date 2022/4/28 11:30
* @param invitationAppQueryParam 入参
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.vo.visitor.InvitationVo>>
*/
Result
<
PageVo
<
InvitationDetailsVo
>>
findAllByVisitor_VisitorMobileAndVisitor_Deleted
(
InvitationAppQueryParam
invitationAppQueryParam
);
}
}
app/src/main/java/com/yiring/app/service/visitor/VisitorService.java
浏览文件 @
ca409c7b
...
@@ -3,6 +3,7 @@ package com.yiring.app.service.visitor;
...
@@ -3,6 +3,7 @@ package com.yiring.app.service.visitor;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.vo.visitor.VisitorDetailsVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IdParam
;
...
@@ -15,7 +16,7 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -15,7 +16,7 @@ import javax.servlet.http.HttpServletResponse;
*/
*/
public
interface
VisitorService
{
public
interface
VisitorService
{
/**
/**
* 访客
新增
* 访客
登记
* @param visitorParam 新增访客入参
* @param visitorParam 新增访客入参
* @return 是否成功
* @return 是否成功
*/
*/
...
@@ -41,7 +42,7 @@ public interface VisitorService {
...
@@ -41,7 +42,7 @@ public interface VisitorService {
* @param idParam 主键id
* @param idParam 主键id
* @return 访客信息
* @return 访客信息
*/
*/
Result
<
VisitorVo
>
selectVisitor
(
IdParam
idParam
);
Result
<
Visitor
Details
Vo
>
selectVisitor
(
IdParam
idParam
);
/**
/**
* 分页查询
* 分页查询
...
...
app/src/main/java/com/yiring/app/service/visitor/impl/InvitationServiceImpl.java
浏览文件 @
ca409c7b
差异被折叠。
点击展开。
app/src/main/java/com/yiring/app/service/visitor/impl/VisitorServiceImpl.java
浏览文件 @
ca409c7b
...
@@ -12,7 +12,10 @@ import com.yiring.app.param.visitor.VisitorParam;
...
@@ -12,7 +12,10 @@ import com.yiring.app.param.visitor.VisitorParam;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.service.visitor.CarService
;
import
com.yiring.app.service.visitor.CarService
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.vo.visitor.VisitorDetailsVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.auth.domain.user.UserRepository
;
import
com.yiring.common.constant.RegEx
;
import
com.yiring.common.constant.RegEx
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.core.Status
;
...
@@ -29,6 +32,7 @@ import java.util.Optional;
...
@@ -29,6 +32,7 @@ import java.util.Optional;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -55,20 +59,30 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -55,20 +59,30 @@ public class VisitorServiceImpl implements VisitorService {
CarService
carService
;
CarService
carService
;
@Resource
@Resource
UserRepository
userRepository
;
@Resource
AppletUserRepository
appletUserRepository
;
AppletUserRepository
appletUserRepository
;
@Override
@Override
public
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
)
{
public
Result
<
String
>
saveVisitor
(
VisitorParam
visitorParam
)
{
//设置创建时间和默认状态
Visitor
visitor
=
Visitor
.
builder
()
.
createTime
(
LocalDateTime
.
now
())
.
updateTime
(
LocalDateTime
.
now
())
.
cardSendTime
(
LocalDateTime
.
now
())
.
build
();
BeanUtils
.
copyProperties
(
visitorParam
,
visitor
);
if
(
visitorParam
.
getMainVisitorId
()
!=
null
)
{
if
(
visitorParam
.
getMainVisitorId
()
!=
null
)
{
//如果主访人员id不为空,
//如果主访人员id不为空,
Visitor
optional
=
visitorRepository
.
findByIdAndDeleted
(
visitorParam
.
getMainVisitorId
(),
"N"
);
Visitor
optional
=
visitorRepository
.
findByIdAndDeleted
(
visitorParam
.
getMainVisitorId
(),
"N"
);
if
(
optional
==
null
)
{
if
(
optional
==
null
)
{
return
Result
.
no
(
Status
.
NOT_FOUND
,
"信息失效,请联系管理员"
);
return
Result
.
no
(
Status
.
NOT_FOUND
,
"信息失效,请联系管理员"
);
}
}
visitor
.
setMainVisitorId
(
visitorParam
.
getMainVisitorId
());
}
}
//设置创建时间和默认状态
Visitor
visitor
=
Visitor
.
builder
().
createTime
(
LocalDateTime
.
now
()).
build
();
BeanUtils
.
copyProperties
(
visitorParam
,
visitor
);
//如果有车, 填车辆信息,
//如果有车, 填车辆信息,
if
(
visitorParam
.
getHasCar
()
==
1
)
{
if
(
visitorParam
.
getHasCar
()
==
1
)
{
//校验车辆必填信息
//校验车辆必填信息
...
@@ -127,20 +141,45 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -127,20 +141,45 @@ public class VisitorServiceImpl implements VisitorService {
}
}
}
}
BeanUtils
.
copyProperties
(
visitorParam
,
optional
);
BeanUtils
.
copyProperties
(
visitorParam
,
optional
);
optional
.
setUpdateTime
(
LocalDateTime
.
now
());
visitorRepository
.
saveAndFlush
(
optional
);
visitorRepository
.
saveAndFlush
(
optional
);
return
Result
.
ok
();
return
Result
.
ok
();
}
}
@Override
@Override
public
Result
<
VisitorVo
>
selectVisitor
(
IdParam
idParam
)
{
public
Result
<
Visitor
Details
Vo
>
selectVisitor
(
IdParam
idParam
)
{
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
Optional
<
Visitor
>
optional
=
visitorRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
}
Visitor
visitor
=
optional
.
get
();
Visitor
visitor
=
optional
.
get
();
VisitorVo
vo
=
new
VisitorVo
();
List
<
Visitor
>
list
=
new
ArrayList
<>();
List
<
VisitorDetailsVo
.
VisitorResultVo
>
listResult
=
new
ArrayList
<>();
//主访人id为空 为主访问人,查询出其下面的随访人的姓名和电话
if
(
visitor
.
getMainVisitorId
()
==
null
)
{
list
=
visitorRepository
.
findAllByMainVisitorIdAndDeletedEquals
(
visitor
.
getId
(),
"N"
);
}
else
{
//查询此随访访客的主访客,
Visitor
n
=
visitorRepository
.
findByIdAndDeleted
(
visitor
.
getMainVisitorId
(),
"N"
);
if
(
n
!=
null
)
{
//添加此随访人一同的随访人
list
=
visitorRepository
.
findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot
(
n
.
getId
(),
"N"
,
visitor
.
getId
());
list
.
add
(
n
);
}
}
//处理返回数据的结构
if
(
list
!=
null
)
{
list
.
forEach
(
visitorEntity
->
{
VisitorDetailsVo
.
VisitorResultVo
visitorResultVo
=
new
VisitorDetailsVo
.
VisitorResultVo
();
BeanUtils
.
copyProperties
(
visitorEntity
,
visitorResultVo
);
listResult
.
add
(
visitorResultVo
);
});
}
VisitorDetailsVo
vo
=
new
VisitorDetailsVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
BeanUtils
.
copyProperties
(
visitor
,
vo
);
vo
.
setList
(
listResult
);
return
Result
.
ok
(
vo
);
return
Result
.
ok
(
vo
);
}
}
...
@@ -158,6 +197,11 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -158,6 +197,11 @@ public class VisitorServiceImpl implements VisitorService {
.
map
(
visitor
->
{
.
map
(
visitor
->
{
VisitorVo
vo
=
new
VisitorVo
();
VisitorVo
vo
=
new
VisitorVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
BeanUtils
.
copyProperties
(
visitor
,
vo
);
//翻译被访问人姓名
if
(
vo
.
getIntervieweeId
()
!=
null
)
{
Optional
<
User
>
byId
=
userRepository
.
findById
(
vo
.
getIntervieweeId
());
byId
.
ifPresent
(
user
->
vo
.
setIntervieweeName
(
user
.
getRealName
()));
}
return
vo
;
return
vo
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
@@ -169,6 +213,11 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -169,6 +213,11 @@ public class VisitorServiceImpl implements VisitorService {
.
map
(
visitor
->
{
.
map
(
visitor
->
{
VisitorVo
vo
=
new
VisitorVo
();
VisitorVo
vo
=
new
VisitorVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
BeanUtils
.
copyProperties
(
visitor
,
vo
);
//翻译被访问人姓名
if
(
vo
.
getIntervieweeId
()
!=
null
)
{
Optional
<
User
>
byId
=
userRepository
.
findById
(
vo
.
getIntervieweeId
());
byId
.
ifPresent
(
user
->
vo
.
setIntervieweeName
(
user
.
getRealName
()));
}
return
vo
;
return
vo
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
@@ -206,6 +255,7 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -206,6 +255,7 @@ public class VisitorServiceImpl implements VisitorService {
String
fileName
=
URLEncoder
.
encode
(
"访客信息.xlsx"
,
StandardCharsets
.
UTF_8
);
String
fileName
=
URLEncoder
.
encode
(
"访客信息.xlsx"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Access-Control-Expose-Headers"
,
"Content-Disposition"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
OutputStream
out
=
response
.
getOutputStream
();
...
@@ -243,6 +293,7 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -243,6 +293,7 @@ public class VisitorServiceImpl implements VisitorService {
}
}
Visitor
visitor
=
optional
.
get
();
Visitor
visitor
=
optional
.
get
();
visitor
.
setLabelCardStatus
(
"3"
);
visitor
.
setLabelCardStatus
(
"3"
);
visitor
.
setUpdateTime
(
LocalDateTime
.
now
());
visitor
.
setCardRecTime
(
LocalDateTime
.
now
());
visitor
.
setCardRecTime
(
LocalDateTime
.
now
());
visitorRepository
.
saveAndFlush
(
visitor
);
visitorRepository
.
saveAndFlush
(
visitor
);
return
Result
.
ok
();
return
Result
.
ok
();
...
@@ -395,9 +446,10 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -395,9 +446,10 @@ public class VisitorServiceImpl implements VisitorService {
)
)
);
);
}
}
Order
order
=
criteriaBuilder
.
desc
(
root
.
get
(
Visitor
.
Fields
.
updateTime
));
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
query
.
where
(
list
.
toArray
(
predicates
));
query
.
where
(
list
.
toArray
(
predicates
));
query
.
orderBy
(
order
);
return
criteriaBuilder
.
and
(
list
.
toArray
(
predicates
));
return
criteriaBuilder
.
and
(
list
.
toArray
(
predicates
));
};
};
}
}
...
...
app/src/main/java/com/yiring/app/vo/visitor/InvitationDetailsVo.java
0 → 100644
浏览文件 @
ca409c7b
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
visitor
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.visitor.Visitor
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 邀请反参
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/28 10:48
*/
@ApiModel
(
"InvitationDetailsVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
InvitationDetailsVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5496232471863298479L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1548548545755"
)
Long
id
;
@ApiModelProperty
(
value
=
"邀请原因/来访原因"
,
example
=
"随便看看"
)
String
reason
;
@ApiModelProperty
(
value
=
"邀请方式:个人 公司"
,
example
=
"个人"
)
String
InvitationMethod
;
@ApiModelProperty
(
value
=
"邀请人数"
,
example
=
"1"
)
Integer
numOfVisitor
;
@ApiModelProperty
(
value
=
"邀请人id"
,
example
=
"1"
)
Long
inviterId
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"撤回"
)
String
status
;
@ApiModelProperty
(
value
=
"被邀请访客"
)
Visitor
visitor
;
@ApiModelProperty
(
value
=
"邀请人信息"
)
User
user
;
@ApiModel
(
"User"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
static
class
User
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
4115779013003587949L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
Long
id
;
@ApiModelProperty
(
value
=
"邀请人姓名"
,
example
=
"张三"
)
String
realName
;
@ApiModelProperty
(
value
=
"邀请人部门"
,
example
=
"研发部"
)
String
deptName
;
@ApiModelProperty
(
value
=
"邀请人电话"
,
example
=
"17688888888"
)
String
mobile
;
}
}
app/src/main/java/com/yiring/app/vo/visitor/InvitationVo.java
浏览文件 @
ca409c7b
...
@@ -56,4 +56,28 @@ public class InvitationVo implements Serializable {
...
@@ -56,4 +56,28 @@ public class InvitationVo implements Serializable {
@ApiModelProperty
(
value
=
"被邀请访客"
)
@ApiModelProperty
(
value
=
"被邀请访客"
)
Visitor
visitor
;
Visitor
visitor
;
@ApiModelProperty
(
value
=
"邀请人信息"
)
User
user
;
@ApiModel
(
"User"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
static
class
User
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
4115779013003587949L
;
// @JsonSerialize(using = ToStringSerializer.class)
// @ApiModelProperty(value = "id", example = "1")
// Long id;
@ApiModelProperty
(
value
=
"邀请人姓名"
,
example
=
"张三"
)
String
realName
;
@ApiModelProperty
(
value
=
"邀请人部门"
,
example
=
"研发部"
)
String
deptName
;
}
}
}
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
浏览文件 @
ca409c7b
...
@@ -4,7 +4,6 @@ package com.yiring.app.vo.visitor;
...
@@ -4,7 +4,6 @@ package com.yiring.app.vo.visitor;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.visitor.Car
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serial
;
...
@@ -41,11 +40,11 @@ public class VisitorVo implements Serializable {
...
@@ -41,11 +40,11 @@ public class VisitorVo implements Serializable {
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
String
visitorCarNum
;
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
tru
e"
)
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
fals
e"
)
boolean
taskType
;
String
taskType
;
@ApiModelProperty
(
value
=
"邀请人数"
,
example
=
"1"
)
//
@ApiModelProperty(value = "邀请人数", example = "1")
Integer
numOfVisitor
;
//
Integer numOfVisitor;
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"内部邀请"
)
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"内部邀请"
)
String
visitorSource
;
String
visitorSource
;
...
@@ -53,14 +52,17 @@ public class VisitorVo implements Serializable {
...
@@ -53,14 +52,17 @@ public class VisitorVo implements Serializable {
@ApiModelProperty
(
value
=
"标签卡"
,
example
=
"WE34421231"
)
@ApiModelProperty
(
value
=
"标签卡"
,
example
=
"WE34421231"
)
String
labelCard
;
String
labelCard
;
@ApiModelProperty
(
value
=
"标签卡状态"
,
example
=
"使用中"
)
//
@ApiModelProperty(value = "标签卡状态", example = "使用中")
String
labelCardStatus
;
//
String labelCardStatus;
@ApiModelProperty
(
value
=
"所属单位id"
,
example
=
"壹润科技"
)
@ApiModelProperty
(
value
=
"所属单位id"
,
example
=
"壹润科技"
)
String
orgId
;
String
orgId
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
)
String
intervieweeId
;
Long
intervieweeId
;
@ApiModelProperty
(
value
=
"被访人姓名"
,
example
=
"李四"
)
String
intervieweeName
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"来访原因"
)
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"来访原因"
)
String
reason
;
String
reason
;
...
@@ -69,18 +71,21 @@ public class VisitorVo implements Serializable {
...
@@ -69,18 +71,21 @@ public class VisitorVo implements Serializable {
@ApiModelProperty
(
value
=
"收卡时间"
,
example
=
"2022-04-19 14:28:00"
)
@ApiModelProperty
(
value
=
"收卡时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
cardRecTime
;
LocalDateTime
cardRecTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty
(
value
=
"预约到访时间"
,
example
=
"2022-04-19 14:28:00"
)
//
@ApiModelProperty(value = "预约到访时间", example = "2022-04-19 14:28:00")
LocalDateTime
appOfVisitTime
;
//
LocalDateTime appOfVisitTime;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
"2022-04-19 14:28:00"
)
//
@ApiModelProperty(value = "创建时间", example = "2022-04-19 14:28:00")
LocalDateTime
createTime
;
//
LocalDateTime createTime;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"发卡时间"
,
example
=
"2022-04-19 14:28:00"
)
@ApiModelProperty
(
value
=
"发卡时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
cardSendTime
;
LocalDateTime
cardSendTime
;
@ApiModelProperty
(
value
=
"车辆反参"
)
// @ApiModelProperty(value = "车辆反参")
Car
car
;
// Car car;
@ApiModelProperty
(
value
=
"主访人id"
)
Long
mainVisitorId
;
}
}
app/src/main/java/com/yiring/app/web/visitor/InvitationController.java
浏览文件 @
ca409c7b
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
visitor
;
package
com
.
yiring
.
app
.
web
.
visitor
;
import
com.yiring.app.param.visitor.InvitationAppQueryParam
;
import
com.yiring.app.param.visitor.InvitationParam
;
import
com.yiring.app.param.visitor.InvitationParam
;
import
com.yiring.app.param.visitor.InvitationQueryParam
;
import
com.yiring.app.param.visitor.InvitationQueryParam
;
import
com.yiring.app.service.visitor.InvitationService
;
import
com.yiring.app.service.visitor.InvitationService
;
import
com.yiring.app.vo.visitor.InvitationVo
;
import
com.yiring.app.vo.visitor.Invitation
Details
Vo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
com.yiring.common.vo.PageVo
;
...
@@ -69,7 +70,7 @@ public class InvitationController {
...
@@ -69,7 +70,7 @@ public class InvitationController {
@ApiOperation
(
value
=
"查看邀请信息(分页)"
)
@ApiOperation
(
value
=
"查看邀请信息(分页)"
)
@GetMapping
(
"pageInv"
)
@GetMapping
(
"pageInv"
)
public
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
@Valid
InvitationQueryParam
invitationQueryParam
)
{
public
Result
<
PageVo
<
Invitation
Details
Vo
>>
pageInv
(
@Valid
InvitationQueryParam
invitationQueryParam
)
{
return
invitationService
.
pageInv
(
invitationQueryParam
);
return
invitationService
.
pageInv
(
invitationQueryParam
);
}
}
...
@@ -78,4 +79,16 @@ public class InvitationController {
...
@@ -78,4 +79,16 @@ public class InvitationController {
public
void
exportInv
(
HttpServletResponse
response
,
@Valid
InvitationQueryParam
invitationQueryParam
)
{
public
void
exportInv
(
HttpServletResponse
response
,
@Valid
InvitationQueryParam
invitationQueryParam
)
{
invitationService
.
exportInv
(
invitationQueryParam
,
response
);
invitationService
.
exportInv
(
invitationQueryParam
,
response
);
}
}
@ApiOperation
(
value
=
"小程序查看邀请详情"
)
@GetMapping
(
"detailsInv"
)
public
Result
<
InvitationDetailsVo
>
detailsInv
(
@Valid
IdParam
idParam
)
{
return
invitationService
.
detailsInv
(
idParam
);
}
@ApiOperation
(
value
=
"小程序查看邀请"
)
@GetMapping
(
"appGetInv"
)
public
Result
<
PageVo
<
InvitationDetailsVo
>>
appGetInv
(
@Valid
InvitationAppQueryParam
invitationAppQueryParam
)
{
return
invitationService
.
findAllByVisitor_VisitorMobileAndVisitor_Deleted
(
invitationAppQueryParam
);
}
}
}
app/src/main/java/com/yiring/app/web/visitor/VisitorController.java
浏览文件 @
ca409c7b
...
@@ -4,6 +4,7 @@ package com.yiring.app.web.visitor;
...
@@ -4,6 +4,7 @@ package com.yiring.app.web.visitor;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.vo.visitor.VisitorDetailsVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IdParam
;
...
@@ -69,7 +70,7 @@ public class VisitorController {
...
@@ -69,7 +70,7 @@ public class VisitorController {
@ApiOperation
(
value
=
"查看访客信息详情"
)
@ApiOperation
(
value
=
"查看访客信息详情"
)
@GetMapping
(
"selectVisitor"
)
@GetMapping
(
"selectVisitor"
)
public
Result
<
VisitorVo
>
selectVisitor
(
@Valid
IdParam
idParam
)
{
public
Result
<
Visitor
Details
Vo
>
selectVisitor
(
@Valid
IdParam
idParam
)
{
return
visitorService
.
selectVisitor
(
idParam
);
return
visitorService
.
selectVisitor
(
idParam
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论