Selaa lähdekoodia

```
refactor(device): 优化设备网关与控制器代码格式及逻辑- 调整了 DeviceController 与 DeviceGatewayImpl 中的代码缩进和空行,提升可读性- 移除了 DeviceGatewayImpl 中未使用的 RedisUtil 和 MqttSubHandle依赖
-修正多个 if 判断、方法参数空格及括号前后空格不规范问题
- 删除了部分注释和无用代码块,精简逻辑
- 修复部分日志打印语句及字段更新语句的格式问题
- 移除了 EventController 中不再使用的告警事件处理接口
- 统一代码风格,增强代码整洁性和一致性
```

chejianzheng 1 kuukausi sitten
vanhempi
commit
d9f879e71f
86 muutettua tiedostoa jossa 477 lisäystä ja 1665 poistoa
  1. 0 45
      portal-service-application/src/main/java/com/hfln/portal/application/controller/las/AlarmController.java
  2. 0 2
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/AlarmController.java
  3. 0 23
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/DeviceController.java
  4. 1 8
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/EventController.java
  5. 8 8
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/GroupController.java
  6. 2 9
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/HomeController.java
  7. 2 4
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/QuestionController.java
  8. 0 2
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/RadarController.java
  9. 2 2
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/ShareController.java
  10. 4 43
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/UserController.java
  11. 0 6
      portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/WechatController.java
  12. 0 1
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebAdminDealController.java
  13. 0 1
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebAdminQueryController.java
  14. 0 1
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebAlarmController.java
  15. 0 2
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebDeviceController.java
  16. 7 8
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebDictController.java
  17. 2 8
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebEventController.java
  18. 8 9
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebQuestionController.java
  19. 1 1
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebStatsController.java
  20. 6 5
      portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebSystemController.java
  21. 0 4
      portal-service-common/src/main/java/com/hfln/portal/common/constant/mqtt/topic/TopicConstants.java
  22. 0 6
      portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/DeviceGateway.java
  23. 4 21
      portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/UserGateway.java
  24. 0 3
      portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/sms/SmsGateway.java
  25. 0 5
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/DiamondConfig.java
  26. 3 4
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/GlobalExceptionHandler.java
  27. 31 32
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/MqttConfig.java
  28. 2 0
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/MybatisPlusConfig.java
  29. 54 53
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/MybatisPlusMetaObjectHandler.java
  30. 60 78
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/UserAuthService.java
  31. 2 6
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/AlarmGatewayImpl.java
  32. 57 149
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java
  33. 1 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/GroupGatewayImpl.java
  34. 0 33
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/LasGatewayImpl.java
  35. 5 10
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/PubGatewayImpl.java
  36. 15 14
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/StatsGatewayImpl.java
  37. 25 185
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/UserGatewayImpl.java
  38. 2 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebAdminDealGatewayImpl.java
  39. 43 42
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebGatewayImpl.java
  40. 2 6
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebQuestionGatewayImpl.java
  41. 24 27
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebStatsGatewayImpl.java
  42. 3 4
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebTenantGatewayImpl.java
  43. 11 13
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebUserGatewayImpl.java
  44. 2 31
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/sms/SmsGatewayImpl.java
  45. 6 5
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttClient.java
  46. 11 7
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttSend.java
  47. 0 549
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttSubHandle.java
  48. 3 3
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/handlers/LastWillHandler.java
  49. 1 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/handlers/LoginHandler.java
  50. 1 0
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/handlers/PresenceChangeHandler.java
  51. 0 5
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/order/OrderGatewayImpl.java
  52. 3 11
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/oss/OssClient.java
  53. 0 5
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/oss/OssUtils.java
  54. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/AlarmPlanService.java
  55. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/AlarmPlanTplService.java
  56. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DailyActiveUsersService.java
  57. 1 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevGroupService.java
  58. 6 6
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevInfoService.java
  59. 2 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/EventsService.java
  60. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/GroupShareService.java
  61. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/OssFileService.java
  62. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblRoleMenuMapService.java
  63. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblRoleService.java
  64. 3 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblSystemMenuService.java
  65. 1 0
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblUserRoleService.java
  66. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/UserRoleService.java
  67. 2 0
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/UserService.java
  68. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AdminUserServiceImpl.java
  69. 1 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AlarmPlanServiceImpl.java
  70. 4 4
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AlarmPlanTplServiceImpl.java
  71. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DailyActiveUsersServiceImpl.java
  72. 1 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevGroupServiceImpl.java
  73. 9 16
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevInfoServiceImpl.java
  74. 3 3
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevRoomServiceImpl.java
  75. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevShareServiceImpl.java
  76. 2 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/EventListServiceImpl.java
  77. 4 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/EventsServiceImpl.java
  78. 1 84
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/OssFileServiceImpl.java
  79. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblDicItemServiceImpl.java
  80. 10 10
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblRoleMenuMapServiceImpl.java
  81. 1 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblRoleServiceImpl.java
  82. 3 3
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblSystemMenuServiceImpl.java
  83. 2 5
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblTenantServiceImpl.java
  84. 0 1
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/UserRoleServiceImpl.java
  85. 1 2
      portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/UserServiceImpl.java
  86. 0 1
      portal-service-server/src/main/java/com/hfln/portal/server/Application.java

+ 0 - 45
portal-service-application/src/main/java/com/hfln/portal/application/controller/las/AlarmController.java

@@ -1,45 +0,0 @@
-//
-//package com.hfln.portal.application.controller.las;
-//
-//
-//import cn.hfln.framework.catchlog.CatchAndLog;
-//import cn.hfln.framework.dto.ApiResult;
-//import com.hfln.portal.common.dto.data.event.AlarmPlanDTO;
-//import com.hfln.portal.common.request.event.AlarmEventNoticeReq;
-//import com.hfln.portal.common.request.event.AlarmPlanReq;
-//import com.hfln.portal.domain.gateway.LasGateway;
-//import io.swagger.v3.oas.annotations.Operation;
-//import io.swagger.v3.oas.annotations.tags.Tag;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.PostMapping;
-//import org.springframework.web.bind.annotation.RequestBody;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import javax.validation.Valid;
-//import java.util.List;
-//
-//@RestController
-//@CatchAndLog
-//@Tag(name = "告警controller")
-//@Slf4j
-//@RequestMapping("/alarm")
-//public class AlarmController {
-//
-//    @Autowired
-//    private LasGateway lasGateway;
-//
-//    @Operation(summary = "告警计划查询")
-//    @PostMapping("/plan/query")
-//    public ApiResult<List<AlarmPlanDTO>> queryPlan(@Valid @RequestBody AlarmPlanReq req) {
-//        return ApiResult.success(lasGateway.queryPlan(req));
-//    }
-//
-//    @Operation(summary = "告警事件通知")
-//    @PostMapping("/event/notice")
-//    public ApiResult<Void> noticeEvent(@Valid @RequestBody AlarmEventNoticeReq req) {
-//        return ApiResult.success(lasGateway.noticeEvent(req));
-//    }
-//
-//}

+ 0 - 2
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/AlarmController.java

@@ -35,7 +35,6 @@ public class AlarmController {
         return ApiResult.success(alarmGateway.wapQueryPlanTpl(req));
     }
 
-
     @PostMapping("/plan/query")
     @Operation(summary = "告警计划查询")
     public ApiResult<List<AlarmPlanDTO>> queryPlan(@Valid @RequestBody AlarmPlanQueryReq req) {
@@ -61,5 +60,4 @@ public class AlarmController {
         alarmGateway.enablePlan(req);
         return ApiResult.success();
     }
-
 }

+ 0 - 23
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/DeviceController.java

