Van333
2022-10-26 b54ea64cbb2cf8d613ca1ecf6ed9e5140abb4b9f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package api.dao;
 
import api.bean.WeatherEntity;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
 
import java.util.List;
 
/**
 * @program: wog
 * @description:
 * @author: YSS
 * @create: 2020-09-26 16:44
 **/
@Mapper
@Repository
public interface WeatherDao {
    @Results(id = "WeatherMap",value = {
            @Result(property = "dwStreetlightId",column = "streetlight_id"),
            @Result( property = "dwStreetlightName",column = "streetlight_name"),
            @Result(property="dwTemperature",column="temperature"),
            @Result(property="dwHumidity" ,column="humidity"),
            @Result(property="dwPm25" ,column="pm25"),
            @Result(property="dwPm10" ,column="pm10"),
            @Result(property="dwEch2o" ,column="ech2o"),
            @Result(property="dwEco2" ,column="eco2"),
            @Result(property="dwWindSpeed" ,column="wind_speed"),
            @Result(property="dwTvoc" ,column="tvoc"),
            @Result(property="dwBrightness" ,column="brightness"),
            @Result(property="dwCreateTime" ,column="create_time"),
    })
    @Select("SELECT pole_streetlight.streetlight_name,pole_sensor.* FROM pole_sensor  LEFT JOIN pole_streetlight  ON pole_streetlight.streetlight_id = pole_sensor.streetlight_id WHERE sensor_id IN ( SELECT max(sensor_id) FROM pole_sensor GROUP BY streetlight_id) ")
    List<WeatherEntity> selectAll();
 
    @ResultMap(value = "WeatherMap")
    @Select("SELECT p1.streetlight_name,p2.* FROM pole_streetlight p1 LEFT JOIN pole_sensor p2 ON p1.streetlight_id = p2.streetlight_id WHERE sensor_id IN (SELECT max(sensor_id) FROM pole_sensor WHERE streetlight_id IN ( SELECT streetlight_id FROM pole_user_streetlight WHERE company_id = (SELECT company_id FROM sys_user_company WHERE user_id = #{userId}))GROUP BY streetlight_id) ")
    List<WeatherEntity> selectByCompany(Long userId);
 
    @ResultMap(value = "WeatherMap")
    @Select("SELECT p1.streetlight_name,p2.* FROM pole_streetlight p1 LEFT JOIN pole_sensor p2 ON p1.streetlight_id = p2.streetlight_id WHERE sensor_id IN ( SELECT max(sensor_id)  FROM pole_sensor WHERE streetlight_id IN ( SELECT streetlight_id FROM pole_user_streetlight WHERE user_id = #{userId}) GROUP BY streetlight_id) ")
    List<WeatherEntity> selectByUserId(Long userId);
 
    @ResultMap(value = "WeatherMap")
    @Select(" SELECT pole_sensor.*, pole_streetlight.streetlight_name from pole_sensor LEFT JOIN pole_streetlight ON pole_sensor.streetlight_id = pole_streetlight.streetlight_id WHERE pole_streetlight.streetlight_id = #{streetLightId} ORDER BY pole_sensor.create_time DESC")
    List<WeatherEntity> selectByStreetlightId(Long lightId);
}