Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
34994fb4
Commit
34994fb4
authored
Nov 30, 2021
by
xinglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*)增加修改接口
parent
dde28218
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
61 additions
and
38 deletions
+61
-38
IVoiceRecordFileService.java
.../boot/module/jcs/api/service/IVoiceRecordFileService.java
+2
-2
VoiceRecordFileController.java
.../module/jcs/biz/controller/VoiceRecordFileController.java
+16
-22
VoiceRecordFileServiceImpl.java
...dule/jcs/biz/service/impl/VoiceRecordFileServiceImpl.java
+43
-14
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-jcs-api/src/main/java/com/yeejoin/amos/boot/module/jcs/api/service/IVoiceRecordFileService.java
View file @
34994fb4
...
...
@@ -16,8 +16,6 @@ import java.util.List;
*/
public
interface
IVoiceRecordFileService
{
void
publishRecord
(
VoiceRecordFileDto
model
);
Page
<
VoiceRecordFileDto
>
queryRecordListByQueryDto
(
Page
<
VoiceRecordFileDto
>
page
,
String
telEndTimeStr
,
String
telEndTimeStr1
,
String
fileType
,
String
caller
,
String
called
,
String
sortParam
,
String
sortRule
);
VoiceRecordFileDto
getRecordById
(
Long
sequenceNbr
);
...
...
@@ -27,4 +25,6 @@ public interface IVoiceRecordFileService {
List
<
FusionDto
>
getCarList
(
Boolean
hasFusion
);
List
<
FusionDto
>
getSinglePawnList
(
Boolean
hasFusion
);
List
<
VoiceRecordFileDto
>
listByAlertId
(
Long
alertId
);
}
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/src/main/java/com/yeejoin/amos/boot/module/jcs/biz/controller/VoiceRecordFileController.java
View file @
34994fb4
package
com
.
yeejoin
.
amos
.
boot
.
module
.
jcs
.
biz
.
controller
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.amos.boot.biz.common.utils.RedisKey
;
import
com.yeejoin.amos.boot.module.jcs.api.dto.VoiceRecordFileDto
;
import
com.yeejoin.amos.boot.module.jcs.api.entity.VoiceRecordFile
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.AlertCalledServiceImpl
;
import
com.yeejoin.amos.boot.module.jcs.biz.service.impl.VoiceRecordFileServiceImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
...
...
@@ -20,7 +17,6 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import
org.typroject.tyboot.core.restful.utils.ResponseHelper
;
import
org.typroject.tyboot.core.restful.utils.ResponseModel
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -35,7 +31,7 @@ import java.util.List;
public
class
VoiceRecordFileController
extends
BaseController
{
@Autowired
VoiceRecordFileServiceImpl
voiceRecordFileService
Impl
;
VoiceRecordFileServiceImpl
voiceRecordFileService
;
@Autowired
AlertCalledServiceImpl
iAlertCalledService
;
...
...
@@ -49,18 +45,7 @@ public class VoiceRecordFileController extends BaseController {
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"根据警情id 查找通话记录信息"
,
notes
=
"根据警情id 查找通话记录信息"
)
@GetMapping
(
value
=
"/list/alert/{alertId}"
)
public
ResponseModel
<
List
<
VoiceRecordFileDto
>>
selectForListByAlertId
(
@PathVariable
Long
alertId
)
{
LambdaQueryWrapper
<
VoiceRecordFile
>
queryWrapper
=
new
LambdaQueryWrapper
<
VoiceRecordFile
>();
queryWrapper
.
eq
(
VoiceRecordFile:
:
getAlertId
,
alertId
).
orderByDesc
(
VoiceRecordFile:
:
getRecDate
);
List
<
VoiceRecordFile
>
list
=
voiceRecordFileServiceImpl
.
list
(
queryWrapper
);
List
<
VoiceRecordFileDto
>
dtoList
=
new
ArrayList
<
VoiceRecordFileDto
>(
list
.
size
());
list
.
stream
().
forEach
(
voiceRecord
->
{
// 创建新的对象实例
VoiceRecordFileDto
target
=
new
VoiceRecordFileDto
();
// 把原对象数据拷贝到新对象
BeanUtils
.
copyProperties
(
voiceRecord
,
target
);
dtoList
.
add
(
target
);
});
return
ResponseHelper
.
buildResponse
(
dtoList
);
return
ResponseHelper
.
buildResponse
(
voiceRecordFileService
.
listByAlertId
(
alertId
));
}
/**
...
...
@@ -73,7 +58,7 @@ public class VoiceRecordFileController extends BaseController {
@GetMapping
(
value
=
"/{sequenceNbr}"
)
public
ResponseModel
<
VoiceRecordFileDto
>
getRecordById
(
@PathVariable
Long
sequenceNbr
)
{
VoiceRecordFileDto
record
=
voiceRecordFileService
Impl
.
getRecordById
(
sequenceNbr
);
VoiceRecordFileDto
record
=
voiceRecordFileService
.
getRecordById
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
record
);
}
...
...
@@ -85,13 +70,22 @@ public class VoiceRecordFileController extends BaseController {
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@PostMapping
(
value
=
"/saveRecord"
)
@ApiOperation
(
httpMethod
=
"POST"
,
value
=
"新增通话记录附件"
,
notes
=
"新增通话记录附件"
)
public
ResponseModel
<
Boolean
>
saveRecord
(
@RequestBody
VoiceRecordFileDto
model
)
{
public
ResponseModel
<
VoiceRecordFileDto
>
saveRecord
(
@RequestBody
VoiceRecordFileDto
model
)
{
if
(
ValidationUtil
.
isEmpty
(
model
.
getCaller
())
||
ValidationUtil
.
isEmpty
(
model
.
getCalled
())){
throw
new
BadRequest
(
"参数校验失败."
);
}
voiceRecordFileServiceImpl
.
publishRecord
(
model
);
return
ResponseHelper
.
buildResponse
(
true
);
return
ResponseHelper
.
buildResponse
(
voiceRecordFileService
.
saveRecord
(
model
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
@RequestMapping
(
value
=
"/{sequenceNbr}"
,
method
=
RequestMethod
.
PUT
)
@ApiOperation
(
httpMethod
=
"PUT"
,
value
=
"更新通话记录附件"
,
notes
=
"更新通话记录附件"
)
public
ResponseModel
<
VoiceRecordFileDto
>
updateRecord
(
@RequestBody
VoiceRecordFileDto
model
,
@PathVariable
(
value
=
"sequenceNbr"
)
Long
sequenceNbr
)
{
model
.
setSequenceNbr
(
sequenceNbr
);
return
ResponseHelper
.
buildResponse
(
voiceRecordFileService
.
updateRecord
(
model
));
}
@TycloudOperation
(
ApiLevel
=
UserType
.
AGENCY
)
...
...
@@ -117,7 +111,7 @@ public class VoiceRecordFileController extends BaseController {
sortParam
=
"call_time"
;
sortRule
=
"desc"
;
}
Page
<
VoiceRecordFileDto
>
pageBean
=
voiceRecordFileService
Impl
.
queryRecordListByQueryDto
(
page
,
Page
<
VoiceRecordFileDto
>
pageBean
=
voiceRecordFileService
.
queryRecordListByQueryDto
(
page
,
model
.
getTelStartTimeStr
(),
model
.
getTelEndTimeStr
(),
model
.
getFileType
(),
model
.
getCaller
(),
model
.
getCalled
(),
sortParam
,
sortRule
);
Page
<
VoiceRecordFileDto
>
result
=
new
Page
<
VoiceRecordFileDto
>(
pageNum
,
pageSize
);
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-jcs-biz/src/main/java/com/yeejoin/amos/boot/module/jcs/biz/service/impl/VoiceRecordFileServiceImpl.java
View file @
34994fb4
...
...
@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient
;
import
com.yeejoin.amos.boot.module.jcs.api.dto.FusionDto
;
...
...
@@ -24,6 +25,7 @@ import org.springframework.util.Assert;
import
org.typroject.tyboot.component.emq.EmqKeeper
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
org.typroject.tyboot.core.rdbms.service.BaseService
;
import
org.typroject.tyboot.core.restful.exception.instance.DataNotFound
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
...
...
@@ -77,28 +79,25 @@ public class VoiceRecordFileServiceImpl extends BaseService<VoiceRecordFileDto,
return
this
.
queryForList
(
""
,
false
);
}
@Override
public
void
publishRecord
(
final
VoiceRecordFileDto
model
)
{
public
VoiceRecordFileDto
saveRecord
(
final
VoiceRecordFileDto
model
)
{
Map
<
String
,
String
>
dMap
=
fusionService
.
getCallRecordByNumber
(
model
.
getCaller
(),
model
.
getCalled
());
// 保存到日志表中
VoiceRecordLog
log
=
new
VoiceRecordLog
();
VoiceRecordFile
voiceRecordFile
=
new
VoiceRecordFile
();
BeanUtils
.
copyProperties
(
model
,
voiceRecordFile
);
log
.
setAlertId
(
model
.
getAlertId
());
String
cid
=
dMap
.
get
(
"cid"
);
Assert
.
notNull
(
cid
,
"CID不能为空"
);
Map
<
String
,
String
>
callRecord
=
fusionService
.
getCallRecordByCID
(
cid
);
voiceRecordFile
.
setConnectId
(
cid
);
model
.
setConnectId
(
cid
);
log
.
setConnectId
(
cid
);
log
.
setIsDeal
(
false
);
log
.
setDealTimes
(
0
);
if
(!
ValidationUtil
.
isEmpty
(
callRecord
)){
voiceRecordFile
.
setFilePath
(
String
.
format
(
"/%s/%s"
,
callRecord
.
get
(
"subPath"
),
callRecord
.
get
(
"recordName"
).
replace
(
"wav"
,
"mp3"
)));
if
(!
ValidationUtil
.
isEmpty
(
callRecord
))
{
model
.
setFilePath
(
String
.
format
(
"/%s/%s"
,
callRecord
.
get
(
"subPath"
),
callRecord
.
get
(
"recordName"
).
replace
(
"wav"
,
"mp3"
)));
logger
.
info
(
String
.
format
(
"音频地址:【%s】"
,
String
.
format
(
"/%s/%s"
,
callRecord
.
get
(
"subPath"
),
callRecord
.
get
(
"recordName"
))));
}
else
{
// 无录音地址记录日志
iVoiceRecordLogServiceImpl
.
save
(
log
);
}
save
(
voiceRecordFile
);
return
this
.
createWithModel
(
model
);
}
@Override
...
...
@@ -118,9 +117,7 @@ public class VoiceRecordFileServiceImpl extends BaseService<VoiceRecordFileDto,
@Override
public
VoiceRecordFileDto
getRecordById
(
Long
sequenceNbr
)
{
VoiceRecordFileDto
record
=
baseMapper
.
getRecordById
(
sequenceNbr
);
Map
<
String
,
String
>
callRecord
=
fusionService
.
getCallRecordByCID
(
record
.
getConnectId
());
record
.
setFilePath
(
String
.
format
(
"/%s/%s"
,
callRecord
.
get
(
"subPath"
),
callRecord
.
get
(
"recordName"
)));
return
record
;
return
buildFilePath
(
record
);
}
@Override
...
...
@@ -169,6 +166,31 @@ public class VoiceRecordFileServiceImpl extends BaseService<VoiceRecordFileDto,
return
fusionDtos
;
}
@Override
public
List
<
VoiceRecordFileDto
>
listByAlertId
(
Long
alertId
)
{
LambdaQueryWrapper
<
VoiceRecordFile
>
queryWrapper
=
new
LambdaQueryWrapper
<
VoiceRecordFile
>();
queryWrapper
.
eq
(
VoiceRecordFile:
:
getAlertId
,
alertId
).
orderByDesc
(
VoiceRecordFile:
:
getRecDate
);
List
<
VoiceRecordFile
>
list
=
voiceRecordFileServiceImpl
.
list
(
queryWrapper
);
List
<
VoiceRecordFileDto
>
dtoList
=
new
ArrayList
<>();
list
.
stream
().
forEach
(
voiceRecord
->
{
// 创建新的对象实例
VoiceRecordFileDto
target
=
new
VoiceRecordFileDto
();
// 把原对象数据拷贝到新对象
BeanUtils
.
copyProperties
(
voiceRecord
,
target
);
buildFilePath
(
target
);
dtoList
.
add
(
target
);
});
return
dtoList
;
}
public
VoiceRecordFileDto
updateRecord
(
VoiceRecordFileDto
model
)
{
VoiceRecordFileDto
oldModel
=
this
.
queryBySeq
(
model
.
getSequenceNbr
());
if
(
ValidationUtil
.
isEmpty
(
oldModel
))
throw
new
DataNotFound
(
"找不到指定的数据."
);
oldModel
.
setAlertId
(
model
.
getAlertId
());
return
this
.
updateWithModel
(
oldModel
);
}
/**
* 获取在线用户的employeeID集合
*
...
...
@@ -176,7 +198,7 @@ public class VoiceRecordFileServiceImpl extends BaseService<VoiceRecordFileDto,
*/
private
List
<
String
>
getAllOnlineUser
(
Boolean
hasFusion
)
{
List
<
String
>
employeeIDs
=
new
ArrayList
<>();
if
(
hasFusion
){
if
(
hasFusion
)
{
JSONObject
jsonObject
=
fusionService
.
getAllOnlineUser
();
if
(!
ValidationUtil
.
isEmpty
(
jsonObject
))
{
JSONArray
onlines
=
jsonObject
.
getJSONArray
(
"Onlines"
);
...
...
@@ -189,12 +211,12 @@ public class VoiceRecordFileServiceImpl extends BaseService<VoiceRecordFileDto,
return
employeeIDs
;
}
private
FusionDto
buildFusionDtoAndId
(
FusionDto
fusionDto
,
List
<
String
>
employeeIDs
,
Boolean
hasFusion
,
Map
map
){
private
FusionDto
buildFusionDtoAndId
(
FusionDto
fusionDto
,
List
<
String
>
employeeIDs
,
Boolean
hasFusion
,
Map
map
)
{
List
carPropertyList
=
(
List
)
map
.
get
(
"carPropertyList"
);
carPropertyList
.
forEach
(
carProperty
->
{
Map
carPropertyMap
=
(
Map
)
carProperty
;
Object
nameKey
=
carPropertyMap
.
get
(
"nameKey"
);
if
(
hasFusion
&&
PropertyEnum
.
GIS
.
getValue
().
equals
(
nameKey
)){
if
(
hasFusion
&&
PropertyEnum
.
GIS
.
getValue
().
equals
(
nameKey
))
{
fusionDto
.
setId
(
String
.
valueOf
(
carPropertyMap
.
get
(
"value"
)));
}
else
if
(!
hasFusion
&&
PropertyEnum
.
VIDEO
.
getValue
().
equals
(
nameKey
))
{
fusionDto
.
setId
(
String
.
valueOf
(
carPropertyMap
.
get
(
"value"
)));
...
...
@@ -213,4 +235,10 @@ public class VoiceRecordFileServiceImpl extends BaseService<VoiceRecordFileDto,
}
return
fusionDto
;
}
private
VoiceRecordFileDto
buildFilePath
(
VoiceRecordFileDto
record
)
{
Map
<
String
,
String
>
callRecord
=
fusionService
.
getCallRecordByCID
(
record
.
getConnectId
());
record
.
setFilePath
(
String
.
format
(
"/%s/%s"
,
callRecord
.
get
(
"subPath"
),
callRecord
.
get
(
"recordName"
)));
return
record
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment