|
@@ -12,11 +12,7 @@ import com.xy.collections.list.JArrayList;
|
|
|
import com.xy.collections.list.JList;
|
|
|
import com.xy.collections.map.JHashMap;
|
|
|
import com.xy.collections.map.JMap;
|
|
|
-import com.xy.consumer.cmd.CmdProducer;
|
|
|
-import com.xy.dto.AckMqttDto;
|
|
|
-import com.xy.dto.CommandMqtt;
|
|
|
-import com.xy.dto.MqttDto;
|
|
|
-import com.xy.dto.PaterDto;
|
|
|
+import com.xy.dto.*;
|
|
|
import com.xy.entity.DeviceInfo;
|
|
|
import com.xy.entity.MqttCommand;
|
|
|
import com.xy.error.CommRuntimeException;
|
|
@@ -47,7 +43,7 @@ import static com.xy.utils.PlusBeans.*;
|
|
|
@RequiredArgsConstructor
|
|
|
public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand> implements MqttService {
|
|
|
|
|
|
- private final CmdProducer cmdProducer;
|
|
|
+ private final DeviceMqttSendService deviceMqttSendService;
|
|
|
|
|
|
private final RedisService<String> redisService;
|
|
|
|
|
@@ -71,7 +67,7 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
|
|
|
return redisService.atomicIncrease(CommConsts.CMD_ATOM_WK_SN);
|
|
|
}
|
|
|
|
|
|
- public List<Tuple.Tuple3<Long, Long, Boolean>> sendMqtt(List<MqttDto> mqttDtos) {
|
|
|
+ public List<Tuple.Tuple3<Long, Long, Boolean>> sendMqtt(List<MqttCmdDto> mqttDtos) {
|
|
|
String time = DataTime.getSring();
|
|
|
List<Tuple.Tuple3<Long, Long, Boolean>> list = new ArrayList<>(mqttDtos.size());
|
|
|
mqttDtos.forEach(mqttDto -> {
|
|
@@ -98,7 +94,11 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
|
|
|
//指令记录
|
|
|
saveMqttCommand(mqttDto, topic, value, pater.getAck() ? MqttCommandStatusEnum.COMMAND_SEND : MqttCommandStatusEnum.COMMAND_EXE_SUCCESS, null);
|
|
|
//发送消息
|
|
|
- cmdProducer.sendToMqtt(value.toString(), topic, mqttDto.getLevel());
|
|
|
+ deviceMqttSendService.cmd(new MqttDto.CmdParams()
|
|
|
+ .setQos(mqttDto.getLevel())
|
|
|
+ .setData(value.toString())
|
|
|
+ .setTopic(topic)
|
|
|
+ );
|
|
|
list.add(new Tuple.Tuple3<>(wkSn, pater.getSn(), true));
|
|
|
} catch (Exception e) {
|
|
|
//指令记录
|
|
@@ -170,17 +170,17 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
|
|
|
|
|
|
@ApiOperation("指令结果通知")
|
|
|
@PostMapping("commandResultBack")
|
|
|
- public R commandResultBack(@RequestBody @Validated MqttDto.ResultBack resultBack) {
|
|
|
+ public R commandResultBack(@RequestBody @Validated MqttCmdDto.ResultBack resultBack) {
|
|
|
return FactoryUtils.getService(CmdService.class, resultBack.getCmdType()).resultBack(resultBack);
|
|
|
}
|
|
|
|
|
|
@PostMapping("snByCmdAndResult")
|
|
|
@ApiOperation("sn查询指令和结果数据")
|
|
|
- public R<MqttDto.Vo3> snByCmdAndResult(@RequestBody MqttDto.SnByCmdAndResult snByCmdAndResult) {
|
|
|
+ public R<MqttCmdDto.Vo3> snByCmdAndResult(@RequestBody MqttCmdDto.SnByCmdAndResult snByCmdAndResult) {
|
|
|
MqttCommand mqttCommand = getById(snByCmdAndResult.getSn());
|
|
|
String key = String.format(keyStr, snByCmdAndResult.getSn());
|
|
|
Map<String, String> map = redisService.getMap(key);
|
|
|
- MqttDto.Vo3 vo3 = copy(MqttDto.Vo3.class, mqttCommand);
|
|
|
+ MqttCmdDto.Vo3 vo3 = copy(MqttCmdDto.Vo3.class, mqttCommand);
|
|
|
if (Emptys.check(map)) {
|
|
|
String result = map.get("result");
|
|
|
vo3.setResult(JSONUtil.parseObj(result));
|
|
@@ -190,7 +190,7 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
|
|
|
|
|
|
@PostMapping("page")
|
|
|
@ApiOperation("分页查询")
|
|
|
- public R<PageBean<MqttDto.Vo2>> page(@RequestBody MqttDto.Page page) {
|
|
|
+ public R<PageBean<MqttCmdDto.Vo2>> page(@RequestBody MqttCmdDto.Page page) {
|
|
|
LambdaQueryWrapper<MqttCommand> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MqttCommand.class)
|
|
|
.like(MqttCommand::getError)
|
|
|
.like(MqttCommand::getValue)
|
|
@@ -204,7 +204,7 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
|
|
|
.orderByDesc(MqttCommand::getSendTime);
|
|
|
PageBean pageBean = page.getPage();
|
|
|
IPage<MqttCommand> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
|
|
|
- return R.ok(toPageBean(MqttDto.Vo2.class, iPage));
|
|
|
+ return R.ok(toPageBean(MqttCmdDto.Vo2.class, iPage));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -216,7 +216,7 @@ public class MqttServiceImpl extends ServiceImpl<MqttCommandMapper, MqttCommand>
|
|
|
* @param status 状态
|
|
|
* @param error 错误信息
|
|
|
*/
|
|
|
- private void saveMqttCommand(MqttDto mqttDto, String topic, JSONObject value, MqttCommandStatusEnum status, String error) {
|
|
|
+ private void saveMqttCommand(MqttCmdDto mqttDto, String topic, JSONObject value, MqttCommandStatusEnum status, String error) {
|
|
|
PaterDto pater = mqttDto.getPater();
|
|
|
MqttCommand mqttCommand = Beans.copy(Beans.copy(MqttCommand.class, mqttDto), pater)
|
|
|
.setSn(pater.getSn())
|