tplink摄像头机构增删改同步

This commit is contained in:
曹磊 2025-03-20 09:27:23 +08:00
parent 16c617c839
commit 33aae96b73
8 changed files with 230 additions and 39 deletions

View File

@ -26,6 +26,10 @@ public enum ApiEnum {
ADD_PROJECT("/tums/resource/v2/addProject","添加项目信息"), ADD_PROJECT("/tums/resource/v2/addProject","添加项目信息"),
EDIT_PROJECT("/tums/resource/v2/editProject","修改项目信息"), EDIT_PROJECT("/tums/resource/v2/editProject","修改项目信息"),
DELETE_PROJECT("/tums/resource/v2/deleteProject","删除项目信息"), DELETE_PROJECT("/tums/resource/v2/deleteProject","删除项目信息"),
ADD_REGION("/tums/resource/v2/addRegion","添加区域信息"),
EDIT_REGION("/tums/resource/v2/editRegion","修改区域信息"),
SWITCH_REGION_ORDER("/tums/resource/v2/switchRegionOrder","移动区域信息"),
DELETE_REGION("/tums/resource/v2/deleteRegion","删除区域信息"),
GET_ROOT_REGIONS("/tums/resource/v2/getRootRegions","获取区域列表"), GET_ROOT_REGIONS("/tums/resource/v2/getRootRegions","获取区域列表"),
GET_DEVICE_LIST("/tums/deviceManager/v2/getDeviceList","获取设备列表"), GET_DEVICE_LIST("/tums/deviceManager/v2/getDeviceList","获取设备列表"),
MODIFY_DEVICE_DETAILS("/tums/deviceManager/v1/modifyDeviceDetails","修改设备信息"), MODIFY_DEVICE_DETAILS("/tums/deviceManager/v1/modifyDeviceDetails","修改设备信息"),

View File

@ -1,6 +1,6 @@
/** /**
* Versionv1.0.0 , * Versionv1.0.0 ,
* DescriptionTP-LINK厂家项目信息相关操作 * DescriptionTP-LINK厂家机构信息相关操作
* CreateDate2025-01-22 09:00:00 * CreateDate2025-01-22 09:00:00
* Author曹磊 * Author曹磊
*/ */
@ -8,7 +8,6 @@ package com.nu.modules.tplink.project.controller;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.nu.modules.tplink.alarm.entity.AlarmLog;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -27,12 +26,12 @@ import io.swagger.annotations.ApiOperation;
import java.util.List; import java.util.List;
/** /**
* @Description: 护理单元-物联管理-TPLINK项目信息 * @Description: 护理单元-物联管理-TPLINK机构信息
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-01-22 * @Date: 2025-01-22
* @Version: V1.0 * @Version: V1.0
*/ */
@Api(tags="护理单元-物联管理-TPLINK项目信息") @Api(tags="护理单元-物联管理-TPLINK机构信息")
@RestController @RestController
@RequestMapping("/iot/projectInfo") @RequestMapping("/iot/projectInfo")
@Slf4j @Slf4j
@ -49,8 +48,8 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
* @param req * @param req
* @return * @return
*/ */
//@AutoLog(value = "护理单元-物联管理-TPLINK项目信息-分页列表查询") //@AutoLog(value = "护理单元-物联管理-TPLINK机构信息-分页列表查询")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-分页列表查询", notes="护理单元-物联管理-TPLINK项目信息-分页列表查询") @ApiOperation(value="护理单元-物联管理-TPLINK机构信息-分页列表查询", notes="护理单元-物联管理-TPLINK机构信息-分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<ProjectInfo>> queryPageList(ProjectInfo projectInfo, public Result<IPage<ProjectInfo>> queryPageList(ProjectInfo projectInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@ -62,7 +61,7 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
} }
/** /**
* 同步项目信息 * 同步机构信息
* *
* @return * @return
*/ */
@ -72,7 +71,7 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
} }
/** /**
* 异步查询项目list * 异步查询机构list
* @return * @return
*/ */
@RequestMapping(value = "/queryRegionTreeSync", method = RequestMethod.GET) @RequestMapping(value = "/queryRegionTreeSync", method = RequestMethod.GET)
@ -96,8 +95,8 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
* @param projectInfo * @param projectInfo
* @return * @return
*/ */
// @AutoLog(value = "护理单元-物联管理-TPLINK项目信息-添加") // @AutoLog(value = "护理单元-物联管理-TPLINK机构信息-添加")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-添加", notes="护理单元-物联管理-TPLINK项目信息-添加") @ApiOperation(value="护理单元-物联管理-TPLINK机构信息-添加", notes="护理单元-物联管理-TPLINK机构信息-添加")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<String> add(@RequestBody ProjectInfo projectInfo) { public Result<String> add(@RequestBody ProjectInfo projectInfo) {
return service.addProject(projectInfo); return service.addProject(projectInfo);
@ -109,8 +108,8 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
* @param projectInfo * @param projectInfo
* @return * @return
*/ */
// @AutoLog(value = "护理单元-物联管理-TPLINK项目信息-编辑") // @AutoLog(value = "护理单元-物联管理-TPLINK机构信息-编辑")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-编辑", notes="护理单元-物联管理-TPLINK项目信息-编辑") @ApiOperation(value="护理单元-物联管理-TPLINK机构信息-编辑", notes="护理单元-物联管理-TPLINK机构信息-编辑")
@PostMapping(value = "/edit") @PostMapping(value = "/edit")
public Result<String> edit(@RequestBody ProjectInfo projectInfo) { public Result<String> edit(@RequestBody ProjectInfo projectInfo) {
return service.editProject(projectInfo); return service.editProject(projectInfo);
@ -122,10 +121,10 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
* @param projectInfo * @param projectInfo
* @return * @return
*/ */
// @AutoLog(value = "护理单元-物联管理-TPLINK项目信息-编辑") // @AutoLog(value = "护理单元-物联管理-TPLINK机构信息-编辑")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-通过id删除", notes="护理单元-物联管理-TPLINK项目信息-通过id删除") @ApiOperation(value="护理单元-物联管理-TPLINK机构信息-通过id删除", notes="护理单元-物联管理-TPLINK机构信息-通过id删除")
@PostMapping(value = "/delete") @PostMapping(value = "/delete")
public Result<String> delete(@RequestBody ProjectInfo projectInfo) { public Result<String> deleteProject(@RequestBody ProjectInfo projectInfo) {
return service.deleteProject(projectInfo); return service.deleteProject(projectInfo);
} }
@ -135,8 +134,8 @@ public class ProjectInfoController extends JeecgController<ProjectInfo, IProject
* @param id * @param id
* @return * @return
*/ */
//@AutoLog(value = "护理单元-物联管理-TPLINK项目信息-通过id查询") //@AutoLog(value = "护理单元-物联管理-TPLINK机构信息-通过id查询")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-通过id查询", notes="护理单元-物联管理-TPLINK项目信息-通过id查询") @ApiOperation(value="护理单元-物联管理-TPLINK机构信息-通过id查询", notes="护理单元-物联管理-TPLINK机构信息-通过id查询")
@GetMapping(value = "/queryById") @GetMapping(value = "/queryById")
public Result<ProjectInfo> queryById(@RequestParam(name="id",required=true) String id) { public Result<ProjectInfo> queryById(@RequestParam(name="id",required=true) String id) {
ProjectInfo projectInfo = service.getById(id); ProjectInfo projectInfo = service.getById(id);

View File

@ -44,8 +44,8 @@ public class RegionInfoController extends JeecgController<RegionInfo, IRegionInf
* @param req * @param req
* @return * @return
*/ */
//@AutoLog(value = "护理单元-物联管理-TPLINK项目信息-分页列表查询") //@AutoLog(value = "护理单元-物联管理-TPLINK区域信息-分页列表查询")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-分页列表查询", notes="护理单元-物联管理-TPLINK项目信息-分页列表查询") @ApiOperation(value="护理单元-物联管理-TPLINK区域信息-分页列表查询", notes="护理单元-物联管理-TPLINK区域信息-分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<RegionInfo>> queryPageList(RegionInfo regionInfo, public Result<IPage<RegionInfo>> queryPageList(RegionInfo regionInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@ -86,4 +86,60 @@ public class RegionInfoController extends JeecgController<RegionInfo, IRegionInf
return result; return result;
} }
/**
* 添加
*
* @param regionInfo
* @return
*/
// @AutoLog(value = "护理单元-物联管理-TPLINK区域信息-添加")
@ApiOperation(value="护理单元-物联管理-TPLINK区域信息-添加", notes="护理单元-物联管理-TPLINK区域信息-添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody RegionInfo regionInfo) {
return service.addRegion(regionInfo);
}
/**
* 编辑
*
* @param regionInfo
* @return
*/
// @AutoLog(value = "护理单元-物联管理-TPLINK区域信息-编辑")
@ApiOperation(value="护理单元-物联管理-TPLINK区域信息-编辑", notes="护理单元-物联管理-TPLINK区域信息-编辑")
@PostMapping(value = "/edit")
public Result<String> edit(@RequestBody RegionInfo regionInfo) {
return service.editRegion(regionInfo);
}
/**
* 通过id删除
*
* @param regionInfo
* @return
*/
// @AutoLog(value = "护理单元-物联管理-TPLINK区域信息-编辑")
@ApiOperation(value="护理单元-物联管理-TPLINK区域信息-通过id删除", notes="护理单元-物联管理-TPLINK区域信息-通过id删除")
@PostMapping(value = "/delete")
public Result<String> deleteRegion(@RequestBody RegionInfo regionInfo) {
return service.deleteRegion(regionInfo);
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "护理单元-物联管理-TPLINK区域信息-通过id查询")
@ApiOperation(value="护理单元-物联管理-TPLINK区域信息-通过id查询", notes="护理单元-物联管理-TPLINK区域信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<RegionInfo> queryById(@RequestParam(name="id",required=true) String id) {
RegionInfo regionInfo = service.getById(id);
if(regionInfo==null) {
return Result.error("未找到对应数据");
}
return Result.OK(regionInfo);
}
} }

