Commit 143c0654ef353f218e519a24feb5cdcab4b05a2f
Merge branch 'localhost-cxy' into 'master'
告警联系人组织回显修改 See merge request huang/thingsboard3.3.2!18
Showing
6 changed files
with
76 additions
and
27 deletions
... | ... | @@ -3,6 +3,7 @@ package org.thingsboard.server.controller.yunteng; |
3 | 3 | import io.swagger.annotations.Api; |
4 | 4 | import io.swagger.annotations.ApiOperation; |
5 | 5 | import lombok.RequiredArgsConstructor; |
6 | +import org.apache.commons.lang3.StringUtils; | |
6 | 7 | import org.springframework.http.HttpStatus; |
7 | 8 | import org.springframework.http.ResponseEntity; |
8 | 9 | import org.springframework.validation.annotation.Validated; |
... | ... | @@ -67,15 +68,16 @@ public class YtAlarmContactController extends BaseController { |
67 | 68 | @RequestParam(PAGE) int page, |
68 | 69 | @RequestParam(value = "username", required = false) String username, |
69 | 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 | 72 | HashMap<String, Object> queryMap = new HashMap<>(); |
72 | 73 | queryMap.put(PAGE_SIZE, pageSize); |
73 | 74 | queryMap.put(PAGE, page); |
74 | 75 | queryMap.put("username",username); |
75 | - queryMap.put("organizationId",organizationId); | |
76 | + if(!StringUtils.isEmpty(organizationId)){ | |
77 | + queryMap.put("organizationId", organizationId); | |
78 | + } | |
76 | 79 | queryMap.put(CREATE_TIME, createtime); |
77 | - | |
78 | - return alarmService.page(queryMap); | |
80 | + return alarmService.page(getCurrentUser().getCurrentTenantId(),queryMap); | |
79 | 81 | } |
80 | 82 | |
81 | 83 | @ApiOperation(value = "删除") | ... | ... |
... | ... | @@ -7,15 +7,19 @@ import lombok.RequiredArgsConstructor; |
7 | 7 | import org.apache.commons.lang3.StringUtils; |
8 | 8 | import org.springframework.stereotype.Service; |
9 | 9 | import org.springframework.transaction.annotation.Transactional; |
10 | +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | |
10 | 11 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
11 | 12 | import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; |
13 | +import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO; | |
12 | 14 | import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; |
13 | 15 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
14 | 16 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; |
15 | 17 | import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; |
18 | +import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper; | |
16 | 19 | import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; |
17 | 20 | import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService; |
18 | 21 | |
22 | +import java.util.ArrayList; | |
19 | 23 | import java.util.List; |
20 | 24 | import java.util.Map; |
21 | 25 | import java.util.Set; |
... | ... | @@ -28,6 +32,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM |
28 | 32 | /** mapper注入 自带方法加入,继承的baseMapper */ |
29 | 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 | 126 | } |
122 | 127 | } |
123 | 128 | |
124 | - | |
125 | - | |
126 | 129 | /** |
127 | 130 | * @param queryMap 查询集合 |
128 | 131 | * @return PageData |
129 | 132 | */ |
130 | 133 | @Override |
131 | 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 | 1 | package org.thingsboard.server.dao.yunteng.mapper; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
4 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
4 | 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 | 8 | import org.thingsboard.server.dao.yunteng.entities.AlarmContact; |
6 | 9 | |
10 | +import java.util.Map; | |
11 | + | |
7 | 12 | /** @Description 告警联系人持久化数据层 @Author cxy @Date 2021/11/2 11:52 */ |
8 | 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 | 53 | * @param queryMap 查询集合 |
54 | 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 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | 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 | 6 | <result property="id" column="id"/> |
7 | 7 | <result property="username" column="username"/> |
8 | 8 | <result property="organizationId" column="organization_id"/> |
... | ... | @@ -15,7 +15,35 @@ |
15 | 15 | <result property="updateTime" column="update_time"/> |
16 | 16 | <result property="createTime" column="create_time"/> |
17 | 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 | 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 | 49 | </mapper> | ... | ... |