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","添加项目信息"),
EDIT_PROJECT("/tums/resource/v2/editProject","修改项目信息"),
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_DEVICE_LIST("/tums/deviceManager/v2/getDeviceList","获取设备列表"),
MODIFY_DEVICE_DETAILS("/tums/deviceManager/v1/modifyDeviceDetails","修改设备信息"),

View File

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

View File

@ -44,8 +44,8 @@ public class RegionInfoController extends JeecgController<RegionInfo, IRegionInf
* @param req
* @return
*/
//@AutoLog(value = "护理单元-物联管理-TPLINK项目信息-分页列表查询")
@ApiOperation(value="护理单元-物联管理-TPLINK项目信息-分页列表查询", notes="护理单元-物联管理-TPLINK项目信息-分页列表查询")
//@AutoLog(value = "护理单元-物联管理-TPLINK区域信息-分页列表查询")
@ApiOperation(value="护理单元-物联管理-TPLINK区域信息-分页列表查询", notes="护理单元-物联管理-TPLINK区域信息-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<RegionInfo>> queryPageList(RegionInfo regionInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@ -86,4 +86,60 @@ public class RegionInfoController extends JeecgController<RegionInfo, IRegionInf
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);
int add(Map<String, String> map);
int updateById(Map<String, String> map);
int deleteByRegionId(String regionId);
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,
region_id as regionId,
region_name as regionName,
region_level as regionLevel,
sort,
parent_id as parentId,
project_id as projectId,
sys_type as sysType,
stream_way as streamWay,
has_children as hasChildren,
region_type as regionType,
update_time as updateTime,
media_server_id as mediaServerId,
backup_media_server_id as backupMediaServerId,
bind_type as bindType
from nu_iot_tplink_region
where region_id = #{regionId}
a.region_id as regionId,
a.region_name as regionName,
a.region_level as regionLevel,
a.sort,
a.parent_id as parentId,
ifnull(p.region_name,'无') as parentName,
a.project_id as projectId,
a.sys_type as sysType,
a.stream_way as streamWay,
a.has_children as hasChildren,
a.region_type as regionType,
a.update_time as updateTime,
a.media_server_id as mediaServerId,
a.backup_media_server_id as backupMediaServerId,
a.bind_type as bindType
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 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.sort,
a.parent_id as parentId,
b.project_name as projectName,
ifnull(p.region_name,'无') as parentName,
a.project_id as projectId,
b.project_name as projectName,
a.sys_type as sysType,
a.stream_way as streamWay,
a.has_children as hasChildren,
@ -41,6 +44,7 @@
a.bind_type as bindType
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_region p on a.parent_id = p.region_id
<where>
<if test="projectId != null and projectId != ''">
and a.project_id = #{projectId}
@ -55,8 +59,9 @@
a.region_level as regionLevel,
a.sort,
a.parent_id as parentId,
b.project_name as projectName,
ifnull(p.region_name,'无') as parentName,
a.project_id as projectId,
b.project_name as projectName,
a.sys_type as sysType,
a.stream_way as streamWay,
a.has_children as hasChildren,
@ -67,6 +72,7 @@
a.bind_type as bindType
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_region p on a.parent_id = p.region_id
<where>
<if test="params.projectId != null and params.projectId != ''">
and a.project_id = #{params.projectId}
@ -129,6 +135,10 @@
where id = #{id}
</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 a.id,
a.region_id as regionId,

View File

@ -21,4 +21,8 @@ public interface IRegionInfoService extends IService<RegionInfo> {
List<RegionInfo> findList(RegionInfo regionInfo);
IPage<RegionInfo> findPage(Page<RegionInfo> page, RegionInfo regionInfo);
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 lombok.extern.slf4j.Slf4j;
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.model.ProjectTreeModel;
import com.nu.modules.tplink.region.entity.RegionInfo;
import com.nu.modules.tplink.region.mapper.RegionInfoMapper;
import com.nu.modules.tplink.region.model.RegionTreeModel;
@ -143,4 +141,71 @@ public class RegionInfoServiceImpl extends ServiceImpl<RegionInfoMapper, RegionI
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;
}
/**
* 添加区域信息
* @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