das接口新增

This commit is contained in:
chenhaojie 2024-07-10 15:19:59 +08:00
parent c4b3973727
commit 3807c2c7e6
8 changed files with 371 additions and 23 deletions

View File

@ -5,9 +5,7 @@ import com.das.common.constant.SysAuthorityIds;
import com.das.common.exceptions.ServiceException;
import com.das.common.result.R;
import com.das.common.utils.PageDataInfo;
import com.das.modules.equipment.domain.dto.SysIotModelDto;
import com.das.modules.equipment.domain.vo.SysEquipmentVo;
import com.das.modules.equipment.domain.vo.SysIotModelVo;
import com.das.modules.node.domain.dto.SysCommunicationLinkDto;
import com.das.modules.node.domain.dto.SysNodeDto;
import com.das.modules.node.domain.vo.SysCommunicationLinkVo;
import com.das.modules.node.domain.vo.SysNodeVo;
@ -45,7 +43,7 @@ public class SysNodeController {
//判断是否有权限
boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
if(!hasPermission){
return R.fail("没有设备管理权限");
return R.fail("没有节点管理权限");
}
return R.success(sysNodeService.createSysNode(sysNodeDto));
}
@ -55,10 +53,10 @@ public class SysNodeController {
public R<SysNodeVo> updateSysNode(@RequestBody SysNodeDto sysNodeDto) {
//判断是否有权限
// boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
// if(!hasPermission){
// return R.fail("没有设备管理权限");
// }
boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
if(!hasPermission){
return R.fail("没有节点管理权限");
}
return R.success(sysNodeService.updateSysNode(sysNodeDto));
}
@ -67,10 +65,10 @@ public class SysNodeController {
public R<Void> deleteSysNode(@RequestBody SysNodeDto sysNodeDto) {
//判断是否有权限
// boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
// if(!hasPermission){
// return R.fail("没有设备管理权限");
// }
boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
if(!hasPermission){
return R.fail("没有节点管理权限");
}
if (sysNodeDto.getId() == null) {
throw new ServiceException("参数缺失");
}
@ -84,5 +82,53 @@ public class SysNodeController {
return R.success();
}
/** 获取链路列表 */
@PostMapping("/link/list")
public PageDataInfo<SysCommunicationLinkVo> querySysCommunicationLinkList(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) {
return sysNodeService.querySysCommunicationLinkList(sysCommunicationLinkDto);
}
/** 新增链路 */
@PostMapping("/link/add")
public R<SysCommunicationLinkVo> createSysCommunicationLink(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) {
//判断是否有权限
boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
if(!hasPermission){
return R.fail("没有节点管理权限");
}
return R.success(sysNodeService.createSysCommunicationLink(sysCommunicationLinkDto));
}
/** 修改链路 */
@PostMapping("/link/update")
public R<SysCommunicationLinkVo> updateSysCommunicationLink(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) {
//判断是否有权限
boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
if(!hasPermission){
return R.fail("没有节点管理权限");
}
return R.success(sysNodeService.updateSysCommunicationLink(sysCommunicationLinkDto));
}
/** 删除链路 */
@PostMapping("/link/delete")
public R<SysCommunicationLinkVo> deleteSysCommunicationLink(@RequestBody SysCommunicationLinkDto sysCommunicationLinkDto) {
//判断是否有权限
boolean hasPermission = StpUtil.hasPermission(SysAuthorityIds.SYS_AUTHORITY_ID_DEVICE_MGR.toString());
if(!hasPermission){
return R.fail("没有节点管理权限");
}
if (sysCommunicationLinkDto.getId() == null) {
throw new ServiceException("参数缺失");
}
sysNodeService.deleteSysCommunicationLink(sysCommunicationLinkDto.getId());
return R.success();
}
}

View File

@ -0,0 +1,47 @@
package com.das.modules.node.domain.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysCommunicationLinkDto implements Serializable {
/**
* 链路id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 节点id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long nodeId;
private String linkName;
/**
* 通讯协议
*/
private Integer protocol;
/**
* 协议参数
*/
private String params;
private Integer revision;
/**
* 分页大小
*/
private Integer pageSize;
/**
* 当前页数
*/
private Integer pageNum;
}

View File

@ -2,11 +2,14 @@ package com.das.modules.node.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.das.modules.node.domain.vo.SysCommunicationLinkVo;
import com.das.modules.node.entity.SysCommunicationLink;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface SysCommunicationLinkMapper extends BaseMapper<SysCommunicationLink> {
IPage<SysCommunicationLinkVo> querySysCommunicationLinkList(IPage<SysCommunicationLinkVo> page, @Param("id")Long id);
}

View File

@ -1,6 +1,9 @@
package com.das.modules.node.service;
import com.das.common.utils.PageDataInfo;
import com.das.modules.node.domain.dto.SysCommunicationLinkDto;
import com.das.modules.node.domain.dto.SysNodeDto;
import com.das.modules.node.domain.vo.SysCommunicationLinkVo;
import com.das.modules.node.domain.vo.SysNodeVo;
import java.util.List;
@ -14,4 +17,13 @@ public interface SysNodeService {
void deleteSysNode(Long id);
PageDataInfo<SysCommunicationLinkVo> querySysCommunicationLinkList(SysCommunicationLinkDto sysCommunicationLinkDto);
SysCommunicationLinkVo createSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto);
SysCommunicationLinkVo updateSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto);
void deleteSysCommunicationLink(Long id);
}

