提供设备配置调用的API

This commit is contained in:
曹磊 2025-08-11 08:37:45 +08:00
parent 7e0d4af40f
commit 49d7979b80
21 changed files with 570 additions and 0 deletions

View File

@ -0,0 +1,57 @@
package com.nu.modules.iot.tplink.api;
import com.alibaba.fastjson.JSONObject;
import com.nu.modules.iot.tplink.entity.ApiTumsConfig;
import com.nu.modules.iot.tplink.service.IApiTumsConfigService;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @Description: API-图门系统配置信息为业务系统提供调用接口为同步图门配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@RestController
@RequestMapping("/api/iot/tplink/config")
@Slf4j
public class ApiTumsConfigController extends JeecgController<ApiTumsConfig, IApiTumsConfigService> {
@Autowired
private IApiTumsConfigService service;
/**
* 查询配置接口
*
* @return
*/
@GetMapping(value = "/getConfig")
public Result<JSONObject> getConfig() {
JSONObject json = service.getConfig();
return Result.OK(json);
}
/**
* 查询项目接口
*
* @return
*/
@GetMapping(value = "/getProject")
public Result<JSONObject> getProject() {
JSONObject json = service.getProject();
return Result.OK(json);
}
/**
* 查询分组接口
*
* @return
*/
@GetMapping(value = "/getRegion")
public Result<JSONObject> getRegion() {
JSONObject json = service.getRegion();
return Result.OK(json);
}
}

View File

@ -0,0 +1,32 @@
package com.nu.modules.iot.tplink.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description: 护理单元-物联管理-TPLINK项目信息
* @Author: jeecg-boot
* @Date: 2025-01-22
* @Version: V1.0
*/
@Data
@TableName("nu_iot_tplink_project")
public class ApiProjectInfo {
/**ID*/
private Integer id;
/**项目ID*/
private String projectId;
/**项目名称*/
private String projectName;
}

View File

@ -0,0 +1,36 @@
package com.nu.modules.iot.tplink.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
/**
* @Description: 护理单元-物联管理-TPLINK分组信息
* @Author: jeecg-boot
* @Date: 2025-02-20
* @Version: V1.0
*/
@Data
@TableName("nu_iot_tplink_region")
public class ApiRegionInfo{
/**ID*/
private Integer id;
/**分组ID*/
private String regionId;
/**分组名称*/
private String regionName;
/**项目ID*/
private String projectId;
/**分组类型*/
private String regionType;
}

View File

@ -0,0 +1,26 @@
package com.nu.modules.iot.tplink.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @Description: 护理单元-物联管理-TPLINK图门系统配置信息
* @Author: caolei
* @Date: 2025-03-31
* @Version: V1.0
*/
@Data
@TableName("nu_iot_tplink_tums_base")
public class ApiTumsConfig {
/**ID*/
private Integer id;
private String tumsUrl; //获取图门系统地址
private String tumsUsername; // 获取图门系统用户
private String tumsPassword; //获取图门系统密码
private String ftpIp; //回放视频转FTP上传IP
private String ftpPort; //回放视频转FTP上传端口
private String ftpUsername; //回放视频转FTP上传用户
private String ftpPassword; //回放视频转FTP上传密码
private String ftpUploadpath; //回放视频转FTP上传路径
private String updateDate; //更新时间
}

View File

@ -0,0 +1,21 @@
package com.nu.modules.iot.tplink.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nu.modules.iot.tplink.entity.ApiProjectInfo;
import com.nu.modules.iot.tplink.entity.ApiRegionInfo;
import com.nu.modules.iot.tplink.entity.ApiTumsConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* @Description: 护理单元-物联管理-配置信息
* @Author: jeecg-boot
* @Date: 2025-02-10
* @Version: V1.0
*/
@Mapper
public interface ApiTumsConfigMapper extends BaseMapper<ApiTumsConfig> {
ApiTumsConfig getConfig();
ApiProjectInfo getProject();
ApiRegionInfo getRegion();
}

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.iot.tplink.mapper.ApiTumsConfigMapper">
<select id="getConfig" parameterType="com.nu.modules.iot.tplink.entity.ApiTumsConfig" resultType="com.nu.modules.iot.tplink.entity.ApiTumsConfig">
select
id,
tums_url as tumsUrl,
tums_username as tumsUsername,
tums_password as tumsPassword,
ftp_ip as ftpIp,
ftp_port as ftpPort,
ftp_username as ftpUsername,
ftp_password as ftpPassword,
ftp_uploadpath as ftpUploadpath,
update_date as updateDate
from nu_iot_tplink_tums_base
order by id desc
limit 1
</select>
<select id="getProject" parameterType="com.nu.modules.iot.tplink.entity.ApiProjectInfo" resultType="com.nu.modules.iot.tplink.entity.ApiProjectInfo">
select id,
project_id as projectId,
project_name as projectName
from nu_iot_tplink_project
order by id desc
limit 1
</select>
<select id="getRegion" parameterType="com.nu.modules.iot.tplink.entity.ApiRegionInfo" resultType="com.nu.modules.iot.tplink.entity.ApiRegionInfo">
select id,
region_id as regionId,
region_name as regionName,
project_id as projectId,
region_type as regionType
from nu_iot_tplink_region
order by id desc
limit 1
</select>
</mapper>

