<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper 
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="com.spd.sw.dao.UserDao"> 
	
    <!-- 这里的id必须和IStatisticsMapper接口中的接口方法名相同，不然运行的时候也要报错 --> 
 	<select id="userList" resultType="java.util.HashMap"  parameterType="map"> 
	    <![CDATA[
    	select userID,avatarurl from t_user  where userID in 
		]]>
		<foreach item="item" index="index" collection="uuId" open="(" separator="," close=")">  
	           #{item}  
		</foreach>
    </select>
    
     <select id="findList" resultType="java.util.HashMap"  parameterType="map"> 
	    <![CDATA[
    	SELECT
			t.id,
			t.UserID as userid,
			t.Usernick as usernick,
			t.Lon  as lon,
			t.Lat as lat,
			t.locatePlace as locatePlace,
			t.Content as content,
			t.Weather as weather,
			t.ReleaseType as releaseType,
			t.Warnid as warnid,
			t.Foreastingid as foreastingid,
			t.Distasterid as distasterid,
			t.Ifrelieve as ifrelieve,
			t.ifgiveup as ifgiveup,
			t.cmentdata as cmentdata,
			t.giveupdata as giveupdata,
			t.CreateTime as createTime,
			concat_ws("//",z.domain,z.fileName) as root
		FROM `t_release_weather`  t left join `t_release_image` z on z.ID_Release_weather=t.id
		where t.CreateTime>=#{starttime} 
		]]>
    </select>
    
    <select id="findHotsList" resultType="java.util.HashMap"  parameterType="map"> 
	    <![CDATA[
    	SELECT
			t.id,
			t.UserID as userid,
			t.Usernick as usernick,
			t.Lon  as lon,
			t.Lat as lat,
			t.locatePlace as locatePlace,
			t.Content as content,
			t.Weather as weather,
			t.ReleaseType as releaseType,
			t.tranmitdata as tranmitdata,
			t.cmentdata as cmentdata,
			t.giveupdata as giveupdata,
			t.CreateTime as createTime,
			concat_ws("//",z.domain,z.fileName) as root
		FROM `t_hot_events`  t left join `t_release_image` z on z.ID_Release_weather=t.id
		where t.CreateTime>=#{starttime} 
		]]>
    </select>
    
     <select id="findListByPosition" resultType="java.util.HashMap"  parameterType="map"> 
	    <![CDATA[
    	SELECT
			t.id,
			t.UserID as userid,
			t.Usernick as usernick,
			t.Lon  as lon,
			t.Lat as lat,
			t.locatePlace as locatePlace,
			t.Content as content,
			t.Weather as weather,
			t.ReleaseType as releaseType,
			t.Warnid as warnid,
			t.Foreastingid as foreastingid,
			t.Distasterid as distasterid,
			t.Ifrelieve as ifrelieve,
			t.cmentdata as cmentdata,
			t.giveupdata as giveupdata,
			t.CreateTime as createTime,
			concat_ws("//",z.domain,z.fileName) as root
		FROM `t_release_weather`  t left join `t_release_image` z on z.ID_Release_weather=t.id
		where t.CreateTime>=${starttime}   and (power(t.Lon-${Longitude},2)+power(t.Lat-${Latitude},2))<=50  order by t.CreateTime  desc
		]]>
    </select>
     <select id="findList_1" resultType="java.util.HashMap"  parameterType="map"> 
	    <![CDATA[
    	SELECT
			t_release_weather.id,
			t_release_weather.UserID as userid,
			t_release_weather.Usernick as usernick,
			t_release_weather.Lon  as lon,
			t_release_weather.Lat as lat,
			t_release_weather.Content as content,
			t_release_weather.Weather as weather,
			t_release_weather.ReleaseType as releaseType,
			t_release_weather.Warnid as warnid,
			t_release_weather.Foreastingid as foreastingid,
			t_release_weather.Distasterid as distasterid,
			t_release_weather.Ifrelieve as ifrelieve,
			t_release_weather.CreateTime as createTime
		FROM `t_release_weather` 
		where t_release_weather.CreateTime>=#{starttime} and  t_release_weather.UserID  like '%${userId}%'
		]]>
    </select>
    
   <select id="findReleaseListByuserid" resultType="java.util.HashMap"  parameterType="map">
      SELECT
			t_release_weather.id,
			t_release_weather.UserID as userid,
			t_release_weather.Usernick as usernick,
			t_release_weather.Lon  as lon,
			t_release_weather.Lat as lat,
			t_release_weather.Content as content,
			t_release_weather.Weather as weather,
			t_release_weather.ReleaseType as releaseType,
			t_release_weather.Warnid as warnid,
			t_release_weather.Foreastingid as foreastingid,
			t_release_weather.Distasterid as distasterid,
			t_release_weather.Ifrelieve as ifrelieve,
            t_release_weather.CreateTime as createTime
	   FROM `t_release_weather` 
	   where t_release_weather.UserID like '%#{userId}%' and t_release_weather.CreateTime>=#{starttime}
          union 
 	  SELECT
			t_release_weather.id,
			t_release_weather.UserID as userid,
			t_release_weather.Usernick as usernick,
			t_release_weather.Lon  as lon,
			t_release_weather.Lat as lat,
			t_release_weather.Content as content,
			t_release_weather.Weather as weather,
			t_release_weather.ReleaseType as releaseType,
			t_release_weather.Warnid as warnid,
			t_release_weather.Foreastingid as foreastingid,
			t_release_weather.Distasterid as distasterid,
			t_release_weather.Ifrelieve as ifrelieve,
		    t_release_weather.CreateTime as createTime
		FROM `t_release_weather` 
		where t_release_weather.UserID in (select ID_Friend from t_friendships where ID_User=#{userid}) 
        ORDER BY CreateTime desc
   </select>

    
   <insert id="save" parameterType="map" useGeneratedKeys="true" keyProperty="id">
    	 insert into t_release_weather(UserID, Usernick,Lon, Lat,locatePlace, Content, Weather ,ReleaseType ,Warnid ,Foreastingid, Distasterid, Ifrelieve,CreateTime) values (
    	 	#{userID},#{usernick}, #{lon}, #{lat},#{places}, #{content}, #{weather},#{releaseType},#{warnid},#{foreastingid},#{distasterid},#{ifrelieve},#{creattime}
    	 )
   </insert>
   
    <insert id="saveRelease" parameterType="map" useGeneratedKeys="true" keyProperty="id">
    	 insert into t_release_weather(UserID, Usernick,Lon, Lat,locatePlace, Content, Weather ,ReleaseType ,Warnid ,Foreastingid, Distasterid, Ifrelieve,CreateTime) values (
    	 	#{userID},#{usernick}, #{lon}, #{lat}, #{places},#{content}, #{weather},#{releaseType},#{warnid},#{foreastingid},#{distasterid},#{ifrelieve},#{creattime}
    	 )
   </insert>
   
   <insert id="saveHotevent" parameterType="map" useGeneratedKeys="true" keyProperty="id">
    	 insert into t_hot_events(UserID, Usernick,Lon, Lat,locatePlace, Content, Weather ,ReleaseType ,CreateTime) values (
    	 	#{userID},#{usernick}, #{lon}, #{lat}, #{places},#{content}, #{weather},#{releaseType},#{creattime}
    	 )
   </insert>
   
   <insert id="saveReleaseFile"  parameterType="list">
		<foreach collection="fileList"  item="item"   separator=";">
			  insert into t_release_image(ID_Release_weather,domain, root, fileName, CreateTime,description) values (
   	 			#{item.releaseWeatherid},#{item.domain}, #{item.root}, #{item.fileName}, #{item.createTime}, #{item.description}
	    	 )
    	 </foreach>
	</insert>

   
   	<delete id="delete" parameterType="java.lang.String">
		delete from t_interfaceInfo where recordId=#{id}
	</delete>
	
	<update id="update">
		update t_release_weather 
		set UserID=#{userID}, Usernick=#{usernick},Lon=#{lon}, Lat=#{lat}, Content=#{content},
	    Weather=#{weather}, ReleaseType=#{releaseType}, Warnid=#{warnid},
		Foreastingid=#{foreastingid}, Distasterid=#{distasterid}, Ifrelieve=#{ifrelieve}
		where id=#{id} 
	</update>
</mapper> 