Showing
6 changed files
with
76 additions
and
27 deletions
@@ -3,6 +3,7 @@ package org.thingsboard.server.controller.yunteng; | @@ -3,6 +3,7 @@ package org.thingsboard.server.controller.yunteng; | ||
3 | import io.swagger.annotations.Api; | 3 | import io.swagger.annotations.Api; |
4 | import io.swagger.annotations.ApiOperation; | 4 | import io.swagger.annotations.ApiOperation; |
5 | import lombok.RequiredArgsConstructor; | 5 | import lombok.RequiredArgsConstructor; |
6 | +import org.apache.commons.lang3.StringUtils; | ||
6 | import org.springframework.http.HttpStatus; | 7 | import org.springframework.http.HttpStatus; |
7 | import org.springframework.http.ResponseEntity; | 8 | import org.springframework.http.ResponseEntity; |
8 | import org.springframework.validation.annotation.Validated; | 9 | import org.springframework.validation.annotation.Validated; |
@@ -67,15 +68,16 @@ public class YtAlarmContactController extends BaseController { | @@ -67,15 +68,16 @@ public class YtAlarmContactController extends BaseController { | ||
67 | @RequestParam(PAGE) int page, | 68 | @RequestParam(PAGE) int page, |
68 | @RequestParam(value = "username", required = false) String username, | 69 | @RequestParam(value = "username", required = false) String username, |
69 | @RequestParam(value = "organizationId", required = false) String organizationId, | 70 | @RequestParam(value = "organizationId", required = false) String organizationId, |
70 | - @RequestParam(value = CREATE_TIME, required = false) String createtime) { | 71 | + @RequestParam(value = CREATE_TIME, required = false) String createtime) throws ThingsboardException { |
71 | HashMap<String, Object> queryMap = new HashMap<>(); | 72 | HashMap<String, Object> queryMap = new HashMap<>(); |
72 | queryMap.put(PAGE_SIZE, pageSize); | 73 | queryMap.put(PAGE_SIZE, pageSize); |
73 | queryMap.put(PAGE, page); | 74 | queryMap.put(PAGE, page); |
74 | queryMap.put("username",username); | 75 | queryMap.put("username",username); |
75 | - queryMap.put("organizationId",organizationId); | 76 | + if(!StringUtils.isEmpty(organizationId)){ |
77 | + queryMap.put("organizationId", organizationId); | ||
78 | + } | ||
76 | queryMap.put(CREATE_TIME, createtime); | 79 | queryMap.put(CREATE_TIME, createtime); |
77 | - | ||
78 | - return alarmService.page(queryMap); | 80 | + return alarmService.page(getCurrentUser().getCurrentTenantId(),queryMap); |
79 | } | 81 | } |
80 | 82 | ||
81 | @ApiOperation(value = "删除") | 83 | @ApiOperation(value = "删除") |
@@ -46,5 +46,8 @@ public class AlarmContactDTO extends TenantDTO { | @@ -46,5 +46,8 @@ public class AlarmContactDTO extends TenantDTO { | ||
46 | @ApiModelProperty(value = "添加人") | 46 | @ApiModelProperty(value = "添加人") |
47 | private String addPeople; | 47 | private String addPeople; |
48 | 48 | ||
49 | + @ApiModelProperty(value="组织对象") | ||
50 | + private OrganizationDTO organizationDTO; | ||
51 | + | ||
49 | 52 | ||
50 | } | 53 | } |
@@ -7,15 +7,19 @@ import lombok.RequiredArgsConstructor; | @@ -7,15 +7,19 @@ import lombok.RequiredArgsConstructor; | ||
7 | import org.apache.commons.lang3.StringUtils; | 7 | import org.apache.commons.lang3.StringUtils; |
8 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
9 | import org.springframework.transaction.annotation.Transactional; | 9 | import org.springframework.transaction.annotation.Transactional; |
10 | +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | ||
10 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; | 11 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
11 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; | 12 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; |
13 | +import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; | ||
12 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; | 14 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
13 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | 15 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
14 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; | 16 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; |
15 | import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; | 17 | import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; |
18 | +import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper; | ||
16 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | 19 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
17 | import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService; | 20 | import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService; |
18 | 21 | ||
22 | +import java.util.ArrayList; | ||
19 | import java.util.List; | 23 | import java.util.List; |
20 | import java.util.Map; | 24 | import java.util.Map; |
21 | import java.util.Set; | 25 | import java.util.Set; |
@@ -28,6 +32,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | @@ -28,6 +32,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | ||
28 | /** mapper注入 自带方法加入,继承的baseMapper */ | 32 | /** mapper注入 自带方法加入,继承的baseMapper */ |
29 | private final AlarmContactMapper alarmContactMapper; | 33 | private final AlarmContactMapper alarmContactMapper; |
30 | 34 | ||
35 | + private final OrganizationMapper ytOrganizationMapper; | ||
31 | /** | 36 | /** |
32 | * 查询全部的告警联系人 | 37 | * 查询全部的告警联系人 |
33 | * | 38 | * |
@@ -121,29 +126,30 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | @@ -121,29 +126,30 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM | ||
121 | } | 126 | } |
122 | } | 127 | } |
123 | 128 | ||
124 | - | ||
125 | - | ||
126 | /** | 129 | /** |
127 | * @param queryMap 查询集合 | 130 | * @param queryMap 查询集合 |
128 | * @return PageData | 131 | * @return PageData |
129 | */ | 132 | */ |
130 | @Override | 133 | @Override |
131 | @Transactional | 134 | @Transactional |
132 | - public YtPageData<AlarmContactDTO> page(Map<String, Object> queryMap) { | 135 | + public YtPageData<AlarmContactDTO> page(String tenantId,Map<String, Object> queryMap) { |
133 | // 查询分页,加入条模糊条件查询 | 136 | // 查询分页,加入条模糊条件查询 |
134 | - IPage<AlarmContact> iPage = | ||
135 | - alarmContactMapper.selectPage( | ||
136 | - getPage(queryMap, "create_time", false), | ||
137 | - new QueryWrapper<AlarmContact>() | ||
138 | - .lambda() | ||
139 | - .like( | ||
140 | - StringUtils.isNoneBlank((String) queryMap.get("username")), | ||
141 | - AlarmContact::getUsername, | ||
142 | - queryMap.get("username")) | ||
143 | - .eq( | ||
144 | - StringUtils.isNoneBlank((String) queryMap.get("organizationId")), | ||
145 | - AlarmContact::getOrganizationId, | ||
146 | - queryMap.get("organizationId"))); | ||
147 | - return getPageData(iPage, AlarmContactDTO.class); | 137 | + queryMap.put("tenantId", tenantId); |
138 | + String organizationId= (String) queryMap.get("organizationId"); | ||
139 | + //传入的组织id不为空 | ||
140 | + if (!StringUtils.isEmpty(organizationId)){ | ||
141 | + List<String> organizationIds= new ArrayList<>(); | ||
142 | + organizationIds.add(organizationId); | ||
143 | + //查询该组织的所有子类 | ||
144 | + List<OrganizationDTO> organizationDTOS=ytOrganizationMapper.findOrganizationTreeList(tenantId,organizationIds); | ||
145 | + List<String> queryOrganizationIds = new ArrayList<>(); | ||
146 | + organizationDTOS.forEach(item->{ | ||
147 | + queryOrganizationIds.add(item.getId()); | ||
148 | + }); | ||
149 | + queryMap.put("organizationIds",queryOrganizationIds); | ||
150 | + } | ||
151 | + IPage<AlarmContact> page= getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME,false); | ||
152 | + IPage<AlarmContactDTO> pageDto= baseMapper.getAlarmPage(page,queryMap); | ||
153 | + return getPageData(pageDto, AlarmContactDTO.class); | ||
148 | } | 154 | } |
149 | } | 155 | } |
1 | package org.thingsboard.server.dao.yunteng.mapper; | 1 | package org.thingsboard.server.dao.yunteng.mapper; |
2 | 2 | ||
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | +import com.baomidou.mybatisplus.core.metadata.IPage; | ||
4 | import org.apache.ibatis.annotations.Mapper; | 5 | import org.apache.ibatis.annotations.Mapper; |
6 | +import org.apache.ibatis.annotations.Param; | ||
7 | +import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; | ||
5 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; | 8 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; |
6 | 9 | ||
10 | +import java.util.Map; | ||
11 | + | ||
7 | /** @Description 告警联系人持久化数据层 @Author cxy @Date 2021/11/2 11:52 */ | 12 | /** @Description 告警联系人持久化数据层 @Author cxy @Date 2021/11/2 11:52 */ |
8 | @Mapper | 13 | @Mapper |
9 | -public interface AlarmContactMapper extends BaseMapper<AlarmContact> {} | 14 | +public interface AlarmContactMapper extends BaseMapper<AlarmContact> { |
15 | + | ||
16 | + IPage<AlarmContactDTO> getAlarmPage( | ||
17 | + IPage<?> page, @Param("queryMap") Map<String, Object> queryMap); | ||
18 | + | ||
19 | +} |
@@ -53,6 +53,6 @@ public interface YtAlarmContactService { | @@ -53,6 +53,6 @@ public interface YtAlarmContactService { | ||
53 | * @param queryMap 查询集合 | 53 | * @param queryMap 查询集合 |
54 | * @return PageData | 54 | * @return PageData |
55 | */ | 55 | */ |
56 | - YtPageData<AlarmContactDTO> page(Map<String, Object> queryMap); | 56 | + YtPageData<AlarmContactDTO> page(String tenantId,Map<String, Object> queryMap); |
57 | 57 | ||
58 | } | 58 | } |
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
3 | 3 | ||
4 | -<mapper namespace="com.codeez.mapper.AlarmContactMapper"> | ||
5 | - <resultMap id="alarmContactMap" type="org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO" > | 4 | +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper"> |
5 | + <resultMap id="alarmContactMap" type="org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO"> | ||
6 | <result property="id" column="id"/> | 6 | <result property="id" column="id"/> |
7 | <result property="username" column="username"/> | 7 | <result property="username" column="username"/> |
8 | <result property="organizationId" column="organization_id"/> | 8 | <result property="organizationId" column="organization_id"/> |
@@ -15,7 +15,35 @@ | @@ -15,7 +15,35 @@ | ||
15 | <result property="updateTime" column="update_time"/> | 15 | <result property="updateTime" column="update_time"/> |
16 | <result property="createTime" column="create_time"/> | 16 | <result property="createTime" column="create_time"/> |
17 | <result property="creator" column="creator"/> | 17 | <result property="creator" column="creator"/> |
18 | - | 18 | + <result property="tenantId" column="tenant_id"/> |
19 | + <result property="updater" column="updater"/> | ||
20 | + <association property="organizationDTO" | ||
21 | + javaType="org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO"> | ||
22 | + <result property="name" column="organization_name"/> | ||
23 | + </association> | ||
19 | </resultMap> | 24 | </resultMap> |
20 | - | 25 | + <sql id="columns"> |
26 | + a.id,a.username,a.organization_id,a.phone,a.email,a.wechat,a.dingtalk,a.remark,a.add_people,a.update_time, | ||
27 | + a.create_time,a.creator,a.tenant_id,a.updater,io.name AS organization_name | ||
28 | + </sql> | ||
29 | + <select id="getAlarmPage" resultMap="alarmContactMap"> | ||
30 | + SELECT | ||
31 | + <include refid="columns"/> | ||
32 | + FROM iotfs_alarm_contact a | ||
33 | + LEFT JOIN iotfs_organization io ON io.id = a.organization_id | ||
34 | + <where> | ||
35 | + <if test="queryMap.tenantId !=null and queryMap.tenantId !=''"> | ||
36 | + AND a.tenant_id = #{queryMap.tenantId} | ||
37 | + </if> | ||
38 | + <if test="queryMap.name !=null and queryMap.name !=''"> | ||
39 | + AND a.username LIKE concat('%',#{queryMap.username}::TEXT,'%') | ||
40 | + </if> | ||
41 | + <if test="queryMap.organizationIds !=null"> | ||
42 | + AND a.organization_id IN | ||
43 | + <foreach collection="queryMap.organizationIds" item="organizationId" open="(" separator="," close=")"> | ||
44 | + #{organizationId} | ||
45 | + </foreach> | ||
46 | + </if> | ||
47 | + </where> | ||
48 | + </select> | ||
21 | </mapper> | 49 | </mapper> |