View File

@ -0,0 +1,17 @@
package com.nu.modules.iot.tplink.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nu.modules.iot.tplink.entity.ApiTumsConfig;
/**
* @Description: 护理单元-物联管理-图门系统配置
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
public interface IApiTumsConfigService extends IService<ApiTumsConfig> {
JSONObject getConfig();
JSONObject getProject();
JSONObject getRegion();
}

View File

@ -0,0 +1,56 @@
package com.nu.modules.iot.tplink.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.iot.tplink.entity.ApiProjectInfo;
import com.nu.modules.iot.tplink.entity.ApiRegionInfo;
import com.nu.modules.iot.tplink.entity.ApiTumsConfig;
import com.nu.modules.iot.tplink.mapper.ApiTumsConfigMapper;
import com.nu.modules.iot.tplink.service.IApiTumsConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description: 护理单元-物联管理-图门系统配置
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Service
public class ApiTumsConfigServiceImpl extends ServiceImpl<ApiTumsConfigMapper, ApiTumsConfig> implements IApiTumsConfigService {
@Autowired
ApiTumsConfigMapper mapper;
@Override
public JSONObject getConfig(){
ApiTumsConfig entity = mapper.getConfig();
if (entity != null) {
return (JSONObject) JSONObject.toJSON(entity);
}else{
return null;
}
}
@Override
public JSONObject getProject(){
ApiProjectInfo entity = mapper.getProject();
if (entity != null) {
return (JSONObject) JSONObject.toJSON(entity);
}else{
return null;
}
}
@Override
public JSONObject getRegion(){
ApiRegionInfo entity = mapper.getRegion();
if (entity != null) {
return (JSONObject) JSONObject.toJSON(entity);
}else{
return null;
}
}
}

View File

@ -0,0 +1,39 @@
package com.nu.modules.iot.tq.api;
import com.alibaba.fastjson.JSONObject;
import com.nu.modules.iot.tq.entity.ApiTqConfig;
import com.nu.modules.iot.tq.service.IApiTqConfigService;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
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;
/**
* @Description: API-电水表配置信息为业务系统提供调用接口为同步配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@RestController
@RequestMapping("/api/iot/tq/config")
@Slf4j
public class ApiTqConfigController extends JeecgController<ApiTqConfig, IApiTqConfigService> {
@Autowired
private IApiTqConfigService service;
/**
* 查询配置接口
*
* @return
*/
@GetMapping(value = "/getConfig")
public Result<JSONObject> getConfig(@RequestParam("orgCode") String orgCode) {
JSONObject json = service.getConfig(orgCode);
return Result.OK(json);
}
}

View File

@ -0,0 +1,24 @@
package com.nu.modules.iot.tq.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @Description: 护理单元-物联管理-电水表-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Data
@TableName("nu_iot_tq_config")
public class ApiTqConfig {
/**ID*/
private Integer id;
private String requestUrl; //后台系统地址
private String authCode; //授权码
private String randomCode; //随机字符串签名时需要
private String notifyUrl; //通知地址
private String orgCode; //机构编码
private String updateDate; //更新时间
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.iot.tq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nu.modules.iot.tq.entity.ApiTqConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Mapper
public interface ApiTqConfigMapper extends BaseMapper<ApiTqConfig> {
ApiTqConfig getConfig(String orgCode);
}

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.iot.tq.mapper.ApiTqConfigMapper">
<select id="getConfig" parameterType="String" resultType="com.nu.modules.iot.tq.entity.ApiTqConfig">
select
id,
request_url as requestUrl,
auth_code as authCode,
random_code as randomCode,
notify_url as notifyUrl,
update_date as updateDate
from nu_iot_tq_config
where org_code = #{orgCode}
order by id asc
limit 1
</select>
</mapper>

View File

@ -0,0 +1,15 @@
package com.nu.modules.iot.tq.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nu.modules.iot.tq.entity.ApiTqConfig;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
public interface IApiTqConfigService extends IService<ApiTqConfig> {
JSONObject getConfig(String orgCode);
}

View File

@ -0,0 +1,29 @@
package com.nu.modules.iot.tq.service.xml;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.iot.tq.entity.ApiTqConfig;
import com.nu.modules.iot.tq.mapper.ApiTqConfigMapper;
import com.nu.modules.iot.tq.service.IApiTqConfigService;
import org.springframework.stereotype.Service;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Service
public class ApiTqConfigServiceImpl extends ServiceImpl<ApiTqConfigMapper, ApiTqConfig> implements IApiTqConfigService {
@Override
public JSONObject getConfig(String orgCode){
ApiTqConfig entity = baseMapper.getConfig(orgCode);
if (entity != null) {
return (JSONObject) JSONObject.toJSON(entity);
}else{
return null;
}
}
}

View File

@ -0,0 +1,38 @@
package com.nu.modules.iot.yiweilian.api;
import com.alibaba.fastjson.JSONObject;
import com.nu.modules.iot.yiweilian.entity.ApiYiweilianConfig;
import com.nu.modules.iot.yiweilian.service.IApiYiweilianConfigService;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
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.RestController;
/**
* @Description: API-温湿度计配置信息为业务系统提供调用接口为同步配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@RestController
@RequestMapping("/api/iot/yiweilian/config")
@Slf4j
public class ApiYiweilianConfigController extends JeecgController<ApiYiweilianConfig, IApiYiweilianConfigService> {
@Autowired
private IApiYiweilianConfigService service;
/**
* 查询配置接口
*
* @return
*/
@GetMapping(value = "/getConfig")
public Result<JSONObject> getConfig() {
JSONObject json = service.getConfig();
return Result.OK(json);
}
}

