Commit 3884911a8c4ee4236118378d8484bb9ef458edc7

Authored by 黄 x
1 parent 46a39cda

feat: 提供通过组织查询告警配置接口

... ... @@ -6,18 +6,17 @@ import lombok.RequiredArgsConstructor;
6 6 import org.springframework.security.access.prepost.PreAuthorize;
7 7 import org.springframework.validation.annotation.Validated;
8 8 import org.springframework.web.bind.annotation.*;
9   -import org.thingsboard.server.common.data.StringUtils;
10 9 import org.thingsboard.server.common.data.exception.ThingsboardException;
11 10 import org.thingsboard.server.common.data.yunteng.common.DeleteGroup;
12 11 import org.thingsboard.server.common.data.yunteng.dto.AlarmProfileDTO;
13 12 import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
14   -import org.thingsboard.server.common.data.yunteng.dto.MailLogDTO;
15 13 import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum;
16 14 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
17 15 import org.thingsboard.server.controller.BaseController;
18 16 import org.thingsboard.server.dao.yunteng.service.AlarmProfileService;
19 17
20 18 import java.util.HashMap;
  19 +import java.util.List;
21 20
22 21 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*;
23 22 import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.ORDER_TYPE;
... ... @@ -62,15 +61,16 @@ public class AlarmProfileController extends BaseController {
62 61
63 62 @PostMapping
64 63 @ApiOperation("新增|编辑")
65   - public AlarmProfileDTO saveOrUpdateAlarmProfile(@Validated @RequestBody AlarmProfileDTO alarmProfileDTO)
66   - throws ThingsboardException {
  64 + public AlarmProfileDTO saveOrUpdateAlarmProfile(
  65 + @Validated @RequestBody AlarmProfileDTO alarmProfileDTO) throws ThingsboardException {
67 66 alarmProfileDTO.setTenantId(getCurrentUser().getCurrentTenantId());
68 67 return alarmProfileService.saveOrUpdateAlarmProfile(alarmProfileDTO);
69 68 }
70 69
71 70 @DeleteMapping
72 71 @ApiOperation("删除")
73   - public boolean deleteAlarmProfile(@Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) {
  72 + public boolean deleteAlarmProfile(
  73 + @Validated(DeleteGroup.class) @RequestBody DeleteDTO deleteDTO) {
74 74 return alarmProfileService.deleteAlarmProFile(deleteDTO);
75 75 }
76 76
... ... @@ -82,4 +82,12 @@ public class AlarmProfileController extends BaseController {
82 82 return alarmProfileService.updateAlarmProFileStatus(
83 83 alarmProfileId, getCurrentUser().getCurrentTenantId(), status);
84 84 }
  85 +
  86 + @GetMapping("{organizationId}")
  87 + @ApiOperation("获取组织下的告警配置")
  88 + public List<AlarmProfileDTO> findAlarmProfileByOrganizationId(
  89 + @PathVariable("organizationId") String organizationId) throws ThingsboardException {
  90 + return alarmProfileService.findAlarmProfileByOrganizationId(
  91 + organizationId, getCurrentUser().getCurrentTenantId());
  92 + }
85 93 }
... ...
... ... @@ -2,10 +2,11 @@ package org.thingsboard.server.common.data.yunteng.dto;
2 2
3 3 import io.swagger.annotations.ApiModelProperty;
4 4 import lombok.Data;
  5 +import lombok.EqualsAndHashCode;
5 6
6 7 import javax.validation.constraints.NotEmpty;
7   -
8 8 @Data
  9 +@EqualsAndHashCode(callSuper = true)
9 10 public class AlarmProfileDTO extends TenantDTO {
10 11 @ApiModelProperty(value = "告警联系人 通知多人“,”号分隔",required = true)
11 12 @NotEmpty(message = "告警联系人不能为空或空字符串")
... ...
1 1 package org.thingsboard.server.dao.yunteng.impl;
2 2
3 3 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 4 import com.baomidou.mybatisplus.core.metadata.IPage;
6 5 import lombok.RequiredArgsConstructor;
7 6 import lombok.extern.slf4j.Slf4j;
... ... @@ -12,21 +11,15 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
12 11 import org.thingsboard.server.common.data.yunteng.core.exception.NoneTenantAssetException;
13 12 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
14 13 import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage;
15   -import org.thingsboard.server.common.data.yunteng.dto.AlarmProfileDTO;
16   -import org.thingsboard.server.common.data.yunteng.dto.DeleteDTO;
17   -import org.thingsboard.server.common.data.yunteng.dto.DoActionDTO;
18   -import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
19   -import org.thingsboard.server.common.data.yunteng.enums.RoleEnum;
  14 +import org.thingsboard.server.common.data.yunteng.dto.*;
20 15 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
21 16 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
22 17 import org.thingsboard.server.dao.yunteng.entities.AlarmProfile;
23   -import org.thingsboard.server.dao.yunteng.entities.Role;
24 18 import org.thingsboard.server.dao.yunteng.mapper.AlarmProfileMapper;
25 19 import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;
26 20 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
27 21 import org.thingsboard.server.dao.yunteng.service.AlarmProfileService;
28 22 import org.thingsboard.server.dao.yunteng.service.DoActionService;
29   -import org.thingsboard.server.dao.yunteng.service.YtOrganizationService;
30 23
31 24 import java.util.*;
32 25 import java.util.stream.Collectors;
... ... @@ -54,12 +47,12 @@ public class AlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileMap
54 47 String organizationId = (String) queryMap.get("organizationId");
55 48 List<OrganizationDTO> organizationList =
56 49 ytOrganizationMapper.findOrganizationTreeList(
57   - tenantId, new HashSet<>(Arrays.asList(organizationId)));
58   - Set<String> ids =
59   - organizationList.stream()
60   - .map(organizationDTO -> organizationDTO.getId())
61   - .collect(Collectors.toSet());
62   - organizationIds = new ArrayList<>(ids);
  50 + tenantId, new HashSet<>(List.of(organizationId)));
  51 + if(organizationList.size()==FastIotConstants.MagicNumber.ZERO){
  52 + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
  53 + }
  54 + organizationIds =
  55 + organizationList.stream().map(BaseDTO::getId).distinct().collect(Collectors.toList());
63 56 } else {
64 57 if (!isPtTenantAdmin) {
65 58 organizationIds = userOrganizationMappingService.getOrganizationIdsByUserId(currentUserId);
... ... @@ -125,4 +118,25 @@ public class AlarmProfileServiceImpl extends AbstractBaseService<AlarmProfileMap
125 118 }
126 119 return baseMapper.deleteBatchIds(deleteDTO.getIds()) > 0;
127 120 }
  121 +
  122 + @Override
  123 + public List<AlarmProfileDTO> findAlarmProfileByOrganizationId(
  124 + String organizationId, String tenantId) {
  125 + List<OrganizationDTO> organizationList =
  126 + ytOrganizationMapper.findOrganizationTreeList(
  127 + tenantId, new HashSet<>(List.of(organizationId)));
  128 + if(organizationList.size()==FastIotConstants.MagicNumber.ZERO){
  129 + throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage());
  130 + }
  131 + Set<String> organizationIds =
  132 + organizationList.stream().map(BaseDTO::getId).collect(Collectors.toSet());
  133 + return baseMapper
  134 + .selectList(
  135 + new LambdaQueryWrapper<AlarmProfile>()
  136 + .eq(AlarmProfile::getTenantId, tenantId)
  137 + .in(AlarmProfile::getOrganizationId, organizationIds))
  138 + .stream()
  139 + .map(alarmProfile -> alarmProfile.getDTO(AlarmProfileDTO.class))
  140 + .collect(Collectors.toList());
  141 + }
128 142 }
... ...
... ... @@ -20,4 +20,6 @@ public interface AlarmProfileService extends BaseService<AlarmProfile> {
20 20 AlarmProfileDTO updateAlarmProFileStatus(String alarmProfileId, String tenantId, Integer status);
21 21
22 22 boolean deleteAlarmProFile(DeleteDTO deleteDTO);
  23 +
  24 + List<AlarmProfileDTO> findAlarmProfileByOrganizationId(String organizationId,String tenantId);
23 25 }
... ...