View File

@ -1,21 +1,22 @@
package com.das.modules.node.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.das.common.config.SessionUtil;
import com.das.common.exceptions.ServiceException;
import com.das.common.utils.BeanCopyUtils;
import com.das.common.utils.PageDataInfo;
import com.das.common.utils.PageQuery;
import com.das.common.utils.SequenceUtils;
import com.das.modules.auth.domain.vo.SysUserVo;
import com.das.modules.auth.entity.SysOrg;
import com.das.modules.auth.mapper.SysOrgMapper;
import com.das.modules.equipment.domain.vo.SysEquipmentVo;
import com.das.modules.equipment.domain.vo.SysIotModelVo;
import com.das.modules.equipment.entity.SysEquipment;
import com.das.modules.equipment.entity.SysIotModel;
import com.das.modules.node.domain.dto.SysCommunicationLinkDto;
import com.das.modules.node.domain.dto.SysNodeDto;
import com.das.modules.node.domain.vo.SysCommunicationLinkVo;
import com.das.modules.node.domain.vo.SysNodeVo;
import com.das.modules.node.entity.SysCommunicationLink;
import com.das.modules.node.entity.SysNode;
import com.das.modules.node.mapper.SysCommunicationLinkMapper;
import com.das.modules.node.mapper.SysNodeMapper;
import com.das.modules.node.service.SysNodeService;
import org.springframework.beans.factory.annotation.Autowired;
@ -32,6 +33,10 @@ public class SysNodeServiceImpl implements SysNodeService {
@Autowired
private SysNodeMapper sysNodeMapper;
@Autowired
private SysCommunicationLinkMapper sysCommunicationLinkMapper;
@Autowired
private SysOrgMapper sysOrgMapper;
@ -68,10 +73,10 @@ public class SysNodeServiceImpl implements SysNodeService {
public SysNodeVo updateSysNode(SysNodeDto sysNodeDto) {
SysNode sysNode = new SysNode();
BeanCopyUtils.copy(sysNodeDto,sysNode);
// SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
sysNode.setUpdatedTime(new Date());
sysNode.setUpdatedBy("测试");
// sysIotModel.setUpdatedBy("sysUserVo.getAccount()");
// sysNode.setUpdatedBy("测试");
sysNode.setUpdatedBy(sysUserVo.getAccount());
sysNodeMapper.updateById(sysNode);
SysNodeVo sysNodeVo = new SysNodeVo();
// 根据org_id查询组织名称
@ -86,4 +91,61 @@ public class SysNodeServiceImpl implements SysNodeService {
// 判断节点下是否有链路有就不能删除
sysNodeMapper.deleteById(id);
}
@Override
public PageDataInfo<SysCommunicationLinkVo> querySysCommunicationLinkList(SysCommunicationLinkDto sysCommunicationLinkDto) {
PageQuery pageQuery = new PageQuery();
pageQuery.setPageNum(sysCommunicationLinkDto.getPageNum());
pageQuery.setPageSize(sysCommunicationLinkDto.getPageSize());
IPage<SysCommunicationLinkVo> iPage = sysCommunicationLinkMapper.querySysCommunicationLinkList(pageQuery.build(), sysCommunicationLinkDto.getNodeId());
return PageDataInfo.build(iPage.getRecords(), iPage.getTotal());
}
@Override
public SysCommunicationLinkVo createSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto) {
SysCommunicationLink sysCommunicationLink = new SysCommunicationLink();
BeanCopyUtils.copy(sysCommunicationLinkDto,sysCommunicationLink);
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
sysCommunicationLink.setId(SequenceUtils.generateId());
sysCommunicationLink.setCreatedTime(new Date());
sysCommunicationLink.setUpdatedTime(new Date());
sysCommunicationLink.setCreatedBy(sysUserVo.getAccount());
sysCommunicationLink.setUpdatedBy(sysUserVo.getAccount());
// sysCommunicationLink.setCreatedBy("测试");
// sysCommunicationLink.setUpdatedBy("测试");
sysCommunicationLink.setRevision(1);
sysCommunicationLinkMapper.insert(sysCommunicationLink);
SysCommunicationLinkVo sysCommunicationLinkVo = new SysCommunicationLinkVo();
// 根据org_id查询组织名称
SysNode sysNode = sysNodeMapper.selectById(sysCommunicationLinkDto.getNodeId());
BeanCopyUtils.copy(sysCommunicationLink,sysCommunicationLinkVo);
sysCommunicationLinkVo.setNodeName(sysNode.getNodeName());
return sysCommunicationLinkVo;
}
@Override
public SysCommunicationLinkVo updateSysCommunicationLink(SysCommunicationLinkDto sysCommunicationLinkDto) {
SysCommunicationLink sysCommunicationLink = new SysCommunicationLink();
BeanCopyUtils.copy(sysCommunicationLinkDto,sysCommunicationLink);
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
sysCommunicationLink.setUpdatedTime(new Date());
sysCommunicationLink.setUpdatedBy(sysUserVo.getAccount());
// sysCommunicationLink.setUpdatedBy("测试");
sysCommunicationLinkMapper.updateById(sysCommunicationLink);
SysCommunicationLinkVo sysCommunicationLinkVo = new SysCommunicationLinkVo();
// 根据org_id查询组织名称
SysNode sysNode = sysNodeMapper.selectById(sysCommunicationLinkDto.getNodeId());
BeanCopyUtils.copy(sysCommunicationLink,sysCommunicationLinkVo);
sysCommunicationLinkVo.setNodeName(sysNode.getNodeName());
return sysCommunicationLinkVo;
}
@Override
public void deleteSysCommunicationLink(Long id) {
// 判断节点下是否有链路有就不能删除
sysCommunicationLinkMapper.deleteById(id);
}
}

View File

@ -0,0 +1,21 @@
<?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.das.modules.node.mapper.SysCommunicationLinkMapper">
<resultMap type="com.das.modules.node.domain.vo.SysCommunicationLinkVo" id="SysCommunicationLinkMap">
<result property="id" column="id" jdbcType="BIGINT"/>
<result property="linkName" column="link_name" jdbcType="VARCHAR"/>
<result property="protocol" column="protocol" jdbcType="INTEGER"/>
<result property="params" column="params" jdbcType="VARCHAR"/>
<result property="nodeId" column="node_id" jdbcType="BIGINT"/>
<result property="nodeName" column="nodeName" jdbcType="VARCHAR"/>
<result property="revision" column="revision" jdbcType="INTEGER"/>
</resultMap>
<select id="querySysCommunicationLinkList" resultMap="SysCommunicationLinkMap">
select sc.*, sn.node_name as nodeName from sys_communicationlink sc left join sys_node sn on sc.node_id = sn.id
where sc.node_id = #{id}
</select>
</mapper>

View File

@ -59,7 +59,7 @@
<select id="queryEquipmentTree" resultMap="SysEquipmentMap">
select t.* from sys_equipment t WHERE t.object_type in (10001,10002) and t.parent_equipment_id = 0
select t.* from sys_equipment t WHERE t.object_type in (10001,10002) and t.parent_equipment_id = 0 order by t.code
</select>
<select id="queryInfoById" resultMap="SysEquipmentExcelMap">

View File

@ -174,3 +174,160 @@ POST 请求接口
"msg": "操作成功"
}
```
#### 1.2.1 获取节点下的链路分页查询
POST 请求接口
> /api/node/link/list
请求参数
```json
{
"nodeId":1
}
```
入参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|----------| -------- | ---- |------|
| nodeId | String | 否 | 节点Id |
返回报文
```json
{
"total": 1,
"rows": [
{
"id": "1",
"linkName": "测试链路",
"protocol": 1,
"params": "测试",
"nodeName": "测试节点",
"nodeId": "1",
"revision": 1
}
],
"code": 200,
"msg": "查询成功"
}
```
返参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|----------| -------- | ---- |------|
| id | String | 否 | 链路ID |
| linkName | String | 否 | 链路名称 |
| protocol | String | 否 | 协议类型 |
| params | String | 否 | 参数 |
| nodeName | String | 否 | 节点名称 |
| nodeId | String | 否 | 节点ID |
| revision | String | 否 | 乐观锁 |
#### 1.2.2 新增链路
POST 请求接口
> /api/node/link/add
请求参数
```json
{
"linkName": "测试链路1",
"protocol": 1,
"params": "测试",
"nodeId": "1"
}
```
入参描述
| 参数名 | 参数类型 | 可选 | 描述 |
|----------| -------- | ---- |------|
| linkName | String | 否 | 链路名称 |
| protocol | String | 否 | 协议类型 |
| params | String | 否 | 参数 |
| nodeId | String | 否 | 节点ID |
返回报文
```json
{
"code": 200,
"success": true,
"data": {
"id": "73556002258550784",
"linkName": "测试链路1",
"protocol": 1,
"params": "测试",
"nodeName": "测试节点",
"nodeId": "1",
"revision": 1
},
"msg": "操作成功"
}
```
#### 1.2.3 修改链路
POST 请求接口
> /api/node/link/update
请求参数
```json
{
"id": "73556002258550784",
"linkName": "测试链路2",
"protocol": 2,
"params": "测试123",
"nodeName": "测试节点",
"nodeId": "1",
"revision": 1
}
```
返回报文
```json
{
"code": 200,
"success": true,
"data": {
"id": "73556002258550784",
"linkName": "测试链路1",
"protocol": 1,
"params": "测试",
"nodeName": "测试节点",
"nodeId": "1",
"revision": 1
},
"msg": "操作成功"
}
```
#### 1.2.4 删除链路
POST 请求接口
> /api/node/link/delete
请求参数
```json
{
"id": "73556002258550784"
}
```
返回报文
```json
{
"code": 200,
"success": true,
"msg": "操作成功"
}
```