Commit 1a639a0f authored by huangcb's avatar huangcb

增加获取设备接入信息功能接口

parent 431f4572
...@@ -4,6 +4,8 @@ import lombok.Data; ...@@ -4,6 +4,8 @@ import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/** /**
* @description: * @description:
* @author: huangchaobin@esvtek.com * @author: huangchaobin@esvtek.com
...@@ -24,7 +26,7 @@ public class MqttAcl { ...@@ -24,7 +26,7 @@ public class MqttAcl {
/** /**
* IpAddress * IpAddress
*/ */
private String ipAddr; private String ipaddr;
/** /**
* Username * Username
*/ */
...@@ -32,7 +34,7 @@ public class MqttAcl { ...@@ -32,7 +34,7 @@ public class MqttAcl {
/** /**
* ClientId * ClientId
*/ */
private String clientId; private String clientid;
/** /**
* 1: subscribe, 2: publish, 3: pubsub * 1: subscribe, 2: publish, 3: pubsub
*/ */
...@@ -41,6 +43,10 @@ public class MqttAcl { ...@@ -41,6 +43,10 @@ public class MqttAcl {
* Topic Filter * Topic Filter
*/ */
private String topic; private String topic;
/**
* create time
*/
private Date create_time;
@Override @Override
public String toString() { public String toString() {
......
package com.esv.datacenter.iot.common.component; package com.esv.datacenter.iot.common.component;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -68,7 +73,7 @@ public class MqttClientAuthComponent { ...@@ -68,7 +73,7 @@ public class MqttClientAuthComponent {
public void saveClientAcl(List<MqttAcl> mqttAclList) { public void saveClientAcl(List<MqttAcl> mqttAclList) {
HikariDataSource dataSource = this.getHikariDataSource4Transaction(); HikariDataSource dataSource = this.getHikariDataSource4Transaction();
String clientId = mqttAclList.get(0).getClientId(); String clientId = mqttAclList.get(0).getClientid();
try { try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 删除clientId原有记录 // 删除clientId原有记录
...@@ -85,7 +90,7 @@ public class MqttClientAuthComponent { ...@@ -85,7 +90,7 @@ public class MqttClientAuthComponent {
.append("(allow, username, clientid, access, topic) VALUES(") .append("(allow, username, clientid, access, topic) VALUES(")
.append(mqttAcl.getAllow()) .append(mqttAcl.getAllow())
.append(",'").append(clientAuthUserName).append("'") .append(",'").append(clientAuthUserName).append("'")
.append(",'").append(mqttAcl.getClientId()).append("'") .append(",'").append(mqttAcl.getClientid()).append("'")
.append(",").append(mqttAcl.getAccess()) .append(",").append(mqttAcl.getAccess())
.append(",'").append(mqttAcl.getTopic()).append("'") .append(",'").append(mqttAcl.getTopic()).append("'")
.append(");"); .append(");");
...@@ -135,6 +140,55 @@ public class MqttClientAuthComponent { ...@@ -135,6 +140,55 @@ public class MqttClientAuthComponent {
} }
} }
/**
* @description 获取客户端的Topic信息
* @param clientId:
* @return java.util.List<com.esv.datacenter.iot.common.component.MqttAcl>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/14 10:47
**/
public List<MqttAcl> getClientTopicInfo(String clientId) {
StringBuffer sb = new StringBuffer();
sb.append("SELECT * FROM ").append(tableName).append(" where clientid = ?;");
String querySql = sb.toString();
log.info("查询SQL:{}", querySql);
List<MqttAcl> mqttAclList = null;
HikariDataSource dataSource = this.getHikariDataSource();
try {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
Object[] args = new Object[] {clientId};
List<Map<String, Object>> resultMapList = jdbcTemplate.queryForList(querySql, args);
mqttAclList = new ArrayList<>();
for (Map<String, Object> map : resultMapList) {
JSONObject json = new JSONObject();
for(Map.Entry<String, Object> entry : map.entrySet()){
json.put(entry.getKey(), entry.getValue());
}
MqttAcl mqttAcl = JSON.parseObject(json.toString(), MqttAcl.class);
mqttAclList.add(mqttAcl);
}
} catch (DataAccessException e) {
e.printStackTrace();
} catch (Exception e) {
log.error("查询[clientId={}]Topic信息失败", clientId);
log.error(e.getMessage(), e);
throw e;
} finally {
// 关闭数据源
if (Objects.nonNull(dataSource) && !dataSource.isClosed()) {
dataSource.close();
}
}
return mqttAclList;
}
public HikariDataSource getHikariDataSource() {
HikariDataSource dataSource = this.dynamicDataSource.getDynamicDataSource(initDataSourceConfig());
return dataSource;
}
private HikariDataSource getHikariDataSource4Transaction() { private HikariDataSource getHikariDataSource4Transaction() {
HikariDataSource dataSource = this.dynamicDataSource.getDynamicDataSource4Transaction(initDataSourceConfig()); HikariDataSource dataSource = this.dynamicDataSource.getDynamicDataSource4Transaction(initDataSourceConfig());
return dataSource; return dataSource;
......
...@@ -120,4 +120,20 @@ public class DeviceInstanceController { ...@@ -120,4 +120,20 @@ public class DeviceInstanceController {
return EResponse.ok(deviceInstanceService.getInstanceListByTypeId(form.getDeviceTypeId())); return EResponse.ok(deviceInstanceService.getInstanceListByTypeId(form.getDeviceTypeId()));
} }
/**
* @description 获取设备接入信息
* @param form:
* @return com.esv.datacenter.iot.common.response.EResponse
* @author huangChaobin@esvtek.com
* @createTime 2020/08/14 9:43
**/
@PostMapping("/accessInfo/get")
public EResponse getAccessInfo(@RequestBody @Validated(ValidatorDetail.class) DeviceInstanceForm form) throws EException {
if (!deviceInstanceService.isValidId(form.getId())) {
throw new EException(ECode.BIZ_PARAM_ERROR.code(), "无效的设备ID");
}
return EResponse.ok(deviceInstanceService.getAccessInfoByInstanceId(form.getId()));
}
} }
...@@ -3,6 +3,7 @@ package com.esv.datacenter.iot.module.devicemodel.dao; ...@@ -3,6 +3,7 @@ package com.esv.datacenter.iot.module.devicemodel.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto; import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto;
import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceFullMapDto;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity; import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm; import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -47,5 +48,14 @@ public interface DeviceInstanceDao extends BaseMapper<DeviceInstanceEntity> { ...@@ -47,5 +48,14 @@ public interface DeviceInstanceDao extends BaseMapper<DeviceInstanceEntity> {
* @createTime 2020/08/13 16:58 * @createTime 2020/08/13 16:58
**/ **/
List<DeviceInstanceDto> select4List(DeviceInstanceDto dto); List<DeviceInstanceDto> select4List(DeviceInstanceDto dto);
/**
* @description 查询设备实例的设备类型、数据模型映射
* @param instanceId:
* @return java.util.List<com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceFullMapDto>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/14 11:14
**/
List<DeviceInstanceFullMapDto> selectDeviceInstanceFullMap(Long instanceId);
} }
package com.esv.datacenter.iot.module.devicemodel.dto;
import lombok.Data;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/14 11:10
* @version:1.0
*/
@Data
public class DeviceInstanceFullMapDto {
/**
* 设备实例ID
*/
private Long instanceId;
/**
* 设备实例名称
*/
private String instanceName;
/**
* 通信ID
**/
private String communicationId;
/**
* 设备类型ID
*/
private Long deviceTypeId;
/**
* 设备类型名称
*/
private String deviceTypeName;
/**
* 数据模型ID
*/
private Long dataModelId;
/**
* 数据模型名称
*/
private String dataModelName;
}
...@@ -22,12 +22,12 @@ public class DeviceInstanceForm { ...@@ -22,12 +22,12 @@ public class DeviceInstanceForm {
/** /**
* *
*/ */
@NotNull(message = "[设备ID]不能为空", groups = {ValidatorDelete.class, ValidatorUpdate.class}) @NotNull(message = "[设备ID]不能为空", groups = {ValidatorDelete.class, ValidatorUpdate.class, ValidatorDetail.class})
private Long id; private Long id;
/** /**
* 设备类型ID * 设备类型ID
*/ */
// @NotNull(message = "[设备类型ID]不能为空", groups = {ValidatorInsert.class, ValidatorList.class, ValidatorListById.class}) @NotNull(message = "[设备类型ID]不能为空", groups = {ValidatorInsert.class, ValidatorListById.class})
private Long deviceTypeId; private Long deviceTypeId;
/** /**
* 设备名称 * 设备名称
......
...@@ -3,8 +3,10 @@ package com.esv.datacenter.iot.module.devicemodel.service; ...@@ -3,8 +3,10 @@ package com.esv.datacenter.iot.module.devicemodel.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.esv.datacenter.iot.common.vo.PageResultVO; import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto; import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto;
import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceFullMapDto;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity; import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm; import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceAccessInfoVO;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceVO; import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceVO;
import java.util.List; import java.util.List;
...@@ -137,5 +139,23 @@ public interface DeviceInstanceService extends IService<DeviceInstanceEntity> { ...@@ -137,5 +139,23 @@ public interface DeviceInstanceService extends IService<DeviceInstanceEntity> {
**/ **/
void saveInstanceMqttTopicAuth(Long deviceTypeId, Long deviceInstanceId, String clientId); void saveInstanceMqttTopicAuth(Long deviceTypeId, Long deviceInstanceId, String clientId);
/**
* @description 获取设备实例的设备类型、数据模型映射
* @param instanceId:
* @return java.util.List<com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceFullMapDto>
* @author huangChaobin@esvtek.com
* @createTime 2020/08/14 11:15
**/
List<DeviceInstanceFullMapDto> getDeviceInstanceFullMap(Long instanceId);
/**
* @description 获取设备接入信息
* @param id:
* @return com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceAccessInfoVO
* @author huangChaobin@esvtek.com
* @createTime 2020/08/14 10:57
**/
DeviceInstanceAccessInfoVO getAccessInfoByInstanceId(Long id);
} }
...@@ -73,10 +73,13 @@ public class DeviceDataMapServiceImpl extends ServiceImpl<DeviceDataMapDao, Devi ...@@ -73,10 +73,13 @@ public class DeviceDataMapServiceImpl extends ServiceImpl<DeviceDataMapDao, Devi
for (String dataModelId : dataModelIdList) { for (String dataModelId : dataModelIdList) {
MqttAcl mqttAcl = new MqttAcl(); MqttAcl mqttAcl = new MqttAcl();
mqttAcl.setAllow(1); mqttAcl.setAllow(1);
mqttAcl.setClientId(communicationId); mqttAcl.setClientid(communicationId);
mqttAcl.setAccess(2); mqttAcl.setAccess(2);
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
sb.append("$esv/iot/").append(dataModelId).append(deviceTypeId).append(deviceInstanceId).append("/data/upload"); sb.append("$esv/iot/")
.append(dataModelId).append("/")
.append(deviceTypeId).append("/")
.append(deviceInstanceId).append("/data/upload");
mqttAcl.setTopic(sb.toString()); mqttAcl.setTopic(sb.toString());
mqttAclList.add(mqttAcl); mqttAclList.add(mqttAcl);
} }
......
...@@ -13,10 +13,13 @@ import com.esv.datacenter.iot.common.vo.PageResultVO; ...@@ -13,10 +13,13 @@ import com.esv.datacenter.iot.common.vo.PageResultVO;
import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity; import com.esv.datacenter.iot.module.datamodel.entity.DataModelEntity;
import com.esv.datacenter.iot.module.devicemodel.dao.DeviceInstanceDao; import com.esv.datacenter.iot.module.devicemodel.dao.DeviceInstanceDao;
import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto; import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceDto;
import com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceFullMapDto;
import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity; import com.esv.datacenter.iot.module.devicemodel.entity.DeviceInstanceEntity;
import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm; import com.esv.datacenter.iot.module.devicemodel.form.DeviceInstanceForm;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService; import com.esv.datacenter.iot.module.devicemodel.service.DeviceDataMapService;
import com.esv.datacenter.iot.module.devicemodel.service.DeviceInstanceService; import com.esv.datacenter.iot.module.devicemodel.service.DeviceInstanceService;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceAccessInfoVO;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceMqttTopicInfoVO;
import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceVO; import com.esv.datacenter.iot.module.devicemodel.vo.DeviceInstanceVO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -25,10 +28,6 @@ import org.springframework.stereotype.Service; ...@@ -25,10 +28,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Service("deviceInstanceService") @Service("deviceInstanceService")
...@@ -204,14 +203,55 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De ...@@ -204,14 +203,55 @@ public class DeviceInstanceServiceImpl extends ServiceImpl<DeviceInstanceDao, De
for (DataModelEntity dataModelEntity : dataModelEntityList) { for (DataModelEntity dataModelEntity : dataModelEntityList) {
MqttAcl mqttAcl = new MqttAcl(); MqttAcl mqttAcl = new MqttAcl();
mqttAcl.setAllow(1); mqttAcl.setAllow(1);
mqttAcl.setClientId(clientId); mqttAcl.setClientid(clientId);
mqttAcl.setAccess(2); mqttAcl.setAccess(2);
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
sb.append("$esv/iot/").append(dataModelEntity.getId()).append(deviceTypeId).append(deviceInstanceId).append("/data/upload"); sb.append("$esv/iot/")
.append(dataModelEntity.getId()).append("/")
.append(deviceTypeId).append("/")
.append(deviceInstanceId).append("/data/upload");
mqttAcl.setTopic(sb.toString()); mqttAcl.setTopic(sb.toString());
mqttAclList.add(mqttAcl); mqttAclList.add(mqttAcl);
} }
mqttClientAuthComponent.saveClientAcl(mqttAclList); mqttClientAuthComponent.saveClientAcl(mqttAclList);
} }
@Override
public List<DeviceInstanceFullMapDto> getDeviceInstanceFullMap(Long instanceId) {
return this.getBaseMapper().selectDeviceInstanceFullMap(instanceId);
}
@Override
public DeviceInstanceAccessInfoVO getAccessInfoByInstanceId(Long id) {
// 获取设备实例的设备类型、数据模型映射
List<DeviceInstanceFullMapDto> deviceInstanceFullMapDtoList = this.getDeviceInstanceFullMap(id);
// 获取设备对应的Mqtt Topic信息
String clientId = deviceInstanceFullMapDtoList.get(0).getCommunicationId();
List<MqttAcl> mqttAclList = mqttClientAuthComponent.getClientTopicInfo(clientId);
Map<Long, String> mqttTopicMap = new HashMap<>(32);
for (MqttAcl mqttAcl : mqttAclList) {
Long dataModelId = Long.parseLong(mqttAcl.getTopic().replaceFirst("\\$esv/iot/", "").substring(0, 1));
mqttTopicMap.put(dataModelId, mqttAcl.getTopic());
}
// 构造返回数据
DeviceInstanceAccessInfoVO vo = new DeviceInstanceAccessInfoVO();
vo.setInstanceId(deviceInstanceFullMapDtoList.get(0).getInstanceId());
vo.setInstanceName(deviceInstanceFullMapDtoList.get(0).getInstanceName());
vo.setCommunicationId(deviceInstanceFullMapDtoList.get(0).getCommunicationId());
vo.setDeviceTypeId(deviceInstanceFullMapDtoList.get(0).getDeviceTypeId());
vo.setDeviceTypeName(deviceInstanceFullMapDtoList.get(0).getDeviceTypeName());
List<DeviceInstanceMqttTopicInfoVO> mqttTopicInfoVOList = new ArrayList<>();
for (DeviceInstanceFullMapDto dto : deviceInstanceFullMapDtoList) {
DeviceInstanceMqttTopicInfoVO topicInfoVO = new DeviceInstanceMqttTopicInfoVO();
topicInfoVO.setDataModelId(dto.getDataModelId());
topicInfoVO.setDataModelName(dto.getDataModelName());
topicInfoVO.setMqttTopic(mqttTopicMap.get(dto.getDataModelId()));
}
vo.setMqttTopicInfoVOList(mqttTopicInfoVOList);
return vo;
}
} }
\ No newline at end of file
package com.esv.datacenter.iot.module.devicemodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/14 10:49
* @version:1.0
*/
@Data
public class DeviceInstanceAccessInfoVO {
/**
* 设备实例ID
*/
private Long instanceId;
/**
* 设备实例名称
*/
private String instanceName;
/**
* 通信ID
**/
private String communicationId;
/**
* 设备类型ID
*/
private Long deviceTypeId;
/**
* 设备类型名称
*/
private String deviceTypeName;
/**
* Mqtt Topic信息列表
**/
List<DeviceInstanceMqttTopicInfoVO> mqttTopicInfoVOList;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
package com.esv.datacenter.iot.module.devicemodel.vo;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* @description:
* @author: huangchaobin@esvtek.com
* @createTime: 2020/08/14 10:55
* @version:1.0
*/
@Data
public class DeviceInstanceMqttTopicInfoVO {
/**
* 数据模型ID
*/
private Long dataModelId;
/**
* 数据模型名称
*/
private String dataModelName;
/**
* Mqtt Topic
*/
private String mqttTopic;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
}
...@@ -67,4 +67,29 @@ ...@@ -67,4 +67,29 @@
ORDER BY b.name ASC ORDER BY b.name ASC
</select> </select>
<select id="selectDeviceInstanceFullMap" parameterType="java.lang.Long"
resultType="com.esv.datacenter.iot.module.devicemodel.dto.DeviceInstanceFullMapDto">
select
ab.*, ac.dataModelId, ac.dataModelName
from (select a.id as instanceId, a.name as instanceName, a.communication_id as communicationId,
b.id as deviceTypeId, b.name as deviceTypeName
from device_instance a, device_type b
where 1=1
<if test="instanceId != null">
and a.id = #{instanceId}
</if>
and a.device_type_id = b.id and a.deleted = false and b.deleted = false)ab
left join (select a.id as instanceId, c.id as dataModelId, c.name as dataModelName
from device_instance a, data_model c, device_data_map d
where 1=1
<if test="instanceId != null">
and a.id = #{instanceId}
</if>
and a.deleted = false and c.deleted = false
and a.device_type_id = d.device_type_id
and d.data_model_id = c.id)ac
on ab.instanceId=ac.instanceId
order by instanceId asc
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -52,14 +52,12 @@ public class BaseTestController { ...@@ -52,14 +52,12 @@ public class BaseTestController {
public HttpHeaders getDefaultHttpHeaders() { public HttpHeaders getDefaultHttpHeaders() {
HttpHeaders httpHeaders = new HttpHeaders(); HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("gateway_traceid", UUID.randomUUID().toString().replace("-", "")); httpHeaders.add("gateway_traceid", UUID.randomUUID().toString().replace("-", ""));
httpHeaders.add("esv_system", "cc"); httpHeaders.add("esv_system", "iot");
httpHeaders.add("esv_data_perm", "0"); httpHeaders.add("esv_data_perm", "0");
httpHeaders.add("esv_tenant", "1"); httpHeaders.add("esv_tenant", "1");
httpHeaders.add("esv_department", "1"); httpHeaders.add("esv_department", "0");
httpHeaders.add("esv_department_children", "1,2,3");
httpHeaders.add("esv_user", "1"); httpHeaders.add("esv_user", "1");
httpHeaders.add("esv_account", "admin"); httpHeaders.add("esv_account", "admin");
httpHeaders.add("Source-Type", "1");
httpHeaders.add(CommonConstants.REQ_SOURCE_TYPE_KEY, CommonConstants.REQ_SOURCE_TYPE_WEB); httpHeaders.add(CommonConstants.REQ_SOURCE_TYPE_KEY, CommonConstants.REQ_SOURCE_TYPE_WEB);
return httpHeaders; return httpHeaders;
} }
......
package com.esv.datacenter.iot; package com.esv.datacenter.iot;
import com.esv.datacenter.iot.common.util.FileUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
...@@ -17,16 +16,9 @@ public class SimpleTest { ...@@ -17,16 +16,9 @@ public class SimpleTest {
@Test @Test
public void test() { public void test() {
String dataPath = "/data/SqlReservedWords.txt"; String topic = "$esv/iot/1/2/3/data/upload";
try { Long dataModelId = Long.parseLong(topic.replaceFirst("\\$esv/iot/", "").substring(0, 1));
String fileContent = FileUtils.getJarFileContent(this.getClass(), dataPath); log.info(String.valueOf(dataModelId));
String[] datas = fileContent.split(",");
log.info(fileContent);
log.info(datas[0]);
log.info(datas[1]);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
} }
} }
...@@ -30,11 +30,16 @@ public class MqttClientAuthComponentTest { ...@@ -30,11 +30,16 @@ public class MqttClientAuthComponentTest {
MqttAcl mqttAcl = new MqttAcl(); MqttAcl mqttAcl = new MqttAcl();
mqttAcl.setAllow(1); mqttAcl.setAllow(1);
mqttAcl.setClientId(String.valueOf(System.currentTimeMillis())); mqttAcl.setClientid(String.valueOf(System.currentTimeMillis()));
mqttAcl.setAccess(2); mqttAcl.setAccess(2);
mqttAcl.setTopic("$esv/iot/1/2/3/data/upload"); mqttAcl.setTopic("$esv/iot/1/2/3/data/upload");
mqttAclList.add(mqttAcl); mqttAclList.add(mqttAcl);
mqttClientAuthComponent.saveClientAcl(mqttAclList); mqttClientAuthComponent.saveClientAcl(mqttAclList);
} }
@Test
public void getClientTopicInfo_test() {
mqttClientAuthComponent.getClientTopicInfo("1597307123829");
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment