1
0

NodeLandMapper.xml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.siwei.apply.mapper.NodeLandMapper">
  6. <!-- 结果映射 -->
  7. <resultMap id="BaseResultMap" type="com.siwei.apply.domain.NodeLand">
  8. <id property="id" column="id"/>
  9. <result property="nodeId" column="node_id"/>
  10. <result property="geomDbId" column="geom_db_id"/>
  11. </resultMap>
  12. <!-- 基础查询字段 -->
  13. <sql id="Base_Column_List">
  14. id, node_id, geom_db_id
  15. </sql>
  16. <!-- 根据node_id查询地块几何信息,返回geom_db_id和并集的外边框、中心点 -->
  17. <select id="selectGeomByNodeId" resultType="map" parameterType="String">
  18. SELECT
  19. nl.geom_db_id as "geomDbId",
  20. tgd.shppath as "shppath",
  21. array_to_string(array_agg(ST_AsEWKT(gd.geom)), '|') as "geoms",
  22. ST_AsEWKT(ST_Envelope(ST_Union(gd.geom))) as "envelope",
  23. ST_AsEWKT(ST_Centroid(ST_Union(gd.geom))) as "centroid"
  24. FROM t_node_land nl
  25. LEFT JOIN t_geom_db_details gd ON nl.geom_db_id = gd.upload_id
  26. LEFT JOIN t_geom_db tgd ON nl.geom_db_id = tgd.id
  27. WHERE nl.node_id = #{nodeId}
  28. AND gd.geom IS NOT NULL
  29. GROUP BY nl.geom_db_id, tgd.shppath
  30. </select>
  31. <!-- 根据node_id和geom_db_id创建记录 -->
  32. <insert id="insertByNodeIdAndGeomDbId">
  33. INSERT INTO t_node_land (
  34. id,
  35. node_id,
  36. geom_db_id
  37. ) VALUES (
  38. gen_random_uuid()::varchar,
  39. #{param1},
  40. #{param2}
  41. )
  42. </insert>
  43. <!-- 根据node_id删除记录 -->
  44. <delete id="deleteByNodeId" parameterType="String">
  45. DELETE FROM t_node_land
  46. WHERE node_id = #{nodeId}
  47. </delete>
  48. </mapper>