xin
2025-07-16 f2fdc4a1e311bafd1dadf45f043bc9c5c77e0a23
oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml
@@ -16,6 +16,7 @@
        <result column="latitude" property="latitude"/>
        <result column="is_default" property="isDefault"/>
        <result column="tag" property="tag"/>
        <result column="distance" property="distance"/>
        <result column="create_by" property="createBy"/>
        <result column="create_time" property="createTime"/>
        <result column="update_by" property="updateBy"/>
@@ -34,6 +35,10 @@
    <select id="findAll" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        <if test="criteria.longitude != null and criteria.latitude != null and criteria.longitude != '' and criteria.latitude != ''">
            , ROUND(ST_Distance_Sphere(POINT(#{criteria.longitude}, #{criteria.latitude}), POINT(longitude,
            latitude)), 2) distance
        </if>
        from sh_user_address
        <where>
            <if test="criteria.userId != null and criteria.userId != ''">
@@ -45,10 +50,21 @@
            <if test="criteria.phone != null and criteria.phone != ''">
                and receiver_phone like concat('%',#{criteria.phone},'%')
            </if>
            <if test="criteria.radius != null and criteria.radius != ''">
                and ST_Distance_Sphere(POINT(#{criteria.longitude}, #{criteria.latitude}), POINT(longitude,
                latitude)) distance &lt;= #{criteria.radius}
            </if>
            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
                AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
            </if>
        </where>
        order by address_id desc
    </select>
    <select id="getById" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        , ROUND(ST_Distance_Sphere(POINT(#{longitude}, #{latitude}), POINT(longitude, latitude)), 2) distance
        from sh_user_address
        where user_id = #{userId} and address_id = #{addressId}
    </select>
</mapper>