|
@@ -0,0 +1,75 @@
|
|
|
+package com.szwl.handle.response;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.szwl.constant.OperationType;
|
|
|
+import com.szwl.model.entity.AlarmClock;
|
|
|
+import com.szwl.model.entity.MessageLog;
|
|
|
+import com.szwl.model.entity.TEquipment;
|
|
|
+import com.szwl.model.entity.TParameters;
|
|
|
+import com.szwl.service.AlarmClockService;
|
|
|
+import com.szwl.service.TEquipmentService;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@Component
|
|
|
+public class AlarmClockProcessor implements ResponseProcessor {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TEquipmentService tEquipmentService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AlarmClockService alarmClockService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void process(MessageLog messageLog) {
|
|
|
+ Integer statusCode = messageLog.getStatusCode();
|
|
|
+ if (statusCode == 200) {
|
|
|
+ String clientId = messageLog.getClientId();
|
|
|
+ String responseContent = messageLog.getResponseContent();
|
|
|
+ LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
|
|
|
+ query.eq(TEquipment::getClientId, clientId);
|
|
|
+ TEquipment tEquipment = tEquipmentService.getOne(query);
|
|
|
+ if (tEquipment != null) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 转换为对象
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
+ List<AlarmClock> alarmClocks = objectMapper.readValue(responseContent, new TypeReference<List<AlarmClock>>() {
|
|
|
+ });
|
|
|
+ for (AlarmClock alarmClock : alarmClocks) {
|
|
|
+ LambdaQueryWrapper<AlarmClock> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(AlarmClock::getClientId, clientId);
|
|
|
+ queryWrapper.eq(AlarmClock::getType, alarmClock.getType());
|
|
|
+ queryWrapper.eq(AlarmClock::getWeek, alarmClock.getWeek());
|
|
|
+ AlarmClock one = alarmClockService.getOne(queryWrapper);
|
|
|
+ if (one != null) {
|
|
|
+ BeanUtils.copyProperties(alarmClock, one, "id", "createDate", "modifyDate", "clientId");
|
|
|
+ alarmClock.setModifyDate(new Date());
|
|
|
+ alarmClockService.updateById(one);
|
|
|
+ } else {
|
|
|
+ alarmClock.setCreateDate(new Date());
|
|
|
+ alarmClock.setModifyDate(new Date());
|
|
|
+ alarmClock.setClientId(clientId);
|
|
|
+ alarmClockService.save(alarmClock);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getSupportedOperationType() {
|
|
|
+ return OperationType.ALARM_CLOCK.getCode();
|
|
|
+ }
|
|
|
+}
|