View File

@ -20,5 +20,6 @@ public interface RegionInfoMapper extends BaseMapper<RegionInfo> {
IPage<RegionInfo> findPage(Page<RegionInfo> page, @Param("params") RegionInfo regionInfo); IPage<RegionInfo> findPage(Page<RegionInfo> page, @Param("params") RegionInfo regionInfo);
int add(Map<String, String> map); int add(Map<String, String> map);
int updateById(Map<String, String> map); int updateById(Map<String, String> map);
int deleteByRegionId(String regionId);
List<RegionInfo> queryTreeListByPid(String parentId,String projectId); List<RegionInfo> queryTreeListByPid(String parentId,String projectId);
} }

View File

@ -4,22 +4,24 @@
<select id="getByRegionId" parameterType="java.util.Map" resultType="com.nu.modules.tplink.region.entity.RegionInfo"> <select id="getByRegionId" parameterType="java.util.Map" resultType="com.nu.modules.tplink.region.entity.RegionInfo">
select id, select id,
region_id as regionId, a.region_id as regionId,
region_name as regionName, a.region_name as regionName,
region_level as regionLevel, a.region_level as regionLevel,
sort, a.sort,
parent_id as parentId, a.parent_id as parentId,
project_id as projectId, ifnull(p.region_name,'无') as parentName,
sys_type as sysType, a.project_id as projectId,
stream_way as streamWay, a.sys_type as sysType,
has_children as hasChildren, a.stream_way as streamWay,
region_type as regionType, a.has_children as hasChildren,
update_time as updateTime, a.region_type as regionType,
media_server_id as mediaServerId, a.update_time as updateTime,
backup_media_server_id as backupMediaServerId, a.media_server_id as mediaServerId,
bind_type as bindType a.backup_media_server_id as backupMediaServerId,
from nu_iot_tplink_region a.bind_type as bindType
where region_id = #{regionId} from nu_iot_tplink_region a,
left join nu_iot_tplink_region p on a.parent_id = p.region_id
where a.region_id = #{regionId}
</select> </select>
<select id="findList" parameterType="com.nu.modules.tplink.region.entity.RegionInfo" resultType="com.nu.modules.tplink.region.entity.RegionInfo"> <select id="findList" parameterType="com.nu.modules.tplink.region.entity.RegionInfo" resultType="com.nu.modules.tplink.region.entity.RegionInfo">
@ -29,8 +31,9 @@
a.region_level as regionLevel, a.region_level as regionLevel,
a.sort, a.sort,
a.parent_id as parentId, a.parent_id as parentId,
b.project_name as projectName, ifnull(p.region_name,'无') as parentName,
a.project_id as projectId, a.project_id as projectId,
b.project_name as projectName,
a.sys_type as sysType, a.sys_type as sysType,
a.stream_way as streamWay, a.stream_way as streamWay,
a.has_children as hasChildren, a.has_children as hasChildren,
@ -41,6 +44,7 @@
a.bind_type as bindType a.bind_type as bindType
from nu_iot_tplink_region a from nu_iot_tplink_region a
left join nu_iot_tplink_project b on a.project_id = b.project_id left join nu_iot_tplink_project b on a.project_id = b.project_id
left join nu_iot_tplink_region p on a.parent_id = p.region_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
and a.project_id = #{projectId} and a.project_id = #{projectId}
@ -55,8 +59,9 @@
a.region_level as regionLevel, a.region_level as regionLevel,
a.sort, a.sort,
a.parent_id as parentId, a.parent_id as parentId,
b.project_name as projectName, ifnull(p.region_name,'无') as parentName,
a.project_id as projectId, a.project_id as projectId,
b.project_name as projectName,
a.sys_type as sysType, a.sys_type as sysType,
a.stream_way as streamWay, a.stream_way as streamWay,
a.has_children as hasChildren, a.has_children as hasChildren,
@ -67,6 +72,7 @@
a.bind_type as bindType a.bind_type as bindType
from nu_iot_tplink_region a from nu_iot_tplink_region a
left join nu_iot_tplink_project b on a.project_id = b.project_id left join nu_iot_tplink_project b on a.project_id = b.project_id
left join nu_iot_tplink_region p on a.parent_id = p.region_id
<where> <where>
<if test="params.projectId != null and params.projectId != ''"> <if test="params.projectId != null and params.projectId != ''">
and a.project_id = #{params.projectId} and a.project_id = #{params.projectId}
@ -129,6 +135,10 @@
where id = #{id} where id = #{id}
</update> </update>
<update id="deleteByRegionId">
delete from nu_iot_tplink_region where region_id = #{regionId}
</update>
<select id="queryTreeListByPid" parameterType="com.nu.modules.tplink.region.entity.RegionInfo" resultType="com.nu.modules.tplink.region.entity.RegionInfo"> <select id="queryTreeListByPid" parameterType="com.nu.modules.tplink.region.entity.RegionInfo" resultType="com.nu.modules.tplink.region.entity.RegionInfo">
select a.id, select a.id,
a.region_id as regionId, a.region_id as regionId,

