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 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 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 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 selectByStreetlightId(Long lightId); }