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.
85 lines
3.7 KiB
Java
85 lines
3.7 KiB
Java
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");
|
|
}
|
|
}
|