From f2fdc4a1e311bafd1dadf45f043bc9c5c77e0a23 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Wed, 16 Jul 2025 17:44:56 +0800 Subject: [PATCH] 用户地址距离 --- oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-) diff --git a/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml b/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml index 2719b7d..71bfbea 100644 --- a/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml +++ b/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml @@ -10,11 +10,13 @@ <result column="city" property="city"/> <result column="district" property="district"/> <result column="street" property="street"/> + <result column="short_address" property="shortAddress"/> <result column="detail" property="detail"/> <result column="longitude" property="longitude"/> <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"/> @@ -22,15 +24,21 @@ </resultMap> <sql id="Base_Column_List"> - address_id, user_id, receiver_name, receiver_phone, province, city, district, street, detail, longitude, latitude, is_default, tag, create_by, create_time, update_by, update_time + address_id, user_id, receiver_name, receiver_phone, province, city, district, street, short_address, detail, longitude, latitude, is_default, tag, create_by, create_time, update_by, update_time </sql> <update id="isDefault"> - update sh_user_address set is_default = false where user_id = #{userId} + update sh_user_address + set is_default = false + where user_id = #{userId} </update> <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 != ''"> @@ -42,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 <= #{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> -- Gitblit v1.9.3