CzxxMapper.xml 6.57 KB
<?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.hotent.lpg.user.dao.CzxxDao">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.hotent.lpg.common.model.WCzxx">
        <id column="ID_" property="id" />
        <result column="REF_ID_" property="refId" />
        <result column="F_czmc" property="fCzmc" />
        <result column="F_czjc" property="fCzjc" />
        <result column="F_fzrmc" property="fFzrmc" />
        <result column="F_fzrlxfs" property="fFzrlxfs" />
        <result column="F_sssf" property="fSssf" />
        <result column="F_sss" property="fSss" />
        <result column="F_ssq" property="fSsq" />
        <result column="F_ssjd" property="fSsjd" />
        <result column="F_jd" property="fJd" />
        <result column="F_wd" property="fWd" />
        <result column="F_xxdz" property="fXxdz" />
        <result column="F_cztp" property="fCztp" />
        <result column="F_yyzz" property="fYyzz" />
        <result column="F_sfxn" property="fSfxn" />
        <result column="F_zt" property="fZt" />
        <result column="F_yykssj" property="fYykssj" />
        <result column="F_yyjssj" property="fYyjssj" />
        <result column="F_cjr" property="fCjr" />
        <result column="F_cjsj" property="fCjsj" />
        <result column="F_gxr" property="fGxr" />
        <result column="F_gxsj" property="fGxsj" />
        <result column="F_ssqyID" property="fSsqyid" />
        <result column="F_ssqymc" property="fSsqymc" />
        <result column="F_czlxfs" property="fCzlxfs" />
        <result column="F_form_data_rev_" property="fFormDataRev" />
        <result column="F_czlx" property="fCzlx" />
        <result column="F_zjdh" property="fZjdh" />
        <result column="F_sfycznl" property="fSfycznl" />
        <result column="F_sfysmnl" property="fSfysmnl" />
        <result column="F_tyshxydm" property="fTyshxydm" />
        <result column="F_czxkzbh" property="fCzxkzbh" />
        <result column="F_czxkztp" property="fCzxkztp" />
        <result column="F_czxkzyxqx" property="fCzxkzyxqx" />
        <result column="F_rqjyxkzbh" property="fRqjyxkzbh" />
        <result column="F_rqjyxkzyxqx" property="fRqjyxkzyxqx" />
        <result column="F_rqjyxkztp" property="fRqjyxkztp" />
    </resultMap>

    <resultMap id="qzxxMap" type="com.hotent.lpg.user.vo.QzxxVo">
        <result column="qzId" property="qzId" />
        <result column="qzmc" property="qzmc" />
    </resultMap>



    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        ID_, REF_ID_, F_czmc, F_czjc, F_fzrmc, F_fzrlxfs, F_sssf, F_sss, F_ssq, F_ssjd, F_jd, F_wd, F_xxdz, F_cztp, F_yyzz, F_sfxn, F_zt, F_yykssj, F_yyjssj, F_cjr, F_cjsj, F_gxr, F_gxsj, F_ssqyID, F_ssqymc, F_czlxfs, F_form_data_rev_, F_czlx, F_zjdh, F_sfycznl, F_sfysmnl, F_tyshxydm, F_czxkzbh, F_czxkztp, F_czxkzyxqx, F_rqjyxkzbh, F_rqjyxkzyxqx, F_rqjyxkztp
    </sql>

    <select id="selectPage" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from
        w_czxx
        ${ew.customSqlSegment}
    </select>

    <select id="selectList" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from
        w_czxx
        ${ew.customSqlSegment}
    </select>

    <select id="selectById" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from
        w_czxx
        where
        ID_ = #{id}
    </select>


    <select id="czPage" resultType="com.hotent.lpg.user.vo.DhgqVo">
        select
        6371 * ACOS( COS(RADIANS(#{wd})) * COS(RADIANS(F_wd)) * COS(
        RADIANS(F_jd) - RADIANS(#{jd})) + SIN(RADIANS(#{wd})) * SIN( RADIANS(F_wd))) AS distance,
        w_czxx.ID_ as qzId,
        w_czxx.F_czmc as qzmc,
        w_czxx.F_fzrlxfs as qzdh,
        w_czxx.F_jd as jd,
        w_czxx.F_wd as wd,
        w_czxx.F_czlx as qzlx,
        concat(w_czxx.F_sssf,w_czxx.F_sss,w_czxx.F_ssq,w_czxx.F_ssjd,w_czxx.F_xxdz) as qzdz
        from w_czxx w_czxx
        where
        <![CDATA[  (6371 * ACOS( COS(RADIANS(#{wd})) * COS(RADIANS(F_wd)) * COS(
           RADIANS(F_jd) - RADIANS(#{jd})) + SIN(RADIANS(#{wd})) * SIN( RADIANS(F_wd))) <= #{distance}) ]]>
        order by distance
    </select>

    <select id="list" resultType="com.hotent.lpg.user.vo.CzxxVo">
        SELECT *,
        6371 * ACOS( COS(RADIANS(#{wd})) * COS(RADIANS(F_wd)) * COS(
        RADIANS(F_jd) - RADIANS(#{jd})) + SIN(RADIANS(#{wd})) * SIN( RADIANS(F_wd))) AS distance
        FROM w_czxx
        <where>
            <if test="czlxList != null and !czlxList.isEmpty()">
                AND (
                <foreach collection="czlxList" item="item" open="(" close=")" separator=" OR ">
                    F_czlx LIKE CONCAT('%', #{item}, '%')
                </foreach>
                )
            </if>
            <if test="search != null and search != ''">
                AND (F_czmc LIKE CONCAT('%', #{search}, '%') OR F_czjc LIKE CONCAT('%', #{search}, '%'))
            </if>
            <![CDATA[ AND (6371 * ACOS( COS(RADIANS(#{wd})) * COS(RADIANS(F_wd)) * COS(
           RADIANS(F_jd) - RADIANS(#{jd})) + SIN(RADIANS(#{wd})) * SIN( RADIANS(F_wd))) <= #{distance}) ]]>
        </where>
        order by distance
    </select>

    <select id="listRegionalFiltering" resultType="com.hotent.lpg.user.vo.CzxxVo">
        SELECT
        DISTINCT w_czxx.*,
        6371 * ACOS( COS(RADIANS(#{wd})) * COS(RADIANS(F_wd)) * COS(
                RADIANS(F_jd) - RADIANS(#{jd})) + SIN(RADIANS(#{wd})) * SIN( RADIANS(F_wd))) AS distance
        FROM w_station_regional_division
        INNER JOIN w_czxx ON w_czxx.ID_ = w_station_regional_division.f_ssczId and w_station_regional_division.F_regional_type = '经营区域'
        WHERE
            ST_Contains(w_station_regional_division.f_boundary, ST_GeomFromText(#{point}))
        <![CDATA[ AND  (6371 * ACOS( COS(RADIANS(#{wd})) * COS(RADIANS(w_czxx.F_wd)) * COS(
           RADIANS(w_czxx.F_jd) - RADIANS(#{jd})) + SIN(RADIANS(#{wd})) * SIN( RADIANS(w_czxx.F_wd))) <= #{distance}) ]]>

        <if test="czlxList != null and !czlxList.isEmpty()">
            AND (
            <foreach collection="czlxList" item="item" open="(" close=")" separator=" OR ">
                w_czxx.F_czlx LIKE CONCAT('%', #{item}, '%')
            </foreach>
            )
        </if>
        <if test="search != null and search != ''">
            AND (w_czxx.F_czmc LIKE CONCAT('%', #{search}, '%') OR w_czxx.F_czjc LIKE CONCAT('%', #{search}, '%'))
        </if>
        ORDER BY  distance
    </select>
</mapper>