View File

@ -21,4 +21,8 @@ public interface IRegionInfoService extends IService<RegionInfo> {
List<RegionInfo> findList(RegionInfo regionInfo); List<RegionInfo> findList(RegionInfo regionInfo);
IPage<RegionInfo> findPage(Page<RegionInfo> page, RegionInfo regionInfo); IPage<RegionInfo> findPage(Page<RegionInfo> page, RegionInfo regionInfo);
List<RegionTreeModel> queryTreeListByPid(String parentId,String projectId); List<RegionTreeModel> queryTreeListByPid(String parentId,String projectId);
Result<String> addRegion(RegionInfo regionInfo);
Result<String> editRegion(RegionInfo regionInfo);
Result<String> deleteRegion(RegionInfo regionInfo);
} }

View File

@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import com.nu.modules.tplink.project.entity.ProjectInfo;
import com.nu.modules.tplink.project.mapper.ProjectInfoMapper; import com.nu.modules.tplink.project.mapper.ProjectInfoMapper;
import com.nu.modules.tplink.project.model.ProjectTreeModel;
import com.nu.modules.tplink.region.entity.RegionInfo; import com.nu.modules.tplink.region.entity.RegionInfo;
import com.nu.modules.tplink.region.mapper.RegionInfoMapper; import com.nu.modules.tplink.region.mapper.RegionInfoMapper;
import com.nu.modules.tplink.region.model.RegionTreeModel; import com.nu.modules.tplink.region.model.RegionTreeModel;
@ -143,4 +141,71 @@ public class RegionInfoServiceImpl extends ServiceImpl<RegionInfoMapper, RegionI
return records; return records;
} }
/**
* 添加
*
*/
@Override
public Result<String> addRegion(RegionInfo regionInfo){
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"projectId\"").append(":").append("\"").append(regionInfo.getProjectId()).append("\",");
sb.append("\"parentId\"").append(":").append("\"").append(regionInfo.getParentId()).append("\",");
sb.append("\"regionName\"").append(":").append("\"").append(regionInfo.getRegionName()).append("\",");
sb.append("\"sysType\"").append(":").append("3");
sb.append("}");
String jsonResponse = tumsApi.addRegion(sb.toString());
JSONObject jsonObject = new JSONObject(jsonResponse);
String errorCode = jsonObject.getStr("error_code");
if(errorCode.equals("0")){
sync(regionInfo);
return Result.OK("区域添加成功!");
}else{
return Result.error(jsonObject.getStr("msg"));
}
}
/**
* 编辑
*
*/
@Override
public Result<String> editRegion(RegionInfo regionInfo){
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"regionId\"").append(":").append("\"").append(regionInfo.getRegionId()).append("\",");
sb.append("\"regionName\"").append(":").append("\"").append(regionInfo.getRegionName()).append("\"");
sb.append("}");
String jsonResponse = tumsApi.editRegion(sb.toString());
JSONObject jsonObject = new JSONObject(jsonResponse);
String errorCode = jsonObject.getStr("error_code");
if(errorCode.equals("0")){
sync(regionInfo);
return Result.OK("区域编辑成功!");
}else{
return Result.error(jsonObject.getStr("msg"));
}
}
/**
* 通过id删除
*
*/
@Override
public Result<String> deleteRegion(RegionInfo regionInfo){
StringBuffer sb = new StringBuffer();
sb.append("{");
sb.append("\"regionId\"").append(":").append("\"").append(regionInfo.getRegionId()).append("\"");
sb.append("}");
String jsonResponse = tumsApi.deleteRegion(sb.toString());
JSONObject jsonObject = new JSONObject(jsonResponse);
String errorCode = jsonObject.getStr("error_code");
if(errorCode.equals("0")||errorCode.equals("-82401")){
baseMapper.deleteByRegionId(regionInfo.getRegionId());
return Result.OK("区域删除成功!");
}else{
return Result.error(jsonObject.getStr("msg"));
}
}
} }

