package com.rehome.mqttclienttemperature.service.impl; import cn.hutool.db.sql.Direction; import com.baomidou.dynamic.datasource.annotation.DS; import com.rehome.mqttclienttemperature.dao.TemperatureOracleRepository; import com.rehome.mqttclienttemperature.entity.Temperature; import com.rehome.mqttclienttemperature.entity.TemperatureOracle; import com.rehome.mqttclienttemperature.service.JdbcTemperatureService; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @Service @DS("oracle") public class JdbcTemperatureServiceImpl implements JdbcTemperatureService { @Resource private JdbcTemplate jdbcTemplate; @Resource private TemperatureOracleRepository temperatureOracleRepository; @Override public void saveTemperatureByOracle(String temperatureAndHumidityData, String topic) { if(temperatureAndHumidityData!=null&&temperatureAndHumidityData.length()>0){ String[] strDataTemperature = temperatureAndHumidityData.split(" "); Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdfHour = new SimpleDateFormat("yyyy-MM-dd HH"); SimpleDateFormat sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm"); SimpleDateFormat sdfSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowDate = sdf.format(now); String nowHour = sdfHour.format(now); String dataMinute = sdfMinute.format(now); String dataSecond = sdfSecond.format(now); TemperatureOracle temperature = new TemperatureOracle(); temperature.setCreateDate(now); temperature.setDataDate(nowDate); temperature.setDataHour(nowHour); temperature.setDataMinute(dataMinute); if(topic!=null){ temperature.setTopic(topic); if(topic.equals("WifiSHT/7C87CE9CA4E6/SHT20")){ temperature.setLocationDesc("广东省珠海市高新区唐家湾镇东岸村水风三街28号501"); } if(topic.equals("WifiSHT/7C87CE9F5CBF/SHT20")){ temperature.setLocationDesc("广东省珠海市金湾区三灶镇百川路1号1栋1单元1508房"); } if(topic.equals("WifiSHT/4CEBD686B6AA/SHT20")){ temperature.setLocationDesc("广西壮族自治区崇左市天等县天等镇荣华村弄在屯113号"); } } temperature.setHumidity(strDataTemperature[0]); temperature.setTemperature(strDataTemperature[1]); this.temperatureOracleRepository.save(temperature); } } @Override public List selectAll() { // Sort sort = Sort.by(Sort.Direction.DESC,"id"); // PageRequest pagerequest = PageRequest.of(0,10,sort); // List page = temperatureOracleRepository.findAll(pagerequest).getContent(); // return page; // int page=1,size=10; // Sort sort = new Sort(Direction.DESC, "id"); // Pageable pageable = new PageRequest(page, size, sort); // temperatureOracleRepository.findALL(pageable); // userRepository.findByUserName("testName", pageable); return jdbcTemplate.queryForList("SELECT * FROM (SELECT * FROM temperature ORDER BY id DESC) WHERE ROWNUM <= 10"); } }