@@ -23,10 +23,6 @@ public class DeviceController {
     @Autowired
     private DeviceGateway deviceGateway;
 
-
-//    @Autowired
-//    private MqttTemplate
-
     @PostMapping("/deviceList")
     @Operation(summary = "查询设备列表")
     public ApiResult<List<DeviceDTO>> deviceList(@RequestBody @Valid DeviceListParams request) {
@@ -51,36 +47,24 @@ public class DeviceController {
         return ApiResult.success(deviceGateway.queryDeviceById(devId));
     }
 
-
-    @GetMapping("/deviceRelations")
-    @Operation(summary = "设备关系")
-    // todo web网页端接口,后续待定
-    public ApiResult<DeviceDTO> deviceRelations() {
-        return ApiResult.success();
-    }
-
-
     @PostMapping("/updateDevice")
     @Operation(summary = "设备信息修改")
     public ApiResult<DeviceDTO> updateDevice(@RequestBody @Valid UpdateDeviceParams params) {
         return ApiResult.success(deviceGateway.updateDevice(params));
     }
 
-
     @PostMapping("/updateDeviceLocation")
     @Operation(summary = "更新设备位置")
     public ApiResult<Boolean> updateDeviceLocation(@RequestBody @Valid DeviceLocationParams params) {
         return ApiResult.success(deviceGateway.updateDeviceLocation(params));
     }
 
-
     @GetMapping("/checkDevByUserId")
     @Operation(summary = "检测用户是否拥有设备")
     public ApiResult<Boolean> checkDevByUserId(@RequestParam Long userId, @RequestParam Long devId) {
         return ApiResult.success(deviceGateway.checkDevByUserId(userId, devId));
     }
 
-
     @PostMapping("/transfer")
     @Operation(summary = "设备转移")
     public ApiResult<Boolean> deviceTransfer(@RequestBody @Valid DeviceTransferParams params) {
@@ -92,11 +76,4 @@ public class DeviceController {
     public ApiResult<Boolean> statusLight(@RequestBody @Valid StatusLightParams params) {
         return ApiResult.success(deviceGateway.statusLight(params));
     }
-/*
-
-    @GetMapping("/checkDevByOpenId")
-    @ApiOperation(value = "检测用户是否拥有设备")
-    public ApiResult<String> checkDevByOpenId(@RequestParam String openId , @RequestParam String clientId) {
-        return ApiResult.success(deviceGateway.checkDevByOpenId(openId, clientId));
-    }*/
 }

+ 1 - 8
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/EventController.java

@@ -19,16 +19,9 @@ public class EventController {
     @Autowired
     private DeviceGateway deviceGateway;
 
-
     @GetMapping("/handleEvent")
     @Operation(summary = "小程序处理设备跌倒事件")
-    public ApiResult<Boolean> handleEvent(@RequestParam Long eventListId){
+    public ApiResult<Boolean> handleEvent(@RequestParam Long eventListId) {
         return ApiResult.success(deviceGateway.handleEvent(eventListId));
     }
-
-//    @GetMapping("/handleAlarmEvent/{alarmEventId}")
-//    @Operation(summary = "小程序处理设备异常告警事件")
-//    public ApiResult<Boolean> handleAlarmEvent(@PathVariable("alarmEventId") Long alarmEventId){
-//        return ApiResult.success(deviceGateway.handleAlarmEvent(alarmEventId));
-//    }
 }

+ 8 - 8
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/GroupController.java

@@ -27,19 +27,19 @@ public class GroupController {
 
     @PostMapping("/addGroup")
     @Operation(summary = "添加群组")
-    public ApiResult<Boolean> addGroup(@RequestBody @Valid GroupAddParams request){
+    public ApiResult<Boolean> addGroup(@RequestBody @Valid GroupAddParams request) {
         return ApiResult.success(groupGateway.addGroup(request));
     }
 
     @PostMapping("/deleteGroup")
     @Operation(summary = "删除群组")
-    public ApiResult<Boolean> deleteGroup(@RequestParam Long groupId){
+    public ApiResult<Boolean> deleteGroup(@RequestParam Long groupId) {
         return ApiResult.success(groupGateway.deleteGroup(groupId));
     }
 
     @PostMapping("/updateGroup")
     @Operation(summary = "更新群组")
-    public ApiResult<Boolean> updateGroup(@RequestBody @Valid GroupUpdateParams params){
+    public ApiResult<Boolean> updateGroup(@RequestBody @Valid GroupUpdateParams params) {
         return ApiResult.success(groupGateway.updateGroup(params));
     }
 
@@ -51,7 +51,7 @@ public class GroupController {
 
     @GetMapping("/queryGroupDeviceInfoById")
     @Operation(summary = "获取群组设备列表")
-    public ApiResult<List<DeviceDTO>> queryGroupById(@RequestParam Long groupId){
+    public ApiResult<List<DeviceDTO>> queryGroupById(@RequestParam Long groupId) {
         return ApiResult.success(groupGateway.queryGroupDeviceInfoById(groupId));
     }
 
@@ -63,25 +63,25 @@ public class GroupController {
 
     @PostMapping("/deleteDeviceFromGroup")
     @Operation(summary = "删除设备从群组")
-    public ApiResult<Boolean> deleteDeviceFromGroup(@RequestBody @Valid DeleteDeviceFromGroupParams request){
+    public ApiResult<Boolean> deleteDeviceFromGroup(@RequestBody @Valid DeleteDeviceFromGroupParams request) {
         return ApiResult.success(groupGateway.deleteDeviceFromGroup(request));
     }
 
     @PostMapping("/shareGroup")
     @Operation(summary = "通过链接分享群组")
-    public ApiResult<Boolean> shareGroup(@RequestBody @Valid ShareGroupParams request){
+    public ApiResult<Boolean> shareGroup(@RequestBody @Valid ShareGroupParams request) {
         return ApiResult.success(groupGateway.shareGroup(request));
     }
 
     @PostMapping("/GroupShareConfirm")
     @Operation(summary = "群组分享确认")
-    public ApiResult<Boolean> GroupShareConfirm(@RequestBody @Valid GroupShareConfirmParams request){
+    public ApiResult<Boolean> GroupShareConfirm(@RequestBody @Valid GroupShareConfirmParams request) {
         return ApiResult.success(groupGateway.groupShareConfirm(request));
     }
 
     @PostMapping("/groupShareHandle")
     @Operation(summary = "群组分享处理")
-    public ApiResult<Boolean> groupShareHandle(@RequestBody @Valid GroupShareHandleParams request){
+    public ApiResult<Boolean> groupShareHandle(@RequestBody @Valid GroupShareHandleParams request) {
         return ApiResult.success(groupGateway.groupShareHandle(request));
     }
 }

+ 2 - 9
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/HomeController.java

@@ -36,13 +36,6 @@ public class HomeController {
         return ApiResult.success(deviceGateway.queryHomeInfo(userId));
     }
 
-//    @PostMapping(value = "/uploadCarousel")
-//    @Operation(summary = "上传轮播图", description = "上传轮播图片文件,支持PNG和JPEG格式")
-//    public ApiResult<Void> uploadCarousel(@Valid @RequestParam MultipartFile file) throws IOException {
-//        userGateway.uploadCarousel(file);
-//        return ApiResult.success();
-//    }
-
     @GetMapping("/getFileList")
     @Operation(summary = "获取后台文件列表", description = "获取oss中数据库存储的url  文件类型根据字典接口查询 oss_busi_type 然后下拉选择")
     public ApiResult<List<OssFileDTO>> getFileList(@RequestParam String fileType) {
@@ -52,8 +45,8 @@ public class HomeController {
 
     @PostMapping(value = "/uploadFile")
     @Operation(summary = "上传文件", description = "上传通用文件,文件类型根据字典接口查询 oss_busi_type 然后下拉选择 ")
-    public ApiResult<Void> uploadCommonFile(@Valid @RequestParam MultipartFile file, 
-                                           @RequestParam String fileType) throws IOException {
+    public ApiResult<Void> uploadCommonFile(@Valid @RequestParam MultipartFile file,
+                                            @RequestParam String fileType) throws IOException {
         userGateway.uploadCommonFile(file, fileType);
         return ApiResult.success();
     }

+ 2 - 4
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/QuestionController.java

@@ -22,21 +22,19 @@ import java.util.List;
 @RequestMapping("/wap/question")
 public class QuestionController {
 
-
     @Autowired
     private WebQuestionGateway webQuestionGateway;
 
     @GetMapping("/queryQuestionnaireDetails")
     @Operation(summary = "查询问卷详情")
-    public ApiResult<QuestionnaireDetailsDTO> queryQuestionnaireDetails(@RequestParam Long questionnaireId){
+    public ApiResult<QuestionnaireDetailsDTO> queryQuestionnaireDetails(@RequestParam Long questionnaireId) {
         return ApiResult.success(webQuestionGateway.queryQuestionnaireDetails(questionnaireId));
     }
 
     @PostMapping("/saveAnswer")
     @Operation(summary = "保存问卷答案")
-    public ApiResult<Void> saveAnswer(@RequestBody @Valid List<AnswerSaveParam> params){
+    public ApiResult<Void> saveAnswer(@RequestBody @Valid List<AnswerSaveParam> params) {
         webQuestionGateway.saveAnswer(params);
         return ApiResult.success();
     }
-
 }

+ 0 - 2
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/RadarController.java

@@ -36,8 +36,6 @@ public class RadarController {
         return ApiResult.success();
     }
 
-
-
     @GetMapping("/fixPost")
     @Operation(summary = "姿态修正")
     public ApiResult<Void> fixPost(@RequestParam String clientId, @RequestParam int poseIndex) {

+ 2 - 2
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/ShareController.java

@@ -61,7 +61,7 @@ public class ShareController {
 
     @PostMapping("/cancelShare")
     @Operation(summary = "取消分享账户")
-    public ApiResult<Void> cancelShare(@RequestParam Long shareId){
+    public ApiResult<Void> cancelShare(@RequestParam Long shareId) {
         deviceGateway.cancelShare(shareId);
         return ApiResult.success();
     }
@@ -81,7 +81,7 @@ public class ShareController {
 
     @GetMapping("/queryByDevId")
     @Operation(summary = "通过设备ID查询设备分享记录")
-    public ApiResult<List<ShareDto>> queryByDevId(@RequestParam Long devId,@RequestParam Long userId) {
+    public ApiResult<List<ShareDto>> queryByDevId(@RequestParam Long devId, @RequestParam Long userId) {
         return ApiResult.success(deviceGateway.queryByDevId(devId, userId));
     }
 

+ 4 - 43
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/UserController.java

@@ -33,16 +33,6 @@ public class UserController {
     @Autowired
     private SmsGateway smsGateway;
 
-//    @GetMapping("/queryForOpenId")
-//    @Operation(summary = "登录获取openId")
-//    public ApiResult<String> queryForOpenId(@RequestParam String code) {
-//        String openId = userGateway.getOpenId(code);
-//        if (StringUtils.isNoneEmpty(openId)) {
-//            return ApiResult.success(openId);
-//        }
-//        return ApiResult.failed("获取openId失败!");
-//    }
-
     @GetMapping("/loginWx")
     @Operation(summary = "登录接口")
     public ApiResult<UserInfoWxRes> loginWx(@RequestParam String code) {
@@ -61,6 +51,7 @@ public class UserController {
 
     /**
      * 微信小程序注册入口
+     *
      * @param params
      * @return
      */
@@ -73,6 +64,7 @@ public class UserController {
 
     /**
      * 微信小程序获取新token
+     *
      * @param params
      * @return
      */
@@ -93,24 +85,6 @@ public class UserController {
         return ApiResult.failed("发送短信验证码失败!");
     }
 
-//    @GetMapping("/getSignupSmsCode")
-//    @Operation(summary = "获取注册短信验证码")
-//    public ApiResult<String> getSignupSmsCode(@RequestParam String phone) {
-//        if (smsGateway.sendSignupSmsCode(phone)) {
-//            return ApiResult.success("发送短信验证码成功!");
-//        }
-//        return ApiResult.failed("发送短信验证码失败!");
-//    }
-
-//    @PostMapping("/signup")
-//    @Operation(summary = "小程序用户注册")
-//    public ApiResult<String> signup(@Valid @RequestBody UserSignupParams request) {
-//        if (userGateway.signup(request)) {
-//            return ApiResult.success("注册成功!");
-//        }
-//        return ApiResult.failed("注册失败!");
-//    }
-
     @PostMapping("/loginBySmsCode")
     @Operation(summary = "短信验证码登录")
     public ApiResult<UserTokenInfo> loginBySmsCode(@Valid @RequestBody LoginBySmsCodeParams request) {
@@ -118,12 +92,6 @@ public class UserController {
         return ApiResult.success(userTokenInfo);
     }
 
-//    @PostMapping("/loginByPassword")
-//    @Operation(summary = "密码登录")
-//    public ApiResult<UserDto> loginByPassword(@Valid @RequestBody UserLoginParams request) {
-//        return ApiResult.success(userGateway.loginByPassword(request));
-//    }
-
     @GetMapping("/getUserPhone")
     @Operation(summary = "获取用户手机号码")
     public ApiResult<Map<String, String>> getUserPhone(@RequestParam String code, String accessToken) {
@@ -132,23 +100,16 @@ public class UserController {
         return ApiResult.success(result);
     }
 
-//    @PostMapping("/updatePassword")
-//    @Operation(summary = "修改用户密码")
-//    public ApiResult<?> updatePassword(@RequestBody @Valid UserUpdatePasswordParams request) {
-//        userGateway.updatePassword(request);
-//        return ApiResult.success();
-//    }
-
     @PostMapping("/wx/logoff")
     @Operation(summary = "用户注销")
-    public ApiResult<?> logoff(@RequestBody @Valid UserLogoffParams request){
+    public ApiResult<?> logoff(@RequestBody @Valid UserLogoffParams request) {
         userGateway.logoff(request);
         return ApiResult.success();
     }
 
     @GetMapping("/checkPhone")
     @Operation(summary = "校验手机号是否被注册")
-    public ApiResult<Boolean> checkPhone(@RequestParam String phone,@RequestParam String openid) {
+    public ApiResult<Boolean> checkPhone(@RequestParam String phone, @RequestParam String openid) {
         return ApiResult.success(userGateway.checkPhone(phone, openid));
     }
 }

+ 0 - 6
portal-service-application/src/main/java/com/hfln/portal/application/controller/wap/WechatController.java

@@ -43,10 +43,4 @@ public class WechatController {
         response.sendRedirect(welcomeUrl);
         return ApiResult.success();
     }
-
-    @GetMapping("/test")
-    @Operation(summary = "测试接口")
-    public ApiResult<String> test() {
-        return ApiResult.success("Hello World!");
-    }
 }

+ 0 - 1
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebAdminDealController.java

@@ -34,5 +34,4 @@ public class WebAdminDealController {
         webAdminDealGateway.unbind(param);
         return ApiResult.success();
     }
-
 }

+ 0 - 1
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebAdminQueryController.java

@@ -34,5 +34,4 @@ public class WebAdminQueryController {
 
         return ApiResult.success(webAdminDealGateway.queryWxUser(param));
     }
-
 }

+ 0 - 1
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebAlarmController.java

@@ -54,7 +54,6 @@ public class WebAlarmController {
         return ApiResult.success();
     }
 
-
     @GetMapping("/plan/queryEventType")
     @Operation(summary = "告警事件类型查询")
     public ApiResult<List<EventTypeDTO>> queryEventType() {

+ 0 - 2
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebDeviceController.java

@@ -63,6 +63,4 @@ public class WebDeviceController {
     public ApiResult<Boolean> webUpdateDevice(@Valid @RequestBody WebUpdateDeviceParams Params) {
         return ApiResult.success(DeviceGateway.webUpdateDevice(Params));
     }
-
-
 }

+ 7 - 8
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebDictController.java

@@ -33,52 +33,51 @@ public class WebDictController {
     private WebGateway webGateway;
 
 
-
     @PostMapping("/addDic")
     @Operation(summary = "添加字典类值")
-    public ApiResult<Void> addDic(@RequestBody @Valid DicAddParam param){
+    public ApiResult<Void> addDic(@RequestBody @Valid DicAddParam param) {
         webGateway.addDic(param);
         return ApiResult.success();
     }
 
     @PostMapping("/updateDic")
     @Operation(summary = "修改字典类值")
-    public ApiResult<Void> updateDic(@RequestBody @Valid UpdateDicParam param){
+    public ApiResult<Void> updateDic(@RequestBody @Valid UpdateDicParam param) {
         webGateway.updateDic(param);
         return ApiResult.success();
     }
 
     @PostMapping("/deleteDic")
     @Operation(summary = "删除字典类值")
-    public ApiResult<Void> deleteDic(@RequestParam Long dicId){
+    public ApiResult<Void> deleteDic(@RequestParam Long dicId) {
         webGateway.deleteDic(dicId);
         return ApiResult.success();
     }
 
     @GetMapping("/queryDic")
     @Operation(summary = "查询字典类值")
-    public ApiResult<List<DicDTO>> queryDic(){
+    public ApiResult<List<DicDTO>> queryDic() {
         List<DicDTO> dicList = webGateway.queryDic();
         return ApiResult.success(dicList);
     }
 
     @PostMapping("/addDicItem")
     @Operation(summary = "添加字典项值")
-    public ApiResult<Void> addDicItem(@RequestBody @Valid DicItemAddParam param){
+    public ApiResult<Void> addDicItem(@RequestBody @Valid DicItemAddParam param) {
         webGateway.addDicItem(param);
         return ApiResult.success();
     }
 
     @PostMapping("/updateDicItem")
     @Operation(summary = "修改字典项值")
-    public ApiResult<Void> updateDicItem(@RequestBody @Valid UpdateDicItemParam param){
+    public ApiResult<Void> updateDicItem(@RequestBody @Valid UpdateDicItemParam param) {
         webGateway.updateDicItem(param);
         return ApiResult.success();
     }
 
     @PostMapping("/deleteDicItem")
     @Operation(summary = "删除字典项值")
-    public ApiResult<Void> deleteDicItem(@RequestParam Long ItemId){
+    public ApiResult<Void> deleteDicItem(@RequestParam Long ItemId) {
         webGateway.deleteDicItem(ItemId);
         return ApiResult.success();
     }

+ 2 - 8
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebEventController.java

@@ -19,16 +19,10 @@ public class WebEventController {
 
     @Autowired
     private DeviceGateway deviceGateway;
+
     @GetMapping("/handleFallEvent")
     @Operation(summary = "处理设备跌倒事件")
-    public ApiResult<Boolean> handleEvent(@RequestParam("eventListId") Long eventListId){
+    public ApiResult<Boolean> handleEvent(@RequestParam("eventListId") Long eventListId) {
         return ApiResult.success(deviceGateway.handleEvent(eventListId));
     }
-
-
-//    @GetMapping("/handleAlarmEvent")
-//    @Operation(summary = "处理设备异常告警事件")
-//    public ApiResult<Boolean> handleAlarmEvent(@RequestParam("alarmEventId") Long alarmEventId){
-//        return ApiResult.success(deviceGateway.handleAlarmEvent(alarmEventId));
-//    }
 }

+ 8 - 9
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebQuestionController.java

@@ -29,52 +29,51 @@ public class WebQuestionController {
 
     @PostMapping("/saveQuestionnaire")
     @Operation(summary = "新增或编辑问卷")
-    public ApiResult<QuestionnaireDTO> saveQuestionnaire(@RequestBody @Valid QuestionnaireSaveParam param){
+    public ApiResult<QuestionnaireDTO> saveQuestionnaire(@RequestBody @Valid QuestionnaireSaveParam param) {
         return ApiResult.success(webQuestionGateway.saveQuestionnaire(param));
     }
 
     @PostMapping("/deleteQuestionnaire")
     @Operation(summary = "删除问卷")
-    public ApiResult<Void> deleteQuestionnaire(@RequestParam Long questionnaireId){
+    public ApiResult<Void> deleteQuestionnaire(@RequestParam Long questionnaireId) {
         webQuestionGateway.deleteQuestionnaire(questionnaireId);
         return ApiResult.success();
     }
 
     @PostMapping("/queryQuestionnaire")
     @Operation(summary = "查询问卷列表")
-    public ApiResult<PageRecord<QuestionnaireDTO>> queryQuestionnaire(@RequestBody @Valid QuestionnaireQueryParam  param){
+    public ApiResult<PageRecord<QuestionnaireDTO>> queryQuestionnaire(@RequestBody @Valid QuestionnaireQueryParam param) {
         return ApiResult.success(webQuestionGateway.queryQuestionnaire(param));
     }
 
     @GetMapping("/queryQuestionnaireDetails")
     @Operation(summary = "查询问卷详情")
-    public ApiResult<QuestionnaireDetailsDTO> queryQuestionnaireDetails(@RequestParam Long questionnaireId){
+    public ApiResult<QuestionnaireDetailsDTO> queryQuestionnaireDetails(@RequestParam Long questionnaireId) {
         return ApiResult.success(webQuestionGateway.queryQuestionnaireDetails(questionnaireId));
     }
 
     @PostMapping("/saveQuestion")
     @Operation(summary = "新增或编辑问题")
-    public ApiResult<List<QuestionDTO>> saveQuestion(@RequestBody @Valid List<QuestionSaveParam> params){
+    public ApiResult<List<QuestionDTO>> saveQuestion(@RequestBody @Valid List<QuestionSaveParam> params) {
         return ApiResult.success(webQuestionGateway.saveQuestion(params));
     }
 
     @PostMapping("/saveAnswer")
     @Operation(summary = "保存问卷答案")
-    public ApiResult<Void> saveAnswer(@RequestBody @Valid List<AnswerSaveParam> params){
+    public ApiResult<Void> saveAnswer(@RequestBody @Valid List<AnswerSaveParam> params) {
         webQuestionGateway.saveAnswer(params);
         return ApiResult.success();
     }
 
     @PostMapping("/queryUserQuestionnaireList")
     @Operation(summary = "查询用户问卷列表")
-    public ApiResult<PageRecord<UserQuestionnaireListDTO>> queryUserQuestionnaireList(@RequestBody @Valid UserQuestionnaireListParam param){
+    public ApiResult<PageRecord<UserQuestionnaireListDTO>> queryUserQuestionnaireList(@RequestBody @Valid UserQuestionnaireListParam param) {
         return ApiResult.success(webQuestionGateway.queryUserQuestionnaireList(param));
     }
 
     @PostMapping("/queryUserQuestionnaireDetails")
     @Operation(summary = "查询用户问卷详情")
-    public ApiResult<UserQuestionnaireDetailsDTO> queryUserQuestionnaireDetails(@RequestBody @Valid UserQuestionnaireDetailsParam param){
+    public ApiResult<UserQuestionnaireDetailsDTO> queryUserQuestionnaireDetails(@RequestBody @Valid UserQuestionnaireDetailsParam param) {
         return ApiResult.success(webQuestionGateway.queryUserQuestionnaireDetails(param));
     }
-
 }

+ 1 - 1
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebStatsController.java

@@ -43,7 +43,7 @@ public class WebStatsController {
 
     @PostMapping("/fallQuery")
     @Operation(summary = "跌倒统计查询")
-    public ApiResult<PageRecord<EventListDTO>> fallQuery(@Valid @RequestBody EventListParams  params) {
+    public ApiResult<PageRecord<EventListDTO>> fallQuery(@Valid @RequestBody EventListParams params) {
         return ApiResult.success(webStatsGateway.fallQuery(params));
     }
 

+ 6 - 5
portal-service-application/src/main/java/com/hfln/portal/application/controller/web/WebSystemController.java

@@ -31,9 +31,10 @@ public class WebSystemController {
 
     @Autowired
     private WebGateway webGateway;
+
     @PostMapping("/addRole")
     @Operation(summary = "新增角色")
-    public ApiResult<Void> addRole(@RequestBody @Valid AddRoleParam params){
+    public ApiResult<Void> addRole(@RequestBody @Valid AddRoleParam params) {
 
         webGateway.addRole(params);
         return ApiResult.success();
@@ -41,7 +42,7 @@ public class WebSystemController {
 
     @PostMapping("/disable")
     @Operation(summary = "禁用角色")
-    public ApiResult<Void> disableRole(@RequestParam @Parameter(description = "角色编码") String roleCode){
+    public ApiResult<Void> disableRole(@RequestParam @Parameter(description = "角色编码") String roleCode) {
 
         webGateway.disableRole(roleCode);
         return ApiResult.success();
@@ -49,21 +50,21 @@ public class WebSystemController {
 
     @GetMapping("/roleList")
     @Operation(summary = "获取角色列表")
-    public ApiResult<List<RoleListDTO>> roleList(){
+    public ApiResult<List<RoleListDTO>> roleList() {
         List<RoleListDTO> roleList = webGateway.roleList();
         return ApiResult.success(roleList);
     }
 
     @PostMapping("/addMenu")
     @Operation(summary = "添加菜单")
-    public ApiResult<Void> addMenu(@RequestBody @Valid AddMenuParam param){
+    public ApiResult<Void> addMenu(@RequestBody @Valid AddMenuParam param) {
         webGateway.addMenu(param);
         return ApiResult.success();
     }
 
     @PostMapping("/updateMenu")
     @Operation(summary = "修改菜单")
-    public ApiResult<Void> updateMenu(@RequestBody @Valid UpdateMenuParam param){
+    public ApiResult<Void> updateMenu(@RequestBody @Valid UpdateMenuParam param) {
         webGateway.updateMenu(param);
         return ApiResult.success();
     }

+ 0 - 4
portal-service-common/src/main/java/com/hfln/portal/common/constant/mqtt/topic/TopicConstants.java

@@ -29,10 +29,6 @@ public interface TopicConstants {
     //向算法发送家具参数
     String TOPIC_DAS_SET_FURNITURE_PARAM = "/opc/update_furnitures";
 
-    // 订阅主题
-    String TOPIC_DAS_EVENT = "/das/event";
-    // alarm事件
-    String TOPIC_DAS_ALARM_EVENT = "/das/alarm_event";
 
     /**
      * 与前端交互 主题

+ 0 - 6
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/DeviceGateway.java

@@ -32,8 +32,6 @@ public interface DeviceGateway {
 
     Boolean handleEvent(Long eventListId);
 
-//    Boolean handleAlarmEvent(Long alarmEventId);
-
     Boolean webUpdateDevice(WebUpdateDeviceParams params);
 
     DeviceDTO updateDevice(UpdateDeviceParams params);
@@ -100,8 +98,4 @@ public interface DeviceGateway {
 
     String getFloorPlan(String groupUuid);
 
-
-
-
-    //String checkDevByOpenId(String openId, String clientId);
 }

+ 4 - 21
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/UserGateway.java

@@ -12,37 +12,18 @@ import java.util.List;
 
 public interface UserGateway {
 
-
-//    String getOpenId(String code);
-
-
     UserInfoWxRes loginWx(String code);
 
-
     UserTokenInfo loginByPhone(PhoneLoginParams params);
 
-
-//    Boolean signup(UserSignupParams request);
-
-
     Boolean checkOpenId(String openId);
-    UserDto queryByOpenId(String openId);
 
+    UserDto queryByOpenId(String openId);
 
     UserTokenInfo loginBySmsCode(LoginBySmsCodeParams request);
 
-
-//    UserDto loginByPassword(UserLoginParams request);
-
-
     String getUserPhone(String code, String accessToken);
 
-
-    void test();
-
-
-//    void updatePassword(UserUpdatePasswordParams request);
-
     void logoff(UserLogoffParams request);
 
     String authUrl();
@@ -60,6 +41,7 @@ public interface UserGateway {
 
     /**
      * 获取文件列表
+     *
      * @param fileType 文件类型
      * @return 文件信息列表
      */
@@ -69,7 +51,8 @@ public interface UserGateway {
 
     /**
      * 上传通用文件
-     * @param file 文件
+     *
+     * @param file     文件
      * @param fileType 文件类型
      * @throws IOException IO异常
      */

+ 0 - 3
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/sms/SmsGateway.java

@@ -7,9 +7,6 @@ public interface SmsGateway {
 
     Boolean sendLoginSmsCode(String phone);
 
-
-//    Boolean sendSignupSmsCode(String phone);
-
     Boolean sendResetSmsCode(String phone);
 
 }

+ 0 - 5
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/DiamondConfig.java

@@ -1,5 +0,0 @@
-package com.hfln.portal.infrastructure.config;
-
-public class DiamondConfig {
-    public final static String DummyConfig = "DummyConfig";
-}

+ 3 - 4
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/GlobalExceptionHandler.java

@@ -34,7 +34,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
     @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)
     public ApiResult<?> handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException e,
-                                                         HttpServletRequest request) {
+                                                            HttpServletRequest request) {
         Tracer.trace(e);
         String requestURI = request.getRequestURI();
         log.error("请求地址'{}',不支持'{}'请求", requestURI, e.getMethod());
@@ -50,7 +50,7 @@ public class GlobalExceptionHandler {
         String requestURI = request.getRequestURI();
         log.error("请求地址'{}',JSON格式错误: {}", requestURI, e.getMessage());
         Tracer.trace(e);
-        
+
         String errorMessage = "请求参数格式错误";
         if (e.getCause() != null && e.getCause().getMessage() != null) {
             String causeMessage = e.getCause().getMessage();
@@ -60,7 +60,7 @@ public class GlobalExceptionHandler {
                 errorMessage = "JSON格式错误:缺少逗号分隔符,请检查JSON格式";
             }
         }
-        
+
         return ApiResult.failed("400", errorMessage);
     }
 
@@ -100,7 +100,6 @@ public class GlobalExceptionHandler {
     }
 
 
-
     /**
      * 拦截未知的运行时异常
      */

+ 31 - 32
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/MqttConfig.java

@@ -27,7 +27,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 
 /**
  * MQTT配置类
- * 
+ * <p>
  * 统一管理所有MQTT相关配置,包括:
  * 1. MQTT客户端工厂
  * 2. Spring Integration入站和出站适配器
@@ -41,22 +41,22 @@ public class MqttConfig {
 
     @Value("${mqtt.broker:tcp://8.130.28.21:1883}")
     private String serverUri;
-    
+
     @Value("${mqtt.client-id}")
     private String clientId;
-    
+
     @Value("${mqtt.username:admin}")
     private String username;
-    
+
     @Value("${mqtt.password:public}")
     private String password;
-    
+
     @Value("${mqtt.connect.timeout:30}")
     private int connectTimeout;
-    
+
     @Value("${mqtt.keep.alive.interval:60}")
     private int keepAliveInterval;
-    
+
     @Value("${mqtt.clean.session:true}")
     private boolean cleanSession;
 
@@ -73,7 +73,7 @@ public class MqttConfig {
         scheduler.setAwaitTerminationSeconds(60);
         return scheduler;
     }
-    
+
     /**
      * MQTT客户端工厂
      */
@@ -81,23 +81,23 @@ public class MqttConfig {
     public MqttPahoClientFactory mqttClientFactory() {
         DefaultMqttPahoClientFactory factory = new DefaultMqttPahoClientFactory();
         MqttConnectOptions options = new MqttConnectOptions();
-        
-        options.setServerURIs(new String[] { serverUri });
-        
+
+        options.setServerURIs(new String[]{serverUri});
+
         if (username != null && !username.isEmpty()) {
             options.setUserName(username);
         }
-        
+
         if (password != null && !password.isEmpty()) {
             options.setPassword(password.toCharArray());
         }
-        
+
         options.setConnectionTimeout(connectTimeout);
         options.setKeepAliveInterval(keepAliveInterval);
         options.setCleanSession(cleanSession);
-        
+
         factory.setConnectionOptions(options);
-        
+
         return factory;
     }
 
@@ -114,8 +114,7 @@ public class MqttConfig {
     @Bean
     public MessageProducer mpsInbound() {
         String[] topics = {
-                TopicConstants.TOPIC_DAS_ALARM_EVENT
-                , TopicConstants.TOPIC_MQTT_CLIENT_CONNECT
+                TopicConstants.TOPIC_MQTT_CLIENT_CONNECT
 
                 // 设备主题相关 /dev/*
                 , TopicConstants.TOPIC_DEV_LOGIN
@@ -127,14 +126,15 @@ public class MqttConfig {
                 // LAS 告警事件相关主题
                 , TopicConstants.TOPIC_LAS_ALARM_EVENT
         };
-        
+
         MqttPahoMessageDrivenChannelAdapter adapter =
                 new MqttPahoMessageDrivenChannelAdapter(clientId, mqttClientFactory(), topics);
         adapter.setCompletionTimeout(5000);
         adapter.setConverter(new DefaultPahoMessageConverter());
-        adapter.setQos(2, 2
-        , 2, 2, 2, 2, 2
-        , 2);
+        adapter.setQos(
+                2
+                , 2, 2, 2, 2, 2
+                , 2);
         adapter.setOutputChannel(inputChannel());
         adapter.setTaskScheduler(taskScheduler());
         return adapter;
@@ -153,11 +153,10 @@ public class MqttConfig {
     }
 
 
-
     // ===========================================
     // 出站配置和框架兼容
     // ===========================================
-    
+
     /**
      * MQTT消息输入通道(框架需要)
      */
@@ -165,7 +164,7 @@ public class MqttConfig {
     public MessageChannel mqttInputChannel() {
         return new DirectChannel();
     }
-    
+
     /**
      * MQTT消息输出通道
      */
@@ -173,7 +172,7 @@ public class MqttConfig {
     public MessageChannel mqttOutputChannel() {
         return new DirectChannel();
     }
-    
+
     /**
      * MQTT消息处理器(出站)
      */
@@ -181,27 +180,27 @@ public class MqttConfig {
     @ServiceActivator(inputChannel = "mqttOutputChannel")
     public MessageHandler outbound() {
         String clientIdWithRandom = clientId + System.currentTimeMillis();
-        MqttPahoMessageHandler messageHandler = 
+        MqttPahoMessageHandler messageHandler =
                 new MqttPahoMessageHandler(clientIdWithRandom + "-out", mqttClientFactory());
-        
+
         messageHandler.setAsync(true);
         messageHandler.setDefaultQos(1);
-        
+
         return messageHandler;
     }
-    
+
     /**
      * MQTT出站处理器
      */
     @Bean
     public MqttPahoMessageHandler mqttOutbound() {
         String clientIdWithRandom = clientId + System.currentTimeMillis();
-        MqttPahoMessageHandler messageHandler = 
+        MqttPahoMessageHandler messageHandler =
                 new MqttPahoMessageHandler(clientIdWithRandom + "-outbound", mqttClientFactory());
-        
+
         messageHandler.setAsync(true);
         messageHandler.setDefaultQos(1);
-        
+
         return messageHandler;
     }
 } 

+ 2 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/MybatisPlusConfig.java

@@ -10,6 +10,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 
 /**
  * 分页#配置
+ *
  * @author huolifu
  * @date 2023/10/18 17:52
  **/
@@ -29,6 +30,7 @@ public class MybatisPlusConfig {
 
     /**
      * 审计字段自动填充
+     *
      * @return {@link MetaObjectHandler}
      */
     @Bean

+ 54 - 53
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/MybatisPlusMetaObjectHandler.java

@@ -13,66 +13,67 @@ import java.time.LocalDateTime;
 
 /**
  * MybatisPlus 自动填充配置
- *
  */
 @Slf4j
 public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
 
-	@Override
-	public void insertFill(MetaObject metaObject) {
-		log.debug("mybatis plus start insert fill ....");
-		LocalDateTime now = LocalDateTime.now();
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.debug("mybatis plus start insert fill ....");
+        LocalDateTime now = LocalDateTime.now();
 
-		fillValIfNullByName("createTime", now, metaObject, false);
-		fillValIfNullByName("updateTime", now, metaObject, false);
-		fillValIfNullByName("createId", getUserId(), metaObject, false);
-		fillValIfNullByName("updateId", getUserId(), metaObject, false);
-	}
+        fillValIfNullByName("createTime", now, metaObject, false);
+        fillValIfNullByName("updateTime", now, metaObject, false);
+        fillValIfNullByName("createId", getUserId(), metaObject, false);
+        fillValIfNullByName("updateId", getUserId(), metaObject, false);
+    }
 
-	@Override
-	public void updateFill(MetaObject metaObject) {
-		log.debug("mybatis plus start update fill ....");
-		fillValIfNullByName("updateTime", LocalDateTime.now(), metaObject, true);
-		fillValIfNullByName("updateId", getUserId(), metaObject, true);
-	}
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.debug("mybatis plus start update fill ....");
+        fillValIfNullByName("updateTime", LocalDateTime.now(), metaObject, true);
+        fillValIfNullByName("updateId", getUserId(), metaObject, true);
+    }
 
-	/**
-	 * 填充值,先判断是否有手动设置,优先手动设置的值,例如:job必须手动设置
-	 * @param fieldName 属性名
-	 * @param fieldVal 属性值
-	 * @param metaObject MetaObject
-	 * @param isCover 是否覆盖原有值,避免更新操作手动入参
-	 */
-	private static void fillValIfNullByName(String fieldName, Object fieldVal, MetaObject metaObject, boolean isCover) {
-		// 1. 没有 set 方法
-		if (!metaObject.hasSetter(fieldName)) {
-			return;
-		}
-		// 2. 如果用户有手动设置的值
-		Object userSetValue = metaObject.getValue(fieldName);
-		String setValueStr = StrUtil.str(userSetValue, Charset.defaultCharset());
-		if (StrUtil.isNotBlank(setValueStr) && !isCover) {
-			return;
-		}
-		// 3. field 类型相同时设置
-		Class<?> getterType = metaObject.getGetterType(fieldName);
-		if (ClassUtils.isAssignableValue(getterType, fieldVal)) {
-			metaObject.setValue(fieldName, fieldVal);
-		}
-	}
+    /**
+     * 填充值,先判断是否有手动设置,优先手动设置的值,例如:job必须手动设置
+     *
+     * @param fieldName  属性名
+     * @param fieldVal   属性值
+     * @param metaObject MetaObject
+     * @param isCover    是否覆盖原有值,避免更新操作手动入参
+     */
+    private static void fillValIfNullByName(String fieldName, Object fieldVal, MetaObject metaObject, boolean isCover) {
+        // 1. 没有 set 方法
+        if (!metaObject.hasSetter(fieldName)) {
+            return;
+        }
+        // 2. 如果用户有手动设置的值
+        Object userSetValue = metaObject.getValue(fieldName);
+        String setValueStr = StrUtil.str(userSetValue, Charset.defaultCharset());
+        if (StrUtil.isNotBlank(setValueStr) && !isCover) {
+            return;
+        }
+        // 3. field 类型相同时设置
+        Class<?> getterType = metaObject.getGetterType(fieldName);
+        if (ClassUtils.isAssignableValue(getterType, fieldVal)) {
+            metaObject.setValue(fieldName, fieldVal);
+        }
+    }
 
-	/**
-	 * 获取当前用户ID
-	 * @return 当前用户ID
-	 */
-	private Long getUserId() {
-		try {
-			// 使用Sa-Token获取当前登录用户ID
-			return StpUtil.getSession().getLong(UserConstants.SA_USER_ID);
-		} catch (Exception e) {
-			log.warn("获取当前用户ID失败");
-			return 0L;
-		}
-	}
+    /**
+     * 获取当前用户ID
+     *
+     * @return 当前用户ID
+     */
+    private Long getUserId() {
+        try {
+            // 使用Sa-Token获取当前登录用户ID
+            return StpUtil.getSession().getLong(UserConstants.SA_USER_ID);
+        } catch (Exception e) {
+            log.warn("获取当前用户ID失败");
+            return 0L;
+        }
+    }
 
 }

+ 60 - 78
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/config/UserAuthService.java

@@ -28,89 +28,73 @@ import java.util.stream.Collectors;
  * @since 2022-10-13
  */
 @Slf4j
-@Component    // 打开此注解,保证此类被springboot扫描,即可完成sa-token的自定义权限验证扩展
+@Component
 public class UserAuthService {
 
+    @Autowired
+    private TblRoleService tblRoleService;
 
-	@Autowired
-	private TblRoleService tblRoleService;
-
-
-	@Autowired
-	private UserRoleService userRoleService;
-
-	@Autowired
-	private RedisUtil redisService;
-
-	@Autowired
-	private TblRoleMenuMapService tblRoleMenuMapService;
-
-	@Autowired
-	private TblSystemMenuService tblSystemMenuService;
-
-	public void cacheRolesAndPermissions() {
-
-		List<String> roleCodeList = this.getRoleCodeList(StpUtil.getLoginId(), StpUtil.getLoginType());
-		if (!CollectionUtils.isEmpty(roleCodeList)) {
-//			// 登录缓存角色 防止用户角色有变更,登录前先删除之前的缓存
-//			if (!redisService.hasKey(RedisCacheConstant.USER_ROLE_KEY_PRE+StpUtil.getLoginId())) {
-//				// 这里从更改用户角色的地方修改最好
-//				redisService.del(RedisCacheConstant.USER_ROLE_KEY_PRE+StpUtil.getLoginId());
-//				// 永久期限
-//				redisService.setForever(RedisCacheConstant.USER_ROLE_KEY_PRE+ StpUtil.getLoginId(), JSONArray.toJSONString(roleCodeList));
-//			}
-
-			StpUtil.getSession().set(SaSession.ROLE_LIST, roleCodeList);
-//			List<String> roles = StpUtil.getSession().getModel(SaSession.ROLE_LIST, List.class);
-//			List<String> o = (List<String>)StpUtil.getSession().get(SaSession.ROLE_LIST);
-			for (String roleCode : roleCodeList) {
-				if (!redisService.hasKey(RedisCacheConstant.ROLE_PERM_KEY_PRE+roleCode)) {
-					// 这里从更改角色权限的地方修改最好
-					// redisService.deleteObject(RedisCacheConstant.ROLE_PERM_KEY_PRE+roleCode);
-					List<String> permCodeList = this.getPermCodeList(roleCode);
-					if (!CollectionUtils.isEmpty(permCodeList)) {
-						// 永久期限
-						redisService.setForever(RedisCacheConstant.ROLE_PERM_KEY_PRE+roleCode, JSONArray.toJSONString(permCodeList));
-					}
-				}
-			}
-		}
-		// 每次修改用户角色,应该注销用户登录信息,让用户重新登录
-	}
-
-//	public void delUserRoleCache() {
-//		redisService.del(RedisCacheConstant.USER_ROLE_KEY_PRE+StpUtil.getLoginId());
-//	}
-
-	/**
-	 * 返回一个账号所拥有的角色标识集合
-	 */
-	public List<String> getRoleCodeList(Object loginIdObj, String loginType) {
-
-		List<String> roleCodeList = new ArrayList<>();
-		long loginId = StpUtil.getSession().getLong(UserConstants.SA_USER_ID);
-		List<TblUserRole> userRoles = userRoleService.findByUserId(loginId);
-		if (CollectionUtils.isEmpty(userRoles)) {
-			log.info("当前用户没有配置角色,userId:{}", loginId);
-			return roleCodeList;
-		}
-
-		List<Long> roleIds = userRoles.stream().map(TblUserRole::getRoleId).collect(Collectors.toList());
-		List<TblRole> roles = tblRoleService.findAvailableByIds(roleIds);
-		if (CollectionUtils.isEmpty(roles)) {
-			log.info("角色配置异常, roleIds :{}", roleIds);
-			return roleCodeList;
-		}
-		roleCodeList.addAll(roles.stream().map(TblRole::getRoleCode).collect(Collectors.toList()));
-		return roleCodeList;
-	}
+    @Autowired
+    private UserRoleService userRoleService;
+
+    @Autowired
+    private RedisUtil redisService;
+
+    @Autowired
+    private TblRoleMenuMapService tblRoleMenuMapService;
+
+    @Autowired
+    private TblSystemMenuService tblSystemMenuService;
+
+    public void cacheRolesAndPermissions() {
+
+        List<String> roleCodeList = this.getRoleCodeList(StpUtil.getLoginId(), StpUtil.getLoginType());
+        if (!CollectionUtils.isEmpty(roleCodeList)) {
+
+            StpUtil.getSession().set(SaSession.ROLE_LIST, roleCodeList);
+            for (String roleCode : roleCodeList) {
+                if (!redisService.hasKey(RedisCacheConstant.ROLE_PERM_KEY_PRE + roleCode)) {
+                    // 这里从更改角色权限的地方修改最好
+                    // redisService.deleteObject(RedisCacheConstant.ROLE_PERM_KEY_PRE+roleCode);
+                    List<String> permCodeList = this.getPermCodeList(roleCode);
+                    if (!CollectionUtils.isEmpty(permCodeList)) {
+                        // 永久期限
+                        redisService.setForever(RedisCacheConstant.ROLE_PERM_KEY_PRE + roleCode, JSONArray.toJSONString(permCodeList));
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 返回一个账号所拥有的角色标识集合
+     */
+    public List<String> getRoleCodeList(Object loginIdObj, String loginType) {
+
+        List<String> roleCodeList = new ArrayList<>();
+        long loginId = StpUtil.getSession().getLong(UserConstants.SA_USER_ID);
+        List<TblUserRole> userRoles = userRoleService.findByUserId(loginId);
+        if (CollectionUtils.isEmpty(userRoles)) {
+            log.info("当前用户没有配置角色,userId:{}", loginId);
+            return roleCodeList;
+        }
+
+        List<Long> roleIds = userRoles.stream().map(TblUserRole::getRoleId).collect(Collectors.toList());
+        List<TblRole> roles = tblRoleService.findAvailableByIds(roleIds);
+        if (CollectionUtils.isEmpty(roles)) {
+            log.info("角色配置异常, roleIds :{}", roleIds);
+            return roleCodeList;
+        }
+        roleCodeList.addAll(roles.stream().map(TblRole::getRoleCode).collect(Collectors.toList()));
+        return roleCodeList;
+    }
 
     /**
      * 返回当前角色所拥有的权限码集合
      */
     public List<String> getPermCodeList(String roleCode) {
 
-		List<String> list = new ArrayList<>();
+        List<String> list = new ArrayList<>();
 
         TblRole role = tblRoleService.findAvailableByCode(roleCode);
         if (role == null) {
@@ -118,16 +102,14 @@ public class UserAuthService {
             return list;
         }
 
-		List<TblRoleMenuMap> roleMenuList = tblRoleMenuMapService.findByRoleId(role.getRoleId());
-//        List<TblRolePermission> rolePermissions = rolePermissionService.findByRoleIds(Arrays.asList(role.getRoleId()));
+        List<TblRoleMenuMap> roleMenuList = tblRoleMenuMapService.findByRoleId(role.getRoleId());
         if (CollectionUtils.isEmpty(roleMenuList)) {
             log.info("当前角色没有配置菜单权限,roleCode:{}", roleCode);
             return list;
         }
 
         List<Long> menuIds = roleMenuList.stream().map(TblRoleMenuMap::getMenuId).collect(Collectors.toList());
-//        List<TblPermission> permissionList = permissionService.findAvailableByIds(permIds);
-		List<TblSystemMenu> menuList = tblSystemMenuService.findApiPathByIds(menuIds);
+        List<TblSystemMenu> menuList = tblSystemMenuService.findApiPathByIds(menuIds);
         if (CollectionUtils.isEmpty(menuList)) {
             log.info("权限配置异常, permIds :{}", menuIds);
             return list;

+ 2 - 6
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/AlarmGatewayImpl.java

@@ -89,8 +89,8 @@ public class AlarmGatewayImpl implements AlarmGateway {
         BeanUtils.copyProperties(req, alarmPlan, "uuid");
         alarmPlan.setUpdateTime(LocalDateTime.now());
         alarmPlan.setCreateTime(LocalDateTime.now());
-        if (! StringUtils.hasText(alarmPlan.getUuid())) {
-             alarmPlan.setUuid(UUID.randomUUID().toString());
+        if (!StringUtils.hasText(alarmPlan.getUuid())) {
+            alarmPlan.setUuid(UUID.randomUUID().toString());
         }
         alarmPlanService.saveOrUpdate(alarmPlan);
 
@@ -151,14 +151,12 @@ public class AlarmGatewayImpl implements AlarmGateway {
 
     @Override
     public List<EventTypeDTO> queryEventType() {
-
         return CopyUtils.copyList(eventTypeService.list(), EventTypeDTO.class);
     }
 
     @Override
     public PageRecord<AlarmPlanTplDTO> webQueryPlanTpl(WebAlarmPlanTplQueryReq req) {
 
-
         // 2.执行分页查询
         Page<AlarmPlanTpl> pageResult = alarmPlanTplService.queryPlan(req);
 
@@ -186,7 +184,6 @@ public class AlarmGatewayImpl implements AlarmGateway {
     @Override
     public List<AlarmPlanTplDTO> wapQueryPlanTpl(WapAlarmPlanTplQueryReq req) {
 
-
         List<AlarmPlanTpl> list = alarmPlanTplService.queryPlan(req);
         if (CollectionUtils.isEmpty(list)) {
             return Collections.emptyList();
@@ -249,7 +246,6 @@ public class AlarmGatewayImpl implements AlarmGateway {
         }
 
         AlarmTimePlanTpl alarmTimePlanTpl = alarmTimePlanTplService.getById(alarmPlanTpl.getAlarmTimePlanTplId());
-
         alarmPlanTplService.delById(req.getId());
         alarmTimePlanTplService.delById(alarmTimePlanTpl.getId());
     }

+ 57 - 149
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/DeviceGatewayImpl.java

@@ -2,7 +2,6 @@ package com.hfln.portal.infrastructure.gateway.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hfln.framework.extension.BizException;
-import cn.hfln.framework.redis.util.RedisUtil;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -37,7 +36,6 @@ import com.hfln.portal.domain.gateway.AlarmGateway;
 import com.hfln.portal.domain.gateway.DeviceGateway;
 import com.hfln.portal.infrastructure.mqtt.MqttClient;
 import com.hfln.portal.infrastructure.mqtt.MqttSend;
-import com.hfln.portal.infrastructure.mqtt.MqttSubHandle;
 import com.hfln.portal.infrastructure.oss.OssClient;
 import com.hfln.portal.infrastructure.oss.OssUtils;
 import com.hfln.portal.infrastructure.po.*;
@@ -101,9 +99,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     private MqttSend mqttSend;
 
     @Autowired
-    private RedisUtil redisService;
-
-    @Autowired
     private TblOprLogService logService;
 
     @Autowired
@@ -113,9 +108,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     private org.springframework.data.redis.core.RedisTemplate<String, Object> redisTemplate;
 
     @Autowired
-    private MqttSubHandle mqttSubHandle;
-
-    @Autowired
     private EventsService EventsService;
 
     @Autowired
@@ -222,8 +214,8 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
 
 
-            log.info("查询设备列表 queryDeviceList end list.size= {}", deviceDTOs.size());
-            return deviceDTOs;
+        log.info("查询设备列表 queryDeviceList end list.size= {}", deviceDTOs.size());
+        return deviceDTOs;
     }
 
     @Override
@@ -243,7 +235,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
             //更新设备分享表
             boolean flagV2 = devShareService.update(null,
                     Wrappers.<DevShare>lambdaUpdate()
-                            .eq(DevShare::getDevId,devId)
+                            .eq(DevShare::getDevId, devId)
                             .set(DevShare::getIsDeleted, BasePO.DeleteFlag.DELETED));
             updateFlag = flag && flagV2;
 
@@ -252,13 +244,13 @@ public class DeviceGatewayImpl implements DeviceGateway {
             List<AlarmPlan> alarmPlans = alarmPlanService.queryByClientId(devInfo.getClientId());
 
             if (alarmPlans != null && !alarmPlans.isEmpty()) {
-                for (AlarmPlan plan : alarmPlans){
+                for (AlarmPlan plan : alarmPlans) {
                     try {
-                    AlarmPlanDelReq req = new AlarmPlanDelReq();
-                    req.setId(plan.getId());
-                    alarmGateway.delPlan(req);
-                    log.info("已删除告警计划,planId={}", plan.getId());
-                }catch (Exception e){
+                        AlarmPlanDelReq req = new AlarmPlanDelReq();
+                        req.setId(plan.getId());
+                        alarmGateway.delPlan(req);
+                        log.info("已删除告警计划,planId={}", plan.getId());
+                    } catch (Exception e) {
                         log.error("删除告警计划失败,planId={}", plan.getId(), e);
                     }
                 }
@@ -319,7 +311,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
         // 3. 更新设备信息到数据库
         boolean updateResult = devInfoService.updateDevice(devInfo.getClientId(), request);
-        if (!updateResult){
+        if (!updateResult) {
             log.warn("更新设备信息失败,clientId:{}", devInfo.getClientId());
         }
 
@@ -352,7 +344,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     }
 
 
-
     // 填充PageRecord
     private PageRecord<EventListDTO> getEventListDTOPageRecord(Page<EventList> eventPage, List<EventListDTO> targets) {
         int totalPages = (int) Math.ceil((double) eventPage.getTotal() / eventPage.getSize());
@@ -383,7 +374,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
         //1.查询事件信息
         EventList eventList = eventListService.getById(eventListId);
-        if (eventList == null){
+        if (eventList == null) {
             throw new BizException(ErrorEnum.FALLING_EVENT_NOT_EXIST.getErrorCode(), ErrorEnum.FALLING_EVENT_NOT_EXIST.getErrorMessage());
         }
 
@@ -392,7 +383,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         String userId = String.valueOf(StpUtil.getSession().get(UserConstants.SA_USER_ID));
 
         // 3.如果事件未处理
-        if(eventList.getIsHandle() == 0) {
+        if (eventList.getIsHandle() == 0) {
             // 获取当前处理者手机号
             String phone = String.valueOf(StpUtil.getSession().get(UserConstants.SA_USER_PHONE));
 
@@ -409,7 +400,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
             LocalDateTime now = LocalDateTime.now();  // 接口调用时间
             long ttlSeconds = Duration.between(now, createTime.plusSeconds(600)).getSeconds();   //剩余时间
 
-            if(ttlSeconds > 0){
+            if (ttlSeconds > 0) {
                 redisTemplate.expire(redisKey, ttlSeconds, TimeUnit.SECONDS);
             } else {
                 // 已超时 直接删除key
@@ -424,19 +415,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
         return true;
     }
 
-//    @Override
-//    public Boolean handleAlarmEvent(Long alarmEventId) {
-//        //获取当前操作者手机号
-//        String phone = (String) StpUtil.getSession().get(UserConstants.SA_USER_PHONE);
-//
-//        LambdaUpdateWrapper<AlarmEvent> updateWrapper = new LambdaUpdateWrapper<>();
-//        updateWrapper.eq(AlarmEvent::getAlarmEventId, alarmEventId)
-//                .set(AlarmEvent::getIsHandle, 1)
-//                .set(AlarmEvent::getRemark, PhoneUtils.maskPhone(phone));
-//        return this.alarmEventService.update(updateWrapper);
-//    }
-
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean webUpdateDevice(WebUpdateDeviceParams params) {
@@ -444,7 +422,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         DevInfo devInfo = devInfoService.getOne(
                 Wrappers.<DevInfo>lambdaQuery()
                         .eq(DevInfo::getClientId, params.getClientId()));
-        if (Objects.isNull(devInfo)){
+        if (Objects.isNull(devInfo)) {
             throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
         }
 
@@ -477,9 +455,9 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
 
         boolean updated = devInfoService.updateById(devInfo);
-        if (!updated){
+        if (!updated) {
             log.warn("更新设备信息失败,clientId:{}", devInfo.getClientId());
-            throw new BizException(ErrorEnum.DEVICE_UPDATE_FAIL.getErrorCode(),ErrorEnum.DEVICE_UPDATE_FAIL.getErrorMessage());
+            throw new BizException(ErrorEnum.DEVICE_UPDATE_FAIL.getErrorCode(), ErrorEnum.DEVICE_UPDATE_FAIL.getErrorMessage());
         }
         //4.通过MQTT把信息参数发送到设备
         mqttSend.sendWebDeviceParamsToMqtt(devInfo.getClientId(), params);
@@ -494,16 +472,15 @@ public class DeviceGatewayImpl implements DeviceGateway {
         DevInfo devInfo = devInfoService.getOne(
                 Wrappers.<DevInfo>lambdaQuery()
                         .eq(DevInfo::getClientId, params.getClientId()));
-        if (Objects.isNull(devInfo)){
+        if (Objects.isNull(devInfo)) {
             throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
         }
 
         //2.校验是否为主绑人
-        if (!devInfo.getUserId().equals(params.getUserId())){
+        if (!devInfo.getUserId().equals(params.getUserId())) {
             throw new BizException(ErrorEnum.USER_NO_PERMISSION.getErrorCode(), ErrorEnum.USER_NO_PERMISSION.getErrorMessage());
         }
 
-
         //3.更新数据
         devInfo.setDevName(params.getDevName());
         devInfo.setHeight(params.getHeight());
@@ -522,9 +499,9 @@ public class DeviceGatewayImpl implements DeviceGateway {
         devInfo.setWidth(params.getYyEnd().subtract(params.getYyStart()));
 
         boolean updated = devInfoService.updateById(devInfo);
-        if (!updated){
+        if (!updated) {
             log.warn("更新设备信息失败,clientId:{}", devInfo.getClientId());
-            throw new BizException(ErrorEnum.DEVICE_UPDATE_FAIL.getErrorCode(),ErrorEnum.DEVICE_UPDATE_FAIL.getErrorMessage());
+            throw new BizException(ErrorEnum.DEVICE_UPDATE_FAIL.getErrorCode(), ErrorEnum.DEVICE_UPDATE_FAIL.getErrorMessage());
         }
 
         logService.saveLog(OprLogType.UPDATE_DEVICE.getCode(), devInfo);
@@ -534,9 +511,9 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
         //5.重新从数据库获取最新的设备信息,确保返回的数据完整
         DevInfo updatedDevInfo = devInfoService.getOne(
-                Wrappers.<DevInfo> lambdaQuery()
+                Wrappers.<DevInfo>lambdaQuery()
                         .eq(DevInfo::getClientId, params.getClientId()));
-        if (Objects.isNull(updatedDevInfo)){
+        if (Objects.isNull(updatedDevInfo)) {
             throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
         }
 
@@ -557,8 +534,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
     }
 
-
-
     @Override
     public Boolean updateDeviceLocation(DeviceLocationParams params) {
 
@@ -613,13 +588,13 @@ public class DeviceGatewayImpl implements DeviceGateway {
     public Boolean statusLight(StatusLightParams params) {
         //1.校验设备是否存在
         DevInfo devInfo = devInfoService.getById(params.getDevId());
-        if(devInfo == null){
+        if (devInfo == null) {
             throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
         }
 
         //2.校验status_light值,只能传 0 与 1
         Integer statusLight = params.getStatusLight();
-        if (statusLight == null || (statusLight != 0 && statusLight != 1)){
+        if (statusLight == null || (statusLight != 0 && statusLight != 1)) {
             throw new BizException(ErrorEnum.STATUS_LIGHT_IS_NOT_EXIST.getErrorCode(), ErrorEnum.STATUS_LIGHT_IS_NOT_EXIST.getErrorMessage());
         }
 
@@ -634,7 +609,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         String topic = String.format(TopicConstants.TOPIC_SET_DEVICE_PARAM, devInfo.getClientId());
         JSONObject msg = new JSONObject();
         // 设备协议中,statusLight 为 0 时表示前端关闭指示灯,但设备端需发送 indicator_led = 1
-        int indicatorLed = (statusLight == 0) ? 1:0;
+        int indicatorLed = (statusLight == 0) ? 1 : 0;
         msg.put("indicator_led", indicatorLed);
         try {
             mqttClient.sendMessage(topic, msg.toJSONString());
@@ -667,7 +642,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         if (StringUtils.hasText(devRoom.getSubRegions())) {
             List<SubRegionDTO> subRegionDTOs = JSONArray.parseArray(devRoom.getSubRegions(), SubRegionDTO.class);
             dto.setSubRegions(subRegionDTOs);
-            }
+        }
         return dto;
     }
 
@@ -676,18 +651,17 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
         //查询设备信息
         DevInfo devInfo = devInfoService.getById(param.getDevId());
-        if (devInfo == null){
+        if (devInfo == null) {
             throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
         }
 
         //判断屏蔽子区域≤6个
         List<SubRegionInfo> subRegions = param.getSubRegions();
         if (subRegions != null && subRegions.size() > 6) {
-            throw new BizException(ErrorEnum.SUB_REGION_TOO_MANY.getErrorCode(),ErrorEnum.SUB_REGION_TOO_MANY.getErrorMessage());
+            throw new BizException(ErrorEnum.SUB_REGION_TOO_MANY.getErrorCode(), ErrorEnum.SUB_REGION_TOO_MANY.getErrorMessage());
         }
 
 
-
         // 更新dev_room表
         devRoomService.saveOrUpdate(param);
 
@@ -707,7 +681,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
 
         // 记录操作日志
-        logService.saveLog(OprLogType.UPDATE_ROOM.getCode(),param);
+        logService.saveLog(OprLogType.UPDATE_ROOM.getCode(), param);
 
         return true;
     }
@@ -788,7 +762,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
 
     @Override
-    public void urlShareConfirm (UrlShareConfirmParam param) {
+    public void urlShareConfirm(UrlShareConfirmParam param) {
         //1.查询分享记录信息
         DevShare devShare = devShareService.getById(param.getShareId());
 
@@ -798,7 +772,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         }
 
         //3.校验分享是否已经被处理
-        if (devShare.getState() == null || devShare.getState() != 0){
+        if (devShare.getState() == null || devShare.getState() != 0) {
             throw new BizException(ErrorEnum.SHARE_INFO_ALREADY_DEAL.getErrorCode(), ErrorEnum.SHARE_INFO_ALREADY_DEAL.getErrorMessage());
         }
 
@@ -855,7 +829,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
     public void cancelShare(Long shareId) {
         //1.判断分享记录是否为空
         DevShare devShare = devShareService.getById(shareId);
-        if (devShare == null){
+        if (devShare == null) {
             throw new BizException(ErrorEnum.SHARE_RECORD_IS_NOT_EXIST.getErrorCode(), ErrorEnum.SHARE_RECORD_IS_NOT_EXIST.getErrorMessage());
         }
         //2.将dev_share中这条记录置为逻辑删除
@@ -886,7 +860,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
     }
 
     @Override
-    public QueryUserPermissionDTO queryUserPermission(QueryUserVoipParam param){
+    public QueryUserPermissionDTO queryUserPermission(QueryUserVoipParam param) {
         // 1.根据设备id查询设备信息
         DevInfo devInfo = devInfoService.queryOneByClientId(param.getClientId());
         if (devInfo == null) {
@@ -910,7 +884,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         queryWrapper.eq(DevShare::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
         DevShare devShare = devShareService.getOne(queryWrapper);
 
-        if (devShare == null){
+        if (devShare == null) {
             throw new BizException(ErrorEnum.SHARE_RECORD_IS_NOT_EXIST.getErrorCode(), ErrorEnum.SHARE_RECORD_IS_NOT_EXIST.getErrorMessage());
         }
 
@@ -923,6 +897,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
     /**
      * 主绑人查询单个设备分享列表
+     *
      * @param devId 设备ID,  userId 用户ID
      */
     @Override
@@ -942,24 +917,25 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
         // 3.封装DTO 返回前端
         return shares.stream().map(share -> {
-            ShareDto dto = new ShareDto();
-            dto.setShareId(share.getShareId());
-            dto.setDevId(share.getDevId());
-            dto.setClientId(devInfo.getClientId());
-            dto.setDevName(devInfo.getDevName());
-            dto.setSharerUserId(userId);
-            dto.setSharerPhone(share.getSharerPhone());
-            dto.setSharedUserId(share.getSharedUserId());
-            dto.setSharedPhone(share.getSharedPhone());
-            dto.setState(share.getState());
-            dto.setShareTime(share.getCreateTime());
-            return dto;
-        })
+                    ShareDto dto = new ShareDto();
+                    dto.setShareId(share.getShareId());
+                    dto.setDevId(share.getDevId());
+                    dto.setClientId(devInfo.getClientId());
+                    dto.setDevName(devInfo.getDevName());
+                    dto.setSharerUserId(userId);
+                    dto.setSharerPhone(share.getSharerPhone());
+                    dto.setSharedUserId(share.getSharedUserId());
+                    dto.setSharedPhone(share.getSharedPhone());
+                    dto.setState(share.getState());
+                    dto.setShareTime(share.getCreateTime());
+                    return dto;
+                })
                 .collect(Collectors.toList());
     }
 
     /**
      * 查看分享记录详情
+     *
      * @param shareId 设备分享表主键id
      */
     @Override
@@ -976,6 +952,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
         BeanUtils.copyProperties(share, dto);
         return dto;
     }
+
     @Override
     public void getVersion(String clientId) {
 
@@ -1003,7 +980,6 @@ public class DeviceGatewayImpl implements DeviceGateway {
     }
 
 
-
     @Override
     public void fixPost(String clientId, int poseIndex) {
 
@@ -1099,7 +1075,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
             newFile.setBusiType(OssBusiType.FLOORPLAN.getCode());
             newFile.setBusiKey(groupUuid);
             newFile.setFileName(file.getOriginalFilename());
-            newFile.setOssUrl(OssUtils.BUCKET_NAME + "/" +objectName);
+            newFile.setOssUrl(OssUtils.BUCKET_NAME + "/" + objectName);
             ossFileService.save(newFile);
         } else {
             if (ossFile.getIsDeleted() == BasePO.DeleteFlag.NOT_DELETED) {
@@ -1109,7 +1085,7 @@ public class DeviceGatewayImpl implements DeviceGateway {
             ossFile.setBusiType(OssBusiType.FLOORPLAN.getCode());
             ossFile.setBusiKey(groupUuid);
             ossFile.setFileName(file.getOriginalFilename());
-            ossFile.setOssUrl(OssUtils.BUCKET_NAME + "/" +objectName);
+            ossFile.setOssUrl(OssUtils.BUCKET_NAME + "/" + objectName);
             ossFileService.updateById(ossFile);
         }
     }
@@ -1131,26 +1107,26 @@ public class DeviceGatewayImpl implements DeviceGateway {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean deviceTransfer(DeviceTransferParams param){
+    public Boolean deviceTransfer(DeviceTransferParams param) {
 
         // 1.查询设备信息并校验是否存在
         DevInfo devInfo = devInfoService.getOne(
                 Wrappers.<DevInfo>lambdaQuery()
                         .eq(DevInfo::getDevId, param.getDevId())
-                        .eq(DevInfo::getIsDeleted,  BasePO.DeleteFlag.NOT_DELETED)
+                        .eq(DevInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED)
         );
         if (devInfo == null) {
             throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(), ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
         }
 
         // 2.校验用户权限
-        if(!Objects.equals(param.getUserId(), devInfo.getUserId())){
+        if (!Objects.equals(param.getUserId(), devInfo.getUserId())) {
             throw new BizException(ErrorEnum.USER_NO_PERMISSION.getErrorCode(), ErrorEnum.USER_NO_PERMISSION.getErrorMessage());
         }
 
         // 3.根据手机号查询转移对象是否注册
         UserInfo userInfo = userService.queryByPhone(param.getPhone());
-        if (userInfo == null){
+        if (userInfo == null) {
             throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
         }
 
@@ -1197,78 +1173,10 @@ public class DeviceGatewayImpl implements DeviceGateway {
                 devInfo.getDevId(),             // 转移的设备id
                 userInfo.getUserId()            // 转移后的用户id
         );
-        logService.saveLog(OprLogType.DEVICE_TRANSFER.getCode(), logContent );
+        logService.saveLog(OprLogType.DEVICE_TRANSFER.getCode(), logContent);
         return true;
     }
 
-
-
-/*    @Override
-    public String checkDevByOpenId(String openId, String clientId) {
-        // 1. 检查参数是否为空
-        if (StringUtils.isEmpty(openId)){
-            throw new BizException(ErrorEnum.USER_NAME_IS_NULL.getErrorCode(),
-                ErrorEnum.USER_NAME_IS_NULL.getErrorMessage());
-        }
-        if(StringUtils.isEmpty(clientId)){
-            throw new BizException(ErrorEnum.CLIENT_ID_ID_NULL.getErrorCode(),
-                    ErrorEnum.CLIENT_ID_ID_NULL.getErrorMessage());
-        }
-
-        // 2. 检查用户是否存在
-        UserInfo userInfo = userService.getOne(
-            new LambdaQueryWrapper<UserInfo>()
-                .eq(UserInfo::getOpenid, openId)
-                .eq(UserInfo::getIsDeleted, 0)
-        );
-
-        if (userInfo == null) {
-            throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(),
-                ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
-        }
-
-        // 3. 检查设备是否存在且未删除
-        DevInfo devInfo = devInfoService.getOne(
-            new LambdaQueryWrapper<DevInfo>()
-                .eq(DevInfo::getDevId, clientId)
-                .eq(DevInfo::getIsDeleted, 0)
-        );
-
-        if (devInfo == null) {
-            throw new BizException(ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorCode(),
-                ErrorEnum.DEVICE_IS_NOT_EXIST.getErrorMessage());
-        }
-
-        // 4. 检查是否是自持设备
-        boolean isOwnDevice = devInfoService.count(
-            new LambdaQueryWrapper<DevInfo>()
-                .eq(DevInfo::getDevId, clientId)
-                .eq(DevInfo::getUserId, userInfo.getUserId())
-                .eq(DevInfo::getIsDeleted, 0)
-        ) > 0;
-
-        if (isOwnDevice) {
-            return "false";
-        }
-
-        // 5. 检查设备是否被分享给该用户
-        boolean isSharedDevice = devShareService.count(
-            new LambdaQueryWrapper<DevShare>()
-                .eq(DevShare::getDevId, clientId)
-                .eq(DevShare::getSharedUserId, userInfo.getUserId())
-                .eq(DevShare::getIsDeleted, 0)
-        ) > 0;
-
-        if (isSharedDevice) {
-            return "false";
-        }
-
-        // 6. 如果既不是自持设备也不是分享设备,返回true
-        return "true";
-    }*/
-
-
-
     // 校验 PNG 文件头(89 50 4E 47 0D 0A 1A 0A)
     public static boolean checkPngMagicNumber(byte[] header) {
         byte[] pngSignature = {(byte) 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A};

+ 1 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/GroupGatewayImpl.java

@@ -53,7 +53,6 @@ public class GroupGatewayImpl implements GroupGateway {
      * @param (groupName)群组名称 (userId)用户id
      * @return
      */
-
     @Override
     public Boolean addGroup(GroupAddParams request) {
 
@@ -63,7 +62,7 @@ public class GroupGatewayImpl implements GroupGateway {
                 .eq(DevGroup::getGroupName, request.getGroupName())
                 .eq(DevGroup::getIsDeleted, 0)
                 .exists();
-        if (exists){
+        if (exists) {
             throw new BizException(ErrorEnum.GROUP_NAME_IS_EXIST.getErrorCode(), ErrorEnum.GROUP_NAME_IS_EXIST.getErrorMessage());
         }
         //2.设置群组属性

+ 0 - 33
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/LasGatewayImpl.java

@@ -1,33 +0,0 @@
-//package com.hfln.portal.infrastructure.gateway.impl;
-//
-//import com.hfln.portal.common.dto.data.event.AlarmPlanDTO;
-//import com.hfln.portal.common.request.event.AlarmEventNoticeReq;
-//import com.hfln.portal.common.request.event.AlarmPlanReq;
-//import com.hfln.portal.domain.gateway.LasGateway;
-//import com.hfln.portal.infrastructure.service.AlarmPlanService;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Service;
-//
-//import java.util.Collections;
-//import java.util.List;
-//
-//@Slf4j
-//@Service
-//public class LasGatewayImpl implements LasGateway {
-//
-//    @Autowired
-//    private AlarmPlanService alarmPlanService;
-//
-//
-//
-//    @Override
-//    public List<AlarmPlanDTO> queryPlan(AlarmPlanReq req) {
-//        return Collections.emptyList();
-//    }
-//
-//    @Override
-//    public Void noticeEvent(AlarmEventNoticeReq req) {
-//        return null;
-//    }
-//}

+ 5 - 10
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/PubGatewayImpl.java

@@ -28,11 +28,9 @@ import java.util.List;
 @Service
 public class PubGatewayImpl implements PubGateway {
 
-
     @Autowired
     private TblDicItemService tblDicItemService;
 
-
     @Autowired
     private OssFileService ossFileService;
 
@@ -42,7 +40,6 @@ public class PubGatewayImpl implements PubGateway {
     @Autowired
     private DevInfoService devInfoService;
 
-
     @Override
     public List<DicItemDto> query(String dicType) {
         return CopyUtils.copyList(tblDicItemService.queryByDicType(dicType), DicItemDto.class);
@@ -52,10 +49,10 @@ public class PubGatewayImpl implements PubGateway {
     public List<OtaFileDTO> queryOtaFiles() {
         // 查询所有OTA类型的文件,按创建时间倒序排列
         List<TblOssFile> otaFiles = ossFileService.queryFile("OTA", null);
-        
+
         // 使用Comparator.comparing()简化排序,nullsLast()处理null值
         otaFiles.sort(Comparator.comparing(TblOssFile::getCreateTime, Comparator.nullsLast(Comparator.reverseOrder())));
-        
+
         // 转换为DTO并返回
         return CopyUtils.copyList(otaFiles, OtaFileDTO.class);
     }
@@ -66,7 +63,7 @@ public class PubGatewayImpl implements PubGateway {
         if (params.getClientIds() == null || params.getClientIds().isEmpty()) {
             throw new BizException(ErrorEnum.CLIENT_ID_ID_NULL.getErrorCode(), ErrorEnum.CLIENT_ID_ID_NULL.getErrorMessage());
         }
-        
+
         if (StringUtils.isEmpty(params.getOssUrl())) {
             throw new BizException(ErrorEnum.FILE_IS_EMPTY.getErrorCode(), ErrorEnum.FILE_IS_EMPTY.getErrorMessage());
         }
@@ -76,11 +73,11 @@ public class PubGatewayImpl implements PubGateway {
             try {
                 // 构建MQTT主题
                 String topic = String.format(TopicConstants.TOPIC_DEV_UPDATEOTA, clientId);
-                
+
                 // 构建消息内容,包含固件URL
                 JSONObject message = new JSONObject();
                 message.put("url", params.getOssUrl());
-                
+
                 // 发送MQTT消息
                 if (mqttClient != null) {
                     mqttClient.sendMessage(topic, message.toJSONString());
@@ -93,11 +90,9 @@ public class PubGatewayImpl implements PubGateway {
                 // 继续处理下一个设备,不中断整个批量操作
             }
         }
-        
         log.info("批量OTA升级操作完成,共处理{}个设备", params.getClientIds().size());
     }
 
-
     @Override
     public DevInfoDTO queryClientIdByDeviD(Long devId) {
         DevInfo devInfo = devInfoService.getById(devId);

+ 15 - 14
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/StatsGatewayImpl.java

@@ -38,7 +38,6 @@ public class StatsGatewayImpl implements StatsGateway {
     @Autowired
     private DevInfoService devInfoService;
 
-
     @Autowired
     private EventListService eventListService;
 
@@ -50,6 +49,7 @@ public class StatsGatewayImpl implements StatsGateway {
 
     /**
      * 小程序告警事件统计查询
+     *
      * @param params
      * @return
      */
@@ -60,24 +60,24 @@ public class StatsGatewayImpl implements StatsGateway {
         Long userId = StpUtil.getSession().getLong(UserConstants.SA_USER_ID);
 
         // 2.根据userId获取用户自己设备与被分享设备的id
-            //2.1 获取用户被分享的设备id集合  sharedDevIds
+        //2.1 获取用户被分享的设备id集合  sharedDevIds
         Optional<List<Long>> sharedDevIds = devShareService.queryDeviceIdByUserId(userId);
         log.info("用户被分享的设备id集合: {}", sharedDevIds);
-            //2.2 获取用户自己设备的id集合    devIds
+        //2.2 获取用户自己设备的id集合    devIds
         List<Long> devIds = devInfoService.queryByUserId(userId);
         log.info("用户自己设备的id集合: {}", devIds);
-            //2.3 合并devIds和sharedDevIds
+        //2.3 合并devIds和sharedDevIds
         List<Long> allDevIds = Stream.concat(
-                Optional.ofNullable(devIds).orElseGet(Collections::emptyList).stream(),
-                sharedDevIds.orElseGet(Collections::emptyList).stream()
-        ).distinct()  //去重 + 顺序
-         .collect(Collectors.toList());
+                        Optional.ofNullable(devIds).orElseGet(Collections::emptyList).stream(),
+                        sharedDevIds.orElseGet(Collections::emptyList).stream()
+                ).distinct()  //去重 + 顺序
+                .collect(Collectors.toList());
         log.info("用户设备id集合: {}", allDevIds);
-            //2.4 将devIds集合转换成clientIds集合
+        //2.4 将devIds集合转换成clientIds集合
         List<String> clientIds = devInfoService.devIdsChangeClientIds(allDevIds);
         log.info("用户设备clientId集合: {}", clientIds);
 
-        if (clientIds.isEmpty()){
+        if (clientIds.isEmpty()) {
             PageRecord<EventsDTO> pr = new PageRecord<>();
             pr.setPageNum(params.getPageNo());
             pr.setPageSize(params.getPageSize());
@@ -104,15 +104,15 @@ public class StatsGatewayImpl implements StatsGateway {
     public List<EventListDTO> fallingEventsQuery(Long userId) {
 
         // 1.根据userId获取用户自己设备与被分享设备的id集合
-            // 1.1 获取用户被分享的设备id集合  sharedDevIds
+        // 1.1 获取用户被分享的设备id集合  sharedDevIds
         Optional<List<Long>> sharedDevIds = devShareService.queryDeviceIdByUserId(userId);
         log.info("用户被分享的设备id集合: {}", sharedDevIds);
 
-            // 1.2 获取用户自己设备的id集合    devIds
+        // 1.2 获取用户自己设备的id集合    devIds
         List<Long> devIds = devInfoService.queryByUserId(userId);
         log.info("用户自己设备的id集合: {}", devIds);
 
-            // 1.3 合并devIds和sharedDevIds
+        // 1.3 合并devIds和sharedDevIds
         List<Long> allDevIds = Stream.concat(
                         Optional.ofNullable(devIds).orElseGet(Collections::emptyList).stream(),
                         sharedDevIds.orElseGet(Collections::emptyList).stream()
@@ -121,7 +121,7 @@ public class StatsGatewayImpl implements StatsGateway {
         log.info("用户设备id集合: {}", allDevIds);
 
 
-        if (allDevIds.isEmpty()){
+        if (allDevIds.isEmpty()) {
             return Collections.emptyList();
         }
 
@@ -142,6 +142,7 @@ public class StatsGatewayImpl implements StatsGateway {
 
     /**
      * 小程序端跌倒统计查询
+     *
      * @param params
      * @return
      */

+ 25 - 185
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/UserGatewayImpl.java

@@ -52,7 +52,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -118,32 +117,6 @@ public class UserGatewayImpl implements UserGateway {
     @Autowired
     private TblOprLogService logService;
 
-//    @Override
-//    public String getOpenId(String code) {
-//        //首先检查传入的code是否为空,如果为空则抛出业务异常
-//        log.info("code:{}", code);
-//        if (StringUtils.isEmpty(code)) {
-//            throw new BizException(ErrorEnum.WECHAT_CODE_ISNULL.getErrorCode(), ErrorEnum.WECHAT_CODE_ISNULL.getErrorMessage());
-//        }
-//        //构建请求URL
-//        String url = String.format("https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", appid, secret, code);
-//        log.info("url:{}", url);
-//        try {
-//            //调用微信接口
-//            String res = restTemplate.getForObject(url, String.class);
-//            log.info("微信登录返回结果:{}", res);
-//            //解析返回结果
-//            JSONObject obj = JSONObject.parseObject(res);
-//            String openId = Objects.requireNonNull(obj).getString("openid");
-//            log.info("openId:{}",openId);
-//            return openId;
-//
-//        } catch (Exception e) {   //异常处理
-//            log.error("微信登录接口异常", e);
-//            throw new BizException(ErrorEnum.WECHAT_INTERFACE_CALL_EXCEPTION.getErrorCode(), ErrorEnum.WECHAT_INTERFACE_CALL_EXCEPTION.getErrorMessage());
-//        }
-//    }
-
     @Override
     public UserInfoWxRes loginWx(String code) {
         if (StringUtils.isEmpty(code)) {
@@ -180,7 +153,7 @@ public class UserGatewayImpl implements UserGateway {
             //获取用户手机号
             String phone = getUserPhone(params.getCode(), accessToken);
             log.info("Retrieved phone:{}", phone);
-            if (phone == null){
+            if (phone == null) {
                 throw new BizException(ErrorEnum.PHONE_IS_NULL.getErrorCode(), ErrorEnum.PHONE_IS_NULL.getErrorMessage());
             }
             // 未注册的手机号直接注册用户
@@ -188,7 +161,6 @@ public class UserGatewayImpl implements UserGateway {
             userInfo.setOpenid(params.getOpenId());
             userInfo.setPhone(phone);
             userInfo.setUnionId(params.getUnionId());
-//            userInfo.setAvatarUrl(params.getAvatarUrl());
             userService.save(userInfo);
         } else {
             log.info("当前用户已注册:{}", params.getOpenId());
@@ -203,9 +175,9 @@ public class UserGatewayImpl implements UserGateway {
 
             StpUtil.login(RedisCacheConstant.WX_USER_PRE + userInfo.getUserId(),
                     SaLoginParameter.create()
-                    .setDeviceType(DeviceType.WX.getCode())
-                    .setTimeout(wxTimeout)
-                    .setActiveTimeout(wxActiveTimeout));
+                            .setDeviceType(DeviceType.WX.getCode())
+                            .setTimeout(wxTimeout)
+                            .setActiveTimeout(wxActiveTimeout));
 
             SaSession saSession = StpUtil.getSession();
             saSession.set(UserConstants.SA_USER_PHONE, userInfo.getPhone());
@@ -213,7 +185,7 @@ public class UserGatewayImpl implements UserGateway {
             saSession.set(UserConstants.SA_USER_OPEN_ID, userInfo.getOpenid());
             saSession.set(UserConstants.SA_USER_UNION_ID, userInfo.getUnionId());
         } else {
-            log.info("当前用户已登录:{}",params.getOpenId());
+            log.info("当前用户已登录:{}", params.getOpenId());
         }
 
         //3.获取token信息+用户手机号
@@ -224,43 +196,6 @@ public class UserGatewayImpl implements UserGateway {
         return result;
     }
 
-//    @Override
-//    public Boolean signup(UserSignupParams request) {
-//        //校验验证码
-//        String redisKey = RedisCacheConstant.SMS_SIGNUP_CODE + request.getPhone();
-//        log.info("验证注册验证码:手机号={}, 输入验证码={}, Redis key={}", request.getPhone(), request.getCode(), redisKey);
-//
-//        Object cacheCodeObj = redisService.get(redisKey);
-//        log.info("从Redis获取验证码:key={}, value={}", redisKey, cacheCodeObj);
-//
-//        if (Objects.isNull(cacheCodeObj)) {
-//            log.warn("验证码已过期或不存在:手机号={}, Redis key={}", request.getPhone(), redisKey);
-//            throw new BizException(ErrorEnum.SMS_CODE_EXPIRED.getErrorCode(), ErrorEnum.SMS_CODE_EXPIRED.getErrorMessage());
-//        }
-//        String cacheCode = String.valueOf(cacheCodeObj);
-//        log.info("验证码比较:输入={}, 缓存={}", request.getCode(), cacheCode);
-//
-//        if (!Objects.equals(cacheCode, request.getCode())) {
-//            log.warn("验证码错误:手机号={}, 输入={}, 缓存={}", request.getPhone(), request.getCode(), cacheCode);
-//            throw new BizException(ErrorEnum.SMS_CODE_ERROR.getErrorCode(), ErrorEnum.SMS_CODE_ERROR.getErrorMessage());
-//
-//        }
-//        if (checkOpenId(request.getOpenId())) {
-//            throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
-//        }
-//        // 验证通过 清除验证码入库
-//        redisService.del(redisKey);
-//        UserInfo user = new UserInfo();
-//        user.setPhone(request.getPhone());
-//        String encryptedPassword = PasswordUtil.encrypt(request.getPassword());
-//        user.setPassword(encryptedPassword);
-//        user.setOpenid(request.getOpenId());
-//        user.setUnionId(request.getUnionId());
-//        userService.save(user);
-//        return true;
-//    }
-
-
     @Override
     public Boolean checkOpenId(String openId) {
         return userService.checkAvailableOpenId(openId);
@@ -317,11 +252,9 @@ public class UserGatewayImpl implements UserGateway {
             saSession.set(UserConstants.SA_USER_OPEN_ID, userInfo.getOpenid());
             saSession.set(UserConstants.SA_USER_UNION_ID, userInfo.getUnionId());
         } else {
-            log.info("当前用户已登录:{}",userInfo.getOpenid());
+            log.info("当前用户已登录:{}", userInfo.getOpenid());
         }
 
-
-
         //3.获取token信息+用户手机号
         SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
         UserTokenInfo result = CopyUtils.copy(tokenInfo, UserTokenInfo.class);
@@ -331,20 +264,6 @@ public class UserGatewayImpl implements UserGateway {
         return result;
     }
 
-
-//    @Override
-//    public UserDto loginByPassword(UserLoginParams request) {
-//        UserDto userDto = new UserDto();
-//        UserInfo user = userService.checkUserByPassword(request.getUserName(), request.getPassword());
-//        if (Objects.isNull(user)) {
-//            throw new BizException(ErrorEnum.USERNAME_OR_PASSWORD_ERROR.getErrorCode(), ErrorEnum.USERNAME_OR_PASSWORD_ERROR.getErrorMessage());
-//        }
-//        BeanUtils.copyProperties(user, userDto);
-//        userDto.setUserId(user.getUserId());
-//        return userDto;
-//    }
-
-
     @Override
     public String getUserPhone(String code, String accessToken) {
         if (StringUtils.isEmpty(code)) {
@@ -362,7 +281,7 @@ public class UserGatewayImpl implements UserGateway {
             HttpEntity<String> request = new HttpEntity<>(param.toJSONString(), headers);
 
             // 发起请求
-            log.info("小程序获取电话号码,调用微信后台 url:{}, request:{}", url,  request);
+            log.info("小程序获取电话号码,调用微信后台 url:{}, request:{}", url, request);
             String response = restTemplate.postForObject(url, request, String.class);
             log.info("小程序获取电话号码,调用微信后台 response:{}", response);
             JSONObject json = JSONObject.parseObject(response);
@@ -381,36 +300,8 @@ public class UserGatewayImpl implements UserGateway {
     }
 
     @Override
-    // @MqttSubscribes(value = {})
-    public void test() {
-//        mqttPublisher.send("test", "test1");
-    }
-
-
-//    @Override
-//    public void updatePassword(UserUpdatePasswordParams request) {
-//        if (request.getNewPassword().equals(request.getOldPassword())) {
-//            throw new BizException(ErrorEnum.PASSWORD_IS_REPEAT.getErrorCode(), ErrorEnum.PASSWORD_IS_REPEAT.getErrorMessage());
-//        }
-//
-//        UserInfo userInfo = userService.getById(request.getUserId());
-//        if (Objects.isNull(userInfo)) {
-//            throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
-//        }
-//        if (!PasswordUtil.matches(request.getOldPassword(), userInfo.getPassword())) {
-//            throw new BizException(ErrorEnum.OLD_PASSWORD_ERROR.getErrorCode(), ErrorEnum.OLD_PASSWORD_ERROR.getErrorMessage());
-//        }
-//        UserInfo info = new UserInfo();
-//        info.setUserId(request.getUserId());
-//        // 使用 PasswordUtil.encrypt() 加密新密码
-//        String encryptedPassword = PasswordUtil.encrypt(request.getNewPassword());
-//        info.setPassword(encryptedPassword);
-//        userService.updateById(info);
-//    }
-
-    @Override
     public String authUrl() {
-        String redirectUrl =  callbackUrl + "/wx/callback"; // 微信后台配置的回调地址
+        String redirectUrl = callbackUrl + "/wx/callback"; // 微信后台配置的回调地址
         return wxMpService.getOAuth2Service()
                 .buildAuthorizationUrl(redirectUrl, "snsapi_userinfo", "state123");
     }
@@ -449,12 +340,13 @@ public class UserGatewayImpl implements UserGateway {
             throw e;
         }
     }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void logoff(UserLogoffParams request){
+    public void logoff(UserLogoffParams request) {
         //1.用户id参数校验
         UserInfo userInfo = userService.getById(request.getUserId());
-        if (Objects.isNull(userInfo)){
+        if (Objects.isNull(userInfo)) {
             throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
         }
 
@@ -507,8 +399,8 @@ public class UserGatewayImpl implements UserGateway {
 
         // 2. 查询手机号是否存在
         UserInfo userInfo = userService.getOne(
-            Wrappers.<UserInfo>lambdaQuery()
-                .eq(UserInfo::getPhone, phone)
+                Wrappers.<UserInfo>lambdaQuery()
+                        .eq(UserInfo::getPhone, phone)
         );
 
         // 3. 如果存在,更新openid
@@ -524,54 +416,11 @@ public class UserGatewayImpl implements UserGateway {
         return false;
     }
 
-//    @Override
-//    public void uploadCarousel(MultipartFile file) throws IOException {
-//        // 校验文件非空
-//        if (file.isEmpty()) {
-//            throw new BizException(ErrorEnum.FILE_IS_EMPTY.getErrorCode(), ErrorEnum.FILE_IS_EMPTY.getErrorMessage());
-//        }
-//
-//        // 校验文件类型
-//        String contentType = file.getContentType();
-//        if (contentType == null || (!contentType.equalsIgnoreCase("image/png") && !contentType.equalsIgnoreCase("image/jpeg"))) {
-//            throw new BizException(ErrorEnum.FILE_ONLY_PNG_JPG.getErrorCode(), ErrorEnum.FILE_ONLY_PNG_JPG.getErrorMessage());
-//        }
-//
-//        // 校验文件头
-//        byte[] fileHeader = new byte[8];
-//        try (InputStream is = file.getInputStream()) {
-//            int readBytes = is.read(fileHeader);
-//            if (readBytes < 8) {
-//                throw new BizException(ErrorEnum.FILE_NOT_COMPLETE.getErrorCode(), ErrorEnum.FILE_NOT_COMPLETE.getErrorMessage());
-//            }
-//        }
-//        boolean isPng = checkPngMagicNumber(fileHeader);
-//        boolean isJpeg = checkJpegMagicNumber(fileHeader);
-//
-//        if (!isPng && !isJpeg) {
-//            throw new BizException(ErrorEnum.FILE_ONLY_PNG_JPG02.getErrorCode(), ErrorEnum.FILE_ONLY_PNG_JPG02.getErrorMessage());
-//        }
-//
-//        // 生成OSS对象名称
-//        String objectName = OssUtils.getObjectName(OssBusiType.CAROUSEL.getCode(), file.getOriginalFilename());
-//
-//        // 上传文件到OSS
-//        ossClient.upload(file.getInputStream(), OssUtils.BUCKET_NAME, objectName);
-//
-//        // 保存文件记录到数据库
-//        TblOssFile ossFile = new TblOssFile();
-//        ossFile.setBusiType(OssBusiType.CAROUSEL.getCode());
-//        ossFile.setBusiKey("0");
-//        ossFile.setFileName(file.getOriginalFilename());
-//        ossFile.setOssUrl(OssUtils.BUCKET_NAME + "/" + objectName);
-//        ossFileService.save(ossFile);
-//    }
-
     @Override
     public List<OssFileDTO> getFileList(String fileType) {
         // 查询指定类型的文件记录
         List<TblOssFile> ossFiles = ossFileService.queryFile(fileType, null);
-        
+
         // 转换为DTO并获取可访问的URL
         return ossFiles.stream()
                 .map(ossFile -> {
@@ -632,7 +481,7 @@ public class UserGatewayImpl implements UserGateway {
 
         // 生成OSS对象名称,使用原始文件名
         String objectName = generateCommonObjectName(fileType, originalFilename);
-        
+
         // 上传文件到OSS
         ossClient.upload(file.getInputStream(), OssUtils.BUCKET_NAME, objectName);
 
@@ -641,7 +490,7 @@ public class UserGatewayImpl implements UserGateway {
         if (existingFile != null && originalFilename.equals(existingFile.getFileName())) {
             // 如果存在相同文件名和业务类型的记录,则更新现有记录
             log.info("发现相同文件名和业务类型的记录,执行覆盖操作:文件名={}, 业务类型={}", originalFilename, fileType);
-            
+
             // 删除旧的OSS文件
             try {
                 String oldOssUrl = existingFile.getOssUrl();
@@ -656,12 +505,12 @@ public class UserGatewayImpl implements UserGateway {
             } catch (Exception e) {
                 log.warn("删除旧OSS文件失败,继续执行覆盖操作:{}", e.getMessage());
             }
-            
+
             // 更新数据库记录
             String fullOssUrl = downloadUrlPre + objectName;
             existingFile.setOssUrl(fullOssUrl);
             ossFileService.updateById(existingFile);
-            
+
             log.info("文件覆盖成功:文件名={}, 业务类型={}", originalFilename, fileType);
         } else {
             // 如果不存在,则创建新记录
@@ -672,35 +521,26 @@ public class UserGatewayImpl implements UserGateway {
             String fullOssUrl = downloadUrlPre + objectName;
             ossFile.setOssUrl(fullOssUrl);
             ossFileService.save(ossFile);
-            
+
             log.info("新文件上传成功:文件名={}, OSS路径={}", originalFilename, objectName);
         }
     }
 
     /**
      * 生成通用文件的OSS对象名称,保留原始文件名
-     * @param fileType 文件类型
+     *
+     * @param fileType         文件类型
      * @param originalFilename 原始文件名
      * @return OSS对象名称
      */
     private String generateCommonObjectName(String fileType, String originalFilename) {
         StringBuilder sb = new StringBuilder();
         sb.append(fileType)
-          .append("/")
-          .append(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")))
-          .append("/")
-          .append(originalFilename); // 直接使用原始文件名
+                .append("/")
+                .append(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")))
+                .append("/")
+                .append(originalFilename); // 直接使用原始文件名
 
         return sb.toString();
     }
-
-    private boolean checkPngMagicNumber(byte[] fileHeader) {
-        byte[] pngMagicNumber = {(byte) 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A};
-        return Arrays.equals(Arrays.copyOfRange(fileHeader, 0, 8), pngMagicNumber);
-    }
-
-    private boolean checkJpegMagicNumber(byte[] fileHeader) {
-        byte[] jpegMagicNumber = {(byte) 0xFF, (byte) 0xD8, (byte) 0xFF};
-        return Arrays.equals(Arrays.copyOfRange(fileHeader, 0, 3), jpegMagicNumber);
-    }
 }

+ 2 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebAdminDealGatewayImpl.java

@@ -84,13 +84,13 @@ public class WebAdminDealGatewayImpl implements WebAdminDealGateway {
         List<AlarmPlan> alarmPlans = alarmPlanService.queryByClientId(devInfo.getClientId());
 
         if (alarmPlans != null && !alarmPlans.isEmpty()) {
-            for (AlarmPlan plan : alarmPlans){
+            for (AlarmPlan plan : alarmPlans) {
                 try {
                     AlarmPlanDelReq req = new AlarmPlanDelReq();
                     req.setId(plan.getId());
                     alarmGateway.delPlan(req);
                     log.info("已删除告警计划,planId={}", plan.getId());
-                }catch (Exception e){
+                } catch (Exception e) {
                     log.error("删除告警计划失败,planId={}", plan.getId(), e);
                 }
             }

+ 43 - 42
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebGatewayImpl.java

@@ -68,9 +68,6 @@ public class WebGatewayImpl implements WebGateway {
     private RedisUtil redisService;
 
     @Autowired
-    private org.springframework.data.redis.core.RedisTemplate<String, Object> redisTemplate;
-
-    @Autowired
     private AdminUserService adminUserService;
 
     @Autowired
@@ -225,12 +222,12 @@ public class WebGatewayImpl implements WebGateway {
 
     @Override
     public PageRecord<DeviceDTO> queryDevList(DeviceListQueryReq queryReq) {
-        if (queryReq.getPageSize() == null || queryReq.getPageSize() <= 0){
+        if (queryReq.getPageSize() == null || queryReq.getPageSize() <= 0) {
             queryReq.setPageSize(10);
         }
 
         // 执行分页查询
-        Long tenantId =  (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
+        Long tenantId = (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
         Page<DevInfo> devInfoPage = devInfoService.queryDevList(queryReq, tenantId);
         // 换为目标DTO
         List<DeviceDTO> deviceDTOList = CopyUtils.copyList(devInfoPage.getRecords(), DeviceDTO.class);
@@ -260,7 +257,7 @@ public class WebGatewayImpl implements WebGateway {
             if (dto.getTenantId() != null) {
                 dto.setTenantName(tenantIdNameMap.get(dto.getTenantId()));
             }
-            
+
 
         });
 
@@ -292,7 +289,7 @@ public class WebGatewayImpl implements WebGateway {
 
     @Override
     public AdminLoginRes login(LoginParam param) {
-        log.info("用户登录开始,用户名:{}", param.getAccount()+"------------------------------------------");
+        log.info("用户登录开始,用户名:{}", param.getAccount() + "------------------------------------------");
 
         AdminUserInfo adminUser = adminUserService.checkUserByPassword(param.getAccount(), param.getPassword());
         if (Objects.isNull(adminUser)) {
@@ -387,7 +384,7 @@ public class WebGatewayImpl implements WebGateway {
         if (adminUser == null) {
             log.warn("手机号不存在错误:手机号={}", request.getPhone());
             throw new BizException(ErrorEnum.USER_NOT_FOUND.getErrorCode(), ErrorEnum.USER_NOT_FOUND.getErrorMessage());
-         }
+        }
 
         adminUser.setPassword(PasswordUtil.encrypt(request.getPassword()));
         adminUserService.updateById(adminUser);
@@ -418,7 +415,7 @@ public class WebGatewayImpl implements WebGateway {
     public void addRole(AddRoleParam param) {
         //1.检查角色是否存在
         TblRole exist = tblRoleService.queryByRoleCode(param.getRoleCode());
-        if (Objects.nonNull(exist)){
+        if (Objects.nonNull(exist)) {
             throw new BizException(ErrorEnum.ROLE_ALREADY_EXISTS.getErrorCode(), ErrorEnum.ROLE_ALREADY_EXISTS.getErrorMessage());
         }
 
@@ -429,19 +426,19 @@ public class WebGatewayImpl implements WebGateway {
     }
 
     @Override
-    public void disableRole(String roleCode){
+    public void disableRole(String roleCode) {
         //1.判断roleCode非空
-        if (Objects.isNull(roleCode)){
+        if (Objects.isNull(roleCode)) {
             throw new BizException(ErrorEnum.ROLE_CODE_NOT_NULL.getErrorCode(), ErrorEnum.ROLE_CODE_NOT_NULL.getErrorMessage());
         }
         TblRole role = tblRoleService.queryByRoleCode(roleCode);
         //2.判断rolecode是否存在
-        if (role == null){
+        if (role == null) {
             throw new BizException(ErrorEnum.ROLE_NOT_EXIST.getErrorCode(), ErrorEnum.ROLE_NOT_EXIST.getErrorMessage());
         }
 
         //3.检查角色是否已经禁用
-        if (Objects.equals(role.getIsDeleted(), 1)){
+        if (Objects.equals(role.getIsDeleted(), 1)) {
             throw new BizException(ErrorEnum.ROLE_ALREADY_DISABLED.getErrorCode(), ErrorEnum.ROLE_ALREADY_DISABLED.getErrorMessage());
         }
 
@@ -456,11 +453,11 @@ public class WebGatewayImpl implements WebGateway {
         LambdaQueryWrapper<TblRole> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper
                 .select(TblRole::getRoleId, TblRole::getRoleCode, TblRole::getRoleName)
-                .eq(TblRole::getIsDeleted,  BasePO.DeleteFlag.NOT_DELETED);
+                .eq(TblRole::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
 
         // 2. 查询如果为空,则返回空集合
         List<TblRole> roleList = tblRoleService.list(queryWrapper);
-        if (CollectionUtils.isEmpty(roleList)){
+        if (CollectionUtils.isEmpty(roleList)) {
             return Collections.emptyList();
         }
 
@@ -476,7 +473,7 @@ public class WebGatewayImpl implements WebGateway {
     }
 
     @Override
-    public void addMenu(AddMenuParam param){
+    public void addMenu(AddMenuParam param) {
         //1.校验菜单名称是否存在
         if (tblSystemMenuService.validateMenuName(param.getMenuName(), param.getParentId(), null)) {
             throw new BizException(ErrorEnum.MENU_NAME_EXISTS.getErrorCode(), ErrorEnum.MENU_NAME_EXISTS.getErrorMessage());
@@ -489,10 +486,10 @@ public class WebGatewayImpl implements WebGateway {
     }
 
     @Override
-    public void updateMenu(UpdateMenuParam param){
+    public void updateMenu(UpdateMenuParam param) {
         //1.校验菜单是否存在
         TblSystemMenu menu = tblSystemMenuService.getById(param.getMenuId());
-        if (menu == null){
+        if (menu == null) {
             throw new BizException(ErrorEnum.MENU_NOT_EXISTS.getErrorCode(), ErrorEnum.MENU_NOT_EXISTS.getErrorMessage());
         }
 
@@ -502,7 +499,7 @@ public class WebGatewayImpl implements WebGateway {
         }
 
         //3.校验上级菜单不能为自己
-        if (param.getParentId().equals(param.getMenuId())){
+        if (param.getParentId().equals(param.getMenuId())) {
             throw new BizException(ErrorEnum.MENU_PARENT_NOT_SELF.getErrorCode(), ErrorEnum.MENU_PARENT_NOT_SELF.getErrorMessage());
         }
 
@@ -550,13 +547,14 @@ public class WebGatewayImpl implements WebGateway {
                 .eq(TblSystemMenu::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED)
                 .orderByAsc(TblSystemMenu::getSort)
                 .list();
-        
+
         // 构建菜单树
         return buildMenuTree(allMenus, 0L); // 0L 表示顶级菜单
     }
-    
+
     /**
      * 构建菜单树
+     *
      * @param allMenus 所有菜单列表
      * @param parentId 父级ID
      * @return 菜单树结构
@@ -582,31 +580,32 @@ public class WebGatewayImpl implements WebGateway {
                 .eq(disabledFlag != null, TblSystemMenu::getDisabledFlag, disabledFlag)
                 .orderByAsc(TblSystemMenu::getSort)
                 .list();
-        
+
         // 转换为DTO
         List<MenuListDTO> menuList = CopyUtils.copyList(allMenus, MenuListDTO.class);
-        if(menuList == null ){
+        if (menuList == null) {
             menuList = Collections.emptyList();
         }
         // 根据ParentId进行分组
         Map<Long, List<MenuListDTO>> parentMap = menuList.stream()
                 .collect(Collectors.groupingBy(MenuListDTO::getParentId, Collectors.toList()));
-        
+
         // 过滤并排序菜单列表
         return filterAndSortMenuList(parentMap, 0L);
     }
 
     /**
      * 过滤并排序菜单列表
+     *
      * @param parentMap 按父级ID分组的菜单Map
-     * @param parentId 父级ID
+     * @param parentId  父级ID
      * @return 排序后的菜单列表
      */
     private List<MenuListDTO> filterAndSortMenuList(Map<Long, List<MenuListDTO>> parentMap, Long parentId) {
         // 获取本级菜单列表
         List<MenuListDTO> currentLevelMenus = parentMap.getOrDefault(parentId, new ArrayList<>());
         List<MenuListDTO> result = new ArrayList<>();
-        
+
         // 循环遍历本级菜单
         for (MenuListDTO menu : currentLevelMenus) {
             result.add(menu);
@@ -614,7 +613,7 @@ public class WebGatewayImpl implements WebGateway {
             List<MenuListDTO> childMenus = filterAndSortMenuList(parentMap, menu.getMenuId());
             result.addAll(childMenus);
         }
-        
+
         return result;
     }
 
@@ -653,7 +652,7 @@ public class WebGatewayImpl implements WebGateway {
     }
 
     @Override
-    public  void addDic(DicAddParam param) {
+    public void addDic(DicAddParam param) {
         TblDic tblDic = new TblDic();
         tblDic.setDicType(param.getDicType());
         tblDic.setDicName(param.getDicName());
@@ -663,7 +662,7 @@ public class WebGatewayImpl implements WebGateway {
     }
 
     @Override
-    public void updateDic(UpdateDicParam param){
+    public void updateDic(UpdateDicParam param) {
         TblDic tblDic = tblDicService.getById(param.getDicId());
         if (tblDic == null) {
             throw new BizException(ErrorEnum.DATA_NOT_EXISTS.getErrorCode(), ErrorEnum.DATA_NOT_EXISTS.getErrorMessage());
@@ -754,7 +753,7 @@ public class WebGatewayImpl implements WebGateway {
 
         // 生成OTA专用的OSS对象名称,使用单独的文件夹
         String objectName = generateOtaObjectName(originalFilename);
-        
+
         // 上传文件到OSS
         ossClient.upload(file.getInputStream(), OssUtils.BUCKET_NAME, objectName);
 
@@ -767,12 +766,13 @@ public class WebGatewayImpl implements WebGateway {
         String fullOssUrl = otaDownloadUrlPre + objectName;
         ossFile.setOssUrl(fullOssUrl);
         ossFileService.save(ossFile);
-        
+
         log.info("OTA升级文件上传成功:文件名={}, OSS路径={}", originalFilename, objectName);
     }
 
     /**
      * 校验是否为有效的OTA文件
+     *
      * @param fileName 文件名
      * @return 是否为有效文件
      */
@@ -782,27 +782,28 @@ public class WebGatewayImpl implements WebGateway {
         }
         String lowerFileName = fileName.toLowerCase();
         // 支持常见的固件文件格式
-        return lowerFileName.endsWith(".bin") || 
-               lowerFileName.endsWith(".hex") || 
-               lowerFileName.endsWith(".fw") || 
-               lowerFileName.endsWith(".img") || 
-               lowerFileName.endsWith(".tar.gz") || 
-               lowerFileName.endsWith(".zip");
+        return lowerFileName.endsWith(".bin") ||
+                lowerFileName.endsWith(".hex") ||
+                lowerFileName.endsWith(".fw") ||
+                lowerFileName.endsWith(".img") ||
+                lowerFileName.endsWith(".tar.gz") ||
+                lowerFileName.endsWith(".zip");
     }
 
     /**
      * 生成OTA专用的OSS对象名称
+     *
      * @param originalFilename 原始文件名
      * @return OSS对象名称
      */
     private String generateOtaObjectName(String originalFilename) {
         StringBuilder sb = new StringBuilder();
         sb.append("ota/") // 使用单独的ota文件夹
-          .append(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")))
-          .append("/")
-          .append(UUID.randomUUID().toString().replace("-", ""))
-          .append("_")
-          .append(originalFilename); // 保留原始文件名以便识别
+                .append(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")))
+                .append("/")
+                .append(UUID.randomUUID().toString().replace("-", ""))
+                .append("_")
+                .append(originalFilename); // 保留原始文件名以便识别
 
         return sb.toString();
     }

+ 2 - 6
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebQuestionGatewayImpl.java

@@ -381,7 +381,6 @@ public class WebQuestionGatewayImpl implements WebQuestionGateway {
         return result;
     }
 
-
     @Override
     public UserQuestionnaireDetailsDTO queryUserQuestionnaireDetails(UserQuestionnaireDetailsParam param) {
         // 1. 根据手机号查用户
@@ -389,7 +388,7 @@ public class WebQuestionGatewayImpl implements WebQuestionGateway {
                 new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getPhone, param.getUserPhone())
         );
         if (user == null) {
-            throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(),ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
+            throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
         }
         Long userId = user.getUserId();
         log.info("用户ID: {}", userId);
@@ -397,7 +396,7 @@ public class WebQuestionGatewayImpl implements WebQuestionGateway {
         // 2. 查问卷信息
         Questionnaire questionnaire = questionnaireService.getById(param.getQuestionnaireId());
         if (questionnaire == null) {
-            throw new BizException(ErrorEnum.QUESTIONNAIRE_NOT_EXIST.getErrorCode(),ErrorEnum.QUESTIONNAIRE_NOT_EXIST.getErrorMessage());
+            throw new BizException(ErrorEnum.QUESTIONNAIRE_NOT_EXIST.getErrorCode(), ErrorEnum.QUESTIONNAIRE_NOT_EXIST.getErrorMessage());
         }
         log.info("问卷信息: {}", questionnaire);
 
@@ -455,6 +454,3 @@ public class WebQuestionGatewayImpl implements WebQuestionGateway {
         return empty;
     }
 }
-
-
-

+ 24 - 27
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebStatsGatewayImpl.java

@@ -39,7 +39,6 @@ import java.util.stream.Collectors;
 @Service
 public class WebStatsGatewayImpl implements WebStatsGateway {
 
-
     @Autowired
     private DevInfoService devInfoService;
 
@@ -47,7 +46,7 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
     private EventListService eventListService;
 
     @Autowired
-    private DailyActiveUsersService dailyActiveUsersService;;
+    private DailyActiveUsersService dailyActiveUsersService;
 
     @Autowired
     private EventsService eventsService;
@@ -67,17 +66,17 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
 
     @Override
     public PageRecord<EventListDTO> fallQuery(EventListParams params) {
-        Long tenantId =  (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
-        String userType =  (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        Long tenantId = (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
 
-        if (AdminUserType.getBgManagerTypes().contains(userType)){
+        if (AdminUserType.getBgManagerTypes().contains(userType)) {
             tenantId = params.getTenantId();
         }
 
         List<Long> devIdList = new ArrayList<>();
         //根据租户id查询devId集合
-        if(tenantId != null && tenantId != 0){
-           devIdList =  devInfoService.queryByTenantId(tenantId);
+        if (tenantId != null && tenantId != 0) {
+            devIdList = devInfoService.queryByTenantId(tenantId);
         }
         // 如果tenantId为0或null,则不添加租户ID查询条件,查询所有事件(超管权限)
 
@@ -92,16 +91,14 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
     }
 
 
-
-
     @Override
     public PageRecord<EventsDTO> alarmEventsQuery(WebEventsParams params) {
         // 1.获取当前用户信息
-        Long tenantId =  (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
-        String userType =  (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        Long tenantId = (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
 
         // 2.调用web端查询告警信息 queryEvents 方法
-        return  eventsService.queryEvents(params, userType, tenantId);
+        return eventsService.queryEvents(params, userType, tenantId);
 
     }
 
@@ -217,8 +214,8 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
         if (statInfo == null) {
             return res;
         }
-        res.setDeviceCount(statInfo.get("deviceCount") == null ? 0 :statInfo.get("deviceCount").intValue());
-        res.setOnlineCount(statInfo.get("onlineCount") == null ? 0 :statInfo.get("onlineCount").intValue());
+        res.setDeviceCount(statInfo.get("deviceCount") == null ? 0 : statInfo.get("deviceCount").intValue());
+        res.setOnlineCount(statInfo.get("onlineCount") == null ? 0 : statInfo.get("onlineCount").intValue());
 
         if (res.getOnlineCount() != 0) {
 
@@ -234,71 +231,71 @@ public class WebStatsGatewayImpl implements WebStatsGateway {
                 .count()));
 
 
-        res.setDetectedCount(statInfo.get("detectedCount") == null ? 0 :statInfo.get("detectedCount").intValue());
+        res.setDetectedCount(statInfo.get("detectedCount") == null ? 0 : statInfo.get("detectedCount").intValue());
 
         List<ScreenStatsDTO.InstallPositionInfo> installPositionList = new ArrayList<>();
         ScreenStatsDTO.InstallPositionInfo toiletCount = new ScreenStatsDTO.InstallPositionInfo();
         toiletCount.setInstallPosition("Toilet");
-        toiletCount.setCount(statInfo.get("toiletCount") == null ? 0 :statInfo.get("toiletCount").intValue());
+        toiletCount.setCount(statInfo.get("toiletCount") == null ? 0 : statInfo.get("toiletCount").intValue());
         installPositionList.add(toiletCount);
 
         ScreenStatsDTO.InstallPositionInfo bedroomCount = new ScreenStatsDTO.InstallPositionInfo();
         bedroomCount.setInstallPosition("Bedroom");
-        bedroomCount.setCount(statInfo.get("bedroomCount") == null ? 0 :statInfo.get("bedroomCount").intValue());
+        bedroomCount.setCount(statInfo.get("bedroomCount") == null ? 0 : statInfo.get("bedroomCount").intValue());
         installPositionList.add(bedroomCount);
 
         ScreenStatsDTO.InstallPositionInfo livingRoomCount = new ScreenStatsDTO.InstallPositionInfo();
         livingRoomCount.setInstallPosition("LivingRoom");
-        livingRoomCount.setCount(statInfo.get("livingRoomCount") == null ? 0 :statInfo.get("livingRoomCount").intValue());
+        livingRoomCount.setCount(statInfo.get("livingRoomCount") == null ? 0 : statInfo.get("livingRoomCount").intValue());
         installPositionList.add(livingRoomCount);
 
         ScreenStatsDTO.InstallPositionInfo restaurantCount = new ScreenStatsDTO.InstallPositionInfo();
         restaurantCount.setInstallPosition("Restaurant");
-        restaurantCount.setCount(statInfo.get("restaurantCount") == null ? 0 :statInfo.get("restaurantCount").intValue());
+        restaurantCount.setCount(statInfo.get("restaurantCount") == null ? 0 : statInfo.get("restaurantCount").intValue());
         installPositionList.add(restaurantCount);
         res.setInstallPositionList(installPositionList);
 
         List<ScreenStatsDTO.AgeInfo> ageList = new ArrayList<>();
         ScreenStatsDTO.AgeInfo less60 = new ScreenStatsDTO.AgeInfo();
         less60.setAgeRange("0-59");
-        less60.setCount(statInfo.get("less60") == null ? 0 :statInfo.get("less60").intValue());
+        less60.setCount(statInfo.get("less60") == null ? 0 : statInfo.get("less60").intValue());
         ageList.add(less60);
 
         ScreenStatsDTO.AgeInfo less70 = new ScreenStatsDTO.AgeInfo();
         less70.setAgeRange("60-69");
-        less70.setCount(statInfo.get("less70") == null ? 0 :statInfo.get("less70").intValue());
+        less70.setCount(statInfo.get("less70") == null ? 0 : statInfo.get("less70").intValue());
         ageList.add(less70);
 
         ScreenStatsDTO.AgeInfo less80 = new ScreenStatsDTO.AgeInfo();
         less80.setAgeRange("70-79");
-        less80.setCount(statInfo.get("less80") == null ? 0 :statInfo.get("less80").intValue());
+        less80.setCount(statInfo.get("less80") == null ? 0 : statInfo.get("less80").intValue());
         ageList.add(less80);
 
         ScreenStatsDTO.AgeInfo less90 = new ScreenStatsDTO.AgeInfo();
         less90.setAgeRange("80-89");
-        less90.setCount(statInfo.get("less90") == null ? 0 :statInfo.get("less90").intValue());
+        less90.setCount(statInfo.get("less90") == null ? 0 : statInfo.get("less90").intValue());
         ageList.add(less90);
 
         ScreenStatsDTO.AgeInfo less100 = new ScreenStatsDTO.AgeInfo();
         less100.setAgeRange("90-99");
-        less100.setCount(statInfo.get("less100") == null ? 0 :statInfo.get("less100").intValue());
+        less100.setCount(statInfo.get("less100") == null ? 0 : statInfo.get("less100").intValue());
         ageList.add(less100);
 
         ScreenStatsDTO.AgeInfo ge100 = new ScreenStatsDTO.AgeInfo();
         ge100.setAgeRange("100+");
-        ge100.setCount(statInfo.get("ge100") == null ? 0 :statInfo.get("ge100").intValue());
+        ge100.setCount(statInfo.get("ge100") == null ? 0 : statInfo.get("ge100").intValue());
         ageList.add(ge100);
         res.setAgeList(ageList);
 
         List<ScreenStatsDTO.GuardInfo> guardList = new ArrayList<>();
         ScreenStatsDTO.GuardInfo generalCount = new ScreenStatsDTO.GuardInfo();
         generalCount.setGuardType("general");
-        generalCount.setCount(statInfo.get("generalCount") == null ? 0 :statInfo.get("generalCount").intValue());
+        generalCount.setCount(statInfo.get("generalCount") == null ? 0 : statInfo.get("generalCount").intValue());
         guardList.add(generalCount);
 
         ScreenStatsDTO.GuardInfo importantCount = new ScreenStatsDTO.GuardInfo();
         importantCount.setGuardType("important");
-        importantCount.setCount(statInfo.get("importantCount") == null ? 0 :statInfo.get("importantCount").intValue());
+        importantCount.setCount(statInfo.get("importantCount") == null ? 0 : statInfo.get("importantCount").intValue());
         guardList.add(importantCount);
         res.setGuardList(guardList);
 

+ 3 - 4
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebTenantGatewayImpl.java

@@ -68,12 +68,12 @@ public class WebTenantGatewayImpl implements WebTenantGateway {
         } else {
 
             List<TblTenant> tenantList = tblTenantService.queryByCodeOrName(req.getTenantCode(), req.getTenantName());
-            if ((!CollectionUtils.isEmpty(tenantList) && ( ( tenantList.size() > 1) || !tenantList.get(0).getTenantId().equals(req.getTenantId())) )) {
+            if ((!CollectionUtils.isEmpty(tenantList) && ((tenantList.size() > 1) || !tenantList.get(0).getTenantId().equals(req.getTenantId())))) {
                 throw new BizException(ErrorEnum.TENANT_IS_ALREADY_EXIST.getErrorCode(), ErrorEnum.TENANT_IS_ALREADY_EXIST.getErrorMessage());
             }
             // 更新租户
             TblTenant tenant = tblTenantService.getById(req.getTenantId());
-            BeanUtils.copyProperties(req,  tenant);
+            BeanUtils.copyProperties(req, tenant);
             tblTenantService.updateById(tenant);
 
             tblOprLogService.saveLog(OprLogType.MOD_TENANT.getCode(), tenant);
@@ -234,7 +234,7 @@ public class WebTenantGatewayImpl implements WebTenantGateway {
                 Collectors.groupingBy(
                         info -> Optional.ofNullable(info.getTinfoType()).orElse("DEFAULT"),
                         Collectors.toList()
-        ));
+                ));
 
         List<TblTenantInfo> buildings = tenantInfoMap.get(TinfoType.COMMUNITY_BUILDING.getCode());
         List<TblTenantInfo> floors = tenantInfoMap.get(TinfoType.UNIT_FLOOR.getCode());
@@ -252,7 +252,6 @@ public class WebTenantGatewayImpl implements WebTenantGateway {
             }
         }
 
-
         return buildingList;
     }
 }

+ 11 - 13
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebUserGatewayImpl.java

@@ -49,7 +49,7 @@ public class WebUserGatewayImpl implements WebUserGateway {
     public PageRecord<AdminUserDto> queryManager(QueryManagerParam param) {
 
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
         log.info("当前登录用户类型:userType:{}", userType);
         if (!AdminUserType.getBgManagerTypes().contains(userType)) {
             throw new BizException(ErrorEnum.USER_INFO_ERROR.getErrorCode(), ErrorEnum.USER_INFO_ERROR.getErrorMessage());
@@ -72,7 +72,7 @@ public class WebUserGatewayImpl implements WebUserGateway {
         }
 
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
         log.info("当前登录用户类型:userType:{}", userType);
         if (!AdminUserType.getBgManagerTypes().contains(userType)) {
             throw new BizException(ErrorEnum.USER_INFO_ERROR.getErrorCode(), ErrorEnum.USER_INFO_ERROR.getErrorMessage());
@@ -109,7 +109,7 @@ public class WebUserGatewayImpl implements WebUserGateway {
         }
 
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
         log.info("当前登录用户类型:userType:{}", userType);
         if (!AdminUserType.getBgManagerTypes().contains(userType)) {
             throw new BizException(ErrorEnum.USER_INFO_ERROR.getErrorCode(), ErrorEnum.USER_INFO_ERROR.getErrorMessage());
@@ -126,7 +126,6 @@ public class WebUserGatewayImpl implements WebUserGateway {
         //更新密码
         BeanUtils.copyProperties(param, exist, "userId");
         exist.setPassword(PasswordUtil.encrypt(param.getPassword()));
-//        adminUserService.updateById(exist);
         adminUserService.updateAllById(exist);
 
         //3.更新用户角色到 tbl_user_role 表
@@ -148,7 +147,7 @@ public class WebUserGatewayImpl implements WebUserGateway {
             throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
         }
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
         log.info("当前登录用户类型:userType:{}", userType);
         if (!AdminUserType.getBgManagerTypes().contains(userType)) {
             throw new BizException(ErrorEnum.USER_INFO_ERROR.getErrorCode(), ErrorEnum.USER_INFO_ERROR.getErrorMessage());
@@ -162,8 +161,8 @@ public class WebUserGatewayImpl implements WebUserGateway {
     @Override
     public PageRecord<AdminUserDto> queryClient(ClientQueryParam param) {
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
-        Long tenantId = (Long)StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        Long tenantId = (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
         log.info("当前登录用户类型:userType:{}, tenantId:{}", userType, tenantId);
         if (!StringUtils.hasText(userType) || !AdminUserType.USER_ADMIN.getCode().equals(userType) || tenantId == null) {
             throw new BizException(ErrorEnum.USER_INFO_ERROR.getErrorCode(), ErrorEnum.USER_INFO_ERROR.getErrorMessage());
@@ -185,8 +184,8 @@ public class WebUserGatewayImpl implements WebUserGateway {
         }
 
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
-        Long tenantId = (Long)StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        Long tenantId = (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
         log.info("当前登录用户类型:userType:{}, tenantId:{}", userType, tenantId);
         if (!AdminUserType.USER_ADMIN.getCode().equals(userType) || tenantId == null) {
             throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
@@ -217,8 +216,8 @@ public class WebUserGatewayImpl implements WebUserGateway {
         }
 
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
-        Long tenantId = (Long)StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        Long tenantId = (Long) StpUtil.getSession().get(UserConstants.SA_USER_TENANT_ID);
         log.info("当前登录用户类型:userType:{}, tenantId:{}", userType, tenantId);
         if (!AdminUserType.USER_ADMIN.getCode().equals(userType) || tenantId == null) {
             throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
@@ -248,7 +247,7 @@ public class WebUserGatewayImpl implements WebUserGateway {
             throw new BizException(ErrorEnum.USER_IS_NOT_EXIST.getErrorCode(), ErrorEnum.USER_IS_NOT_EXIST.getErrorMessage());
         }
         // 对 后台超级管理员 和用户超级管理员 进行权限控制
-        String userType = (String)StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
+        String userType = (String) StpUtil.getSession().get(UserConstants.SA_USER_TYPE);
         log.info("当前登录用户类型:userType:{}", userType);
         if (AdminUserType.USER_ADMIN.getCode().equals(userType)) {
             throw new BizException(ErrorEnum.OPR_NOT_ALLOWED.getErrorCode(), ErrorEnum.OPR_NOT_ALLOWED.getErrorMessage());
@@ -259,7 +258,6 @@ public class WebUserGatewayImpl implements WebUserGateway {
         adminUserService.deleteById(exist.getUserId());
     }
 
-
     private void check(String userType, String createdUserType) {
         AdminUserType currentUserTypeEnum = AdminUserType.getByCode(userType);
         AdminUserType createdUserTypeEnum = AdminUserType.getByCode(createdUserType);

+ 2 - 31
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/sms/SmsGatewayImpl.java

@@ -17,14 +17,12 @@ import java.util.concurrent.TimeUnit;
 @Service
 public class SmsGatewayImpl implements SmsGateway {
 
-
     @Autowired
     private MsgClient msgClient;
 
     @Autowired
     private RedisUtil redisService;
 
-
     @Override
     public Boolean sendLoginSmsCode(String phone) {
         // 限制短信发送不超过一分钟一次
@@ -43,40 +41,13 @@ public class SmsGatewayImpl implements SmsGateway {
         String sentLoginMsg = msgClient.sendLoginMsg(phone, String.valueOf(captcha));
         if (Objects.nonNull(sentLoginMsg)) {
             // 存入redis  过期时间十分钟
-            redisService.set(RedisCacheConstant.SMS_LOGIN_CODE + phone, String.valueOf(captcha),10L, TimeUnit.MINUTES);
-           log.info("验证码已存入Redis:key={}, value={}, 过期时间=10分钟", RedisCacheConstant.SMS_LOGIN_CODE + phone, captcha);
+            redisService.set(RedisCacheConstant.SMS_LOGIN_CODE + phone, String.valueOf(captcha), 10L, TimeUnit.MINUTES);
+            log.info("验证码已存入Redis:key={}, value={}, 过期时间=10分钟", RedisCacheConstant.SMS_LOGIN_CODE + phone, captcha);
             return true;
         }
         return false;
     }
 
-//    @Override
-//    public Boolean sendSignupSmsCode(String phone) {
-//        // 限制短信发送不超过一分钟一次
-//        String key = RedisCacheConstant.SMS_SEND_SIGNUP_TIME + phone;
-//        Boolean hasKey = redisService.hasKey(key);
-//        if (hasKey) {
-//            throw new BizException(ErrorEnum.FREQUENT_SMS_SENDING.getErrorCode(), ErrorEnum.FREQUENT_SMS_SENDING.getErrorMessage());
-//        }
-//        int captcha = (int) ((Math.random() * 9 + 1) * 1000);
-//        log.info("生成注册验证码:手机号={}, 验证码={}", phone, captcha);
-//
-//        String sentLoginMsg = msgClient.sendRegisterMsg(phone, String.valueOf(captcha));
-//        if (Objects.nonNull(sentLoginMsg)) {
-//            // 存入redis  过期时间十分钟
-//            String redisKey = RedisCacheConstant.SMS_SIGNUP_CODE + phone;
-//            redisService.set(redisKey, captcha, 10L, TimeUnit.MINUTES);
-//            log.info("验证码已存入Redis:key={}, value={}, 过期时间=10分钟", redisKey, captcha);
-//
-//            // 验证是否存储成功
-//            Object storedValue = redisService.get(redisKey);
-//            log.info("验证存储结果:key={}, 存储的值={}", redisKey, storedValue);
-//            return true;
-//        }
-//        log.warn("短信发送失败:手机号={}, 验证码={}", phone, captcha);
-//        return false;
-//    }
-
     @Override
     public Boolean sendResetSmsCode(String phone) {
         // 限制短信发送不超过一分钟一次

+ 6 - 5
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttClient.java

@@ -19,7 +19,7 @@ public class MqttClient {
 
     @Autowired
     private MqttPahoMessageHandler mqttOutbound;
-    
+
     @Autowired
     private ObjectMapper objectMapper;
 
@@ -38,7 +38,7 @@ public class MqttClient {
     public void sendToMqtt(String topic, Object payload) {
         sendToMqtt(topic, payload, 0, false);
     }
-    
+
     /**
      * 发送消息 - 支持动态QoS
      */
@@ -55,10 +55,11 @@ public class MqttClient {
     /**
      * 发送消息到MQTT服务器 - 增强版
      * 支持动态QoS和消息保留设置
-     * @param topic 主题
+     *
+     * @param topic   主题
      * @param payload 负载
-     * @param qos 质量等级
-     * @param retain 是否保留
+     * @param qos     质量等级
+     * @param retain  是否保留
      */
     public void sendMessage(String topic, String payload, int qos, boolean retain) {
         try {

+ 11 - 7
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttSend.java

@@ -31,7 +31,6 @@ public class MqttSend {
     private WxOfficeAccountClient wxOfficeAccountClient;
 
 
-
     /**
      * 调用房间家具保存接口的时候如果有更新发送MQTT消息通知算法
      */
@@ -92,8 +91,9 @@ public class MqttSend {
 
     /**
      * web端修改设备参数之后通过MQTT发送到设备参数
+     *
      * @param clientId 设备客户端ID
-     * @param params 设备参数(DeviceBandingParams或UpdateDeviceParams)
+     * @param params   设备参数(DeviceBandingParams或UpdateDeviceParams)
      */
     public void sendWebDeviceParamsToMqtt(String clientId, Object params) {
         String topic = String.format(TopicConstants.TOPIC_SET_DEVICE_PARAM, clientId);
@@ -121,7 +121,7 @@ public class MqttSend {
             int confirmTime = fallingConfirm.intValue();
             fallingStateMachineDurations.put("durationUntilConfirm_sec", confirmTime);
             // minTimeOfTarInFallLoc_sec 是 durationUntilConfirm_sec的90%
-            fallingStateMachineDurations.put("minTimeOfTarInFallLoc_sec", (int)(confirmTime * 0.9));
+            fallingStateMachineDurations.put("minTimeOfTarInFallLoc_sec", (int) (confirmTime * 0.9));
             // 固定默认值
             fallingStateMachineDurations.put("durationUntilCalling_sec", 13);
             fallingStateMachineDurations.put("durationUntilReset_sec", 3);
@@ -159,8 +159,9 @@ public class MqttSend {
 
     /**
      * 小程序端修改设备参数之后通过MQTT发送到设备参数
+     *
      * @param clientId 设备客户端ID
-     * @param params 设备参数(DeviceBandingParams或UpdateDeviceParams)
+     * @param params   设备参数(DeviceBandingParams或UpdateDeviceParams)
      */
     public void sendDeviceParamsToMqtt(String clientId, Object params) {
         String topic = String.format(TopicConstants.TOPIC_SET_DEVICE_PARAM, clientId);
@@ -204,7 +205,8 @@ public class MqttSend {
 
     /**
      * 通过反射获取对象字段值
-     * @param obj 对象
+     *
+     * @param obj       对象
      * @param fieldName 字段名
      * @return 字段值
      */
@@ -221,6 +223,7 @@ public class MqttSend {
 
     /**
      * 通过反射获取对象字段值并转换为字符串
+     *
      * @param obj 对象
      *            字段名
      */
@@ -238,7 +241,8 @@ public class MqttSend {
 
     /**
      * 发送告警计划到LAS
-     * @param planUUid 告警计划ID
+     *
+     * @param planUUid  告警计划ID
      * @param operation 操作类型
      *                  "update":新增/更新
      *                  "delete":删除
@@ -250,7 +254,7 @@ public class MqttSend {
         jsonObject.put("operation", operation);
 
         try {
-            mqttClient.sendMessage(TopicConstants.TOPIC_LAS_ALARM_PLAN_UPDATE, jsonObject.toJSONString(),2,false);
+            mqttClient.sendMessage(TopicConstants.TOPIC_LAS_ALARM_PLAN_UPDATE, jsonObject.toJSONString(), 2, false);
         } catch (Exception e) {
             log.error("发送设备参数到MQTT失败", e);
             throw new BizException(ErrorEnum.MQTT_SEND_ERROR.getErrorCode(), ErrorEnum.MQTT_SEND_ERROR.getErrorMessage());

+ 0 - 549
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttSubHandle.java

@@ -1,549 +0,0 @@
-package com.hfln.portal.infrastructure.mqtt;
-
-import cn.hfln.framework.redis.util.RedisUtil;
-import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.hfln.portal.common.constant.mqtt.topic.TopicConstants;
-import com.hfln.portal.common.constant.redis.RedisCacheConstant;
-import com.hfln.portal.common.dto.data.user.SendMsgUserDto;
-import com.hfln.portal.domain.customer.AlarmEventType;
-import com.hfln.portal.domain.customer.util.MsgClient;
-import com.hfln.portal.domain.customer.util.WxOfficeAccountClient;
-import com.hfln.portal.infrastructure.po.*;
-import com.hfln.portal.infrastructure.service.*;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.messaging.Message;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-
-@Component
-@Slf4j
-public class MqttSubHandle {
-
-    @Autowired
-    private MqttClient mqttClient; // MQTT消息发布器
-
-    @Autowired
-    private DevInfoService devInfoService;
-
-    @Autowired
-    private EventListService eventListService;
-
-    @Autowired
-    private UserService userService;
-
-    @Autowired
-    private MsgClient msgClient;
-
-    @Autowired
-    private WxRelationService wxRelationService;
-
-    @Autowired
-    private WxOfficeAccountClient wxOfficeAccountClient;
-
-    @Autowired
-    private RedisUtil redisUtil;
-
-    @Autowired
-    private TblTenantService tblTenantService;
-
-    @Autowired
-    private AdminUserService adminUserService;
-
-    @Autowired
-    private DevShareService devShareService;
-
-    @Autowired
-    private AlarmPlanService alarmPlanService;
-
-    @Autowired
-    private PersonInOutService personInOutService;
-
-    /**
-     * MQTT消息统一入口处理方法
-     * <p>
-     * 业务流程:
-     * 1. 从消息头提取MQTT主题和负载
-     * 2. 从主题路径中提取操作类型(action)
-     * 3. 根据操作类型路由到具体的处理方法
-     * 4. 异常情况统一捕获和日志记录
-     *
-     * @param message Spring Integration封装的MQTT消息对象
-     */
-    public void handleMessage(Message<?> message) {
-        try {
-            String topic = (String) message.getHeaders().get("mqtt_receivedTopic");
-            String payload = message.getPayload().toString();
-
-            if (topic == null) {
-                log.warn("Received message without topic header");
-                return;
-            }
-
-            String[] parts = topic.split("/");
-            String action = parts[parts.length - 1];
-//            String devId = parts[parts.length - 2];
-
-            // 根据主题路由到不同的处理方法
-            switch (action) {
-
-                // 接收LAS告警事件主题消息  if里面判断新逻辑, else 保持旧逻辑
-                case "alarm_event":
-                    subDasAlarmEvent(topic, payload);
-                    break;
-                case "connect":
-                    subMqttClientConnect(topic, payload);
-                    break;
-
-                // 接收dev 主题消息
-                case "login":
-                    subDevLogin(topic, payload);
-                    break;
-                case "last_will":
-                    subDevLastWill(topic, payload);
-                    break;
-                case "presence_change":
-                    subDevPresenceChange(topic, payload);
-                    break;
-                case "falling_event_change":
-                    subDevFallingEventChange(topic, payload);
-                    break;
-                case "report_device_param":
-                    subDevReportDeviceParam(topic, payload);
-                    break;
-
-                default:
-                    log.debug("Unhandled device topic: {}", topic);
-                    break;
-            }
-        } catch (Exception e) {
-            log.error("Error handling device message: {}", e.getMessage(), e);
-        }
-    }
-
-    private void subDevReportDeviceParam(String topic, String payload) {
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        String clientId = getDevId(topic);
-        DevInfo dev = devInfoService.queryByClientId(clientId);
-        if (dev == null) {
-            log.warn("Device not found for clientId: {}", clientId);
-            return;
-        }
-
-        JSONObject obj = JSONObject.parseObject(payload);
-        String deviceInfoStr = obj.getString("device_info");
-        JSONObject deviceInfo = JSONObject.parseObject(deviceInfoStr);
-
-        String hardware = deviceInfo.getString("firmware");
-        dev.setHardware(hardware);
-        int indicatorLed = obj.getIntValue("indicator_led");
-        dev.setStatusLight(indicatorLed == 0 ? 1 : 0);
-        int isCeiling = obj.getIntValue("isCeiling");
-        dev.setMountPlain(isCeiling == 1 ? DevInfo.Constants.MountPlain.CEILING : DevInfo.Constants.MountPlain.WALL);
-
-        devInfoService.updateById(dev);
-    }
-
-    private void subDevFallingEventChange(String topic, String payload) {
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        String clientId = getDevId(topic);
-        DevInfo dev = devInfoService.queryByClientId(clientId);
-        if (dev == null) {
-            log.warn("Device not found for clientId: {}", clientId);
-            return;
-        }
-
-        JSONObject obj = JSONObject.parseObject(payload);
-        int falling = obj.getIntValue("falling");
-        //0:no fall 1:detected 2: confirmed 3:calling
-
-        // 2 有跌倒事件发生
-        if (falling == 2) {
-
-            //存储跌倒时间到数据库
-            EventList eventListVO = new EventList();
-            eventListVO.setDevId(dev.getDevId());
-            eventListVO.setIsHandle(0);
-            eventListVO.setEventType(falling);
-            eventListVO.setTenantId(dev.getTenantId());
-            eventListService.save(eventListVO);
-
-            // 整理需要接收消息的人员列表
-            log.info("mqttutil--有跌倒事件");
-            List<SendMsgUserDto> sendList = new ArrayList<>();
-            String devName = dev.getDevName();
-            Long userId = dev.getUserId();
-
-            // 需要发送提示的 有 当前设备拥有者, 被分享者, 以及 对当前设备 具有管理权限的 web管理用户
-            //  小程序拥有者
-            if (userId != null) {
-                UserInfo userInfo = userService.queryById(userId);
-                SendMsgUserDto msgUserDto = new SendMsgUserDto();
-                msgUserDto.setUserId(userId);
-                msgUserDto.setPhone(userInfo.getPhone());
-                msgUserDto.setUnionId(userInfo.getUnionId());
-                msgUserDto.setMessageFlag(true);
-                msgUserDto.setServiceNumberFlag(true);
-                WxRelation wxRelation = wxRelationService.queryOneByUnionId(userInfo.getUnionId());
-                if (wxRelation != null) {
-                    msgUserDto.setFwhOpenId(wxRelation.getFwhOpenId());
-                }
-                sendList.add(msgUserDto);
-
-                // 对于 小程序拥有者,给出全局跌倒提醒,-- 被分享者是否需要
-                JSONObject wxMsg = new JSONObject();
-                wxMsg.put("clientId", clientId);
-                wxMsg.put("event", "fall_confirmed");
-                wxMsg.put("msgType", "fall");
-                wxMsg.put("devName", devName.toString());
-                wxMsg.put("eventListId", String.valueOf(eventListVO.getEventListId()));
-
-                log.info("发送微信跌倒主题消息:topic:{}, msg:{}", String.format(TopicConstants.TOPIC_MPS_NOTIC, RedisCacheConstant.WX_USER_PRE + userInfo.getUserId()), wxMsg.toString());
-                mqttClient.sendMessage(String.format(TopicConstants.TOPIC_MPS_NOTIC, RedisCacheConstant.WX_USER_PRE + userInfo.getUserId()), wxMsg.toString(), 2, false);
-
-                //  设备的被分享者 - 根据标志位筛选并添加到发送列表
-                List<DevShare> shares = devShareService.queryConfirmedByDevId(dev.getDevId());
-                if (!CollectionUtils.isEmpty(shares)) {
-                    for (DevShare share : shares) {
-                        // 发送微信跌倒主题消息
-                        log.info("发送微信跌倒主题消息:topic:{}, msg:{}", String.format(TopicConstants.TOPIC_MPS_NOTIC, RedisCacheConstant.WX_USER_PRE + share.getSharedUserId()), wxMsg.toString());
-                        mqttClient.sendMessage(String.format(TopicConstants.TOPIC_MPS_NOTIC, RedisCacheConstant.WX_USER_PRE + share.getSharedUserId()), wxMsg.toString(), 2, false);
-
-                        // 创建被分享者的消息用户DTO
-                        SendMsgUserDto msgUserShared = new SendMsgUserDto();
-                        msgUserShared.setUserId(share.getSharedUserId());
-                        msgUserShared.setPhone(share.getSharedPhone());
-
-                        // 获取完整的分享信息(包含标志位)
-                        DevShare devShare = devShareService.getById(share.getShareId());
-                        if (devShare != null) {
-                            // 将Integer类型的标志位转换为boolean类型:0-授权(true),1-拒绝(false)
-                            boolean messageFlag = devShare.getMessageFlag() != null && devShare.getMessageFlag() == 0;
-                            boolean serviceNumberFlag = devShare.getServiceNumberFlag() != null && devShare.getServiceNumberFlag() == 0;
-
-                            msgUserShared.setMessageFlag(messageFlag);
-                            msgUserShared.setServiceNumberFlag(serviceNumberFlag);
-
-                            // 根据标志位决定是否添加到发送列表
-                            // 只有当短信通知或服务号通知任一被授权时,才添加到发送列表
-                            if (messageFlag || serviceNumberFlag) {
-                                // 获取被分享者的微信关系信息
-                                UserInfo sharedUserInfo = userService.queryById(share.getSharedUserId());
-                                if (sharedUserInfo != null) {
-                                    msgUserShared.setUnionId(sharedUserInfo.getUnionId());
-                                    WxRelation sharedWxRelation = wxRelationService.queryOneByUnionId(sharedUserInfo.getUnionId());
-                                    if (sharedWxRelation != null) {
-                                        msgUserShared.setFwhOpenId(sharedWxRelation.getFwhOpenId());
-                                    }
-                                    sendList.add(msgUserShared);
-                                    log.info("被分享者已添加到发送列表: userId={}, messageFlag={}, serviceNumberFlag={}",
-                                            share.getSharedUserId(), messageFlag, serviceNumberFlag);
-                                }
-                            } else {
-                                log.info("被分享者拒绝所有通知: userId={}, messageFlag={}, serviceNumberFlag={}",
-                                        share.getSharedUserId(), messageFlag, serviceNumberFlag);
-                            }
-                        }
-                    }
-                }
-            }
-
-            // 针对跌倒事件 发送 网页 主题消息提示
-            String tenantName = "";
-            // 网页告警提示 需要当前设备绑定到租户,会发送到当前租户已经登录的管理员页面
-            if (dev.getTenantId() != null) {
-                TblTenant tblTenant = tblTenantService.getById(dev.getTenantId());
-                tenantName = tblTenant.getTenantName();
-
-                JSONObject webMsg = new JSONObject();
-                webMsg.put("clientId", clientId);
-                webMsg.put("event", "fall_confirmed");
-                webMsg.put("msgType", "fall");
-                webMsg.put("devName", devName.toString());
-                webMsg.put("tenantName", tenantName);
-                webMsg.put("eventListId", String.valueOf(eventListVO.getEventListId()));
-
-                // 查询当前需要发送的userId
-                List<AdminUserInfo> adminUserInfos = adminUserService.queryByTenantIdAndUserType(dev.getTenantId(), null);
-                if (!CollectionUtils.isEmpty(adminUserInfos)) {
-                    for (AdminUserInfo adminUserInfo : adminUserInfos) {
-
-                        // 判断当前用户是否登录网页
-                        if (redisUtil.sIsMember(RedisCacheConstant.MQTT_CLIENT_USERID, RedisCacheConstant.WEB_USER_PRE + adminUserInfo.getUserId())) {
-                            log.info("发送网页跌倒主题消息:topic:{}, msg:{}", String.format(TopicConstants.TOPIC_MPS_NOTIC, RedisCacheConstant.WEB_USER_PRE + adminUserInfo.getUserId()), webMsg.toString());
-                            mqttClient.sendMessage(String.format(TopicConstants.TOPIC_MPS_NOTIC, RedisCacheConstant.WEB_USER_PRE + adminUserInfo.getUserId()), webMsg.toString(), 2, false);
-                        }
-                    }
-                }
-            }
-            //3.调用 发送短信和微信公众号通知 功能
-            sendMesAndWxService(sendList, devName, clientId);
-        }
-    }
-
-    private void subDevPresenceChange(String topic, String payload) {
-
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        String clientId = getDevId(topic);
-        DevInfo dev = devInfoService.queryByClientId(clientId);
-        if (dev == null) {
-            log.warn("Device not found for clientId: {}", clientId);
-            return;
-        }
-        JSONObject obj = JSONObject.parseObject(payload);
-        if (obj.get("presence") == null) {
-            log.warn("presence is null");
-            return;
-        }
-        //0:no presense 1:presence
-        long presence = obj.getIntValue("presence");
-
-        devInfoService.update(
-                new LambdaUpdateWrapper<DevInfo>()
-                        .eq(DevInfo::getClientId, clientId)
-                        .set(DevInfo::getExistFlag, presence == 1 ? DevInfo.Constants.ExistFlag.EXIST : DevInfo.Constants.ExistFlag.NOT_EXIST)
-                        .set(DevInfo::getPresenceChangeTime, LocalDateTime.now())
-        );
-
-
-        PersonInOutInfo personInOut = personInOutService.queryOneByDevId(dev.getDevId(), DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now()));
-        if (presence == 1) {
-            if (personInOut == null) {
-                personInOut = new PersonInOutInfo();
-                personInOut.setTenantId(dev.getTenantId());
-                personInOut.setDevId(dev.getDevId());
-                personInOut.setCountDate(DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now()));
-                personInOut.setCount(1);
-                personInOutService.save(personInOut);
-            } else {
-                personInOut.setCount(personInOut.getCount() + 1);
-                personInOutService.updateById(personInOut);
-            }
-        }
-
-    }
-
-    private void subDevLastWill(String topic, String payload) {
-
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        String clientId = getDevId(topic);
-        DevInfo dev = devInfoService.queryByClientId(clientId);
-        if (dev == null) {
-            log.warn("Device not found for clientId: {}", clientId);
-            return;
-        }
-
-        JSONObject obj = JSONObject.parseObject(payload);
-        if (obj.get("cmd_offline") == null || obj.getIntValue("cmd_offline") != 1) {
-            log.warn("cmd_offline is null or not 1");
-            return;
-        }
-
-        devInfoService.update(
-                new LambdaUpdateWrapper<DevInfo>()
-                        .eq(DevInfo::getClientId, clientId)
-                        .set(DevInfo::getOnline, DevInfo.Constants.OnlineStatus.OFFLINE)
-                        .set(DevInfo::getOnoffTime, LocalDateTime.now())
-        );
-    }
-
-    private void subDevLogin(String topic, String payload) {
-
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        String clientId = getDevId(topic);
-        DevInfo dev = devInfoService.queryByClientId(clientId);
-        if (dev == null) {
-            log.warn("Device not found for clientId: {}", clientId);
-            return;
-        }
-
-        devInfoService.update(
-                new LambdaUpdateWrapper<DevInfo>()
-                        .eq(DevInfo::getClientId, clientId)
-                        .set(DevInfo::getOnline, DevInfo.Constants.OnlineStatus.ONLINE)
-                        .set(DevInfo::getExistFlag, DevInfo.Constants.ExistFlag.EXIST)
-                        .set(DevInfo::getOnoffTime, LocalDateTime.now())
-                        .set(DevInfo::getPresenceChangeTime, LocalDateTime.now())
-        );
-    }
-
-    /**
-     * 推送设备转移消息给转移对象
-     */
-    public void pushDeviceTransferMsg(DevInfo devInfo, UserInfo targetUser) {
-
-        // 根据 unionId 查询服务号关系
-        List<WxRelation> wxRelations = wxRelationService.queryByUnionId(targetUser.getUnionId());
-        String fwhOpenId = "";
-        if (wxRelations != null && !wxRelations.isEmpty()) {
-            fwhOpenId = wxRelations.get(0).getFwhOpenId();
-        }
-
-        // 日志打印
-        log.info("mqttutil--当前useropenid={}, fwhopenId={}", targetUser.getOpenid(), fwhOpenId);
-        log.info("发送微信公众号信息:devName={}, phoneNumber={}, fwhOpenId={}", devInfo.getDevName(), targetUser.getPhone(), fwhOpenId);
-
-        // 服务号推送消息
-        wxOfficeAccountClient.sendMsg(devInfo.getClientId(), devInfo.getDevName(), targetUser.getPhone(), fwhOpenId, "设备运行检测到设备转移,请前往小程序查看");
-
-        log.info("发送微信公众号信息完毕");
-    }
-
-    /**
-     * 发送短信和微信公众号通知
-     *
-     * @param sendList 需要发送通知的用户列表
-     * @param devName  设备名称
-     * @param devId    设备ID
-     */
-    private void sendMesAndWxService(List<SendMsgUserDto> sendList, String devName, String devId) {
-        if (CollectionUtils.isEmpty(sendList)) {
-            log.info("没有需要发送通知的用户");
-            return;
-        }
-
-        for (SendMsgUserDto sendDto : sendList) {
-            try {
-                log.info("mqttutil--开始处理用户通知: userId={}, messageFlag={}, serviceNumberFlag={}",
-                        sendDto.getUserId(), sendDto.isMessageFlag(), sendDto.isServiceNumberFlag());
-
-                // 根据短信标志位决定是否发送短信
-                if (sendDto.isMessageFlag()) {
-                    try {
-                        log.info("mqttutil--开始发送跌倒短信: phone={}, dev_name={}", sendDto.getPhone(), devName);
-                        msgClient.sendNotifyMsg(sendDto.getPhone(), devName);
-                        log.info("mqttUtil--短信发送完成");
-                    } catch (Exception e) {
-                        log.error("发送短信失败: userId={}, phone={}, error={}",
-                                sendDto.getUserId(), sendDto.getPhone(), e.getMessage(), e);
-                    }
-                } else {
-                    log.info("用户拒绝短信通知: userId={}", sendDto.getUserId());
-                }
-
-                // 根据服务号标志位决定是否发送微信公众号消息
-                if (sendDto.isServiceNumberFlag() && StringUtils.isNotBlank(sendDto.getFwhOpenId())) {
-                    try {
-                        log.info("发送微信公众号信息:devName={}, phoneNo={}, fwhOpenId={}",
-                                devName, sendDto.getPhone(), sendDto.getFwhOpenId());
-                        // 发送微信公众号消息
-                        wxOfficeAccountClient.sendMsg(devId, devName, sendDto.getPhone(),
-                                sendDto.getFwhOpenId(), "设备检测到跌倒,请前往小程序查看详细信息");
-                        log.info("微信公众号消息发送完成");
-                    } catch (Exception e) {
-                        log.error("发送微信公众号消息失败: userId={}, fwhOpenId={}, error={}",
-                                sendDto.getUserId(), sendDto.getFwhOpenId(), e.getMessage(), e);
-                    }
-                } else {
-                    log.info("用户拒绝服务号通知或未绑定微信: userId={}, serviceNumberFlag={}, fwhOpenId={}",
-                            sendDto.getUserId(), sendDto.isServiceNumberFlag(), sendDto.getFwhOpenId());
-                }
-
-            } catch (Exception e) {
-                log.error("处理用户通知异常: userId={}, error={}",
-                        sendDto.getUserId(), e.getMessage(), e);
-            }
-        }
-    }
-
-
-    public void subDasAlarmEvent(String topic, String payload) {
-
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        // 1.判断是否为新逻辑 从LAS获取
-
-        JSONObject obj = JSONObject.parseObject(payload);
-        String eventType = obj.getString("event_type");
-        // 1.1 判断 消息类型是否符合  起夜异常 or 异常滞留
-        if (AlarmEventType.isTargetEvent(eventType)) {
-            String clientId = obj.getString("dev_id");
-            String uuid = obj.getString("plan_uuid");
-
-            // 1.2 判断告警计划是否开启服务号推送
-            AlarmPlan alarmPlan = alarmPlanService.findByUuid(uuid);
-            if (alarmPlan.getLinkagePushWechatService() == 0) {
-                log.info("服务号通知发送失败,当前设备告警计划未开启服务号推送: clientId={}, uuid={}", clientId, uuid);
-                return;
-            }
-
-            // 1.3 查找设备信息,获取主绑人的userId
-            DevInfo dev = devInfoService.queryByClientId(clientId);
-
-            if (dev == null) {
-                log.info("服务号通知发送失败,当前设备不存在: clientId={}", clientId);
-                return;
-            }
-
-            Long userId = dev.getUserId();
-            String devName = dev.getDevName();
-            String devId = dev.getClientId();
-
-
-            // 1.4 如果userId为空,则没有绑定人
-            if (userId == null) {
-                log.info("服务号通知发送失败,设备未绑定用户: clientId={}", clientId);
-                return;
-            }
-
-            // 1.5 查询主绑人信息
-            UserInfo user = userService.queryById(userId);
-
-            // 1.6 获取用户微信服务号OpenId
-            WxRelation wxRelations = wxRelationService.queryOneByUnionId(user.getUnionId());
-
-            if (wxRelations == null) {
-                log.info("服务号通知发送失败,用户未绑定微信服务号: userId={}", userId);
-                return;
-            }
-            String fwhOpenId = wxRelations.getFwhOpenId();
-
-            log.info("mqttutil--当前useropenid=" + user.getOpenid() + ", fwhopenId=" + fwhOpenId);
-            log.info("发送微信公众号信息:devName=" + devName + ", phoneNo=" + user.getPhone() + "fwhOpenId=" + fwhOpenId);
-
-            // 1.7 发送微信公告号消息
-            wxOfficeAccountClient.sendMsg(devId, devName, user.getPhone(), fwhOpenId, "设备运行检测到告警异常,请前往小程序查看");
-            log.info("发送微信公众号消息发完了");
-            return;
-        }
-
-    }
-
-    public void subMqttClientConnect(String topic, String payload) {
-
-        log.info("Received device message: topic={}, payload={}", topic, payload);
-        if (StringUtils.isEmpty(payload)) {
-            return;
-        }
-
-        JSONObject obj = JSONObject.parseObject(payload);
-        String userId = obj.getString("userId");
-        String deviceType = obj.getString("deviceType");
-        String msgType = obj.getString("msgType");
-
-        if (StringUtils.isBlank(userId) || StringUtils.isBlank(deviceType) || StringUtils.isBlank(msgType)) {
-            log.error("userId or deviceType or msgType is null");
-            return;
-        }
-
-        if (msgType.equals("connect")) {
-            redisUtil.sAdd(RedisCacheConstant.MQTT_CLIENT_USERID, deviceType + "_" + userId);
-        } else if (msgType.equals("disconnect")) {
-            redisUtil.sRemove(RedisCacheConstant.MQTT_CLIENT_USERID, deviceType + "_" + userId);
-        }
-    }
-
-    private String getDevId(String topic) {
-        String[] split = topic.split("/");
-        return split[split.length - 2];
-    }
-}
-
-

+ 3 - 3
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/handlers/LastWillHandler.java

@@ -17,8 +17,8 @@ public class LastWillHandler extends BaseMqttHandler implements MqttMessageHandl
 
     private final DevOnOffInfoService devOnOffInfoService;
 
-    private  LastWillHandler(DevInfoService devInfoService,
-                              DevOnOffInfoService devOnOffInfoService) {
+    private LastWillHandler(DevInfoService devInfoService,
+                            DevOnOffInfoService devOnOffInfoService) {
         super(devInfoService);
         this.devOnOffInfoService = devOnOffInfoService;
     }
@@ -53,7 +53,7 @@ public class LastWillHandler extends BaseMqttHandler implements MqttMessageHandl
         );
 
         // 设备离线 添加设备离线记录
-        DevOnOffInfo devOnOffInfo= new DevOnOffInfo();
+        DevOnOffInfo devOnOffInfo = new DevOnOffInfo();
         devOnOffInfo.setTenantId(dev.getTenantId());
         devOnOffInfo.setDevId(dev.getDevId());
         devOnOffInfo.setType("off");

+ 1 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/handlers/LoginHandler.java

@@ -22,7 +22,6 @@ public class LoginHandler extends BaseMqttHandler implements MqttMessageHandler
         this.devOnOffInfoService = devOnOffInfoService;
     }
 
-
     @Override
     public boolean supports(String action) {
         return "login".equals(action);
@@ -47,7 +46,7 @@ public class LoginHandler extends BaseMqttHandler implements MqttMessageHandler
                         .set(DevInfo::getPresenceChangeTime, LocalDateTime.now())
         );
         // 设备上线 添加设备上线记录
-        DevOnOffInfo devOnOffInfo= new DevOnOffInfo();
+        DevOnOffInfo devOnOffInfo = new DevOnOffInfo();
         devOnOffInfo.setTenantId(dev.getTenantId());
         devOnOffInfo.setDevId(dev.getDevId());
         devOnOffInfo.setType("on");

+ 1 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/handlers/PresenceChangeHandler.java

@@ -18,6 +18,7 @@ import java.time.format.DateTimeFormatter;
 public class PresenceChangeHandler extends BaseMqttHandler implements MqttMessageHandler {
 
     private final PersonInOutService personInOutService;
+
     private PresenceChangeHandler(DevInfoService devInfoService,
                                   PersonInOutService personInOutService) {
         super(devInfoService);

+ 0 - 5
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/order/OrderGatewayImpl.java

@@ -1,5 +0,0 @@
-package com.hfln.portal.infrastructure.order;
-
-public class OrderGatewayImpl{
-
-}

+ 3 - 11
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/oss/OssClient.java

@@ -41,7 +41,6 @@ public class OssClient {
 
     private OSS oss;
 
-
     @PostConstruct
     private void init() {
 
@@ -60,14 +59,13 @@ public class OssClient {
                 .build();
     }
 
-
     public void upload(InputStream inputStream, String bucketName, String objectName) {
 
         log.info("oss上传,bucketName:{}, objectName:{}", bucketName, objectName);
         try {
             oss.putObject(bucketName, objectName, inputStream);
         } catch (Exception e) {
-            log.error("oss上传失败," , e);
+            log.error("oss上传失败,", e);
             throw e;
         }
     }
@@ -79,7 +77,7 @@ public class OssClient {
     }
 
     public String getDownloadUrl(String ossUrl) {
-        return getDownloadUrl(ossUrl.substring(0, ossUrl.indexOf("/")), ossUrl.substring(ossUrl.indexOf("/")+1));
+        return getDownloadUrl(ossUrl.substring(0, ossUrl.indexOf("/")), ossUrl.substring(ossUrl.indexOf("/") + 1));
     }
 
     public String getDownloadUrl(String bucketName, String objectName) {
@@ -91,18 +89,12 @@ public class OssClient {
     public void delete(String ossUrl) {
         log.info("oss删除, ossUrl:{}", ossUrl);
         try {
-            oss.deleteObject(ossUrl.substring(0, ossUrl.indexOf("/")), ossUrl.substring(ossUrl.indexOf("/"))+1);
+            oss.deleteObject(ossUrl.substring(0, ossUrl.indexOf("/")), ossUrl.substring(ossUrl.indexOf("/")) + 1);
         } catch (Exception e) {
             log.error("文件删除失败", e);
             throw e;
         }
     }
 
-    public static void main(String[] args) {
-        String ossUrl = "hfln/hxt/20200202/jljl.jpg";
-
-        System.out.println(ossUrl.substring(0, ossUrl.indexOf("/")));
-        System.out.println(ossUrl.substring(ossUrl.indexOf("/")));
-    }
 }
 

+ 0 - 5
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/oss/OssUtils.java

@@ -14,7 +14,6 @@ public class OssUtils {
 
         StringBuilder sb = new StringBuilder();
         sb
-//                .append("/")
                 .append(ossBusiType)
                 .append("/")
                 .append(DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now()))
@@ -32,8 +31,4 @@ public class OssUtils {
         return fileName.substring(fileName.lastIndexOf("."));
     }
 
-    public static void main(String[] args) {
-
-        System.out.println(getFileSuffix("abc.jpg"));
-    }
 }

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/AlarmPlanService.java

@@ -11,5 +11,5 @@ public interface AlarmPlanService extends IService<AlarmPlan> {
 
     void delById(Integer alarmPlanId);
 
-    AlarmPlan findByUuid( String uuid);
+    AlarmPlan findByUuid(String uuid);
 }

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/AlarmPlanTplService.java

@@ -10,7 +10,7 @@ import java.util.List;
 
 public interface AlarmPlanTplService extends IService<AlarmPlanTpl> {
 
-    Page <AlarmPlanTpl> queryPlan(WebAlarmPlanTplQueryReq req);
+    Page<AlarmPlanTpl> queryPlan(WebAlarmPlanTplQueryReq req);
 
     List<AlarmPlanTpl> queryPlan(WapAlarmPlanTplQueryReq req);
 

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DailyActiveUsersService.java

@@ -5,5 +5,5 @@ import com.hfln.portal.infrastructure.po.DailyActiveUsers;
 
 public interface DailyActiveUsersService extends IService<DailyActiveUsers> {
 
-    void insertDailyActiveUsers (Long userId);
+    void insertDailyActiveUsers(Long userId);
 }

+ 1 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevGroupService.java

@@ -7,7 +7,6 @@ import java.util.List;
 
 public interface DevGroupService extends IService<DevGroup> {
 
-
-    List<DevGroup> queryGroupByUserId(Long userId,List<String> groupUUIDs);
+    List<DevGroup> queryGroupByUserId(Long userId, List<String> groupUUIDs);
 
 }

+ 6 - 6
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/DevInfoService.java

@@ -13,12 +13,12 @@ import java.util.Map;
 
 public interface DevInfoService extends IService<DevInfo> {
 
-    List<DevInfo> queryDeviceList(Long userId, String keyWord,Integer status,List<Long> sharedDevIds);
+    List<DevInfo> queryDeviceList(Long userId, String keyWord, Integer status, List<Long> sharedDevIds);
 
 
-    DevInfo queryDevices(Long userId,String deviceId);
+    DevInfo queryDevices(Long userId, String deviceId);
 
-    List<DevInfo> queryByIds (Collection<String> clientIds);
+    List<DevInfo> queryByIds(Collection<String> clientIds);
 
     Boolean updateDevice(Object identifier, DeviceBandingParams request);
 
@@ -26,15 +26,15 @@ public interface DevInfoService extends IService<DevInfo> {
 
     List<String> queryClientIdListByClientIds(List<String> devIds);
 
-    Page<DevInfo> queryDevList(DeviceListQueryReq queryReq ,Long tenantId);
+    Page<DevInfo> queryDevList(DeviceListQueryReq queryReq, Long tenantId);
 
     DevInfo queryOneByClientId(String clientId);
 
     List<Long> queryByTenantId(Long tenantId);
 
-    List<Long> queryByUserId (Long userId);
+    List<Long> queryByUserId(Long userId);
 
-    List<String> devIdsChangeClientIds (List<Long> devIds);
+    List<String> devIdsChangeClientIds(List<Long> devIds);
 
     void resetDevInfo(Long devId);
 

+ 2 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/EventsService.java

@@ -20,11 +20,12 @@ public interface EventsService extends IService<Events> {
 
     /**
      * 批量填充设备名称
+     *
      * @param dtoList
      */
     void fillDevNames(List<EventsDTO> dtoList);
 
-    long  countUserDevicesEvents(List<String> clientIds);
+    long countUserDevicesEvents(List<String> clientIds);
 
     List<ScreenAlarmDTO.AlarmMonthStatInfo> queryEventsInSixMonths(Long tenantId);
 

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/GroupShareService.java

@@ -9,5 +9,4 @@ public interface GroupShareService extends IService<GroupShare> {
 
   List<String> queryGroupUUidByUserId(Long userId);
 
-
 }

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/OssFileService.java

@@ -10,7 +10,6 @@ public interface OssFileService extends IService<TblOssFile> {
 
     List<TblOssFile> queryFile(String busiType, String busiKey);
 
-
     TblOssFile queryOneFile(String busiType, String busiKey, String fileName);
 
 }

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblRoleMenuMapService.java

@@ -9,5 +9,5 @@ public interface TblRoleMenuMapService extends IService<TblRoleMenuMap> {
 
     List<TblRoleMenuMap> findByRoleId(Long roleId);
 
-  List<Long> queryMenuIdByRoleId(Long roleId);
+    List<Long> queryMenuIdByRoleId(Long roleId);
 }

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblRoleService.java

@@ -7,7 +7,6 @@ import java.util.List;
 
 public interface TblRoleService extends IService<TblRole> {
 
-
     List<TblRole> findAvailableByIds(List<Long> roleIds);
 
     TblRole findAvailableByCode(String roleCode);

+ 3 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblSystemMenuService.java

@@ -12,8 +12,9 @@ public interface TblSystemMenuService extends IService<TblSystemMenu> {
 
     /**
      * 校验菜单名称是否重复
-     * @param menuName 菜单名称
-     * @param parentId 父级ID
+     *
+     * @param menuName      菜单名称
+     * @param parentId      父级ID
      * @param excludeMenuId 排除的菜单ID(用于更新时排除当前菜单)
      * @return true-重复,false-不重复
      */

+ 1 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblUserRoleService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.hfln.portal.infrastructure.po.TblUserRole;
 
 public interface TblUserRoleService extends IService<TblUserRole> {
+
     TblUserRole getByUserId(Long userId);
 
     int delByUserId(Long userId);

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/UserRoleService.java

@@ -7,6 +7,5 @@ import java.util.List;
 
 public interface UserRoleService extends IService<TblUserRole> {
 
-
     List<TblUserRole> findByUserId(long loginId);
 }

+ 2 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/UserService.java

@@ -22,10 +22,12 @@ public interface UserService extends IService<UserInfo> {
 
     /**
      * 这里需要数据库保证 同一个可用电话号码的唯一性
+     *
      * @param phone
      * @return
      */
     UserInfo queryByPhone(String phone);
+
     UserInfo queryByOpenId(String openId);
 
     UserInfo queryById(Long userId);

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AdminUserServiceImpl.java

@@ -30,7 +30,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserInfoMapper, Admin
         queryWrapper.eq(AdminUserInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
         AdminUserInfo userInfo = this.baseMapper.selectOne(queryWrapper);
         if (Objects.nonNull(userInfo)) {
-            if (PasswordUtil.matches(password, userInfo.getPassword())){
+            if (PasswordUtil.matches(password, userInfo.getPassword())) {
                 return userInfo;
             }
         }

+ 1 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AlarmPlanServiceImpl.java

@@ -16,7 +16,6 @@ public class AlarmPlanServiceImpl extends ServiceImpl<AlarmPlanMapper, AlarmPlan
     public List<AlarmPlan> queryByClientId(String clientId) {
         LambdaQueryWrapper<AlarmPlan> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(AlarmPlan::getClientId, clientId);
-//        wrapper.eq(AlarmPlan::getEnable, 1);
         return this.baseMapper.selectList(wrapper);
     }
 
@@ -26,7 +25,7 @@ public class AlarmPlanServiceImpl extends ServiceImpl<AlarmPlanMapper, AlarmPlan
     }
 
     @Override
-    public AlarmPlan findByUuid( String uuid){
+    public AlarmPlan findByUuid(String uuid) {
         LambdaQueryWrapper<AlarmPlan> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(AlarmPlan::getUuid, uuid);
         return this.baseMapper.selectOne(wrapper);

+ 4 - 4
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/AlarmPlanTplServiceImpl.java

@@ -24,7 +24,7 @@ public class AlarmPlanTplServiceImpl extends ServiceImpl<AlarmPlanTplMapper, Ala
         if (req.getEventVal() != null) {
             wrapper.eq(AlarmPlanTpl::getEventVal, req.getEventVal());
         }
-        if (req.getName() != null){
+        if (req.getName() != null) {
             wrapper.like(AlarmPlanTpl::getName, req.getName());
         }
 
@@ -32,17 +32,17 @@ public class AlarmPlanTplServiceImpl extends ServiceImpl<AlarmPlanTplMapper, Ala
         wrapper.orderByDesc(AlarmPlanTpl::getCreateTime);
 
         Page<AlarmPlanTpl> page = new Page<>(req.getPageNo(), req.getPageSize());
-        return this.baseMapper.selectPage(page,wrapper);
+        return this.baseMapper.selectPage(page, wrapper);
     }
 
     @Override
     public List<AlarmPlanTpl> queryPlan(WapAlarmPlanTplQueryReq req) {
         LambdaQueryWrapper<AlarmPlanTpl> wrapper = new LambdaQueryWrapper<>();
-            wrapper.eq(AlarmPlanTpl::getEnable, 1);
+        wrapper.eq(AlarmPlanTpl::getEnable, 1);
         if (req.getEventVal() != null) {
             wrapper.eq(AlarmPlanTpl::getEventVal, req.getEventVal());
         }
-        if (req.getName() != null){
+        if (req.getName() != null) {
             wrapper.like(AlarmPlanTpl::getName, req.getName());
         }
         return this.baseMapper.selectList(wrapper);

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DailyActiveUsersServiceImpl.java

@@ -17,7 +17,6 @@ public class DailyActiveUsersServiceImpl extends ServiceImpl<DailyActiveUsersMap
 
 
     /**
-     *
      * 小程序用户登录首页,便往日活表插一条对应记录
      */
     @Override

+ 1 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevGroupServiceImpl.java

@@ -16,10 +16,9 @@ import java.util.Objects;
 @Service
 public class DevGroupServiceImpl extends ServiceImpl<DevGroupMapper, DevGroup> implements DevGroupService {
 
-
     @Override
     public List<DevGroup> queryGroupByUserId(Long userId, List<String> groupUUIDs) {
-        if (Objects.isNull(userId)){
+        if (Objects.isNull(userId)) {
             return Collections.emptyList();
         }
 

+ 9 - 16
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevInfoServiceImpl.java

@@ -31,7 +31,6 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
     @Autowired
     private GroupDevMapMapper groupDevMapMapper;
 
-
     @Override
     public List<DevInfo> queryDeviceList(Long userId, String keyWord, Integer status, List<Long> sharedDevIds) {
         // 参数校验
@@ -81,7 +80,6 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
         return this.baseMapper.selectOne(wrapper);
     }
 
-
     @Override
     public List<DevInfo> queryByIds(Collection<String> clientIds) {
         if (CollectionUtils.isEmpty(clientIds)) {
@@ -104,8 +102,8 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
 
         //获取数据库中已有的设备信息
         DevInfo devInfo = this.getOne(
-                Wrappers.<DevInfo> lambdaQuery()
-                .eq(DevInfo::getClientId, request.getClientId()));
+                Wrappers.<DevInfo>lambdaQuery()
+                        .eq(DevInfo::getClientId, request.getClientId()));
 
         // 构建更新条件
         UpdateWrapperBuilder<DevInfo> builder = UpdateWrapperBuilder.<DevInfo>create()
@@ -132,8 +130,8 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
                 // 无条件更新的字段
                 .set(DevInfo::getUpdateTime, LocalDateTime.now())
                 .set(DevInfo::getOnline, 1);
-                //激活时间的插入
-        if (devInfo.getActiveTime() == null){
+        //激活时间的插入
+        if (devInfo.getActiveTime() == null) {
             builder.set(DevInfo::getActiveTime, LocalDateTime.now());
         }
 
@@ -187,16 +185,13 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
         if (StringUtils.hasText(queryReq.getClientId())) {
             queryWrapper.like(DevInfo::getClientId, queryReq.getClientId());
         }
-        if (StringUtils.hasText(queryReq.getDevName())){
+        if (StringUtils.hasText(queryReq.getDevName())) {
             queryWrapper.like(DevInfo::getDevName, queryReq.getDevName());
         }
-        if (queryReq.getOnline() != null){
+        if (queryReq.getOnline() != null) {
             queryWrapper.eq(DevInfo::getOnline, queryReq.getOnline());
         }
-//        if (queryReq.getTenantId() != null){
-//            queryWrapper.eq(DevInfo::getTenantId, queryReq.getTenantId());
-//        }
-        if (tenantId !=  null){
+        if (tenantId != null) {
             queryWrapper.eq(DevInfo::getTenantId, tenantId);
         }
 
@@ -221,19 +216,17 @@ public class DevInfoServiceImpl extends ServiceImpl<DevInfoMapper, DevInfo> impl
     }
 
     @Override
-    public List<Long> queryByTenantId(Long tenantId){
+    public List<Long> queryByTenantId(Long tenantId) {
         LambdaQueryWrapper<DevInfo> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(DevInfo::getTenantId, tenantId)
                 .select(DevInfo::getDevId);
 
         List<DevInfo> list = this.list(wrapper);
-
         return list.stream().map(DevInfo::getDevId).collect(Collectors.toList());
-
     }
 
     @Override
-    public List<Long> queryByUserId(Long userId){
+    public List<Long> queryByUserId(Long userId) {
         LambdaQueryWrapper<DevInfo> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(DevInfo::getUserId, userId)
                 .select(DevInfo::getDevId);

+ 3 - 3
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevRoomServiceImpl.java

@@ -19,9 +19,9 @@ public class DevRoomServiceImpl extends ServiceImpl<DevRoomMapper, DevRoom> impl
 
         return this.baseMapper.selectOne(
                 new LambdaQueryWrapper<DevRoom>()
-                .select()
-                .eq(DevRoom::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED)
-                .eq(DevRoom::getDevId, devId)
+                        .select()
+                        .eq(DevRoom::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED)
+                        .eq(DevRoom::getDevId, devId)
         );
     }
 

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/DevShareServiceImpl.java

@@ -108,7 +108,7 @@ public class DevShareServiceImpl extends ServiceImpl<DevShareMapper, DevShare> i
     public List<DevShare> queryByDevId(Long devId) {
         LambdaQueryWrapper<DevShare> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(DevShare::getDevId, devId);
-        wrapper.in(DevShare::getState, 0 , 1);
+        wrapper.in(DevShare::getState, 0, 1);
         wrapper.eq(DevShare::getIsDeleted, 0);
         return this.baseMapper.selectList(wrapper);
     }

+ 2 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/EventListServiceImpl.java

@@ -29,7 +29,7 @@ public class EventListServiceImpl extends ServiceImpl<EventListMapper, EventList
 
         // 2. 构建查询条件
         LambdaQueryWrapper<EventList> queryWrapper = new LambdaQueryWrapper<>();
-        if (devIdList != null && !devIdList.isEmpty()){
+        if (devIdList != null && !devIdList.isEmpty()) {
             queryWrapper.in(EventList::getDevId, devIdList);
         }
         // 如果devIdList为空,则不添加设备ID查询条件,查询所有事件
@@ -60,7 +60,7 @@ public class EventListServiceImpl extends ServiceImpl<EventListMapper, EventList
         // 执行查询
         List<EventList> list = this.list(queryWrapper);
 
-        if (list == null || list.isEmpty()){
+        if (list == null || list.isEmpty()) {
             return Collections.emptyList();
         }
 

+ 4 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/EventsServiceImpl.java

@@ -30,8 +30,10 @@ public class EventsServiceImpl extends ServiceImpl<EventsMapper, Events> impleme
 
     @Autowired
     private DevInfoService devInfoService;
+
     /**
      * 小程序查询设备事件列表
+     *
      * @param params
      * @param clientIds
      * @return
@@ -42,7 +44,7 @@ public class EventsServiceImpl extends ServiceImpl<EventsMapper, Events> impleme
 
         // 1. 构建查询条件
         LambdaQueryWrapper<Events> queryWrapper = new LambdaQueryWrapper<>();
-        if (clientIds != null && !clientIds.isEmpty()){
+        if (clientIds != null && !clientIds.isEmpty()) {
             queryWrapper.in(Events::getClientId, clientIds);
         }
 
@@ -72,6 +74,7 @@ public class EventsServiceImpl extends ServiceImpl<EventsMapper, Events> impleme
 
     /**
      * web端查询设备事件列表
+     *
      * @param params
      * @param userType
      * @param tenantId

+ 1 - 84
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/OssFileServiceImpl.java

@@ -6,7 +6,6 @@ import com.hfln.portal.infrastructure.mapper.TblOssFileMapper;
 import com.hfln.portal.infrastructure.po.BasePO;
 import com.hfln.portal.infrastructure.po.TblOssFile;
 import com.hfln.portal.infrastructure.service.OssFileService;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -15,17 +14,6 @@ import java.util.Objects;
 @Service
 public class OssFileServiceImpl extends ServiceImpl<TblOssFileMapper, TblOssFile> implements OssFileService {
 
-    @Value("${oss.endpoint}")
-    private  String ENDPOINT;
-
-    @Value("${oss.accessKey.id}")
-    private String ACCESS_KEY_ID;
-
-    @Value("${oss.accessKey.secret}")
-    private String ACCESS_KEY_SECRET;
-
-    public String BUCKET_NAME = "hflnxx";
-
     @Override
     public List<TblOssFile> queryFile(String busiType, String busiKey) {
 
@@ -46,80 +34,9 @@ public class OssFileServiceImpl extends ServiceImpl<TblOssFileMapper, TblOssFile
         if (Objects.nonNull(busiKey)) {
             queryWrapper.eq(TblOssFile::getBusiKey, busiKey);
         }
-        if (Objects.nonNull(fileName)){
+        if (Objects.nonNull(fileName)) {
             queryWrapper.eq(TblOssFile::getFileName, fileName);
         }
         return this.baseMapper.selectOne(queryWrapper);
     }
-
-//    /**
-//     * 上传文件到 OSS 并设置为 inline 显示
-//     * @return
-//     */
-//    @Override
-//    public String uploadFile(MultipartFile file, String objectName) throws IOException {
-//        // 1. 获取文件名后缀
-//        String originalFilename = file.getOriginalFilename();
-//        String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
-//        // 2. 通过后缀获取 contentType
-//        String contentType = getContentType(suffix);
-//
-//
-//        OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
-//
-//        try (InputStream inputStream = file.getInputStream()) {
-//            ObjectMetadata metadata = new ObjectMetadata();
-//
-//            // 设置内容类型
-//            metadata.setContentType(contentType);
-//
-//            // 设置浏览器打开方式为 inline(非 attachment)
-//            metadata.setContentDisposition("inline");
-//
-//            // 上传文件
-//            ossClient.putObject(BUCKET_NAME, objectName, inputStream, metadata);
-//        } finally {
-//            ossClient.shutdown();
-//        }
-//
-//        // 返回文件的公网地址
-//        return "http://" +"static.radar-power.asia/" + objectName;
-//    }
-//
-//    public static String getContentType(String filenameExtension) {
-//        if (filenameExtension.equalsIgnoreCase(".bmp")) {
-//            return "image/bmp";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".gif")) {
-//            return "image/gif";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".jpeg") ||
-//                filenameExtension.equalsIgnoreCase(".jpg")) {
-//            return "image/jpeg";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".png")) {
-//            return "image/png";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".html")) {
-//            return "text/html";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".txt")) {
-//            return "text/plain";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".vsd")) {
-//            return "application/vnd.visio";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".pptx") ||
-//                filenameExtension.equalsIgnoreCase(".ppt")) {
-//            return "application/vnd.ms-powerpoint";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".docx") ||
-//                filenameExtension.equalsIgnoreCase(".doc")) {
-//            return "application/msword";
-//        }
-//        if (filenameExtension.equalsIgnoreCase(".xml")) {
-//            return "text/xml";
-//        }
-//        return "application/octet-stream";  // 默认类型(通用二进制)
-//    }
 }

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblDicItemServiceImpl.java

@@ -16,7 +16,6 @@ import java.util.List;
 @Slf4j
 public class TblDicItemServiceImpl extends ServiceImpl<TblDicItemMapper, TblDicItem> implements TblDicItemService {
 
-
     @Override
     public List<TblDicItem> queryByDicType(String dicType) {
 

+ 10 - 10
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblRoleMenuMapServiceImpl.java

@@ -30,15 +30,15 @@ public class TblRoleMenuMapServiceImpl extends ServiceImpl<TblRoleMenuMapMapper,
     }
 
     @Override
-        public List<Long> queryMenuIdByRoleId(Long roleId) {
-            List<TblRoleMenuMap> list = tblRoleMenuMapMapper.selectList(
-                    new LambdaQueryWrapper<TblRoleMenuMap>()
-                            .eq(TblRoleMenuMap::getRoleId, roleId)
-                            .eq(TblRoleMenuMap::getIsDeleted, 0)
-            );
-            return list.stream()
-                    .map(TblRoleMenuMap::getMenuId)
-                    .collect(Collectors.toList());
-        }
+    public List<Long> queryMenuIdByRoleId(Long roleId) {
+        List<TblRoleMenuMap> list = tblRoleMenuMapMapper.selectList(
+                new LambdaQueryWrapper<TblRoleMenuMap>()
+                        .eq(TblRoleMenuMap::getRoleId, roleId)
+                        .eq(TblRoleMenuMap::getIsDeleted, 0)
+        );
+        return list.stream()
+                .map(TblRoleMenuMap::getMenuId)
+                .collect(Collectors.toList());
     }
+}
 

+ 1 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblRoleServiceImpl.java

@@ -34,7 +34,7 @@ public class TblRoleServiceImpl extends ServiceImpl<TblRoleMapper, TblRole> impl
     }
 
     @Override
-    public TblRole queryByRoleCode(String roleCode){
+    public TblRole queryByRoleCode(String roleCode) {
         LambdaQueryWrapper<TblRole> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(TblRole::getRoleCode, roleCode);
         queryWrapper.eq(TblRole::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);

+ 3 - 3
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblSystemMenuServiceImpl.java

@@ -25,11 +25,11 @@ public class TblSystemMenuServiceImpl extends ServiceImpl<TblSystemMenuMapper, T
     }
 
     @Override
-    public boolean validateMenuName(String menuName, Long parentId, Long excludeMenuId){
+    public boolean validateMenuName(String menuName, Long parentId, Long excludeMenuId) {
         LambdaQueryWrapper<TblSystemMenu> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(TblSystemMenu::getMenuName, menuName)
-                    .eq(TblSystemMenu::getParentId, parentId)
-                    .eq(TblSystemMenu::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
+                .eq(TblSystemMenu::getParentId, parentId)
+                .eq(TblSystemMenu::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
 
         //如果是更新操作,排除当前菜单
         if (excludeMenuId != null) {

+ 2 - 5
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblTenantServiceImpl.java

@@ -39,13 +39,10 @@ public class TblTenantServiceImpl extends ServiceImpl<TblTenantMapper, TblTenant
         if (StringUtils.hasText(queryReq.getTenantCode())) {
             queryWrapper.like(TblTenant::getTenantCode, queryReq.getTenantCode());
         }
-        if (StringUtils.hasText(queryReq.getTenantName())){
+        if (StringUtils.hasText(queryReq.getTenantName())) {
             queryWrapper.like(TblTenant::getTenantName, queryReq.getTenantName());
         }
-//        if (queryReq.getParentId() != null){
-//            queryWrapper.eq(TblTenant::getParentId, queryReq.getParentId());
-//        }
-        if (StringUtils.hasText(queryReq.getTenantType())){
+        if (StringUtils.hasText(queryReq.getTenantType())) {
             queryWrapper.eq(TblTenant::getTenantType, queryReq.getTenantType());
         }
 

+ 0 - 1
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/UserRoleServiceImpl.java

@@ -15,7 +15,6 @@ import java.util.List;
 @Slf4j
 public class UserRoleServiceImpl extends ServiceImpl<TblUserRoleMapper, TblUserRole> implements UserRoleService {
 
-
     @Override
     public List<TblUserRole> findByUserId(long loginId) {
 

+ 1 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/UserServiceImpl.java

@@ -29,14 +29,13 @@ public class UserServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> imple
         return this.count(queryWrapper) > 0;
     }
 
-
     public UserInfo checkUserByPassword(String phone, String password) {
         LambdaQueryWrapper<UserInfo> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(UserInfo::getPhone, phone);
         queryWrapper.eq(UserInfo::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
         UserInfo userInfo = this.baseMapper.selectOne(queryWrapper);
         if (Objects.nonNull(userInfo)) {
-            if (PasswordUtil.matches(password, userInfo.getPassword())){
+            if (PasswordUtil.matches(password, userInfo.getPassword())) {
                 return userInfo;
             }
         }

+ 0 - 1
portal-service-server/src/main/java/com/hfln/portal/server/Application.java

@@ -8,7 +8,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 
 /**
  * Spring Boot Starter
- *
  */
 @EnableDiscoveryClient
 @MapperScan("com.hfln.portal.infrastructure.mapper")