12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package com.szwl.handle.response;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.qiniu.util.Auth;
- import com.szwl.constant.ConfigConsts;
- import com.szwl.constant.OperationType;
- import com.szwl.model.entity.MessageLog;
- import com.szwl.model.entity.TEquipment;
- import com.szwl.model.utils.PushUtils;
- import com.szwl.service.TEquipmentService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Component;
- import javax.annotation.Resource;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- @Slf4j
- @Component
- public class LogMessageProcessor implements ResponseProcessor {
- @Resource
- private TEquipmentService equipmentService;
- private final ExecutorService sendExecutor =
- Executors.newSingleThreadExecutor(); // 独立发送线程
- @Override
- public void process(MessageLog messageLog) {
- Integer statusCode = messageLog.getStatusCode();
- if (statusCode == 200) {
- Integer direction = messageLog.getDirection();
- String clientId = messageLog.getClientId();
- String day = messageLog.getResponseContent();
- // 查询设备
- LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
- query.eq(TEquipment::getClientId, clientId);
- TEquipment equipment = equipmentService.getOne(query);
- if (equipment != null) {
- String kind = day + "-" + clientId;
- String key = "log/" + kind + ".txt";
- // 生成Token
- Auth auth = Auth.create(ConfigConsts.QINIU_CLOUD_ACCESS_KEY, ConfigConsts.QINIU_CLOUD_SECRET_KEY);
- String upToken = auth.uploadToken(ConfigConsts.QINIU_CLOUD_BUCKET, key);
- // 生成发送消息
- String message = PushUtils.buildJsonLog(OperationType.LOG.getCode(), kind, upToken, key).toString();
- sendExecutor.execute(() -> {
- // 推送消息
- try {
- // equipmentService.sendRemoteMessage(clientId, OperationType.LOG, message, equipment.getAdminId());
- equipmentService.responseSendMessage(messageLog, message, equipment.getAdminId());
- } catch (Exception e) {
- e.printStackTrace();
- log.info("--发送消息失败:{}", e.getMessage());
- }
- });
- }
- }
- }
- @Override
- public String getSupportedOperationType() {
- return OperationType.LOG.getCode();
- }
- }
|