View File

@ -0,0 +1,21 @@
package com.nu.modules.iot.yiweilian.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Data
@TableName("nu_iot_yiweilian_config")
public class ApiYiweilianConfig {
/**ID*/
private Integer id;
private String requestUrl; //云平台系统地址
private String clientId; //识别用户的唯一标识
private String updateDate; //更新时间
}

View File

@ -0,0 +1,17 @@
package com.nu.modules.iot.yiweilian.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nu.modules.iot.yiweilian.entity.ApiYiweilianConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Mapper
public interface ApiYiweilianConfigMapper extends BaseMapper<ApiYiweilianConfig> {
ApiYiweilianConfig getConfig();
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.iot.yiweilian.mapper.ApiYiweilianConfigMapper">
<select id="getConfig" parameterType="com.nu.modules.iot.yiweilian.entity.ApiYiweilianConfig" resultType="com.nu.modules.iot.yiweilian.entity.ApiYiweilianConfig">
select
id,
request_url as requestUrl,
client_id as clientId,
update_date as updateDate
from nu_iot_yiweilian_config
order by id desc
limit 1
</select>
</mapper>

View File

@ -0,0 +1,15 @@
package com.nu.modules.iot.yiweilian.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nu.modules.iot.yiweilian.entity.ApiYiweilianConfig;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
public interface IApiYiweilianConfigService extends IService<ApiYiweilianConfig> {
JSONObject getConfig();
}

View File

@ -0,0 +1,30 @@
package com.nu.modules.iot.yiweilian.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.iot.yiweilian.entity.ApiYiweilianConfig;
import com.nu.modules.iot.yiweilian.mapper.ApiYiweilianConfigMapper;
import com.nu.modules.iot.yiweilian.service.IApiYiweilianConfigService;
import org.jeecg.common.util.DateUtils;
import org.springframework.stereotype.Service;
/**
* @Description: 护理单元-物联管理-易维联-配置信息
* @Author: caolei
* @Date: 2025-08-08
* @Version: V1.0
*/
@Service
public class ApiYiweilianConfigServiceImpl extends ServiceImpl<ApiYiweilianConfigMapper, ApiYiweilianConfig> implements IApiYiweilianConfigService {
@Override
public JSONObject getConfig(){
ApiYiweilianConfig entity = baseMapper.getConfig();
if (entity != null) {
return (JSONObject) JSONObject.toJSON(entity);
}else{
return null;
}
}
}

View File

@ -83,6 +83,9 @@ public class ShiroConfig {
}
// 配置不会被拦截的链接 顺序判断
filterChainDefinitionMap.put("/api/iot/tplink/config/**", "anon"); //图门系统配置信息同步API
filterChainDefinitionMap.put("/api/iot/tq/config/**", "anon"); //电水表配置信息同步API
filterChainDefinitionMap.put("/api/iot/yiweilian/config/**", "anon"); //温湿度计配置信息同步API
filterChainDefinitionMap.put("/iot/tq/api/electricityMeter/**", "anon"); //电表回调
filterChainDefinitionMap.put("/iot/tq/api/waterMeter/**", "anon"); //水表回调
filterChainDefinitionMap.put("/sys/cas/client/validateLogin", "anon"); //cas验证登录