Переглянути джерело

refactor(dev):重构设备信息重置逻辑并优化群组删除流程

- 在DevInfoMapper中增加dev_name、age和guardianship_type字段的重置- 修改设备检测计数逻辑,使用presence_change_time替代onoff_time- 新增DELETE_GROUP_FAIL错误枚举
- 群组删除操作改为直接调用removeById方法
- 移除群组和设备映射中的isDeleted字段操作
- 优化问卷分页查询结果转换逻辑
- 微信控制器serverCheck接口改为POST请求方式
hxd 3 тижнів тому
батько
коміт
454593b605

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

@@ -7,10 +7,7 @@ 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.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -51,7 +48,7 @@ public class WechatController {
         return ApiResult.success();
     }
 
-    @GetMapping("/serverCheck")
+    @PostMapping("/serverCheck")
     @Operation(summary = "公众号发信息接口")
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
         String signature = request.getParameter("signature");

+ 1 - 0
portal-service-domain/src/main/java/com/hfln/portal/domain/exception/ErrorEnum.java

@@ -82,6 +82,7 @@ public enum ErrorEnum implements ErrorEnumInterface {
     SHARE_IS_HANDLED("70006", "分享已处理!"),
     DEVICE_ALREADY_IN_GROUP("70007", "设备已绑定群组,请勿重复添加"),
     GROUP_NAME_IS_EXIST("70008", "群组名称已存在!"),
+    DELETE_GROUP_FAIL("70009", "删除群组失败!"),
 
 
     /**

+ 3 - 6
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/GroupGatewayImpl.java

@@ -70,7 +70,6 @@ public class GroupGatewayImpl implements GroupGateway {
         devGroup.setGroupName(request.getGroupName());
         devGroup.setUserId(request.getUserId());
         devGroup.setGroupUuid(UUID.randomUUID().toString().replace("-", ""));
-        devGroup.setIsDeleted(0);
 
         // TODO mqtt消息 主题 /mps/add_group
 
@@ -97,11 +96,10 @@ public class GroupGatewayImpl implements GroupGateway {
 
         try {
             //2.删除群组信息
-            devGroup.setIsDeleted(1);
-            boolean updateGroupResult = devGroupService.updateById(devGroup);
+            boolean updateGroupResult = devGroupService.removeById(groupId);
             if (!updateGroupResult) {
-                log.error("删除群组失败, groupID: {}", groupId);
-                throw new BizException(ErrorEnum.ERROR_BIZ_FAIL.getErrorCode(), "删除群组失败");
+                log.info("删除群组失败, groupID: {}", groupId);
+                throw new BizException(ErrorEnum.DELETE_GROUP_FAIL.getErrorCode(),ErrorEnum.DELETE_GROUP_FAIL.getErrorMessage());
             }
 
             //3.删除群组设备映射关系
@@ -336,7 +334,6 @@ public class GroupGatewayImpl implements GroupGateway {
         newMap.setGroupUuid(devGroup.getGroupUuid());
         newMap.setDevId(params.getDevId());
         newMap.setClientId(devInfo.getClientId());
-        newMap.setIsDeleted(0);
 
         return groupDevMapMapper.insert(newMap) > 0;
     }

+ 3 - 13
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/WebQuestionGatewayImpl.java

@@ -145,21 +145,11 @@ public class WebQuestionGatewayImpl implements WebQuestionGateway {
         // 3. 执行分页查询
         Page<Questionnaire> pageResult = questionnaireService.page(pageRequest, queryWrapper);
 
-        // 4. 转 DTO
-        List<QuestionnaireDTO> dtoList = pageResult.getRecords().stream()
-                .map(q -> CopyUtils.copy(q, QuestionnaireDTO.class))
-                .collect(Collectors.toList());
+        // 4.转换DTO
+        List<QuestionnaireDTO> QuestionnaireDTOS  = CopyUtils.copyList(pageResult.getRecords(), QuestionnaireDTO.class);
 
-        // 5. 封装分页结果
-        PageRecord<QuestionnaireDTO> result = new PageRecord<>();
-        result.setRows(dtoList);
-        result.setTotal(pageResult.getTotal());
-        result.setPageNum((int) pageResult.getCurrent());
-        result.setPageSize((int) pageResult.getSize());
-        result.setTotalPageNum((int) pageResult.getPages());
-        result.setOutTotalPageNum(false); // 按需设置
+        return CopyUtils.copyPage(pageResult, QuestionnaireDTOS);
 
-        return result;
     }
 
     @Override

+ 5 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mapper/DevInfoMapper.java

@@ -19,6 +19,7 @@ public interface DevInfoMapper extends BaseMapper<DevInfo> {
             "SET " +
             "user_id = null , " +
             "tenant_id = null , " +
+            "dev_name = null , " +
             "online = 9 , " +
             "onoff_time = null , " +
             "wifi_name = null , " +
@@ -41,7 +42,9 @@ public interface DevInfoMapper extends BaseMapper<DevInfo> {
             "active_time = null , " +
             "falling_confirm = null , " +
             "exist_flag = null , " +
-            "presence_change_time = null " +
+            "presence_change_time = null , " +
+            "age = null , "  +
+            "guardianship_type = null " +
 
             "WHERE dev_id = #{devId}")
     void reset(Long devId);
@@ -57,7 +60,7 @@ public interface DevInfoMapper extends BaseMapper<DevInfo> {
             "   SUM(CASE WHEN age &gt;= 100 THEN 1 ELSE 0 END) AS 'ge100', ",
             "   sum(1) as 'deviceCount', ",
             "   sum(case when online = 1 then 1 else 0 end) as 'onlineCount', ",
-            "   sum(case when onoff_time &gt;= #{today} then 1 else 0 end) as 'detectedCount', ",
+            "   sum(case when presence_change_time &gt;= #{today} then 1 else 0 end) as 'detectedCount', ",
             "   sum(case when install_position = 'Toilet' then 1 else 0 end) as 'toiletCount', ",
             "   sum(case when install_position = 'Bedroom' then 1 else 0 end) as 'bedroomCount', ",
             "   sum(case when install_position = 'LivingRoom' then 1 else 0 end) as 'livingRoomCount', ",