You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
admin-client-temperature/src/main/java/com/rehome/mqttclienttemperature/service/impl/JdbcTemperatureServiceImpl....

85 lines
3.7 KiB
Java

3 months ago
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<TemperatureOracle> 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");
}
}