设备操作相关接口,以及用户充值卡相关接口修改

This commit is contained in:
mi9688 2024-12-18 14:55:56 +08:00
parent 788bfb100a
commit 593f3d3faa
11 changed files with 144 additions and 18 deletions

View File

@ -85,7 +85,7 @@ public class AjaxResult extends HashMap<String, Object>
*/ */
public static AjaxResult success() public static AjaxResult success()
{ {
return AjaxResult.success("操作成功"); return AjaxResult.success("操作成功",null);
} }
/** /**

View File

@ -32,7 +32,7 @@ public class DeviceOtherMsgConsumer {
public void consume(DeviceReportBo bo){ public void consume(DeviceReportBo bo){
try { try {
//处理emq订阅的非 property/post 属性上报的消息 因为其他消息量小放在一起处理 //处理emq订阅的非 property/post 属性上报的消息 因为其他消息量小放在一起处理
String serialNumber=bo.getSerialNumber();//设备序列号
Long productId;//产品id Long productId;//产品id
Long packetId;//包号 Long packetId;//包号
@ -40,8 +40,11 @@ public class DeviceOtherMsgConsumer {
String topic=bo.getTopicName();//主题 String topic=bo.getTopicName();//主题
//从主题中解析出产品id //从主题中解析出产品id
String[] split = topic.split("/"); String[] split = topic.split("/");
productId=Long.valueOf(split[1]); productId= Long.valueOf(split[1]);
System.err.println("主题:"+topic+"产品id:"+productId+"设备序列号:"+serialNumber); //从主题中解析出设备序列号
String serialNumber= split[2];//设备序列号
System.err.println("主题:"+topic+"--产品id:"+productId+"--设备序列号:"+serialNumber);
//设备上报数据消息 //设备上报数据消息
if(topic.endsWith("/info/up")){ if(topic.endsWith("/info/up")){
deviceDataReportHandler(new String(data)); deviceDataReportHandler(new String(data));

View File

@ -42,11 +42,12 @@ public class DeviceOtherMsgHandler {
* @param bo * @param bo
*/ */
public void messageHandler(DeviceReportBo bo) { public void messageHandler(DeviceReportBo bo) {
System.err.println("进入消息处理入口:"+bo);
String type = ""; String type = "";
String name = topicsUtils.parseTopicName(bo.getTopicName()); String name = topicsUtils.parseTopicName(bo.getTopicName());
if (StringUtils.isEmpty(name) || name.endsWith(TopicType.FUNCTION_GET.getTopicSuffix())) return; if (StringUtils.isEmpty(name) || name.endsWith(TopicType.FUNCTION_GET.getTopicSuffix())) return;
ReportDataBo data = this.buildReportData(bo); ReportDataBo data = this.buildReportData(bo);
System.err.println("进入消息处理入口:"+data);
TopicType topicType = TopicType.getType(name); TopicType topicType = TopicType.getType(name);
switch (topicType) { switch (topicType) {
case INFO_POST: case INFO_POST:
@ -77,7 +78,7 @@ public class DeviceOtherMsgHandler {
String message = new String(bo.getData()); String message = new String(bo.getData());
// log.info("收到设备信息[{}]", message); // log.info("收到设备信息[{}]", message);
Long productId = topicsUtils.parseProductId(bo.getTopicName()); Long productId = topicsUtils.parseProductId(bo.getTopicName());
System.err.println("主题路径解析出产品id:"+productId); // System.err.println("主题路径解析出产品id:"+productId);
String serialNumber = topicsUtils.parseSerialNumber(bo.getTopicName()); String serialNumber = topicsUtils.parseSerialNumber(bo.getTopicName());
ReportDataBo dataBo = new ReportDataBo(); ReportDataBo dataBo = new ReportDataBo();
dataBo.setMessage(message); dataBo.setMessage(message);

View File

@ -505,4 +505,16 @@ public class DeviceController extends BaseController {
return AjaxResult.success(deviceService.getDeviceActivationList()); return AjaxResult.success(deviceService.getDeviceActivationList());
} }
/**
* 根据设备编号判断设备是否激活
*/
@GetMapping("/getDeviceIsActivation")
@ApiOperation("根据设备编号判断设备是否激活")
public AjaxResult getDeviceActivation(String serialNumber) {
Device device = deviceService.selectDeviceBySerialNumber(serialNumber);
if(device.getStatus().toString().equals("1")){
return AjaxResult.success(false);
}
return AjaxResult.success(true);
}
} }

View File

@ -0,0 +1,59 @@
package com.fastbee.data.controller;
import cn.hutool.json.JSONUtil;
import com.dtflys.forest.annotation.Post;
import com.fastbee.common.core.domain.AjaxResult;
import com.fastbee.iot.model.dto.DeviceOperationDTO;
import com.fastbee.mqttclient.PubMqttCallBack;
import com.fastbee.mqttclient.PubMqttClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 下发指令操作设备
*/
@RestController
@RequestMapping("/device/operation")
public class DeviceOperationController {
@Autowired
private PubMqttClient pubMqttClient;
@Autowired
private PubMqttCallBack pubMqttCallBack;
/**
* 下发指令控制设备
*/
@PostMapping("/control")
public AjaxResult control(@RequestBody DeviceOperationDTO deviceOperationDTO){
//构建主题
String topic ="/"+deviceOperationDTO.getProductId()+"/"+deviceOperationDTO.getDeviceNumber()+"/cmd/down";
//构建消息
Map<String,Object> param = new HashMap<>();
//远程阀控
if(deviceOperationDTO.getOperationType().equals("700")){
param.put("cmd",700);
Map<String,Object> data = new HashMap<>();
data.put("status",deviceOperationDTO.getOperationCode());
param.put("data",data);
pubMqttClient.publish(1,true,topic, JSONUtil.toJsonStr(param));
return AjaxResult.success();
//设备重启
} else if (deviceOperationDTO.getOperationType().equals("100")) {
param.put("cmd",100);
Map<String,Object> data = new HashMap<>();
data.put("status",deviceOperationDTO.getOperationCode());
param.put("data",data);
}
return AjaxResult.error("未知命令!");
}
}

View File

@ -41,7 +41,7 @@ public class DeviceReportInfoController extends BaseController
/** /**
* 查询设备上电审核前上报的基础信息列表 * 查询设备上电审核前上报的基础信息列表
*/ */
@PreAuthorize("@ss.hasPermi('iot:info:list')") // @PreAuthorize("@ss.hasPermi('iot:info:list')")
@GetMapping("/list") @GetMapping("/list")
@ApiOperation("查询设备上电审核前上报的基础信息列表") @ApiOperation("查询设备上电审核前上报的基础信息列表")
public TableDataInfo list(DeviceReportInfo deviceReportInfo) public TableDataInfo list(DeviceReportInfo deviceReportInfo)

View File

@ -1,5 +1,6 @@
package com.fastbee.data.controller.gis.mqtt; package com.fastbee.data.controller.gis.mqtt;
import cn.hutool.json.JSONUtil;
import com.fastbee.mqttclient.PubMqttCallBack; import com.fastbee.mqttclient.PubMqttCallBack;
import com.fastbee.mqttclient.PubMqttClient; import com.fastbee.mqttclient.PubMqttClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -7,6 +8,9 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController @RestController
@RequestMapping("/mqtt") @RequestMapping("/mqtt")
public class MqttTest { public class MqttTest {
@ -18,12 +22,17 @@ public class MqttTest {
private PubMqttCallBack pubMqttCallBack; private PubMqttCallBack pubMqttCallBack;
/** /**
* 测试平台mqtt发布消息 * 测试平台mqtt下发指令
*/ */
@GetMapping("/publish") @GetMapping("/publish")
public String test(){ public String test(){
pubMqttClient.publish(1,true,"/10086/155/cmd/down","mqtt测试主题发布消息"); Map<String,Object> param = new HashMap<>();
return "test"; param.put("cmd",700);
Map<String,Object> data = new HashMap<>();
data.put("status",0);
param.put("data",data);
pubMqttClient.publish(1,true,"/10086/155/cmd/down", JSONUtil.toJsonStr(param));
return "ok";
} }
/** /**

View File

@ -1,5 +1,7 @@
package com.fastbee.data.controller.userRecharge; package com.fastbee.data.controller.userRecharge;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -112,10 +114,10 @@ public class UserRechargeCardsController extends BaseController
* 删除用户充值卡 * 删除用户充值卡
*/ */
@PreAuthorize("@ss.hasPermi('rechargecard:cards:remove')") @PreAuthorize("@ss.hasPermi('rechargecard:cards:remove')")
@DeleteMapping("/{ids}") @DeleteMapping("/{id}")
@ApiOperation("删除用户充值卡") @ApiOperation("删除用户充值卡")
public AjaxResult remove(@PathVariable Long[] ids) public AjaxResult remove(@PathVariable Long id)
{ {
return toAjax(userRechargeCardsService.deleteUserRechargeCardsByIds(ids)); return toAjax(userRechargeCardsService.deleteUserRechargeCardsByIds(Collections.singletonList(id).toArray(new Long[0])));
} }
} }

View File

@ -0,0 +1,15 @@
package com.fastbee.iot.model.dto;
import lombok.Data;
@Data
public class DeviceOperationDTO {
private Long productId;
private String deviceNumber;
private String operationType;
private String operationCode;
}

View File

@ -5,6 +5,8 @@ import java.util.List;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.fastbee.common.exception.ServiceException; import com.fastbee.common.exception.ServiceException;
import com.fastbee.iot.domain.Device;
import com.fastbee.iot.mapper.DeviceMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.fastbee.iot.mapper.DeviceReportInfoMapper; import com.fastbee.iot.mapper.DeviceReportInfoMapper;
@ -24,6 +26,10 @@ public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService
private DeviceReportInfoMapper deviceReportInfoMapper; private DeviceReportInfoMapper deviceReportInfoMapper;
@Autowired
private DeviceMapper deviceMapper;
/** /**
* 查询设备上电审核前上报的基础信息 * 查询设备上电审核前上报的基础信息
* *
@ -81,7 +87,26 @@ public class DeviceReportInfoServiceImpl implements IDeviceReportInfoService
if(deviceReportInfo.getAutoReview()!=null&&deviceReportInfo.getAutoReview()){ if(deviceReportInfo.getAutoReview()!=null&&deviceReportInfo.getAutoReview()){
deviceReportInfo.setStatus(2);//修改状态为已审核 deviceReportInfo.setStatus(2);//修改状态为已审核
} }
return deviceReportInfoMapper.insertDeviceReportInfo(deviceReportInfo); int inserted = deviceReportInfoMapper.insertDeviceReportInfo(deviceReportInfo);
if(inserted<1){
throw new ServiceException("插入设备上报信息失败!");
}
// //插入成功后插入设备信息
// Device device= new Device();
// device.setDeviceName(deviceReportInfo.getName());
// device.setSerialNumber(deviceReportInfo.getSerialNumber());
// //TODO 弄成活的
// device.setProductId(146L);
// device.setStatus(1);//未激活
// device.setCreateTime(deviceReportInfo.getPowersTime());
// device.setTenantId(1L);//默认总管理员
// int inserted1 = deviceMapper.insert(device);
// if(inserted1<1){
// throw new ServiceException("插入设备信息失败!");
// }
return 1;
} }
/** /**

View File

@ -123,7 +123,7 @@ public class SysUserServiceImpl implements ISysUserService
* @param userName 用户名 * @param userName 用户名
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userName", unless = "#result == null") // @Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userName", unless = "#result == null")
@Override @Override
public SysUser selectUserByUserName(String userName) public SysUser selectUserByUserName(String userName)
{ {
@ -136,7 +136,7 @@ public class SysUserServiceImpl implements ISysUserService
* @param userId 用户ID * @param userId 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
@Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userId", unless = "#result == null") // @Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userId", unless = "#result == null")
@Override @Override
public SysUser selectUserById(Long userId) public SysUser selectUserById(Long userId)
{ {
@ -149,7 +149,7 @@ public class SysUserServiceImpl implements ISysUserService
* @param userName 用户名 * @param userName 用户名
* @return 结果 * @return 结果
*/ */
@Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userName", unless = "#result == null") // @Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userName", unless = "#result == null")
@Override @Override
public String selectUserRoleGroup(String userName) public String selectUserRoleGroup(String userName)
{ {
@ -167,7 +167,7 @@ public class SysUserServiceImpl implements ISysUserService
* @param userName 用户名 * @param userName 用户名
* @return 结果 * @return 结果
*/ */
@Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userName", unless = "#result == null") // @Cacheable(value = "sysUser", key = "#root.methodName + '_' + #userName", unless = "#result == null")
@Override @Override
public String selectUserPostGroup(String userName) public String selectUserPostGroup(String userName)
{ {