Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
attendance-performance-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
attendance-performance-platform
Commits
dc3c37f2
Commit
dc3c37f2
authored
1 year ago
by
赵啸非
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
同步人员方法添加
parent
ef048dd1
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
325 additions
and
18 deletions
+325
-18
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
...in/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+1
-1
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/req/door/HikDoorEventReq.java
...s/xhx/module/hik/door/model/req/door/HikDoorEventReq.java
+48
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/EventInfo.java
...ls/xhx/module/hik/door/model/rsp/door/info/EventInfo.java
+25
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/PoiObjectNter.java
...hx/module/hik/door/model/rsp/door/info/PoiObjectNter.java
+9
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/Pointer.java
...tals/xhx/module/hik/door/model/rsp/door/info/Pointer.java
+9
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruAcsEventInfo.java
...module/hik/door/model/rsp/door/info/StruAcsEventInfo.java
+52
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruRegionCoordinates.java
...e/hik/door/model/rsp/door/info/StruRegionCoordinates.java
+12
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruRemoteHostAddr.java
...dule/hik/door/model/rsp/door/info/StruRemoteHostAddr.java
+12
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruTime.java
...als/xhx/module/hik/door/model/rsp/door/info/StruTime.java
+16
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/IHikDoorService.java
.../mortals/xhx/module/hik/door/service/IHikDoorService.java
+18
-0
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
.../xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
+123
-3
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
...ortals/xhx/module/hik/staff/service/IHikStaffService.java
+0
-7
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
...hx/module/hik/staff/service/impl/HikStaffServiceImpl.java
+0
-7
No files found.
attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
View file @
dc3c37f2
...
...
@@ -61,7 +61,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
public
void
excuteTask
(
ITask
task
)
throws
AppException
{
try
{
log
.
info
(
"同步部门"
);
syncDepts
();
//
syncDepts();
log
.
info
(
"同步用户"
);
staffService
.
syncPersons
(
null
);
...
...
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/req/door/HikDoorEventReq.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.req.door
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.mortals.xhx.module.hik.BaseReq
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
HikDoorEventReq
extends
BaseReq
implements
Serializable
{
/**
* 当前页
*/
private
Integer
pageNo
;
/**
* 每页大小
*/
private
Integer
pageSize
;
private
String
doorName
;
private
String
sort
;
/**
* 事件类型,参考[附录D2.1 门禁事件]
* @[软件产品-综合安防管理平台-附录-附录D 事件列表-附录D2 一卡通事件-附录D2.1 门禁事件]
*/
private
List
<
Integer
>
eventTypes
;
private
List
<
String
>
readerDevIndexCodes
;
private
String
personName
;
private
String
doorRegionIndexCode
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ssXXX"
)
private
Date
receiveStartTime
;
@JSONField
(
format
=
"yyyy-MM-dd'T'HH:mm:ssXXX"
)
private
Date
receiveEndTime
;
private
Date
startTime
;
private
Date
endTime
;
private
List
<
String
>
doorIndexCodes
;
private
String
order
;
}
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/EventInfo.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
EventInfo
{
private
int
byTimeType
;
private
int
byRes1
;
private
Pointer
pointer
;
private
boolean
autoWrite
;
private
String
sNetUser
;
private
boolean
autoRead
;
private
StruTime
struTime
;
private
int
dwMajor
;
private
int
dwMinor
;
private
int
dwSize
;
private
int
dwVisibleLightDataLen
;
private
int
dwThermalDataLen
;
private
String
byRes
;
private
StruAcsEventInfo
struAcsEventInfo
;
private
StruRemoteHostAddr
struRemoteHostAddr
;
private
int
wInductiveEventType
;
private
int
dwQRCodeInfoLen
;
private
int
dwPicDataLen
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/PoiObjectNter.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
PoiObjectNter
{
private
boolean
valid
;
private
int
size
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/Pointer.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
Pointer
{
private
boolean
valid
;
private
int
size
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruAcsEventInfo.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
StruAcsEventInfo
{
private
int
bySwipeCardType
;
private
int
byRes1
;
private
int
byChannelControllerID
;
private
int
byDeviceNo
;
private
int
dwRs485No
;
private
int
dwCardReaderNo
;
private
int
dwEmployeeNo
;
private
int
byEventAttribute
;
private
StruRegionCoordinates
struRegionCoordinates
;
private
String
byCardNo
;
private
int
dwMultiCardGroupNo
;
private
int
byChannelControllerIRAdaptorID
;
private
int
byChannelControllerLampID
;
private
String
byMACAddr
;
private
String
byRes
;
private
int
byReportChannel
;
private
int
dwDoorNo
;
private
int
byCurrentVerifyMode
;
private
int
dwRecordChannelNum
;
private
int
dwSerialNo
;
private
int
dwCaseSensorNo
;
private
int
byInternetAccess
;
private
Pointer
pointer
;
private
boolean
autoWrite
;
private
int
byChannelControllerIREmitterID
;
private
int
dwAlarmInNo
;
private
boolean
autoRead
;
private
int
byCardReaderKind
;
private
String
byEmployeeNo
;
private
int
byMask
;
private
int
byStatusValue
;
private
int
dwSize
;
private
int
wAccessChannel
;
private
int
wLocalControllerID
;
private
int
fCurrTemperature
;
private
int
byAllowListNo
;
private
int
byThermometryUnit
;
private
int
dwAlarmOutNo
;
private
int
byUserType
;
private
int
byCardType
;
private
int
byIsAbnomalTemperature
;
private
int
byDistractControlNo
;
private
int
dwVerifyNo
;
private
int
byAttendanceStatus
;
private
int
byType
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruRegionCoordinates.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
StruRegionCoordinates
{
private
PoiObjectNter
poiObjectNter
;
private
int
fX
;
private
boolean
autoWrite
;
private
int
fY
;
private
boolean
autoRead
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruRemoteHostAddr.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
StruRemoteHostAddr
{
private
Pointer
pointer
;
private
boolean
autoWrite
;
private
String
byRes
;
private
boolean
autoRead
;
private
String
sIpV4
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/model/rsp/door/info/StruTime.java
0 → 100644
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.model.rsp.door.info
;
import
lombok.Data
;
@Data
public
class
StruTime
{
private
int
dwDay
;
private
Pointer
pointer
;
private
boolean
autoWrite
;
private
int
dwHour
;
private
boolean
autoRead
;
private
int
dwYear
;
private
int
dwMinute
;
private
int
dwMonth
;
private
int
dwSecond
;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/IHikDoorService.java
View file @
dc3c37f2
...
...
@@ -2,8 +2,15 @@ package com.mortals.xhx.module.hik.door.service;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq
;
import
com.mortals.xhx.module.hik.door.model.req.door.HikDoorEventReq
;
import
com.mortals.xhx.module.hik.door.model.rsp.door.DoorEventDataInfo
;
import
com.mortals.xhx.module.hik.door.model.rsp.door.info.EventInfo
;
import
com.mortals.xhx.module.hik.staff.model.req.staff.StaffReq
;
import
com.mortals.xhx.module.hik.staff.model.rsp.staff.search.UserSearchInfo
;
import
java.util.List
;
/**
* 海康门禁接口对接类
...
...
@@ -20,4 +27,15 @@ public interface IHikDoorService {
* @date: 2023/4/13 10:24
*/
Rest
<
DoorEventDataInfo
>
getDoorEvents
(
DoorEventReq
doorEventReq
);
/**
* 查询海康门禁事件
* @param hikDoorEventReq
* @param doorEntity
* @return
*/
Rest
<
List
<
EventInfo
>>
searchDoorEventsList
(
HikDoorEventReq
hikDoorEventReq
,
DoorEntity
doorEntity
);
}
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/door/service/impl/HikDoorServiceImpl.java
View file @
dc3c37f2
package
com.mortals.xhx.module.hik.door.service.impl
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.hikvision.artemis.sdk.ArtemisHttpUtil
;
import
com.hikvision.artemis.sdk.config.ArtemisConfig
;
import
com.mortals.framework.common.Rest
;
import
com.mortals.framework.exception.AppException
;
import
com.mortals.xhx.hikdoor.Acs.AcsMain
;
import
com.mortals.xhx.hikdoor.NetSDKDemo.HCNetSDK
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.hik.AbstractHikService
;
import
com.mortals.xhx.module.hik.HikApiRest
;
import
com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq
;
import
com.mortals.xhx.module.hik.door.model.req.door.HikDoorEventReq
;
import
com.mortals.xhx.module.hik.door.model.rsp.door.DoorEventDataInfo
;
import
com.mortals.xhx.module.hik.door.model.rsp.door.info.EventInfo
;
import
com.mortals.xhx.module.hik.door.service.IHikDoorService
;
import
com.mortals.xhx.module.hik.staff.model.rsp.staff.search.UserSearchInfo
;
import
com.sun.jna.Pointer
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.javassist.bytecode.stackmap.BasicBlock
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.io.FileNotFoundException
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.nio.ByteBuffer
;
import
java.util.*
;
/**
* 海康人员接口类
...
...
@@ -50,4 +63,111 @@ public class HikDoorServiceImpl extends AbstractHikService implements IHikDoorSe
return
Rest
.
fail
(
e
.
getMessage
());
}
}
@Override
public
Rest
<
List
<
EventInfo
>>
searchDoorEventsList
(
HikDoorEventReq
hikDoorEventReq
,
DoorEntity
doorEntity
)
{
HCNetSDK
hCNetSDK
=
createSDKInstance
();
initLoadSdk
(
hCNetSDK
);
int
userID
=
login
(
hCNetSDK
,
doorEntity
);
List
<
EventInfo
>
eventInfoList
=
new
ArrayList
<>();
int
i
=
0
;
//事件条数
HCNetSDK
.
NET_DVR_ACS_EVENT_COND
struAcsEventCond
=
new
HCNetSDK
.
NET_DVR_ACS_EVENT_COND
();
struAcsEventCond
.
read
();
struAcsEventCond
.
dwSize
=
struAcsEventCond
.
size
();
//查询全部主次类型的报警
struAcsEventCond
.
dwMajor
=
0
;
// 主次事件类型设为0,代表查询所有事件
struAcsEventCond
.
dwMinor
=
0
;
//
Date
startTime
=
hikDoorEventReq
.
getStartTime
();
Date
endTime
=
hikDoorEventReq
.
getEndTime
();
//开始时间
struAcsEventCond
.
struStartTime
.
dwYear
=
DateUtil
.
year
(
startTime
);
struAcsEventCond
.
struStartTime
.
dwMonth
=
DateUtil
.
month
(
startTime
)
+
1
;
struAcsEventCond
.
struStartTime
.
dwDay
=
DateUtil
.
dayOfMonth
(
startTime
);
struAcsEventCond
.
struStartTime
.
dwHour
=
DateUtil
.
hour
(
startTime
,
true
);
struAcsEventCond
.
struStartTime
.
dwMinute
=
DateUtil
.
minute
(
startTime
);
struAcsEventCond
.
struStartTime
.
dwSecond
=
DateUtil
.
second
(
startTime
);
//结束时间
struAcsEventCond
.
struEndTime
.
dwYear
=
DateUtil
.
year
(
endTime
);
struAcsEventCond
.
struEndTime
.
dwMonth
=
DateUtil
.
month
(
endTime
)
+
1
;
struAcsEventCond
.
struEndTime
.
dwDay
=
DateUtil
.
dayOfMonth
(
endTime
);
struAcsEventCond
.
struEndTime
.
dwHour
=
DateUtil
.
hour
(
endTime
,
true
);
struAcsEventCond
.
struEndTime
.
dwMinute
=
DateUtil
.
minute
(
endTime
);
struAcsEventCond
.
struEndTime
.
dwSecond
=
DateUtil
.
second
(
endTime
);
struAcsEventCond
.
wInductiveEventType
=
1
;
struAcsEventCond
.
byPicEnable
=
0
;
//是否带图片,0-不带图片,1-带图片
struAcsEventCond
.
write
();
Pointer
ptrStruEventCond
=
struAcsEventCond
.
getPointer
();
try
{
int
m_lSearchEventHandle
=
hCNetSDK
.
NET_DVR_StartRemoteConfig
(
userID
,
HCNetSDK
.
NET_DVR_GET_ACS_EVENT
,
ptrStruEventCond
,
struAcsEventCond
.
size
(),
null
,
null
);
if
(
m_lSearchEventHandle
<=
-
1
)
{
log
.
info
(
"NET_DVR_StartRemoteConfig调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
throw
new
AppException
(
"NET_DVR_StartRemoteConfig调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
}
HCNetSDK
.
NET_DVR_ACS_EVENT_CFG
struAcsEventCfg
=
new
HCNetSDK
.
NET_DVR_ACS_EVENT_CFG
();
struAcsEventCfg
.
read
();
struAcsEventCfg
.
dwSize
=
struAcsEventCfg
.
size
();
struAcsEventCfg
.
write
();
Pointer
ptrStruEventCfg
=
struAcsEventCfg
.
getPointer
();
while
(
true
)
{
int
dwEventSearch
=
hCNetSDK
.
NET_DVR_GetNextRemoteConfig
(
m_lSearchEventHandle
,
ptrStruEventCfg
,
struAcsEventCfg
.
size
());
if
(
dwEventSearch
<=
-
1
)
{
log
.
info
(
"NET_DVR_GetNextRemoteConfig接口调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
throw
new
AppException
(
"NET_DVR_GetNextRemoteConfig接口调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
}
if
(
dwEventSearch
==
HCNetSDK
.
NET_SDK_GET_NEXT_STATUS_NEED_WAIT
)
{
log
.
info
(
"配置等待...."
);
try
{
Thread
.
sleep
(
10
);
}
catch
(
InterruptedException
e
)
{
}
}
else
if
(
dwEventSearch
==
HCNetSDK
.
NET_SDK_NEXT_STATUS__FINISH
)
{
log
.
info
(
"获取事件完成"
);
break
;
}
else
if
(
dwEventSearch
==
HCNetSDK
.
NET_SDK_GET_NEXT_STATUS_FAILED
)
{
log
.
info
(
"获取事件出现异常"
);
break
;
}
else
if
(
dwEventSearch
==
HCNetSDK
.
NET_SDK_GET_NEXT_STATUS_SUCCESS
)
{
struAcsEventCfg
.
read
();
EventInfo
eventInfo
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
struAcsEventCfg
),
EventInfo
.
class
);
//获取的事件信息通过struAcsEventCfg结构体进行解析,
log
.
info
(
i
+
"获取事件成功, 报警主类型:"
+
Integer
.
toHexString
(
struAcsEventCfg
.
dwMajor
)
+
"报警次类型:"
+
Integer
.
toHexString
(
struAcsEventCfg
.
dwMinor
)
+
" 卡号:"
+
new
String
(
struAcsEventCfg
.
struAcsEventInfo
.
byCardNo
).
trim
());
/**
* 工号有两个字段,dwEmployeeNo表示工号,当值为0时,表示无效,解析byEmployeeNo参数
*/
log
.
info
(
"工号1:"
+
struAcsEventCfg
.
struAcsEventInfo
.
dwEmployeeNo
);
log
.
info
(
"工号2:"
+
new
String
(
struAcsEventCfg
.
struAcsEventInfo
.
byEmployeeNo
));
log
.
info
(
"考勤状态值:"
+
struAcsEventCfg
.
struAcsEventInfo
.
byStatusValue
);
log
.
info
(
"时间:"
+
struAcsEventCfg
.
struTime
);
eventInfoList
.
add
(
eventInfo
);
i
++;
}
}
i
=
0
;
if
(!
hCNetSDK
.
NET_DVR_StopRemoteConfig
(
m_lSearchEventHandle
))
{
log
.
info
(
"NET_DVR_StopRemoteConfig接口调用失败,错误码:"
+
hCNetSDK
.
NET_DVR_GetLastError
());
}
else
{
log
.
info
(
"NET_DVR_StopRemoteConfig接口成功"
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"获取事件异常"
,
e
);
}
return
Rest
.
ok
(
eventInfoList
);
}
}
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
View file @
dc3c37f2
...
...
@@ -4,7 +4,6 @@ package com.mortals.xhx.module.hik.staff.service;
import
com.mortals.framework.common.Rest
;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.hik.staff.model.req.staff.StaffReq
;
import
com.mortals.xhx.module.hik.staff.model.rsp.person.PersonDataInfo
;
import
com.mortals.xhx.module.hik.staff.model.rsp.staff.search.UserSearchInfo
;
/**
...
...
@@ -25,11 +24,5 @@ public interface IHikStaffService {
/**
* 获取所有人员接口
*
* @return
*/
Rest
<
PersonDataInfo
>
getAllPersonList
(
DoorEntity
doorEntity
);
}
This diff is collapsed.
Click to expand it.
attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
View file @
dc3c37f2
...
...
@@ -9,7 +9,6 @@ import com.mortals.xhx.hikdoor.NetSDKDemo.HCNetSDK;
import
com.mortals.xhx.module.door.model.DoorEntity
;
import
com.mortals.xhx.module.hik.AbstractHikService
;
import
com.mortals.xhx.module.hik.staff.model.req.staff.StaffReq
;
import
com.mortals.xhx.module.hik.staff.model.rsp.person.PersonDataInfo
;
import
com.mortals.xhx.module.hik.staff.model.rsp.staff.search.UserSearchInfo
;
import
com.mortals.xhx.module.hik.staff.service.IHikStaffService
;
import
com.sun.jna.ptr.IntByReference
;
...
...
@@ -116,10 +115,4 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
}
}
@Override
public
Rest
<
PersonDataInfo
>
getAllPersonList
(
DoorEntity
doorEntity
)
{
return
Rest
.
ok
();
}
}
This diff is collapsed.
Click to expand it.
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