From e3bac98f092a10c0e897143bece3abbcc59469f2 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Fri, 27 Oct 2023 10:06:24 +0800 Subject: [PATCH] fix:小程序提交 --- screen-api/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java index 6ecb7ea..b84f149 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java @@ -1,10 +1,22 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.moral.api.entity.Device; import com.moral.api.entity.Sensor; +import com.moral.api.mapper.DeviceMapper; import com.moral.api.mapper.SensorMapper; import com.moral.api.service.SensorService; 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 java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +29,44 @@ @Service public class SensorServiceImpl extends ServiceImpl<SensorMapper, Sensor> implements SensorService { + @Autowired + SensorMapper sensorMapper; + @Autowired + RedisTemplate redisTemplate; + + @Autowired + private DeviceMapper deviceMapper; + + @Override + public Sensor getSensorByCode(String code) { + Sensor sensor = (Sensor) redisTemplate.opsForHash().get(RedisConstants.SENSOR_KEY, code); + if(sensor==null) + sensor = getSensorByCodeFromDb(code); + return sensor; + } + + @Override + public List<Map<String, Object>> getSensorsByMonitorPointIds(Map map) { + String monitorPointIdsStr = map.get("monitorPointIds").toString(); + String[] monitorPointIdsArr = monitorPointIdsStr.split(","); + List<String> monitorPointIdsList = Arrays.asList(monitorPointIdsArr); + QueryWrapper<Device> deviceQueryWrapper = new QueryWrapper<>(); + deviceQueryWrapper.eq("is_delete", Constants.NOT_DELETE); + deviceQueryWrapper.in("monitor_point_id", monitorPointIdsList); + List<Device> devices = deviceMapper.selectList(deviceQueryWrapper); + List<Integer> versionIds = devices.stream().map(Device::getDeviceVersionId).collect(Collectors.toList()); + versionIds = versionIds.stream().distinct().collect(Collectors.toList()); + List<Map<String, Object>> sensors = sensorMapper.getSensorByVersionIds(versionIds); + return sensors; + } + + + private Sensor getSensorByCodeFromDb(String code) { + QueryWrapper<Sensor> wrapper = new QueryWrapper<>(); + wrapper.eq("code",code); + wrapper.eq("is_delete", Constants.NOT_DELETE); + Sensor sensor = sensorMapper.selectOne(wrapper); + redisTemplate.opsForHash().put(RedisConstants.SENSOR_KEY, code,sensor); + return sensor; + } } -- Gitblit v1.8.0