View File

@ -135,6 +135,58 @@ public class TumsApi {
return jsonResponse; return jsonResponse;
} }
/**
* 添加区域信息
* @param jsonRequest
* @return
*/
public String addRegion(String jsonRequest){
this.createTumsClient();
log.info("addRegion:request:{}",jsonRequest);
String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.ADD_REGION.getValue());
log.info("addRegion:response:{}",jsonResponse);
return jsonResponse;
}
/**
* 修改区域信息
* @param jsonRequest
* @return
*/
public String editRegion(String jsonRequest){
this.createTumsClient();
log.info("editRegion:request:{}",jsonRequest);
String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.EDIT_REGION.getValue());
log.info("editRegion:response:{}",jsonResponse);
return jsonResponse;
}
/**
* 移动区域信息
* @param jsonRequest
* @return
*/
public String switchRegionOrder(String jsonRequest){
this.createTumsClient();
log.info("switchRegionOrder:request:{}",jsonRequest);
String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.SWITCH_REGION_ORDER.getValue());
log.info("switchRegionOrder:response:{}",jsonResponse);
return jsonResponse;
}
/**
* 删除区域信息
* @param jsonRequest
* @return
*/
public String deleteRegion(String jsonRequest){
this.createTumsClient();
log.info("deleteRegion:request:{}",jsonRequest);
String jsonResponse = tumsClient.request(jsonRequest, ApiEnum.DELETE_REGION.getValue());
log.info("deleteRegion:response:{}",jsonResponse);
return jsonResponse;
}
/** /**
* 获取区域列表 * 获取区域列表
* @param jsonRequest * @param jsonRequest