From 41622b7aa1d948040b0f8ea024aece42d5a518a2 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Wed, 25 Aug 2021 09:29:05 +0800 Subject: [PATCH] screen-api SQL优化 screen-manage 日志模块更新,SQL优化 --- screen-api/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java index 761a62b..a8ad783 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationUnitAlarmServiceImpl.java @@ -1,17 +1,23 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Device; import com.moral.api.entity.OrganizationUnitAlarm; import com.moral.api.entity.Sensor; import com.moral.api.entity.Version; import com.moral.api.mapper.OrganizationUnitAlarmMapper; +import com.moral.api.service.DeviceService; import com.moral.api.service.OrganizationUnitAlarmService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; import com.moral.constant.RedisConstants; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -28,12 +34,55 @@ @Autowired RedisTemplate redisTemplate; + @Autowired + DeviceService deviceService; + @Autowired + OrganizationUnitAlarmMapper organizationUnitAlarmMapper; + /** + * @Description: ��������������������������������� + * @Param: [mac] + * @return: java.util.List<com.moral.api.entity.Sensor> + * @Author: ��������� + * @Date: 2021/8/23 + */ @Override public List<Sensor> queryAlarmLevel(String mac) { Device device = (Device) redisTemplate.opsForHash().get(RedisConstants.DEVICE_INFO, mac); Version version = device.getVersion(); List<Sensor> sensors = version.getSensors(); + //������������������������������������������������ + if (ObjectUtils.isEmpty(sensors)) { + sensors = queryAlarmLevelFromDb(mac); + } + return sensors; + } + + + /** + * @Description: ������������������������������������ + * @Param: [mac] + * @return: java.util.List<com.moral.api.entity.Sensor> + * @Author: ��������� + * @Date: 2021/8/23 + */ + private List<Sensor> queryAlarmLevelFromDb(String mac) { + Device device = deviceService.getDeviceByMac(mac); + Integer organizationId = device.getOrganizationId(); + Integer deviceVersionId = device.getDeviceVersionId(); + QueryWrapper<OrganizationUnitAlarm> wrapper = new QueryWrapper<>(); + wrapper.eq("organization_id", organizationId); + wrapper.eq("version_id", deviceVersionId); + wrapper.eq("is_delete", Constants.NOT_DELETE); + List<OrganizationUnitAlarm> organizationUnitAlarms = organizationUnitAlarmMapper.selectList(wrapper); + List<Sensor> sensors = new ArrayList<>(); + //���������sensorcode���alarmlevel������ + for (OrganizationUnitAlarm organizationUnitAlarm : organizationUnitAlarms) { + Sensor sensor = new Sensor(); + sensor.setCode(organizationUnitAlarm.getSensorCode()); + sensor.setAlarmLevel(organizationUnitAlarm.getAlarmLevel()); + sensors.add(sensor); + } return sensors; } } -- Gitblit v1.8.0