Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
a98f9f9c
提交
a98f9f9c
authored
5月 07, 2022
作者:
方治民
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev_tzl' of
https://gitlab.yiring.com/chemical-kesai/kshg-api
into dev_fzm
上级
0671e98d
dbf4647d
显示空白字符变更
内嵌
并排
正在显示
51 个修改的文件
包含
2102 行增加
和
141 行删除
+2102
-141
Broadcast.java
.../main/java/com/yiring/app/domain/broadcast/Broadcast.java
+73
-0
BroadcastRepository.java
.../com/yiring/app/domain/broadcast/BroadcastRepository.java
+15
-0
Icon.java
app/src/main/java/com/yiring/app/domain/icon/Icon.java
+67
-0
IconRepository.java
.../main/java/com/yiring/app/domain/icon/IconRepository.java
+14
-0
Invitation.java
...c/main/java/com/yiring/app/domain/visitor/Invitation.java
+18
-3
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
+16
-2
VisitorRepository.java
...java/com/yiring/app/domain/visitor/VisitorRepository.java
+9
-0
BroadcastExportExcel.java
.../com/yiring/app/excel/broadcast/BroadcastExportExcel.java
+45
-0
BroadcastImportExcel.java
.../com/yiring/app/excel/broadcast/BroadcastImportExcel.java
+44
-0
VideoExportExcel.java
...ain/java/com/yiring/app/excel/video/VideoExportExcel.java
+5
-3
InvitationExportExcel.java
...a/com/yiring/app/excel/visitor/InvitationExportExcel.java
+2
-2
WxClient.java
app/src/main/java/com/yiring/app/feign/WxClient.java
+7
-11
AppletUserParam.java
...in/java/com/yiring/app/param/appUser/AppletUserParam.java
+36
-0
AppletUserQueryParam.java
...va/com/yiring/app/param/appUser/AppletUserQueryParam.java
+39
-0
BroadcastParam.java
...n/java/com/yiring/app/param/broadcast/BroadcastParam.java
+55
-0
BroadcastQueryParam.java
...a/com/yiring/app/param/broadcast/BroadcastQueryParam.java
+42
-0
IconParam.java
app/src/main/java/com/yiring/app/param/icon/IconParam.java
+46
-0
InvitationAppQueryParam.java
...com/yiring/app/param/visitor/InvitationAppQueryParam.java
+38
-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
VisitorAppQueryParam.java
...va/com/yiring/app/param/visitor/VisitorAppQueryParam.java
+36
-0
VisitorParam.java
.../main/java/com/yiring/app/param/visitor/VisitorParam.java
+1
-0
VisitorQueryParam.java
.../java/com/yiring/app/param/visitor/VisitorQueryParam.java
+4
-2
AppletUserService.java
.../com/yiring/app/service/appletUser/AppletUserService.java
+14
-6
AppletUserServiceImpl.java
...ng/app/service/appletUser/impl/AppletUserServiceImpl.java
+30
-3
BroadcastService.java
...va/com/yiring/app/service/broadcast/BroadcastService.java
+88
-0
BroadcastServiceImpl.java
...ring/app/service/broadcast/impl/BroadcastServiceImpl.java
+314
-0
IconService.java
...rc/main/java/com/yiring/app/service/icon/IconService.java
+49
-0
IconServiceImpl.java
...ava/com/yiring/app/service/icon/impl/IconServiceImpl.java
+97
-0
VideoServiceImpl.java
...a/com/yiring/app/service/video/impl/VideoServiceImpl.java
+2
-0
InvitationService.java
...ava/com/yiring/app/service/visitor/InvitationService.java
+23
-2
VisitorService.java
...n/java/com/yiring/app/service/visitor/VisitorService.java
+9
-6
InvitationServiceImpl.java
...iring/app/service/visitor/impl/InvitationServiceImpl.java
+168
-25
VisitorServiceImpl.java
...m/yiring/app/service/visitor/impl/VisitorServiceImpl.java
+118
-39
BroadcastVo.java
...rc/main/java/com/yiring/app/vo/broadcast/BroadcastVo.java
+49
-0
BroadcastjcVo.java
.../main/java/com/yiring/app/vo/broadcast/BroadcastjcVo.java
+36
-0
IconVo.java
app/src/main/java/com/yiring/app/vo/icon/IconVo.java
+17
-0
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
VisitorAppVo.java
...src/main/java/com/yiring/app/vo/visitor/VisitorAppVo.java
+57
-0
VisitorDetailsVo.java
...main/java/com/yiring/app/vo/visitor/VisitorDetailsVo.java
+30
-3
VisitorVo.java
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
+36
-17
AppletUserController.java
...java/com/yiring/app/web/appUser/AppletUserController.java
+46
-0
BroadcastController.java
...ava/com/yiring/app/web/broadcast/BroadcastController.java
+94
-0
IconController.java
...src/main/java/com/yiring/app/web/icon/IconController.java
+61
-0
MapController.java
app/src/main/java/com/yiring/app/web/map/MapController.java
+2
-2
VideoController.java
...c/main/java/com/yiring/app/web/video/VideoController.java
+1
-1
InvitationController.java
...java/com/yiring/app/web/visitor/InvitationController.java
+15
-2
VisitorController.java
...in/java/com/yiring/app/web/visitor/VisitorController.java
+10
-1
application.yml
app/src/main/resources/application.yml
+1
-5
没有找到文件。
app/src/main/java/com/yiring/app/domain/broadcast/Broadcast.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
broadcast
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.CreationTimestamp
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.annotations.UpdateTimestamp
;
import
org.hibernate.snowflake.SnowflakeId
;
import
org.locationtech.jts.geom.Point
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 17:06
*/
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@Comment
(
"播报设备表"
)
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_BROADCAST"
)
public
class
Broadcast
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2856845594409003209L
;
@Comment
(
"编号"
)
@Id
@GeneratedValue
(
generator
=
SnowflakeId
.
GENERATOR
)
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
LONG
)
Long
id
;
@Comment
(
"播报设备编号"
)
String
broadcastNum
;
@Comment
(
"播报设备名称"
)
String
broadcastName
;
@Comment
(
"坐标点信息"
)
Point
point
;
@Comment
(
"播报设备地址"
)
String
broadcastAdd
;
@Comment
(
"备注"
)
String
remark
;
@Comment
(
"是否启用"
)
String
status
;
@Comment
(
"创建时间"
)
@CreationTimestamp
LocalDateTime
createTime
;
@Comment
(
"修改时间"
)
@UpdateTimestamp
LocalDateTime
updateTime
;
}
app/src/main/java/com/yiring/app/domain/broadcast/BroadcastRepository.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
broadcast
;
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/5/5 17:13
*/
@Repository
public
interface
BroadcastRepository
extends
JpaRepository
<
Broadcast
,
Serializable
>,
JpaSpecificationExecutor
<
Broadcast
>
{}
app/src/main/java/com/yiring/app/domain/icon/Icon.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
icon
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.snowflake.SnowflakeId
;
/**
*
* @author tzl
* @version 1.0
* @description: 图标
* @date 2022/4/29 11:08
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_ICON"
)
@Comment
(
"图标"
)
public
class
Icon
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
7848846860889883431L
;
@Comment
(
"编号"
)
@Id
@GeneratedValue
(
generator
=
SnowflakeId
.
GENERATOR
)
@GenericGenerator
(
name
=
SnowflakeId
.
GENERATOR
,
strategy
=
SnowflakeId
.
Strategy
.
LONG
)
Long
id
;
@Comment
(
"图标名称"
)
String
iconName
;
@Comment
(
"图标类型"
)
String
iconType
;
@Comment
(
"图标分类"
)
String
iconSort
;
@Comment
(
"在线图标"
)
String
iconOnline
;
@Comment
(
"离线图标"
)
String
iconOffline
;
@Comment
(
"创建时间"
)
LocalDateTime
createTime
;
@Comment
(
"修改时间"
)
LocalDateTime
updateTime
;
}
app/src/main/java/com/yiring/app/domain/icon/IconRepository.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
icon
;
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/29 13:49
*/
@Repository
public
interface
IconRepository
extends
JpaRepository
<
Icon
,
Serializable
>,
JpaSpecificationExecutor
<
Icon
>
{}
app/src/main/java/com/yiring/app/domain/visitor/Invitation.java
浏览文件 @
a98f9f9c
...
...
@@ -3,6 +3,7 @@ package com.yiring.app.domain.visitor;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.yiring.auth.domain.user.User
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
...
...
@@ -11,6 +12,8 @@ import lombok.*;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
org.hibernate.annotations.GenericGenerator
;
import
org.hibernate.snowflake.SnowflakeId
;
...
...
@@ -31,6 +34,8 @@ import org.hibernate.snowflake.SnowflakeId;
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@DynamicInsert
@DynamicUpdate
@Table
(
name
=
"BS_INVITATION"
)
@Comment
(
"邀请信息"
)
public
class
Invitation
implements
Serializable
{
...
...
@@ -50,8 +55,8 @@ public class Invitation implements Serializable {
@Comment
(
"状态"
)
String
status
;
@Comment
(
"邀请人id"
)
Long
inviterId
;
//
@Comment("邀请人id")
//
Long inviterId;
@Comment
(
"邀请人数"
)
Integer
numOfVisitor
;
...
...
@@ -60,12 +65,22 @@ public class Invitation implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
createTime
;
@Comment
(
"修改时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
LocalDateTime
updateTime
;
// @Comment("访客id")
// Long visitorId;
@Comment
(
"被邀请访客"
)
@JsonIgnore
@OneToOne
@OneToOne
(
cascade
=
CascadeType
.
REMOVE
)
@JoinColumn
(
name
=
"visitor_id"
,
referencedColumnName
=
"id"
)
Visitor
visitor
;
@Comment
(
"邀请人"
)
@JsonIgnore
@OneToOne
@JoinColumn
(
name
=
"inviter_id"
,
referencedColumnName
=
"id"
)
User
user
;
}
app/src/main/java/com/yiring/app/domain/visitor/InvitationRepository.java
浏览文件 @
a98f9f9c
...
...
@@ -2,6 +2,8 @@
package
com
.
yiring
.
app
.
domain
.
visitor
;
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.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -12,4 +14,14 @@ import org.springframework.stereotype.Repository;
*/
@Repository
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
浏览文件 @
a98f9f9c
...
...
@@ -2,6 +2,7 @@
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yiring.auth.domain.user.User
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
...
...
@@ -70,8 +71,8 @@ public class Visitor implements Serializable {
@Comment
(
"所属单位id"
)
String
orgId
;
@Comment
(
"被访人id"
)
Stri
ng
intervieweeId
;
//
@Comment("被访人id")
// Lo
ng intervieweeId;
@Comment
(
"来访原因/邀请原因"
)
String
reason
;
...
...
@@ -108,4 +109,17 @@ public class Visitor implements Serializable {
@Comment
(
"访客车辆"
)
@OneToOne
(
cascade
=
{
CascadeType
.
ALL
})
Car
car
;
@Comment
(
"被访人信息"
)
@OneToOne
@JoinColumn
(
name
=
"interviewee_id"
,
referencedColumnName
=
"id"
)
User
user
;
@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
浏览文件 @
a98f9f9c
...
...
@@ -2,6 +2,9 @@
package
com
.
yiring
.
app
.
domain
.
visitor
;
import
java.io.Serializable
;
import
java.util.List
;
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.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -13,4 +16,10 @@ import org.springframework.stereotype.Repository;
@Repository
public
interface
VisitorRepository
extends
JpaRepository
<
Visitor
,
Serializable
>,
JpaSpecificationExecutor
<
Visitor
>
{
Visitor
findByIdAndDeleted
(
Long
id
,
String
deleted
);
List
<
Visitor
>
findAllByMainVisitorIdAndDeletedEquals
(
Long
mainId
,
String
deleted
);
List
<
Visitor
>
findAllByMainVisitorIdAndDeletedEqualsAndIdIsNot
(
Long
mainId
,
String
deleted
,
Long
id
);
Page
<
Visitor
>
findAllByVisitorMobileAndDeletedEquals
(
String
mobile
,
String
deleted
,
Pageable
pageable
);
}
app/src/main/java/com/yiring/app/excel/broadcast/BroadcastExportExcel.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
broadcast
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/6 9:04
*/
@ExcelModel
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
BroadcastExportExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2342047029622668894L
;
@ExcelColumn
(
title
=
"编号"
,
width
=
10
)
String
broadcastNum
;
@ExcelColumn
(
title
=
"设备名称"
,
width
=
10
)
String
broadcastName
;
@ExcelColumn
(
title
=
"经度"
)
double
lon
;
@ExcelColumn
(
title
=
"纬度"
)
double
lat
;
@ExcelColumn
(
title
=
"设备地址"
,
width
=
10
)
String
broadcastAdd
;
@ExcelColumn
(
title
=
"备注"
,
width
=
15
)
String
remark
;
}
app/src/main/java/com/yiring/app/excel/broadcast/BroadcastImportExcel.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
broadcast
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/5/6 09:12
*/
@ExcelModel
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
BroadcastImportExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5422685189135254189L
;
@ExcelColumn
(
title
=
"编号"
)
String
broadcastNum
;
@ExcelColumn
(
title
=
"设备名称"
)
String
broadcastName
;
@ExcelColumn
(
title
=
"经度"
)
double
lon
;
@ExcelColumn
(
title
=
"纬度"
)
double
lat
;
@ExcelColumn
(
title
=
"设备地址"
)
String
broadcastAdd
;
@ExcelColumn
(
title
=
"备注"
)
String
remark
;
// String status;
}
app/src/main/java/com/yiring/app/excel/video/VideoExportExcel.java
浏览文件 @
a98f9f9c
...
...
@@ -7,7 +7,6 @@ import java.io.Serial;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
org.locationtech.jts.geom.Point
;
/**
* @author tzl
...
...
@@ -30,8 +29,11 @@ public class VideoExportExcel implements Serializable {
@ExcelColumn
(
title
=
"摄像头名称"
,
width
=
10
)
String
videoName
;
@ExcelColumn
(
title
=
"坐标点信息(经度,纬度)"
,
width
=
10
)
Point
point
;
@ExcelColumn
(
title
=
"经度"
)
double
lon
;
@ExcelColumn
(
title
=
"纬度"
)
double
lat
;
@ExcelColumn
(
title
=
"m3u8 地址"
,
width
=
10
)
String
m3u8
;
...
...
app/src/main/java/com/yiring/app/excel/visitor/InvitationExportExcel.java
浏览文件 @
a98f9f9c
...
...
@@ -29,7 +29,7 @@ public class InvitationExportExcel implements Serializable {
@ExcelColumn
(
title
=
"邀请原因"
)
String
reason
;
@ExcelColumn
(
title
=
"邀请方式"
)
@ExcelColumn
(
title
=
"邀请方式"
,
mapping
=
"1:个人,2:公司"
)
String
InvitationMethod
;
@ExcelColumn
(
title
=
"邀请人数"
)
...
...
@@ -44,7 +44,7 @@ public class InvitationExportExcel implements Serializable {
@ExcelColumn
(
title
=
"到访人电话"
)
String
visitorMobile
;
@ExcelColumn
(
title
=
"是否特殊任务"
)
@ExcelColumn
(
title
=
"是否特殊任务"
,
mapping
=
"false:否,true:是"
)
String
taskType
;
// Long inviterId;
...
...
app/src/main/java/com/yiring/app/feign/WxClient.java
浏览文件 @
a98f9f9c
...
...
@@ -2,11 +2,10 @@
package
com
.
yiring
.
app
.
feign
;
import
com.alibaba.fastjson.JSONObject
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
@FeignClient
(
url
=
"api.weixin.qq.com"
,
name
=
"wxclient"
)
public
interface
WxClient
{
...
...
@@ -22,13 +21,10 @@ public interface WxClient {
* @date 15:20
*/
@RequestMapping
(
value
=
"/sns/jscode2session"
,
method
=
RequestMethod
.
GET
)
@ApiImplicitParams
(
{
@ApiImplicitParam
(
value
=
"appid"
,
required
=
true
,
name
=
"appid"
),
@ApiImplicitParam
(
value
=
"secret"
,
required
=
true
,
name
=
"secret"
),
@ApiImplicitParam
(
value
=
"js_code"
,
required
=
true
,
name
=
"js_code"
),
@ApiImplicitParam
(
value
=
"grant_type"
,
required
=
true
,
name
=
"grant_type"
),
}
)
JSONObject
getOpenid
(
String
appid
,
String
secret
,
String
js_code
,
String
grant_type
);
JSONObject
getOpenid
(
@RequestParam
(
"appid"
)
String
appid
,
@RequestParam
(
"secret"
)
String
secret
,
@RequestParam
(
"js_code"
)
String
js_code
,
@RequestParam
(
"grant_type"
)
String
grant_type
);
}
app/src/main/java/com/yiring/app/param/appUser/AppletUserParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
appUser
;
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
* @version 1.0
* @description:
* @date 2022/4/28 13:40
*/
@ApiModel
(
"AppletUserParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
AppletUserParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1684195733142347657L
;
@ApiModelProperty
(
value
=
"手机号"
,
example
=
"17674741309"
,
required
=
true
)
@NotEmpty
(
message
=
"手机号不能为空"
)
String
mobile
;
@ApiModelProperty
(
value
=
"微信唯一标识"
,
example
=
"17674741309"
,
required
=
true
)
@NotEmpty
(
message
=
"微信唯一标识不能为空"
)
String
openid
;
}
app/src/main/java/com/yiring/app/param/appUser/AppletUserQueryParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
appUser
;
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 13:52
*/
@ApiModel
(
"AppletUserQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
AppletUserQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1806727740548075365L
;
@ApiModelProperty
(
value
=
"小程序 appId"
,
example
=
"1"
,
required
=
true
)
String
appid
;
@ApiModelProperty
(
value
=
"小程序 appSecret"
,
example
=
"1"
,
required
=
true
)
String
secret
;
@ApiModelProperty
(
value
=
"登录时获取的 code"
,
example
=
"1"
,
required
=
true
)
String
js_code
;
@ApiModelProperty
(
value
=
"授权类型,此处只需填写 authorization_code"
,
example
=
"1"
,
required
=
true
)
String
grant_type
;
}
app/src/main/java/com/yiring/app/param/broadcast/BroadcastParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
broadcast
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 播报设备入参
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 17:14
*/
@ApiModel
(
"BroadcastParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
BroadcastParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
2629601722942495674L
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"1"
,
required
=
true
)
@NotNull
(
message
=
"编号"
)
String
broadcastNum
;
@ApiModelProperty
(
value
=
"经度"
,
example
=
"1.00"
,
required
=
true
)
@NotNull
(
message
=
"经度"
)
Double
lon
;
@ApiModelProperty
(
value
=
"纬度"
,
example
=
"1.00"
,
required
=
true
)
@NotNull
(
message
=
"纬度"
)
Double
lat
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"厂区喇叭"
)
@Size
(
max
=
100
,
message
=
"备注不能超过100字"
)
String
remark
;
@ApiModelProperty
(
value
=
"播报设备地址"
,
example
=
"音柱地址"
,
required
=
true
)
@NotEmpty
(
message
=
"播报设备地址不能为空"
)
String
broadcastAdd
;
@ApiModelProperty
(
value
=
"播报设备地址名称"
,
example
=
"喇叭1"
,
required
=
true
)
@NotEmpty
(
message
=
"播报设备地址名称不能为空"
)
String
broadcastName
;
}
app/src/main/java/com/yiring/app/param/broadcast/BroadcastQueryParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
broadcast
;
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/5/5 17:22
*/
@ApiModel
(
"BroadcastQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
BroadcastQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
7181714985511069309L
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"1"
)
String
broadcastNum
;
@ApiModelProperty
(
value
=
"播报设备地址名称"
,
example
=
"喇叭1"
)
String
broadcastName
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"1"
)
String
status
;
@ApiModelProperty
(
value
=
"分页条数"
,
example
=
"10"
,
required
=
true
)
Integer
pageSize
;
@ApiModelProperty
(
value
=
"当前页数"
,
example
=
"1"
,
required
=
true
)
Integer
pageNo
;
}
app/src/main/java/com/yiring/app/param/icon/IconParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
icon
;
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
* @version 1.0
* @description:
* @date 2022/5/5 9:30
*/
@ApiModel
(
"IconParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
IconParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
666028441935810972L
;
@ApiModelProperty
(
value
=
"图标名称"
,
example
=
"访客头像"
,
required
=
true
)
@NotEmpty
(
message
=
"图标名称不能为空"
)
String
iconName
;
@ApiModelProperty
(
value
=
"图标类型"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"图标类型不能为空"
)
String
iconType
;
@ApiModelProperty
(
value
=
"图标分类"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"图标类型不能为空"
)
String
iconSort
;
@ApiModelProperty
(
value
=
"在线图标地址"
,
required
=
true
)
String
iconOnline
;
@ApiModelProperty
(
value
=
"离线图标地址"
,
required
=
true
)
String
iconOffline
;
}
app/src/main/java/com/yiring/app/param/visitor/InvitationAppQueryParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (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
* @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"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
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
浏览文件 @
a98f9f9c
...
...
@@ -53,7 +53,7 @@ public class InvitationParam implements Serializable {
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
否
"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
false
"
,
required
=
true
)
String
taskType
;
// @ApiModelProperty(value = "访客来源", example = "外部邀请", required = true)
...
...
app/src/main/java/com/yiring/app/param/visitor/InvitationQueryParam.java
浏览文件 @
a98f9f9c
...
...
@@ -38,11 +38,11 @@ public class InvitationQueryParam implements Serializable {
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"fasle"
)
String
taskType
;
@ApiModelProperty
(
value
=
"邀请人
id"
,
example
=
"1
"
)
Long
inviterId
;
@ApiModelProperty
(
value
=
"邀请人
"
,
example
=
"张三
"
)
String
realName
;
// @ApiModelProperty(value = "邀请人部门id", example = "1
")
// Long deptId
;
@ApiModelProperty
(
value
=
"邀请人部门"
,
example
=
"研发
"
)
String
deptName
;
@ApiModelProperty
(
value
=
"预约到访时间(开始)"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
appOfVisitTimeStart
;
...
...
app/src/main/java/com/yiring/app/param/visitor/VisitorAppQueryParam.java
0 → 100644
浏览文件 @
a98f9f9c
/* (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/19 14:15
*/
@ApiModel
(
"VisitorQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorAppQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1158888191240628613L
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
,
required
=
true
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
String
visitorMobile
;
@ApiModelProperty
(
value
=
"分页条数"
,
example
=
"10"
)
Integer
pageSize
;
@ApiModelProperty
(
value
=
"当前页数"
,
example
=
"1"
)
Integer
pageNo
;
}
app/src/main/java/com/yiring/app/param/visitor/VisitorParam.java
浏览文件 @
a98f9f9c
...
...
@@ -33,6 +33,7 @@ public class VisitorParam implements Serializable {
String
visitorName
;
@ApiModelProperty
(
value
=
"到访人电话"
,
example
=
"17688888888"
,
required
=
true
)
@Pattern
(
regexp
=
RegEx
.
MOBILE
,
message
=
"手机号码格式不正确"
)
@NotEmpty
(
message
=
"到访人电话不能为空"
)
String
visitorMobile
;
...
...
app/src/main/java/com/yiring/app/param/visitor/VisitorQueryParam.java
浏览文件 @
a98f9f9c
...
...
@@ -3,6 +3,7 @@ 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
java.time.LocalDateTime
;
import
lombok.*
;
...
...
@@ -20,6 +21,7 @@ import lombok.experimental.FieldDefaults;
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
4314254785949101573L
;
@ApiModelProperty
(
value
=
"访客姓名"
,
example
=
"张三"
)
...
...
@@ -46,8 +48,8 @@ public class VisitorQueryParam implements Serializable {
@ApiModelProperty
(
value
=
"标签卡"
,
example
=
"DS41234231"
)
String
labelCard
;
@ApiModelProperty
(
value
=
"
标签卡状态"
,
example
=
"1
"
)
String
labelCardStatus
;
@ApiModelProperty
(
value
=
"
是否主访人"
,
example
=
"1:是,2否
"
)
String
isMain
;
@ApiModelProperty
(
value
=
"预约到访时间(开始)"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
appOfVisitTimeStart
;
...
...
app/src/main/java/com/yiring/app/service/appletUser/AppletUserService.java
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
appletUser
;
import
com.yiring.app.param.appUser.AppletUserParam
;
import
com.yiring.app.param.appUser.AppletUserQueryParam
;
import
com.yiring.common.core.Result
;
/**
...
...
@@ -13,12 +15,18 @@ public interface AppletUserService {
/**
* 根据用户唯一标识获取手机号码,通过手机号码查询用户来访信息分页
* @author tzl
* @date 2022/4/24 9:34
* @param appid String
* @param secret String
* @param js_code String
* @param grant_type String
* @date 2022/4/28 13:58
* @param appletUserQueryParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
selectMobile
(
String
appid
,
String
secret
,
String
js_code
,
String
grant_type
);
Result
<
String
>
selectMobile
(
AppletUserQueryParam
appletUserQueryParam
);
/**
* 小程序注册
* @author tzl
* @date 2022/4/28 13:43
* @param appletUserParam 入参
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
saveAppUser
(
AppletUserParam
appletUserParam
);
}
app/src/main/java/com/yiring/app/service/appletUser/impl/AppletUserServiceImpl.java
浏览文件 @
a98f9f9c
...
...
@@ -6,10 +6,17 @@ import com.alibaba.fastjson.JSONObject;
import
com.yiring.app.domain.appletUser.AppletUser
;
import
com.yiring.app.domain.appletUser.AppletUserRepository
;
import
com.yiring.app.feign.WxClient
;
import
com.yiring.app.param.appUser.AppletUserParam
;
import
com.yiring.app.param.appUser.AppletUserQueryParam
;
import
com.yiring.app.service.appletUser.AppletUserService
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
java.util.Optional
;
import
javax.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author Administrator
...
...
@@ -17,6 +24,9 @@ import javax.annotation.Resource;
* @description: TODO
* @date 2022/4/24 9:25
*/
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
@Slf4j
public
class
AppletUserServiceImpl
implements
AppletUserService
{
@Resource
...
...
@@ -26,18 +36,35 @@ public class AppletUserServiceImpl implements AppletUserService {
WxClient
wxClient
;
@Override
public
Result
<
String
>
selectMobile
(
String
appid
,
String
secret
,
String
js_code
,
String
grant_type
)
{
JSONObject
jsonObject
=
wxClient
.
getOpenid
(
appid
,
secret
,
js_code
,
grant_type
);
public
Result
<
String
>
selectMobile
(
AppletUserQueryParam
appletUserQueryParam
)
{
JSONObject
jsonObject
=
wxClient
.
getOpenid
(
appletUserQueryParam
.
getAppid
(),
appletUserQueryParam
.
getSecret
(),
appletUserQueryParam
.
getJs_code
(),
appletUserQueryParam
.
getGrant_type
()
);
Object
openid
=
jsonObject
.
get
(
"openid"
);
if
(
StrUtil
.
isNotBlank
(
openid
.
toString
()))
{
Optional
<
AppletUser
>
optional
=
appletUserRepository
.
findById
(
openid
.
toString
());
//如果该微信为第一次登录小程序
if
(
optional
.
isEmpty
())
{
return
Result
.
ok
(
"绑定手机号码"
);
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
AppletUser
appletUser
=
optional
.
get
();
return
Result
.
ok
(
appletUser
.
getMobile
());
}
return
null
;
}
@Override
public
Result
<
String
>
saveAppUser
(
AppletUserParam
appletUserParam
)
{
Integer
integer
=
appletUserRepository
.
countMobile
(
appletUserParam
.
getMobile
());
if
(
integer
>
0
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"手机号已绑定"
);
}
AppletUser
appletUser
=
new
AppletUser
();
BeanUtils
.
copyProperties
(
appletUserParam
,
appletUser
);
appletUserRepository
.
saveAndFlush
(
appletUser
);
return
Result
.
ok
(
appletUser
.
getMobile
());
}
}
app/src/main/java/com/yiring/app/service/broadcast/BroadcastService.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
broadcast
;
import
com.yiring.app.param.broadcast.BroadcastParam
;
import
com.yiring.app.param.broadcast.BroadcastQueryParam
;
import
com.yiring.app.vo.broadcast.BroadcastVo
;
import
com.yiring.app.vo.broadcast.BroadcastjcVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IndexParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
import
org.locationtech.jts.geom.Point
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 17:31
*/
public
interface
BroadcastService
{
/**
* 新增播报设备
* @author tzl
* @date 2022/5/5 17:33
* @param broadcastParam BroadcastParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
saveBroadcast
(
BroadcastParam
broadcastParam
);
/**
* 修改播报设备
* @author tzl
* @date 2022/5/5 17:34
* @param broadcastParam BroadcastParam
* @param idParam IdParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
updateBroadcast
(
BroadcastParam
broadcastParam
,
IdParam
idParam
);
/**
* 删除播报设备
* @author tzl
* @date 2022/5/5 17:35
* @param idParam IdParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
deleteBroadcast
(
IdParam
idParam
);
/**
* 查看设备位置
* @author tzl
* @date 2022/5/5 17:47
* @param idParam IdParam
* @return com.yiring.common.core.Result<org.locationtech.jts.geom.Point>
*/
Result
<
Point
>
selectPoint
(
IdParam
idParam
);
/**
* 分页查询设备
* @author tzl
* @date 2022/5/5 17:49
* @param broadcastQueryParam BroadcastQueryParam
* @return com.yiring.common.core.Result<com.yiring.app.vo.broadcast.BroadcastVo>
*/
Result
<
PageVo
<
BroadcastVo
>>
pageBroadcast
(
BroadcastQueryParam
broadcastQueryParam
);
/**
* 导出播报设备
* @author tzl
* @date 2022/5/6 8:56
* @param broadcastQueryParam BroadcastQueryParam
* @param response HttpServletResponse
*/
void
exportBroadcast
(
BroadcastQueryParam
broadcastQueryParam
,
HttpServletResponse
response
);
/**
* 播报设备导入
* @author tzl
* @date 2022/5/6 10:00
* @param file 文件
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
importBroadcast
(
MultipartFile
file
);
/**
* 根据名字检索
* @author tzl
* @date 2022/5/6 10:26
* @param indexParam 入参
* @return com.yiring.common.core.Result<com.yiring.common.vo.PageVo<com.yiring.app.vo.broadcast.BroadcastVo>>
*/
Result
<
PageVo
<
BroadcastjcVo
>>
selectBroadcastName
(
IndexParam
indexParam
);
}
app/src/main/java/com/yiring/app/service/broadcast/impl/BroadcastServiceImpl.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
broadcast
.
impl
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.github.liaochong.myexcel.core.SaxExcelReader
;
import
com.yiring.app.domain.broadcast.Broadcast
;
import
com.yiring.app.domain.broadcast.BroadcastRepository
;
import
com.yiring.app.excel.broadcast.BroadcastExportExcel
;
import
com.yiring.app.excel.broadcast.BroadcastImportExcel
;
import
com.yiring.app.param.broadcast.BroadcastParam
;
import
com.yiring.app.param.broadcast.BroadcastQueryParam
;
import
com.yiring.app.service.broadcast.BroadcastService
;
import
com.yiring.app.util.GeoUtils
;
import
com.yiring.app.vo.broadcast.BroadcastVo
;
import
com.yiring.app.vo.broadcast.BroadcastjcVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IndexParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.locationtech.jts.geom.Point
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.data.domain.*
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 17:32
*/
@Slf4j
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
public
class
BroadcastServiceImpl
implements
BroadcastService
{
@Resource
BroadcastRepository
broadcastRepository
;
@Override
public
Result
<
String
>
saveBroadcast
(
BroadcastParam
broadcastParam
)
{
if
(
has
(
broadcastParam
.
getBroadcastNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"播报设备编号已存在"
);
}
Broadcast
broadcast
=
new
Broadcast
();
BeanUtils
.
copyProperties
(
broadcastParam
,
broadcast
);
broadcast
.
setPoint
(
GeoUtils
.
createPoint
(
broadcastParam
.
getLon
(),
broadcastParam
.
getLat
()));
broadcastRepository
.
saveAndFlush
(
broadcast
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
updateBroadcast
(
BroadcastParam
broadcastParam
,
IdParam
idParam
)
{
Optional
<
Broadcast
>
byId
=
broadcastRepository
.
findById
(
idParam
.
getId
());
if
(
byId
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Broadcast
broadcast
=
byId
.
get
();
if
(!
broadcast
.
getBroadcastNum
().
equals
(
broadcastParam
.
getBroadcastNum
()))
{
if
(
has
(
broadcastParam
.
getBroadcastNum
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"播报设备编号已存在"
);
}
}
BeanUtils
.
copyProperties
(
broadcastParam
,
broadcast
);
broadcast
.
setPoint
(
GeoUtils
.
createPoint
(
broadcastParam
.
getLon
(),
broadcastParam
.
getLat
()));
broadcastRepository
.
saveAndFlush
(
broadcast
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteBroadcast
(
IdParam
idParam
)
{
Optional
<
Broadcast
>
byId
=
broadcastRepository
.
findById
(
idParam
.
getId
());
if
(
byId
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Broadcast
broadcast
=
byId
.
get
();
broadcastRepository
.
delete
(
broadcast
);
return
Result
.
ok
();
}
@Override
public
Result
<
Point
>
selectPoint
(
IdParam
idParam
)
{
Optional
<
Broadcast
>
byId
=
broadcastRepository
.
findById
(
idParam
.
getId
());
if
(
byId
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Broadcast
broadcast
=
byId
.
get
();
return
Result
.
ok
(
broadcast
.
getPoint
());
}
@Override
public
Result
<
PageVo
<
BroadcastVo
>>
pageBroadcast
(
BroadcastQueryParam
broadcastQueryParam
)
{
PageVo
<
BroadcastVo
>
resultVo
;
//排序
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
Broadcast
.
Fields
.
updateTime
));
if
(
Objects
.
nonNull
(
broadcastQueryParam
.
getPageNo
())
&&
Objects
.
nonNull
(
broadcastQueryParam
.
getPageSize
()))
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
broadcastQueryParam
.
getPageNo
()
-
1
,
broadcastQueryParam
.
getPageSize
());
Page
<
Broadcast
>
all
=
broadcastRepository
.
findAll
(
condition
(
broadcastQueryParam
),
pageable
);
List
<
BroadcastVo
>
data
=
all
.
get
()
.
map
(
invitation
->
{
BroadcastVo
vo
=
new
BroadcastVo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
}
else
{
List
<
Broadcast
>
all
=
broadcastRepository
.
findAll
(
condition
(
broadcastQueryParam
),
sort
);
List
<
BroadcastVo
>
data
=
all
.
stream
()
.
map
(
invitation
->
{
BroadcastVo
vo
=
new
BroadcastVo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
data
.
size
());
}
return
Result
.
ok
(
resultVo
);
}
@Override
public
Result
<
String
>
importBroadcast
(
MultipartFile
file
)
{
if
(
file
.
isEmpty
())
{
throw
new
RuntimeException
(
"请选择文件"
);
}
List
<
BroadcastImportExcel
>
broadcastImportExcels
;
try
(
InputStream
inputStream
=
file
.
getInputStream
())
{
broadcastImportExcels
=
SaxExcelReader
.
of
(
BroadcastImportExcel
.
class
)
.
rowFilter
(
row
->
row
.
getRowNum
()
>
0
)
.
ignoreBlankRow
()
.
read
(
inputStream
);
}
catch
(
IOException
e
)
{
log
.
info
(
e
.
getMessage
());
throw
new
RuntimeException
(
"文件导入异常"
);
}
List
<
Broadcast
>
broadcasts
=
broadcastImportExcels
.
stream
()
.
map
(
broadcastImportExcel
->
{
Broadcast
broadcast
=
new
Broadcast
();
BeanUtils
.
copyProperties
(
broadcastImportExcel
,
broadcast
);
broadcast
.
setPoint
(
GeoUtils
.
createPoint
(
broadcastImportExcel
.
getLon
(),
broadcastImportExcel
.
getLat
()));
broadcast
.
setCreateTime
(
LocalDateTime
.
now
());
return
broadcast
;
})
.
toList
();
//检查是否有编号重复的数据
if
(
broadcasts
!=
null
)
{
broadcasts
.
forEach
(
broadcast
->
broadcastRepository
.
findOne
((
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
if
(
StrUtil
.
isNotBlank
(
broadcast
.
getBroadcastNum
()))
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
Broadcast
.
Fields
.
broadcastNum
).
as
(
String
.
class
),
broadcast
.
getBroadcastNum
()
)
);
}
return
cq
.
where
(
predicates
.
toArray
(
new
Predicate
[
0
])).
getRestriction
();
})
.
ifPresent
(
one
->
{
//如果存在则操作修改
broadcast
.
setId
(
one
.
getId
());
})
);
//根据编号去重
broadcasts
=
broadcasts
.
stream
()
.
collect
(
Collectors
.
collectingAndThen
(
Collectors
.
toCollection
(()
->
new
TreeSet
<>(
Comparator
.
comparing
(
Broadcast:
:
getBroadcastNum
))
),
ArrayList:
:
new
)
);
broadcastRepository
.
saveAllAndFlush
(
broadcasts
);
}
return
Result
.
ok
();
}
@Override
public
Result
<
PageVo
<
BroadcastjcVo
>>
selectBroadcastName
(
IndexParam
indexParam
)
{
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
Broadcast
.
Fields
.
updateTime
));
List
<
Broadcast
>
all
=
broadcastRepository
.
findAll
(
condition
(
BroadcastQueryParam
.
builder
().
broadcastName
(
indexParam
.
getStr
()).
build
()),
sort
);
List
<
BroadcastjcVo
>
data
=
all
.
stream
()
.
map
(
broadcast
->
{
BroadcastjcVo
vo
=
new
BroadcastjcVo
();
BeanUtils
.
copyProperties
(
broadcast
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
PageVo
<
BroadcastjcVo
>
resultVo
=
PageVo
.
build
(
data
,
data
.
size
());
return
Result
.
ok
(
resultVo
);
}
@Override
public
void
exportBroadcast
(
BroadcastQueryParam
broadcastQueryParam
,
HttpServletResponse
response
)
{
List
<
Broadcast
>
broadcasts
=
broadcastRepository
.
findAll
(
condition
(
broadcastQueryParam
));
List
<
BroadcastExportExcel
>
broadcastExportExcels
=
broadcasts
.
stream
()
.
map
(
broadcast
->
{
BroadcastExportExcel
broadcastExportExcel
=
new
BroadcastExportExcel
();
BeanUtils
.
copyProperties
(
broadcast
,
broadcastExportExcel
);
broadcastExportExcel
.
setLon
(
broadcast
.
getPoint
().
getX
());
broadcastExportExcel
.
setLat
(
broadcast
.
getPoint
().
getY
());
return
broadcastExportExcel
;
})
.
toList
();
try
(
DefaultStreamExcelBuilder
<
BroadcastExportExcel
>
defaultStreamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
BroadcastExportExcel
.
class
)
.
threadPool
(
Executors
.
newFixedThreadPool
(
2
))
.
rowHeight
(
14
)
.
titleRowHeight
(
14
)
.
widths
(
8
)
.
style
(
"cell->vertical-align:center;text-align:center"
,
"title->vertical-align:center;text-align:center;font-weight:bold;font-family:等线"
)
.
start
()
)
{
defaultStreamExcelBuilder
.
append
(
broadcastExportExcels
);
String
fileName
=
URLEncoder
.
encode
(
"播报信息信息.xlsx"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
Workbook
workbook
=
defaultStreamExcelBuilder
.
fixedTitles
().
build
();
workbook
.
write
(
out
);
workbook
.
close
();
out
.
flush
();
out
.
close
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"导出播报信息信息失败: "
+
e
.
getMessage
());
}
}
public
Specification
<
Broadcast
>
condition
(
BroadcastQueryParam
broadcastQueryParam
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
List
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
StrUtil
.
isNotBlank
(
broadcastQueryParam
.
getBroadcastName
()))
{
list
.
add
(
criteriaBuilder
.
like
(
root
.
get
(
Broadcast
.
Fields
.
broadcastName
).
as
(
String
.
class
),
"%"
+
broadcastQueryParam
.
getBroadcastName
()
+
"%"
)
);
}
if
(
StrUtil
.
isNotBlank
(
broadcastQueryParam
.
getBroadcastNum
()))
{
list
.
add
(
criteriaBuilder
.
like
(
root
.
get
(
Broadcast
.
Fields
.
broadcastNum
).
as
(
String
.
class
),
"%"
+
broadcastQueryParam
.
getBroadcastNum
()
+
"%"
)
);
}
if
(
StrUtil
.
isNotBlank
(
broadcastQueryParam
.
getStatus
()))
{
list
.
add
(
criteriaBuilder
.
like
(
root
.
get
(
Broadcast
.
Fields
.
status
).
as
(
String
.
class
),
"%"
+
broadcastQueryParam
.
getStatus
()
+
"%"
)
);
}
Order
order
=
criteriaBuilder
.
desc
(
root
.
get
(
Broadcast
.
Fields
.
updateTime
));
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
query
.
where
(
list
.
toArray
(
predicates
));
query
.
orderBy
(
order
);
return
criteriaBuilder
.
and
(
list
.
toArray
(
predicates
));
};
}
boolean
has
(
String
param
)
{
Broadcast
broadcast
=
Broadcast
.
builder
().
broadcastNum
(
param
).
build
();
return
broadcastRepository
.
count
(
Example
.
of
(
broadcast
))
>
0
;
}
}
app/src/main/java/com/yiring/app/service/icon/IconService.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
icon
;
import
com.yiring.app.param.icon.IconParam
;
import
com.yiring.app.vo.icon.IconVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
/**
* @author tzl
* @date 2022/5/5 9:28
*/
public
interface
IconService
{
/**
* 图标新增接口
* @author tzl
* @date 2022/5/5 10:03
* @param iconParam IconParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
saveIcon
(
IconParam
iconParam
);
/**
* 图标删除接口
* @author tzl
* @date 2022/5/5 10:23
* @param idParam IdParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
deleteIcon
(
IdParam
idParam
);
/**
* 图标修改接口
* @author tzl
* @date 2022/5/5 10:26
* @param iconParam IconParam
* @param idParam IdParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
updateIcon
(
IconParam
iconParam
,
IdParam
idParam
);
/**
* 分页查询
* @author tzl
* @date 2022/5/5 15:09
* @param pageParam PageParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
PageVo
<
IconVo
>>
pageIcon
(
PageParam
pageParam
);
}
app/src/main/java/com/yiring/app/service/icon/impl/IconServiceImpl.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
icon
.
impl
;
import
com.yiring.app.domain.icon.Icon
;
import
com.yiring.app.domain.icon.IconRepository
;
import
com.yiring.app.param.icon.IconParam
;
import
com.yiring.app.service.icon.IconService
;
import
com.yiring.app.vo.icon.IconVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.data.domain.*
;
import
org.springframework.stereotype.Service
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 9:28
*/
@Service
public
class
IconServiceImpl
implements
IconService
{
@Resource
IconRepository
iconRepository
;
@Override
public
Result
<
String
>
saveIcon
(
IconParam
iconParam
)
{
if
(
hasIconName
(
iconParam
.
getIconName
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"图标名称已存在"
);
}
Icon
icon
=
new
Icon
();
BeanUtils
.
copyProperties
(
iconParam
,
icon
);
iconRepository
.
saveAndFlush
(
icon
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteIcon
(
IdParam
idParam
)
{
Optional
<
Icon
>
optional
=
iconRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Icon
icon
=
optional
.
get
();
iconRepository
.
delete
(
icon
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
updateIcon
(
IconParam
iconParam
,
IdParam
idParam
)
{
Optional
<
Icon
>
optional
=
iconRepository
.
findById
(
idParam
.
getId
());
if
(
optional
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Icon
icon
=
optional
.
get
();
//当修改图标名称时
if
(!
icon
.
getIconName
().
equals
(
iconParam
.
getIconName
()))
{
if
(
hasIconName
(
iconParam
.
getIconName
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"图标名称已存在"
);
}
}
BeanUtils
.
copyProperties
(
iconParam
,
icon
);
iconRepository
.
saveAndFlush
(
icon
);
return
Result
.
ok
();
}
@Override
public
Result
<
PageVo
<
IconVo
>>
pageIcon
(
PageParam
pageParam
)
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
pageParam
.
getPageNo
()
-
1
,
pageParam
.
getPageSize
());
Page
<
Icon
>
all
=
iconRepository
.
findAll
(
pageable
);
List
<
IconVo
>
data
=
all
.
get
()
.
map
(
icon
->
{
IconVo
vo
=
new
IconVo
();
BeanUtils
.
copyProperties
(
icon
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
PageVo
<
IconVo
>
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
return
Result
.
ok
(
resultVo
);
}
public
boolean
hasIconName
(
String
param
)
{
Icon
icon
=
Icon
.
builder
().
iconName
(
param
).
build
();
long
count
=
iconRepository
.
count
(
Example
.
of
(
icon
));
return
count
>
0
;
}
}
app/src/main/java/com/yiring/app/service/video/impl/VideoServiceImpl.java
浏览文件 @
a98f9f9c
...
...
@@ -258,6 +258,8 @@ public class VideoServiceImpl implements VideoService {
.
map
(
video
->
{
VideoExportExcel
videoExportExcel
=
new
VideoExportExcel
();
BeanUtils
.
copyProperties
(
video
,
videoExportExcel
);
videoExportExcel
.
setLon
(
video
.
getPoint
().
getX
());
videoExportExcel
.
setLat
(
video
.
getPoint
().
getY
());
return
videoExportExcel
;
})
.
collect
(
Collectors
.
toList
());
...
...
app/src/main/java/com/yiring/app/service/visitor/InvitationService.java
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
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.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.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
...
...
@@ -38,7 +39,7 @@ public interface InvitationService {
* @date 2022/4/24 17:56
* @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 {
* @param invitationQueryParam 筛选条件
*/
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
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
visitor
;
import
com.yiring.app.param.visitor.VisitorAppQueryParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.vo.visitor.VisitorAppVo
;
import
com.yiring.app.vo.visitor.VisitorDetailsVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
...
...
@@ -15,7 +18,7 @@ import javax.servlet.http.HttpServletResponse;
*/
public
interface
VisitorService
{
/**
* 访客
新增
* 访客
登记
* @param visitorParam 新增访客入参
* @return 是否成功
*/
...
...
@@ -41,7 +44,7 @@ public interface VisitorService {
* @param idParam 主键id
* @return 访客信息
*/
Result
<
VisitorVo
>
selectVisitor
(
IdParam
idParam
);
Result
<
Visitor
Details
Vo
>
selectVisitor
(
IdParam
idParam
);
/**
* 分页查询
...
...
@@ -73,11 +76,11 @@ public interface VisitorService {
Result
<
String
>
cardRec
(
IdParam
idParam
);
/**
*
查看详情,并且带出该访客的随访人信息
*
小程序查看来访记录
* @author tzl
* @date 2022/4/2
5 16:48
* @param
idParam 主键id
* @date 2022/4/2
9 15:03
* @param
visitorAppQueryParam 入参
* @return com.yiring.common.core.Result<com.yiring.app.vo.visitor.VisitorVo>
*/
Result
<
VisitorVo
>
selectInfo
(
IdParam
id
Param
);
Result
<
PageVo
<
VisitorAppVo
>>
selectInfo
(
VisitorAppQueryParam
visitorAppQuery
Param
);
}
app/src/main/java/com/yiring/app/service/visitor/impl/InvitationServiceImpl.java
浏览文件 @
a98f9f9c
...
...
@@ -8,10 +8,13 @@ import com.yiring.app.domain.visitor.InvitationRepository;
import
com.yiring.app.domain.visitor.Visitor
;
import
com.yiring.app.domain.visitor.VisitorRepository
;
import
com.yiring.app.excel.visitor.InvitationExportExcel
;
import
com.yiring.app.param.visitor.InvitationAppQueryParam
;
import
com.yiring.app.param.visitor.InvitationParam
;
import
com.yiring.app.param.visitor.InvitationQueryParam
;
import
com.yiring.app.service.visitor.InvitationService
;
import
com.yiring.app.vo.visitor.InvitationVo
;
import
com.yiring.app.vo.visitor.InvitationDetailsVo
;
import
com.yiring.auth.domain.dept.Department
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
...
...
@@ -29,6 +32,7 @@ import java.util.stream.Collectors;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Join
;
import
javax.persistence.criteria.JoinType
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -58,21 +62,30 @@ public class InvitationServiceImpl implements InvitationService {
@Override
public
Result
<
String
>
saveInv
(
InvitationParam
invitationParam
)
{
User
user
=
User
.
builder
().
id
(
invitationParam
.
getInviterId
()).
build
();
Visitor
visitor
=
new
Visitor
();
BeanUtils
.
copyProperties
(
invitationParam
,
visitor
);
visitor
.
setUser
(
user
);
visitor
.
setCreateTime
(
LocalDateTime
.
now
());
//身份证验证
// if(StrUtil.isNotBlank(invitationParam.getVisitorCarNum())){
// if (invitationParam.getVisitorCarNum().matches(RegEx.)) {
// return Result.no(Status.BAD_REQUEST, "请输入正确的车牌号码");
// }
// }
//设置创建时间和默认状态
Invitation
invitation
=
Invitation
.
builder
()
.
createTime
(
LocalDateTime
.
now
())
.
updateTime
(
LocalDateTime
.
now
())
.
status
(
"已发送"
)
.
visitor
(
visitor
)
.
InvitationMethod
(
invitationParam
.
getInvitationMethod
())
.
numOfVisitor
(
invitationParam
.
getNumOfVisitor
())
.
inviterId
(
invitationParam
.
getInviterId
()
)
.
user
(
user
)
.
build
();
//添加一条访客未到访信息
if
(
invitationParam
.
getInvitationMethod
().
equals
(
"
个人
"
))
{
if
(
invitationParam
.
getInvitationMethod
().
equals
(
"
1
"
))
{
visitor
.
setVisitorSource
(
"邀请个人"
);
}
else
{
visitor
.
setVisitorSource
(
"邀请公司"
);
...
...
@@ -95,7 +108,12 @@ public class InvitationServiceImpl implements InvitationService {
Invitation
invitation
=
optional
.
get
();
Visitor
visitor2
=
invitation
.
getVisitor
();
if
(
invitation
.
getVisitor
().
getCardSendTime
()
!=
null
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"访客已到访,无法修改"
);
}
BeanUtils
.
copyProperties
(
invitationParam
,
invitation
);
invitation
.
setUpdateTime
(
LocalDateTime
.
now
());
invitationRepository
.
saveAndFlush
(
invitation
);
//修改访客未到访信息
if
(
visitor2
==
null
)
{
...
...
@@ -103,10 +121,13 @@ public class InvitationServiceImpl implements InvitationService {
visitor2
=
new
Visitor
();
}
BeanUtils
.
copyProperties
(
invitationParam
,
visitor2
);
visitor2
.
setUser
(
invitation
.
getUser
());
// visitor2.setIntervieweeId(invitationParam.getInviterId());
visitorRepository
.
saveAndFlush
(
visitor2
);
//短信通知该手机用户
//
//
return
Result
.
ok
();
}
...
...
@@ -118,7 +139,7 @@ public class InvitationServiceImpl implements InvitationService {
}
Invitation
invitation
=
optional
.
get
();
invitationRepository
.
delete
(
invitation
);
visitorRepository
.
delete
(
invitation
.
getVisitor
());
//
visitorRepository.delete(invitation.getVisitor());
//短信通知该手机用户邀请取消
//
//
...
...
@@ -126,10 +147,10 @@ public class InvitationServiceImpl implements InvitationService {
}
@Override
public
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
InvitationQueryParam
invitationQueryParam
)
{
PageVo
<
InvitationVo
>
resultVo
;
public
Result
<
PageVo
<
Invitation
Details
Vo
>>
pageInv
(
InvitationQueryParam
invitationQueryParam
)
{
PageVo
<
Invitation
Details
Vo
>
resultVo
;
//排序
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
Visitor
.
Fields
.
cre
ateTime
));
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
Invitation
.
Fields
.
upd
ateTime
));
if
(
Objects
.
nonNull
(
invitationQueryParam
.
getPageNo
())
&&
Objects
.
nonNull
(
invitationQueryParam
.
getPageSize
()))
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
...
...
@@ -137,22 +158,40 @@ public class InvitationServiceImpl implements InvitationService {
invitationQueryParam
.
getPageSize
()
);
Page
<
Invitation
>
all
=
invitationRepository
.
findAll
(
condition
(
invitationQueryParam
),
pageable
);
List
<
InvitationVo
>
data
=
all
List
<
Invitation
Details
Vo
>
data
=
all
.
get
()
.
map
(
invitation
->
{
Invitation
Vo
vo
=
new
Invitation
Vo
();
Invitation
DetailsVo
vo
=
new
InvitationDetails
Vo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
//翻译邀请人姓名,部门
if
(
invitation
.
getUser
()
!=
null
)
{
InvitationDetailsVo
.
User
user
=
new
InvitationDetailsVo
.
User
();
user
.
setDeptName
(
invitation
.
getUser
().
getDepartment
().
getName
());
user
.
setRealName
(
invitation
.
getUser
().
getRealName
());
user
.
setMobile
(
invitation
.
getUser
().
getMobile
());
user
.
setId
(
invitation
.
getUser
().
getId
());
vo
.
setUser
(
user
);
}
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
}
else
{
List
<
Invitation
>
all
=
invitationRepository
.
findAll
(
condition
(
invitationQueryParam
),
sort
);
List
<
InvitationVo
>
data
=
all
List
<
Invitation
Details
Vo
>
data
=
all
.
stream
()
.
map
(
invitation
->
{
Invitation
Vo
vo
=
new
Invitation
Vo
();
Invitation
DetailsVo
vo
=
new
InvitationDetails
Vo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
//翻译邀请人姓名,部门
if
(
invitation
.
getUser
()
!=
null
)
{
InvitationDetailsVo
.
User
user
=
new
InvitationDetailsVo
.
User
();
user
.
setDeptName
(
invitation
.
getUser
().
getDepartment
().
getName
());
user
.
setRealName
(
invitation
.
getUser
().
getRealName
());
user
.
setMobile
(
invitation
.
getUser
().
getMobile
());
user
.
setId
(
invitation
.
getUser
().
getId
());
vo
.
setUser
(
user
);
}
return
vo
;
})
.
collect
(
Collectors
.
toList
());
...
...
@@ -168,10 +207,14 @@ public class InvitationServiceImpl implements InvitationService {
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Invitation
invitation
=
optional
.
get
();
if
(
invitation
.
getVisitor
().
getCardSendTime
()
!=
null
)
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"访客已到访,无法修改"
);
}
if
(
invitation
.
getVisitor
().
getAppOfVisitTime
().
isBefore
(
LocalDateTime
.
now
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"预约时间已过"
);
}
invitation
.
setStatus
(
"已撤回"
);
invitation
.
setUpdateTime
(
LocalDateTime
.
now
());
Visitor
visitor
=
invitation
.
getVisitor
();
// 逻辑删除对应访客信息
if
(
visitor
!=
null
)
{
...
...
@@ -193,10 +236,10 @@ public class InvitationServiceImpl implements InvitationService {
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"预约时间已过"
);
}
invitation
.
setStatus
(
"已发送"
);
invitation
.
setUpdateTime
(
LocalDateTime
.
now
());
//添加访客信息
Visitor
visitor
=
invitation
.
getVisitor
();
//
逻辑删除对应访客信息
//
if
(
visitor
!=
null
)
{
visitor
.
setDeleted
(
"N"
);
visitorRepository
.
saveAndFlush
(
visitor
);
...
...
@@ -215,6 +258,9 @@ public class InvitationServiceImpl implements InvitationService {
InvitationExportExcel
invitationExportExcel
=
new
InvitationExportExcel
();
BeanUtils
.
copyProperties
(
invitation
,
invitationExportExcel
);
BeanUtils
.
copyProperties
(
invitation
.
getVisitor
(),
invitationExportExcel
);
invitationExportExcel
.
setInviterName
(
invitation
.
getUser
().
getRealName
());
invitationExportExcel
.
setInviterDept
(
invitation
.
getUser
().
getDepartment
().
getName
());
return
invitationExportExcel
;
})
.
toList
();
...
...
@@ -250,14 +296,101 @@ public class InvitationServiceImpl implements InvitationService {
}
}
@Override
public
Result
<
InvitationDetailsVo
>
detailsInv
(
IdParam
idParam
)
{
Optional
<
Invitation
>
byId
=
invitationRepository
.
findById
(
idParam
.
getId
());
if
(
byId
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
Invitation
invitation
=
byId
.
get
();
InvitationDetailsVo
vo
=
new
InvitationDetailsVo
();
BeanUtils
.
copyProperties
(
invitation
,
vo
);
//翻译邀请人姓名,部门
if
(
invitation
.
getUser
()
!=
null
)
{
InvitationDetailsVo
.
User
user
=
new
InvitationDetailsVo
.
User
();
user
.
setDeptName
(
invitation
.
getUser
().
getDepartment
().
getName
());
user
.
setRealName
(
invitation
.
getUser
().
getRealName
());
user
.
setMobile
(
invitation
.
getUser
().
getMobile
());
vo
.
setUser
(
user
);
}
return
Result
.
ok
(
vo
);
}
@Override
public
Result
<
PageVo
<
InvitationDetailsVo
>>
findAllByVisitor_VisitorMobileAndVisitor_Deleted
(
InvitationAppQueryParam
invitationAppQueryParam
)
{
PageVo
<
InvitationDetailsVo
>
resultVo
;
//排序
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
Visitor
.
Fields
.
createTime
));
if
(
Objects
.
nonNull
(
invitationAppQueryParam
.
getPageNo
())
&&
Objects
.
nonNull
(
invitationAppQueryParam
.
getPageSize
())
)
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
invitationAppQueryParam
.
getPageNo
()
-
1
,
invitationAppQueryParam
.
getPageSize
()
);
Page
<
Invitation
>
all
=
invitationRepository
.
findAllByVisitor_VisitorMobileAndVisitor_Deleted
(
invitationAppQueryParam
.
getVisitorMobile
(),
"N"
,
pageable
);
List
<
InvitationDetailsVo
>
data
=
all
.
get
()
.
map
(
invitationResult
->
{
InvitationDetailsVo
vo
=
new
InvitationDetailsVo
();
BeanUtils
.
copyProperties
(
invitationResult
,
vo
);
//翻译邀请人姓名,部门
return
getInvitationDetailsVo
(
invitationResult
,
vo
);
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
}
else
{
Visitor
visitor
=
Visitor
.
builder
()
.
visitorMobile
(
invitationAppQueryParam
.
getVisitorMobile
())
.
deleted
(
"N"
)
.
build
();
Invitation
invitation
=
Invitation
.
builder
().
visitor
(
visitor
).
build
();
List
<
Invitation
>
all
=
invitationRepository
.
findAll
(
Example
.
of
(
invitation
),
sort
);
List
<
InvitationDetailsVo
>
data
=
all
.
stream
()
.
map
(
invitationResult
->
{
InvitationDetailsVo
vo
=
new
InvitationDetailsVo
();
BeanUtils
.
copyProperties
(
invitationResult
,
vo
);
//翻译邀请人姓名,部门
return
getInvitationDetailsVo
(
invitationResult
,
vo
);
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
data
.
size
());
}
return
Result
.
ok
(
resultVo
);
}
private
InvitationDetailsVo
getInvitationDetailsVo
(
Invitation
invitationResult
,
InvitationDetailsVo
vo
)
{
if
(
invitationResult
.
getUser
()
!=
null
)
{
InvitationDetailsVo
.
User
user
=
new
InvitationDetailsVo
.
User
();
user
.
setDeptName
(
invitationResult
.
getUser
().
getDepartment
().
getName
());
user
.
setRealName
(
invitationResult
.
getUser
().
getRealName
());
user
.
setMobile
(
invitationResult
.
getUser
().
getMobile
());
vo
.
setUser
(
user
);
}
return
vo
;
}
public
Specification
<
Invitation
>
condition
(
InvitationQueryParam
invitationQueryParam
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
Join
<
Invitation
,
Visitor
>
join
=
root
.
join
(
"visitor"
,
JoinType
.
LEFT
);
Join
<
Invitation
,
Visitor
>
joinVisitor
=
root
.
join
(
"visitor"
,
JoinType
.
LEFT
);
Join
<
Invitation
,
User
>
joinUser
=
joinVisitor
.
join
(
"user"
,
JoinType
.
LEFT
);
Join
<
User
,
Department
>
departmentJoin
=
joinUser
.
join
(
"department"
,
JoinType
.
LEFT
);
// Join<User, Department> joinDepartment = root.join(User.Fields.department, JoinType.LEFT);
List
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getVisitorName
()))
{
list
.
add
(
criteriaBuilder
.
like
(
join
.
get
(
Visitor
.
Fields
.
visitorName
).
as
(
String
.
class
),
join
Visitor
.
get
(
Visitor
.
Fields
.
visitorName
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getVisitorName
()
+
"%"
)
);
...
...
@@ -266,7 +399,7 @@ public class InvitationServiceImpl implements InvitationService {
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getVisitorMobile
()))
{
list
.
add
(
criteriaBuilder
.
like
(
join
.
get
(
Visitor
.
Fields
.
visitorMobile
).
as
(
String
.
class
),
join
Visitor
.
get
(
Visitor
.
Fields
.
visitorMobile
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getVisitorMobile
()
+
"%"
)
);
...
...
@@ -275,7 +408,7 @@ public class InvitationServiceImpl implements InvitationService {
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getOrgId
()))
{
list
.
add
(
criteriaBuilder
.
like
(
join
.
get
(
Visitor
.
Fields
.
orgId
).
as
(
String
.
class
),
join
Visitor
.
get
(
Visitor
.
Fields
.
orgId
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getOrgId
()
+
"%"
)
);
...
...
@@ -283,20 +416,30 @@ public class InvitationServiceImpl implements InvitationService {
if
(
StrUtil
.
isNotBlank
(
invitationQueryParam
.
getTaskType
()))
{
list
.
add
(
criteriaBuilder
.
equal
(
join
.
get
(
Visitor
.
Fields
.
taskType
).
as
(
String
.
class
),
join
Visitor
.
get
(
Visitor
.
Fields
.
taskType
).
as
(
String
.
class
),
invitationQueryParam
.
getTaskType
()
)
);
}
if
(
invitationQueryParam
.
get
InviterId
()
!=
null
)
{
if
(
invitationQueryParam
.
get
RealName
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
Invitation
.
Fields
.
inviterId
).
as
(
String
.
class
),
invitationQueryParam
.
getInviterId
()
criteriaBuilder
.
like
(
joinUser
.
get
(
User
.
Fields
.
realName
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getRealName
()
+
"%"
)
);
}
if
(
invitationQueryParam
.
getDeptName
()
!=
null
)
{
list
.
add
(
criteriaBuilder
.
like
(
departmentJoin
.
get
(
Department
.
Fields
.
name
).
as
(
String
.
class
),
"%"
+
invitationQueryParam
.
getDeptName
()
+
"%"
)
);
}
if
(
Objects
.
nonNull
(
invitationQueryParam
.
getAppOfVisitTimeStart
())
&&
Objects
.
nonNull
(
invitationQueryParam
.
getAppOfVisitTimeEnd
())
...
...
@@ -304,16 +447,16 @@ public class InvitationServiceImpl implements InvitationService {
//预约到访时间区间段查询
list
.
add
(
criteriaBuilder
.
between
(
join
.
get
(
Visitor
.
Fields
.
appOfVisitTime
),
join
Visitor
.
get
(
Visitor
.
Fields
.
appOfVisitTime
),
invitationQueryParam
.
getAppOfVisitTimeStart
(),
invitationQueryParam
.
getAppOfVisitTimeEnd
()
)
);
}
Order
order
=
criteriaBuilder
.
desc
(
root
.
get
(
Invitation
.
Fields
.
updateTime
));
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
query
.
where
(
list
.
toArray
(
predicates
));
query
.
orderBy
(
order
);
return
criteriaBuilder
.
and
(
list
.
toArray
(
predicates
));
};
}
...
...
app/src/main/java/com/yiring/app/service/visitor/impl/VisitorServiceImpl.java
浏览文件 @
a98f9f9c
...
...
@@ -3,19 +3,23 @@ package com.yiring.app.service.visitor.impl;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.domain.appletUser.AppletUserRepository
;
import
com.yiring.app.domain.visitor.Car
;
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.VisitorAppQueryParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.service.visitor.CarService
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.vo.visitor.VisitorAppVo
;
import
com.yiring.app.vo.visitor.VisitorDetailsVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.auth.domain.user.User
;
import
com.yiring.common.constant.RegEx
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.domain.BasicEntity
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.OutputStream
;
...
...
@@ -29,6 +33,9 @@ import java.util.Optional;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Join
;
import
javax.persistence.criteria.JoinType
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -54,21 +61,25 @@ public class VisitorServiceImpl implements VisitorService {
@Resource
CarService
carService
;
@Resource
AppletUserRepository
appletUserRepository
;
@Override
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
)
{
//如果主访人员id不为空,
Visitor
optional
=
visitorRepository
.
findByIdAndDeleted
(
visitorParam
.
getMainVisitorId
(),
"N"
);
if
(
optional
==
null
)
{
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
)
{
//校验车辆必填信息
...
...
@@ -127,20 +138,52 @@ public class VisitorServiceImpl implements VisitorService {
}
}
BeanUtils
.
copyProperties
(
visitorParam
,
optional
);
optional
.
setUpdateTime
(
LocalDateTime
.
now
());
visitorRepository
.
saveAndFlush
(
optional
);
return
Result
.
ok
();
}
@Override
public
Result
<
VisitorVo
>
selectVisitor
(
IdParam
idParam
)
{
public
Result
<
Visitor
Details
Vo
>
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
();
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
);
VisitorDetailsVo
.
UserVo
userVo
=
VisitorDetailsVo
.
UserVo
.
builder
()
.
realName
(
visitor
.
getUser
().
getRealName
())
.
mobile
(
visitor
.
getUser
().
getMobile
())
.
deptName
(
visitor
.
getUser
().
getDepartment
().
getName
())
.
build
();
vo
.
setUserVo
(
userVo
);
vo
.
setList
(
listResult
);
return
Result
.
ok
(
vo
);
}
...
...
@@ -158,6 +201,16 @@ public class VisitorServiceImpl implements VisitorService {
.
map
(
visitor
->
{
VisitorVo
vo
=
new
VisitorVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
VisitorVo
.
UserVo
userVo
=
VisitorVo
.
UserVo
.
builder
()
.
realName
(
visitor
.
getUser
().
getRealName
())
.
build
();
vo
.
setUserVo
(
userVo
);
//翻译被访问人姓名
// if (vo.getIntervieweeId() != null) {
// Optional<User> byId = userRepository.findById(vo.getIntervieweeId());
// byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName()));
// }
return
vo
;
})
.
collect
(
Collectors
.
toList
());
...
...
@@ -169,6 +222,11 @@ public class VisitorServiceImpl implements VisitorService {
.
map
(
visitor
->
{
VisitorVo
vo
=
new
VisitorVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
VisitorVo
.
UserVo
userVo
=
VisitorVo
.
UserVo
.
builder
()
.
realName
(
visitor
.
getUser
().
getRealName
())
.
build
();
vo
.
setUserVo
(
userVo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
...
...
@@ -206,6 +264,7 @@ public class VisitorServiceImpl implements VisitorService {
String
fileName
=
URLEncoder
.
encode
(
"访客信息.xlsx"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Access-Control-Expose-Headers"
,
"Content-Disposition"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
...
...
@@ -243,35 +302,47 @@ public class VisitorServiceImpl implements VisitorService {
}
Visitor
visitor
=
optional
.
get
();
visitor
.
setLabelCardStatus
(
"3"
);
visitor
.
setUpdateTime
(
LocalDateTime
.
now
());
visitor
.
setCardRecTime
(
LocalDateTime
.
now
());
visitorRepository
.
saveAndFlush
(
visitor
);
return
Result
.
ok
();
}
@Override
public
Result
<
VisitorVo
>
selectInfo
(
IdParam
id
Param
)
{
return
null
;
}
public
Result
<
PageVo
<
VisitorAppVo
>>
selectInfo
(
VisitorAppQueryParam
visitorAppQuery
Param
)
{
PageVo
<
VisitorAppVo
>
resultVo
;
//排序
// public boolean hasCarNum(String carNum) {
// 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).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;
// }
//分页
Pageable
pageable
=
PageRequest
.
of
(
visitorAppQueryParam
.
getPageNo
()
-
1
,
visitorAppQueryParam
.
getPageSize
());
Page
<
Visitor
>
all
=
visitorRepository
.
findAllByVisitorMobileAndDeletedEquals
(
visitorAppQueryParam
.
getVisitorMobile
(),
"N"
,
pageable
);
List
<
VisitorAppVo
>
data
=
all
.
get
()
.
map
(
visitor
->
{
VisitorAppVo
vo
=
new
VisitorAppVo
();
vo
.
setId
(
visitor
.
getId
());
vo
.
setCardSendTime
(
visitor
.
getCardSendTime
());
VisitorAppVo
.
UserVo
userVo
=
VisitorAppVo
.
UserVo
.
builder
()
.
realName
(
visitor
.
getUser
().
getRealName
())
.
mobile
(
visitor
.
getVisitorMobile
())
.
build
();
vo
.
setUserVo
(
userVo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
return
Result
.
ok
(
resultVo
);
}
public
Specification
<
Visitor
>
condition
(
VisitorQueryParam
visitorQueryParam
)
{
return
(
root
,
query
,
criteriaBuilder
)
->
{
List
<
Predicate
>
list
=
new
ArrayList
<>();
Join
<
Visitor
,
User
>
join
=
root
.
join
(
"user"
,
JoinType
.
LEFT
);
//查询条件
if
(
StrUtil
.
isNotBlank
(
visitorQueryParam
.
getVisitorName
()))
{
//访客姓名
...
...
@@ -329,9 +400,7 @@ public class VisitorServiceImpl implements VisitorService {
if
(
StrUtil
.
isNotBlank
(
visitorQueryParam
.
getIntervieweeId
()))
{
//被访人
list
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
Visitor
.
Fields
.
intervieweeId
),
visitorQueryParam
.
getIntervieweeId
())
);
list
.
add
(
criteriaBuilder
.
equal
(
join
.
get
(
BasicEntity
.
Fields
.
id
),
visitorQueryParam
.
getIntervieweeId
()));
}
if
(
StrUtil
.
isNotBlank
(
visitorQueryParam
.
getLabelCard
()))
{
...
...
@@ -344,16 +413,25 @@ public class VisitorServiceImpl implements VisitorService {
);
}
if
(
StrUtil
.
isNotBlank
(
visitorQueryParam
.
getLabelCardStatus
()))
{
//标签卡状态
list
.
add
(
criteriaBuilder
.
like
(
root
.
get
(
Visitor
.
Fields
.
labelCardStatus
),
"%"
+
visitorQueryParam
.
getLabelCardStatus
()
+
"%"
)
);
if
(
StrUtil
.
isNotBlank
(
visitorQueryParam
.
getIsMain
()))
{
//标签卡号查询
if
(
visitorQueryParam
.
getIsMain
().
equals
(
"1"
))
{
list
.
add
(
criteriaBuilder
.
isNull
(
root
.
get
(
Visitor
.
Fields
.
mainVisitorId
)));
}
else
{
list
.
add
(
criteriaBuilder
.
isNotNull
(
root
.
get
(
Visitor
.
Fields
.
mainVisitorId
)));
}
}
// if (StrUtil.isNotBlank(visitorQueryParam.getLabelCardStatus())) {
// //标签卡状态
// list.add(
// criteriaBuilder.like(
// root.get(Visitor.Fields.labelCardStatus),
// "%" + visitorQueryParam.getLabelCardStatus() + "%"
// )
// );
// }
if
(
Objects
.
nonNull
(
visitorQueryParam
.
getAppOfVisitTimeStart
())
&&
Objects
.
nonNull
(
visitorQueryParam
.
getAppOfVisitTimeEnd
())
...
...
@@ -395,9 +473,10 @@ public class VisitorServiceImpl implements VisitorService {
)
);
}
Order
order
=
criteriaBuilder
.
desc
(
root
.
get
(
Visitor
.
Fields
.
updateTime
));
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
query
.
where
(
list
.
toArray
(
predicates
));
query
.
orderBy
(
order
);
return
criteriaBuilder
.
and
(
list
.
toArray
(
predicates
));
};
}
...
...
app/src/main/java/com/yiring/app/vo/broadcast/BroadcastVo.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
broadcast
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
org.locationtech.jts.geom.Point
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 17:26
*/
@ApiModel
(
"BroadcastVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
BroadcastVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2927556677143859520L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
Long
id
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"1"
)
String
broadcastNum
;
@ApiModelProperty
(
value
=
"坐标点信息"
)
Point
point
;
@ApiModelProperty
(
value
=
"备注"
,
example
=
"厂区喇叭"
)
String
remark
;
@ApiModelProperty
(
value
=
"音柱地址"
,
example
=
"音柱地址"
)
String
broadcastAdd
;
@ApiModelProperty
(
value
=
"播报设备名称"
,
example
=
"喇叭1"
)
String
broadcastName
;
}
app/src/main/java/com/yiring/app/vo/broadcast/BroadcastjcVo.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
broadcast
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
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/5/6 11:33
*/
@ApiModel
(
"BroadcastjcVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
BroadcastjcVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5301756979737544186L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
Long
id
;
@ApiModelProperty
(
value
=
"播报设备名称"
,
example
=
"喇叭1"
)
String
broadcastName
;
}
app/src/main/java/com/yiring/app/vo/icon/IconVo.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
icon
;
import
java.io.Serial
;
import
java.io.Serializable
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 15:10
*/
public
class
IconVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
2334297671118394950L
;
}
app/src/main/java/com/yiring/app/vo/visitor/InvitationDetailsVo.java
0 → 100644
浏览文件 @
a98f9f9c
/* (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
浏览文件 @
a98f9f9c
...
...
@@ -56,4 +56,28 @@ public class InvitationVo implements Serializable {
@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
;
}
}
app/src/main/java/com/yiring/app/vo/visitor/VisitorAppVo.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
visitor
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* 2022/4/19 14:16
*/
@ApiModel
(
"VisitorVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
VisitorAppVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
9004209982164273860L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1548548545755"
)
Long
id
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"发卡时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
cardSendTime
;
UserVo
userVo
;
@ApiModel
(
"UserVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
static
class
UserVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
4115779013003587949L
;
@ApiModelProperty
(
value
=
"被访人姓名"
,
example
=
"张三"
)
String
realName
;
@ApiModelProperty
(
value
=
"被访人姓名"
,
example
=
"张三"
)
String
mobile
;
}
}
app/src/main/java/com/yiring/app/vo/visitor/VisitorDetailsVo.java
浏览文件 @
a98f9f9c
...
...
@@ -62,8 +62,8 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty
(
value
=
"所属单位id"
,
example
=
"壹润科技"
)
String
orgId
;
@ApiModelProperty
(
value
=
"被访人id"
,
example
=
"1"
)
Long
intervieweeId
;
//
@ApiModelProperty(value = "被访人id", example = "1")
//
Long intervieweeId;
@ApiModelProperty
(
value
=
"被访人姓名"
,
example
=
"李四"
)
String
intervieweeName
;
...
...
@@ -90,12 +90,14 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty
(
value
=
"车辆反参"
)
Car
car
;
UserVo
userVo
;
@ApiModelProperty
(
value
=
"主访人id"
)
Long
mainVisitorId
;
List
<
VisitorResultVo
>
list
;
@ApiModel
(
"
MapVoReuslt
"
)
@ApiModel
(
"
VisitorResultVo
"
)
@Data
@Builder
@NoArgsConstructor
...
...
@@ -119,4 +121,29 @@ public class VisitorDetailsVo implements Serializable {
@ApiModelProperty
(
value
=
"主访人id"
)
Long
mainVisitorId
;
}
@ApiModel
(
"UserVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
static
class
UserVo
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
=
"17688888888"
)
String
mobile
;
@ApiModelProperty
(
value
=
"被访人部门"
)
String
deptName
;
}
}
app/src/main/java/com/yiring/app/vo/visitor/VisitorVo.java
浏览文件 @
a98f9f9c
...
...
@@ -4,7 +4,6 @@ package com.yiring.app.vo.visitor;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.visitor.Car
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
...
...
@@ -41,11 +40,11 @@ public class VisitorVo implements Serializable {
@ApiModelProperty
(
value
=
"到访人身份证"
,
example
=
"430441190001255417"
)
String
visitorCarNum
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
tru
e"
)
boolean
taskType
;
@ApiModelProperty
(
value
=
"是否特殊作业"
,
example
=
"
fals
e"
)
String
taskType
;
@ApiModelProperty
(
value
=
"邀请人数"
,
example
=
"1"
)
Integer
numOfVisitor
;
//
@ApiModelProperty(value = "邀请人数", example = "1")
//
Integer numOfVisitor;
@ApiModelProperty
(
value
=
"访客来源"
,
example
=
"内部邀请"
)
String
visitorSource
;
...
...
@@ -53,14 +52,14 @@ public class VisitorVo implements Serializable {
@ApiModelProperty
(
value
=
"标签卡"
,
example
=
"WE34421231"
)
String
labelCard
;
@ApiModelProperty
(
value
=
"标签卡状态"
,
example
=
"使用中"
)
String
labelCardStatus
;
//
@ApiModelProperty(value = "标签卡状态", example = "使用中")
//
String labelCardStatus;
@ApiModelProperty
(
value
=
"所属单位id"
,
example
=
"壹润科技"
)
String
orgId
;
@ApiModelProperty
(
value
=
"被访人
id"
,
example
=
"1
"
)
String
interviewee
Id
;
@ApiModelProperty
(
value
=
"被访人
姓名"
,
example
=
"李四
"
)
String
interviewee
Name
;
@ApiModelProperty
(
value
=
"来访原因"
,
example
=
"来访原因"
)
String
reason
;
...
...
@@ -69,18 +68,38 @@ public class VisitorVo implements Serializable {
@ApiModelProperty
(
value
=
"收卡时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
cardRecTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"预约到访时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
appOfVisitTime
;
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//
@ApiModelProperty(value = "预约到访时间", example = "2022-04-19 14:28:00")
//
LocalDateTime appOfVisitTime;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"创建时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
createTime
;
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//
@ApiModelProperty(value = "创建时间", example = "2022-04-19 14:28:00")
//
LocalDateTime createTime;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
value
=
"发卡时间"
,
example
=
"2022-04-19 14:28:00"
)
LocalDateTime
cardSendTime
;
@ApiModelProperty
(
value
=
"车辆反参"
)
Car
car
;
// @ApiModelProperty(value = "车辆反参")
// Car car;
@ApiModelProperty
(
value
=
"主访人id"
)
Long
mainVisitorId
;
UserVo
userVo
;
@ApiModel
(
"UserVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
static
class
UserVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
4115779013003587949L
;
@ApiModelProperty
(
value
=
"被访人姓名"
,
example
=
"张三"
)
String
realName
;
}
}
app/src/main/java/com/yiring/app/web/appUser/AppletUserController.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
appUser
;
import
com.yiring.app.param.appUser.AppletUserParam
;
import
com.yiring.app.param.appUser.AppletUserQueryParam
;
import
com.yiring.app.service.appletUser.AppletUserService
;
import
com.yiring.common.core.Result
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/4/28 13:48
*/
@Slf4j
@Validated
@Api
(
tags
=
"小程序用户"
)
@RestController
@RequestMapping
(
"/appUser/"
)
public
class
AppletUserController
{
@Resource
AppletUserService
appletUserService
;
@ApiOperation
(
"微信绑定手机号码"
)
@PostMapping
(
"saveAppUser"
)
public
Result
<
String
>
saveAppUser
(
@Valid
AppletUserParam
appletUserParam
)
{
return
appletUserService
.
saveAppUser
(
appletUserParam
);
}
@ApiOperation
(
"根据code获取微信用户唯一标识,返回其绑定的手机号码"
)
@GetMapping
(
"selectMobile"
)
public
Result
<
String
>
selectMobile
(
@Valid
AppletUserQueryParam
appletUserQueryParam
)
{
return
appletUserService
.
selectMobile
(
appletUserQueryParam
);
}
}
app/src/main/java/com/yiring/app/web/broadcast/BroadcastController.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
broadcast
;
import
com.yiring.app.param.broadcast.BroadcastParam
;
import
com.yiring.app.param.broadcast.BroadcastQueryParam
;
import
com.yiring.app.service.broadcast.BroadcastService
;
import
com.yiring.app.vo.broadcast.BroadcastVo
;
import
com.yiring.app.vo.broadcast.BroadcastjcVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.IndexParam
;
import
com.yiring.common.vo.PageVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.locationtech.jts.geom.Point
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/6 10:15
*/
@Slf4j
@Validated
@Api
(
tags
=
"Broadcast(播报设备管理)"
)
@RestController
@RequestMapping
(
"/broadcast/"
)
public
class
BroadcastController
{
@Resource
BroadcastService
broadcastService
;
@ApiOperation
(
value
=
"新增设备信息"
)
@PostMapping
(
"saveBroadcast"
)
public
Result
<
String
>
saveBroadcast
(
@Valid
BroadcastParam
broadcastParam
)
{
return
broadcastService
.
saveBroadcast
(
broadcastParam
);
}
@ApiOperation
(
value
=
"删除设备信息"
)
@PostMapping
(
"deleteBroadcast"
)
public
Result
<
String
>
deleteBroadcast
(
@Valid
IdParam
idParam
)
{
return
broadcastService
.
deleteBroadcast
(
idParam
);
}
@ApiOperation
(
value
=
"修改设备信息"
)
@PostMapping
(
"updateBroadcast"
)
public
Result
<
String
>
updateBroadcast
(
@Valid
BroadcastParam
broadcastParam
,
@Valid
IdParam
idParam
)
{
return
broadcastService
.
updateBroadcast
(
broadcastParam
,
idParam
);
}
@ApiOperation
(
value
=
"查看设备位置"
)
@GetMapping
(
"selectPoint"
)
public
Result
<
Point
>
selectPoint
(
@Valid
IdParam
idParam
)
{
return
broadcastService
.
selectPoint
(
idParam
);
}
@ApiOperation
(
value
=
"分页设备信息"
)
@GetMapping
(
"pageBroadcast"
)
public
Result
<
PageVo
<
BroadcastVo
>>
pageBroadcast
(
@Valid
BroadcastQueryParam
broadcastQueryParam
)
{
return
broadcastService
.
pageBroadcast
(
broadcastQueryParam
);
}
@ApiOperation
(
value
=
"导出"
,
produces
=
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
)
@PostMapping
(
"exportBroadcast"
)
public
void
exportBroadcast
(
HttpServletResponse
response
,
@Valid
BroadcastQueryParam
broadcastQueryParam
)
{
broadcastService
.
exportBroadcast
(
broadcastQueryParam
,
response
);
}
@ApiOperation
(
value
=
"导入"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
value
=
"文件"
,
required
=
true
,
name
=
"file"
)
})
@PostMapping
(
"importVideo"
)
public
Result
<
String
>
importVideo
(
MultipartFile
file
)
{
return
broadcastService
.
importBroadcast
(
file
);
}
@ApiOperation
(
value
=
"根据名字检索"
)
@GetMapping
(
"selectBroadcastName"
)
public
Result
<
PageVo
<
BroadcastjcVo
>>
selectBroadcastName
(
@Valid
IndexParam
indexParam
)
{
return
broadcastService
.
selectBroadcastName
(
indexParam
);
}
}
app/src/main/java/com/yiring/app/web/icon/IconController.java
0 → 100644
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
icon
;
import
com.yiring.app.param.icon.IconParam
;
import
com.yiring.app.service.icon.IconService
;
import
com.yiring.app.vo.icon.IconVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.param.PageParam
;
import
com.yiring.common.vo.PageVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/5 15:18
*/
@Slf4j
@Validated
@Api
(
tags
=
"Icon(图标管理)"
)
@RestController
@RequestMapping
(
"/icon/"
)
public
class
IconController
{
@Resource
IconService
iconService
;
@ApiOperation
(
value
=
"新增图标信息"
)
@PostMapping
(
"saveIcon"
)
public
Result
<
String
>
saveIcon
(
@Valid
IconParam
iconParam
)
{
return
iconService
.
saveIcon
(
iconParam
);
}
@ApiOperation
(
value
=
"删除图标信息"
)
@PostMapping
(
"deleteIcon"
)
public
Result
<
String
>
deleteIcon
(
@Valid
IdParam
idParam
)
{
return
iconService
.
deleteIcon
(
idParam
);
}
@ApiOperation
(
value
=
"修改图标信息"
)
@PostMapping
(
"updateIcon"
)
public
Result
<
String
>
updateIcon
(
@Valid
IconParam
iconParam
,
@Valid
IdParam
idParam
)
{
return
iconService
.
updateIcon
(
iconParam
,
idParam
);
}
@ApiOperation
(
value
=
"分页图标信息"
)
@GetMapping
(
"pageIcon"
)
public
Result
<
PageVo
<
IconVo
>>
pageIcon
(
@Valid
PageParam
pageParam
)
{
return
iconService
.
pageIcon
(
pageParam
);
}
}
app/src/main/java/com/yiring/app/web/map/MapController.java
浏览文件 @
a98f9f9c
...
...
@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
*
* @author Administrator
* @version 1.0
* @description:
TODO
* @description:
* @date 2022/4/24 13:48
*/
@Slf4j
...
...
@@ -40,7 +40,7 @@ public class MapController {
@GetMapping
(
"/mapSelect"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
value
=
"orgId"
,
required
=
true
,
name
=
"orgId"
)
})
public
Result
<
MapVo
>
fail
(
String
orgId
)
{
public
Result
<
MapVo
>
mapSelect
(
String
orgId
)
{
String
login
=
ZyUtil
.
login
();
JSONObject
jsonObject
=
mapClient
.
selectMap
(
orgId
,
"bearer "
+
login
);
// if (ObjectUtil.isNotNull(jsonObject.getJSONArray("data"))) {
...
...
app/src/main/java/com/yiring/app/web/video/VideoController.java
浏览文件 @
a98f9f9c
...
...
@@ -45,7 +45,7 @@ public class VideoController {
@ApiOperation
(
value
=
"新增监控点位信息"
)
@PostMapping
(
"saveVideo"
)
public
Result
<
String
>
findLatest
(
@Valid
VideoParam
videoParam
)
{
public
Result
<
String
>
saveVideo
(
@Valid
VideoParam
videoParam
)
{
return
videoService
.
saveVideo
(
videoParam
);
}
...
...
app/src/main/java/com/yiring/app/web/visitor/InvitationController.java
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
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.InvitationQueryParam
;
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.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
...
...
@@ -69,7 +70,7 @@ public class InvitationController {
@ApiOperation
(
value
=
"查看邀请信息(分页)"
)
@GetMapping
(
"pageInv"
)
public
Result
<
PageVo
<
InvitationVo
>>
pageInv
(
@Valid
InvitationQueryParam
invitationQueryParam
)
{
public
Result
<
PageVo
<
Invitation
Details
Vo
>>
pageInv
(
@Valid
InvitationQueryParam
invitationQueryParam
)
{
return
invitationService
.
pageInv
(
invitationQueryParam
);
}
...
...
@@ -78,4 +79,16 @@ public class InvitationController {
public
void
exportInv
(
HttpServletResponse
response
,
@Valid
InvitationQueryParam
invitationQueryParam
)
{
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
浏览文件 @
a98f9f9c
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
visitor
;
import
com.yiring.app.param.visitor.VisitorAppQueryParam
;
import
com.yiring.app.param.visitor.VisitorParam
;
import
com.yiring.app.param.visitor.VisitorQueryParam
;
import
com.yiring.app.service.visitor.VisitorService
;
import
com.yiring.app.vo.visitor.VisitorAppVo
;
import
com.yiring.app.vo.visitor.VisitorDetailsVo
;
import
com.yiring.app.vo.visitor.VisitorVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
...
...
@@ -69,7 +72,7 @@ public class VisitorController {
@ApiOperation
(
value
=
"查看访客信息详情"
)
@GetMapping
(
"selectVisitor"
)
public
Result
<
VisitorVo
>
selectVisitor
(
@Valid
IdParam
idParam
)
{
public
Result
<
Visitor
Details
Vo
>
selectVisitor
(
@Valid
IdParam
idParam
)
{
return
visitorService
.
selectVisitor
(
idParam
);
}
...
...
@@ -84,4 +87,10 @@ public class VisitorController {
public
void
exportVisitor
(
HttpServletResponse
response
,
@Valid
VisitorQueryParam
visitorQueryParam
)
{
visitorService
.
exportVisitor
(
visitorQueryParam
,
response
);
}
@ApiOperation
(
value
=
"小程序查看来访历史(分页)"
)
@GetMapping
(
"selectInfo"
)
public
Result
<
PageVo
<
VisitorAppVo
>>
selectInfo
(
@Valid
VisitorAppQueryParam
visitorAppQueryParam
)
{
return
visitorService
.
selectInfo
(
visitorAppQueryParam
);
}
}
app/src/main/resources/application.yml
浏览文件 @
a98f9f9c
...
...
@@ -9,11 +9,7 @@ spring:
profiles
:
include
:
auth, conf-patch
active
:
dev
servlet
:
multipart
:
enabled
:
true
max-file-size
:
10MB
max-request-size
:
10MB
# DEBUG
debug
:
false
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论