diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java index 0d5fbafdf..4dda3afe9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.controller.manager; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,6 +11,7 @@ import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.hard.api.dto.manager.HardDoorManagerDto; import com.bsd.pjcloud.hard.api.entity.manager.HardDoorManagerEntity; +import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; import com.bsd.pjcloud.hard.service.HardDoorManagerService; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; @@ -35,6 +37,15 @@ public class HardDoorManagerController { private final HardDoorManagerService hardDoorManagerService; + @Operation(summary = "绑定设备", description = "绑定设备") + @PostMapping("/bind") + @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_add')") + public R bind(@RequestBody HardDoorManagerEntity dto) { + if (ObjectUtil.isEmpty(dto.getImei())) throw new RuntimeException("设备IMEI卡号不能为空"); + hardDoorManagerService.bind(dto); + return R.ok(); + } + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_view')") @@ -58,20 +69,11 @@ public class HardDoorManagerController { return R.ok(hardDoorManagerService.getById(id)); } - @Operation(summary = "新增智能柜设置", description = "新增智能柜设置") - @SysLog("新增智能柜设置") - @PostMapping - @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_add')") - public R save(@RequestBody HardDoorManagerEntity hardDoorManager) { - return R.ok(hardDoorManagerService.save(hardDoorManager)); - } - - @Operation(summary = "修改智能柜设置", description = "修改智能柜设置") - @SysLog("修改智能柜设置") - @PutMapping - @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_edit')") - public R updateById(@RequestBody HardDoorManagerEntity hardDoorManager) { - return R.ok(hardDoorManagerService.updateById(hardDoorManager)); + @Operation(summary = "根据硬件id查询详情", description = "根据硬件id查询详情") + @GetMapping("/get-by-hard-id") + @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_view')") + public R getByHardId(@RequestParam Long hardId) { + return R.ok(hardDoorManagerService.getByHardId(hardId)); } @Operation(summary = "通过id删除智能柜设置", description = "通过id删除智能柜设置") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java index 414dde5a9..7623514eb 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java @@ -14,4 +14,5 @@ public interface HardDoorManagerMapper extends PjcloudBaseMapper scopePageJoin(Page page, @Param("dto") HardDoorManagerDto dto, DataScope dataScope); + HardDoorManagerVo pageJoin(@Param("hardId") Long hardId); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java index 1b67ef4e5..d8ed09d6e 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java @@ -11,4 +11,13 @@ public interface HardDoorManagerService extends IService Page scopePageJoin(Page page, HardDoorManagerDto dto, DataScope dataScope); + /** + * 根据硬件id查询详情 + */ + HardDoorManagerVo getByHardId(Long hardId); + + /** + * 绑定设备 + */ + void bind(HardDoorManagerEntity dto); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java index a5af20b7b..f4bfdeed2 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java @@ -20,4 +20,24 @@ public class HardDoorManagerServiceImpl extends ServiceImpl scopePageJoin(Page page, HardDoorManagerDto dto, DataScope dataScope) { return baseMapper.scopePageJoin(page, dto, dataScope); } + + /** + * 根据硬件id查询详情 + */ + @Override + public HardDoorManagerVo getByHardId(Long hardId) { + return baseMapper.pageJoin(hardId); + } + + /** + * 绑定设备 + */ + @Override + public void bind(HardDoorManagerEntity dto) { + HardDoorManagerEntity saveOrUpdate = new HardDoorManagerEntity(); + saveOrUpdate.setId(dto.getId()); + saveOrUpdate.setHardId(dto.getHardId()); + saveOrUpdate.setImei(dto.getImei()); + baseMapper.insertOrUpdate(saveOrUpdate); + } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java index 6bb037a60..70b993a36 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java @@ -16,16 +16,19 @@ import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.security.service.PjcloudUser; +import com.bsd.pjcloud.hard.api.constant.HardTypeEnum; import com.bsd.pjcloud.hard.api.dto.HardGroupDto; import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto; import com.bsd.pjcloud.hard.api.dto.hard.CurrentUserHardTypeInfoDto; import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto; import com.bsd.pjcloud.hard.api.entity.HardGroupEntity; +import com.bsd.pjcloud.hard.api.entity.manager.HardDoorManagerEntity; import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity; import com.bsd.pjcloud.hard.api.utils.HardUtil; import com.bsd.pjcloud.hard.api.vo.manager.HardManagerVo; import com.bsd.pjcloud.hard.mapper.HardGroupMapper; import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; +import com.bsd.pjcloud.hard.service.HardDoorManagerService; import com.bsd.pjcloud.hard.service.HardManagerService; import com.bsd.pjcloud.hard.mqtt.config.MqttConfig; import com.bsd.pjcloud.hard.utils.MqTopicUtil; @@ -54,6 +57,8 @@ public class HardManagerServiceImpl extends ServiceImpl 0; } - private String createMqConfigByAction(Long groupId, Long deptId, Long hardId, Integer action) { MqTopicUtil eventDto = MqTopicUtil.builder().groupId(groupId).deptId(deptId).hardId(hardId).build(); if (ObjectUtil.equals(action, 1)) { diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml index ac0532487..3aa38cc91 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml @@ -67,15 +67,26 @@ - + order by a.create_time desc , a.id desc + + \ No newline at end of file diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/api/feign/RemoterThirdDoorApiService.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/api/feign/RemoterThirdDoorApiService.java new file mode 100644 index 000000000..c8b825ead --- /dev/null +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/api/feign/RemoterThirdDoorApiService.java @@ -0,0 +1,65 @@ +package com.bsd.pjcloud.thirdparty.api.feign; + + +import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.feign.annotation.NoToken; +import com.bsd.pjcloud.thirdparty.dto.door.*; +import com.bsd.pjcloud.thirdparty.vo.door.*; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(contextId = "remoterThirdDoorApiService", value = ServiceNameConstants.THIRDPARTY_SERVICE) +public interface RemoterThirdDoorApiService { + + /** + * 设备注册 + */ + @NoToken + @PostMapping("/third-door/register") + R register(@RequestBody DoorRegisterDto dto); + + /** + * 设备信息绑定 + */ + @NoToken + @PostMapping("/third-door/bind") + R bind(@RequestBody DoorBindDto dto); + + /** + * 查询设备状态 + */ + @NoToken + @PostMapping("/third-door/status") + R status(@RequestBody DoorStatusDto dto); + + /** + * 设备重启 + */ + @NoToken + @PostMapping("/third-door/restart") + R restart(@RequestBody DoorRestartDto dto); + + /** + * 音量设置 + */ + @NoToken + @PostMapping("/third-door/volume") + R volume(@RequestBody DoorVolumeDto dto); + + /** + * 音量设置 + */ + @NoToken + @PostMapping("/third-door/open") + R open(@RequestBody DoorOpenDto dto); + + /** + * 音量设置 + */ + @NoToken + @PostMapping("/third-door/video") + R video(@RequestBody DoorVideoDto dto); + +} diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorBaseVo.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorBaseVo.java index e50f3ba3d..105c6f8ec 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorBaseVo.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorBaseVo.java @@ -12,6 +12,8 @@ public class DoorBaseVo { private String message; + private Object data; + public boolean isSuccess() { return ObjectUtil.equal(code, DoorBaseVo.successCode); } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorVideoCallbackVo.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorVideoCallbackVo.java new file mode 100644 index 000000000..d51a92f2f --- /dev/null +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/vo/door/DoorVideoCallbackVo.java @@ -0,0 +1,7 @@ +package com.bsd.pjcloud.thirdparty.vo.door; + +import lombok.Data; + +@Data +public class DoorVideoCallbackVo { +} diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports index e45bfabeb..77223a1d0 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports @@ -1,2 +1,3 @@ +com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdDoorApiService com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdPartyAuthService com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdZyService diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/door/ThirdDoorApiController.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/door/ThirdDoorApiController.java index ada67b7fe..cd159e6b5 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/door/ThirdDoorApiController.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/door/ThirdDoorApiController.java @@ -3,9 +3,9 @@ package com.bsd.pjcloud.thirdparty.controller.door; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.security.annotation.Inner; -import com.bsd.pjcloud.thirdparty.dto.door.DoorRegisterDto; +import com.bsd.pjcloud.thirdparty.dto.door.*; import com.bsd.pjcloud.thirdparty.service.ThirdDoorApiService; -import com.bsd.pjcloud.thirdparty.vo.door.DoorRegisterVo; +import com.bsd.pjcloud.thirdparty.vo.door.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; @@ -25,13 +25,84 @@ public class ThirdDoorApiController { private final ThirdDoorApiService thirdDoorApiService; - /* ************************************* start 原创调用 start ************************************* */ + /* ************************************* start 远程调用 start ************************************* */ @Inner - @Operation(summary = "本地一卡通交易数据同步") + @Operation(summary = "设备注册") @PostMapping("/register") public R register(@RequestBody DoorRegisterDto dto) { return R.ok(thirdDoorApiService.register(dto)); } - /* ************************************* end 原创调用 end ************************************* */ + + @Inner + @Operation(summary = "设备信息绑定") + @PostMapping("/bind") + public R bind(@RequestBody DoorBindDto dto) { + return R.ok(thirdDoorApiService.bind(dto)); + } + + @Inner + @Operation(summary = "查询设备状态") + @PostMapping("/status") + public R status(@RequestBody DoorStatusDto dto) { + return R.ok(thirdDoorApiService.status(dto)); + } + + @Inner + @Operation(summary = "设备重启") + @PostMapping("/restart") + public R restart(@RequestBody DoorRestartDto dto) { + return R.ok(thirdDoorApiService.restart(dto)); + } + + @Inner + @Operation(summary = "音量设置") + @PostMapping("/volume") + public R volume(@RequestBody DoorVolumeDto dto) { + return R.ok(thirdDoorApiService.volume(dto)); + } + + @Inner + @Operation(summary = "请求开锁") + @PostMapping("/open") + public R open(@RequestBody DoorOpenDto dto) { + return R.ok(thirdDoorApiService.open(dto)); + } + + @Inner + @Operation(summary = "调取另一个摄像头视频") + @PostMapping("/video") + public R video(@RequestBody DoorVideoDto dto) { + return R.ok(thirdDoorApiService.video(dto)); + } + + + /* ************************************* end 远程调用 end ************************************* */ + + + /* ************************************* start 回调 start ************************************* */ + + @Inner(value = false) + @Operation(summary = "门锁开关通知回调") + @PostMapping("/callback/open") + public R callbackOpen(@RequestBody DoorOpenCallbackDto dto) { + return R.ok(thirdDoorApiService.callbackOpen(dto)); + } + + @Inner(value = false) + @Operation(summary = "视频地址通知回调") + @PostMapping("/callback/open") + public R callbackVideo(@RequestBody DoorVideoCallbackDto dto) { + return R.ok(thirdDoorApiService.callbackVideo(dto)); + } + + @Inner(value = false) + @Operation(summary = "设备状态通知回调") + @PostMapping("/callback/open") + public R callbackStatus(@RequestBody DoorStatusDto dto) { + return R.ok(thirdDoorApiService.callbackStatus(dto)); + } + + + /* ************************************* start 回调 start ************************************* */ } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdDoorApiService.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdDoorApiService.java index abd396d85..f68b4d062 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdDoorApiService.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/ThirdDoorApiService.java @@ -1,8 +1,8 @@ package com.bsd.pjcloud.thirdparty.service; -import com.bsd.pjcloud.thirdparty.dto.door.DoorRegisterDto; -import com.bsd.pjcloud.thirdparty.vo.door.DoorRegisterVo; +import com.bsd.pjcloud.thirdparty.dto.door.*; +import com.bsd.pjcloud.thirdparty.vo.door.*; public interface ThirdDoorApiService { @@ -11,5 +11,48 @@ public interface ThirdDoorApiService { */ DoorRegisterVo register(DoorRegisterDto dto); + /** + * 设备信息绑定 + */ + DoorBindVo bind(DoorBindDto dto); + /** + * 查询设备状态 + */ + DoorStatusVo status(DoorStatusDto dto); + + /** + * 设备重启 + */ + DoorRestartVo restart(DoorRestartDto dto); + + /** + * 音量设置 + */ + DoorVolumeVo volume(DoorVolumeDto dto); + + /** + * 请求开锁 + */ + DoorOpenVo open(DoorOpenDto dto); + + /** + * 调取另一个摄像头视频 + */ + DoorVideoVo video(DoorVideoDto dto); + + /** + * 门锁开关通知回调 + */ + DoorOpenCallbackVo callbackOpen(DoorOpenCallbackDto dto); + + /** + * 视频地址通知回调 + */ + DoorVideoCallbackVo callbackVideo(DoorVideoCallbackDto dto); + + /** + * 设备状态通知回调 + */ + DoorStatusVo callbackStatus(DoorStatusDto dto); } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorApiServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorApiServiceImpl.java index 629b153d1..11800e381 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorApiServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorApiServiceImpl.java @@ -1,22 +1,30 @@ package com.bsd.pjcloud.thirdparty.service.impl.door; -import cn.hutool.http.HttpRequest; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; -import com.bsd.pjcloud.thirdparty.dto.door.DoorRegisterDto; +import com.bsd.pjcloud.thirdparty.dto.door.*; +import com.bsd.pjcloud.thirdparty.entity.door.ThirdDoorLogEntity; import com.bsd.pjcloud.thirdparty.service.ThirdDoorApiService; +import com.bsd.pjcloud.thirdparty.service.ThirdDoorLogService; import com.bsd.pjcloud.thirdparty.utils.door.api.DoorApi; -import com.bsd.pjcloud.thirdparty.vo.door.DoorRegisterVo; +import com.bsd.pjcloud.thirdparty.vo.door.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.Arrays; + @Service @Validated @Slf4j @RequiredArgsConstructor public class ThirdDoorApiServiceImpl implements ThirdDoorApiService { + private final String TAG = "智能柜api"; + + private final ThirdDoorLogService doorLogService; + /** * 设备注册 */ @@ -24,13 +32,120 @@ public class ThirdDoorApiServiceImpl implements ThirdDoorApiService { public DoorRegisterVo register(DoorRegisterDto dto) { long startTime = System.currentTimeMillis(); DoorApi.Api registerApi = DoorApi.REGISTER; + ThirdDoorLogEntity logEntity = registerApi.getInitLogEntity(); + logEntity.setReq(JSONUtil.toJsonStr(dto)); try { - String res = registerApi.getHttpRequest().body(JSONUtil.toJsonStr(dto)).execute().body(); + String body = JSONUtil.toJsonStr(dto); + String res = registerApi.getHttpRequest().body(body).execute().body(); + if (ObjectUtil.isEmpty(res)) throw new RuntimeException("response响应为空"); + logEntity.setRes(res); + DoorBaseVo doorBaseVo = JSONUtil.toBean(res, DoorBaseVo.class); + if (!doorBaseVo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, registerApi, body)); + } + return JSONUtil.toBean(res, DoorRegisterVo.class); } catch (Exception e) { - + String error = String.format("|%s||register|意外的错误error|%s|stack|%s|", TAG, e.getMessage(), Arrays.toString(e.getStackTrace())); + log.error(error); + logEntity.setError(error); } finally { - + logEntity.setTimeConsuming(Long.toString(System.currentTimeMillis() - startTime)); + doorLogService.save(logEntity); } return null; } + + /** + * 设备信息绑定 + */ + @Override + public DoorBindVo bind(DoorBindDto dto) { + long startTime = System.currentTimeMillis(); + DoorApi.Api registerApi = DoorApi.REGISTER; + ThirdDoorLogEntity logEntity = registerApi.getInitLogEntity(); + logEntity.setReq(JSONUtil.toJsonStr(dto)); + try { + String body = JSONUtil.toJsonStr(dto); + String res = registerApi.getHttpRequest().body(body).execute().body(); + if (ObjectUtil.isEmpty(res)) throw new RuntimeException("response响应为空"); + logEntity.setRes(res); + DoorBaseVo doorBaseVo = JSONUtil.toBean(res, DoorBaseVo.class); + if (!doorBaseVo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, registerApi, body)); + } + return JSONUtil.toBean(res, DoorBindVo.class); + } catch (Exception e) { + String error = String.format("|%s||bind|意外的错误error|%s|stack|%s|", TAG, e.getMessage(), Arrays.toString(e.getStackTrace())); + log.error(error); + logEntity.setError(error); + } finally { + logEntity.setTimeConsuming(Long.toString(System.currentTimeMillis() - startTime)); + doorLogService.save(logEntity); + } + return null; + } + + /** + * 查询设备状态 + */ + @Override + public DoorStatusVo status(DoorStatusDto dto) { + return null; + } + + /** + * 设备重启 + */ + @Override + public DoorRestartVo restart(DoorRestartDto dto) { + return null; + } + + /** + * 音量设置 + */ + @Override + public DoorVolumeVo volume(DoorVolumeDto dto) { + return null; + } + + /** + * 请求开锁 + */ + @Override + public DoorOpenVo open(DoorOpenDto dto) { + return null; + } + + /** + * 调取另一个摄像头视频 + */ + @Override + public DoorVideoVo video(DoorVideoDto dto) { + return null; + } + + /** + * 门锁开关通知回调 + */ + @Override + public DoorOpenCallbackVo callbackOpen(DoorOpenCallbackDto dto) { + return null; + } + + /** + * 视频地址通知回调 + */ + @Override + public DoorVideoCallbackVo callbackVideo(DoorVideoCallbackDto dto) { + return null; + } + + /** + * 设备状态通知回调 + */ + @Override + public DoorStatusVo callbackStatus(DoorStatusDto dto) { + return null; + } } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorLogServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorLogServiceImpl.java index 94d88e4e0..2b9279fef 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorLogServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/door/ThirdDoorLogServiceImpl.java @@ -12,9 +12,6 @@ import org.springframework.stereotype.Service; /** * 智能柜日志 - * - * @author dzc - * @date 2025-04-08 14:26:47 */ @Service public class ThirdDoorLogServiceImpl extends ServiceImpl implements ThirdDoorLogService { diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeApplyMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeApplyMapper.java index fe828b73c..667bf45bf 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeApplyMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/recharge/WalletRechargeApplyMapper.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeApplyDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeApplyEntity; @@ -65,9 +66,15 @@ public interface WalletRechargeApplyMapper extends PjcloudBaseMapper