Files
nanguangszwlback/mhd-user-center/src/main/resources/mapper/UserAddressMapper.xml
T
2025-11-20 10:45:16 +08:00

90 lines
4.0 KiB
XML

<?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.mhd.user.domain.userAggregate.repository.mapper.UserAddressMapper">
<resultMap type="com.mhd.user.domain.userAggregate.entity.UserAddress" id="UserAddressResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="areaName" column="area_name"/>
<result property="areaCode" column="area_code"/>
<result property="detailedAddress" column="detailed_address"/>
<result property="contactPerson" column="contact_person"/>
<result property="contactPhone" column="contact_phone"/>
<result property="isDefault" column="is_default"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<resultMap type="com.mhd.user.domain.userAggregate.repository.po.UserAddressPO" id="UserAddressPOResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="areaName" column="area_name"/>
<result property="areaCode" column="area_code"/>
<result property="detailedAddress" column="detailed_address"/>
<result property="contactPerson" column="contact_person"/>
<result property="contactPhone" column="contact_phone"/>
<result property="isDefault" column="is_default"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectUserAddressVo">
select id, user_id, area_name, area_code, detailed_address, contact_person, contact_phone, is_default,
create_by, create_time, update_by, update_time, del_flag
from user_address
</sql>
<select id="queryList" parameterType="com.mhd.user.domain.userAggregate.repository.todo.UserAddressDO" resultMap="UserAddressPOResult">
<include refid="selectUserAddressVo"/>
<where>
del_flag = 0
<if test="userId != null">
and user_id = #{userId}
</if>
<if test="areaName != null and areaName != ''">
and area_name like concat('%', #{areaName}, '%')
</if>
<if test="contactPerson != null and contactPerson != ''">
and contact_person like concat('%', #{contactPerson}, '%')
</if>
<if test="contactPhone != null and contactPhone != ''">
and contact_phone like concat('%', #{contactPhone}, '%')
</if>
<if test="isDefault != null">
and is_default = #{isDefault}
</if>
</where>
order by is_default desc, create_time desc
</select>
<select id="getAddressByUserId" parameterType="Long" resultMap="UserAddressPOResult">
<include refid="selectUserAddressVo"/>
where del_flag = 0 and user_id = #{userId}
order by is_default desc, create_time desc
</select>
<select id="getDefaultAddressByUserId" parameterType="Long" resultMap="UserAddressPOResult">
<include refid="selectUserAddressVo"/>
where del_flag = 0 and user_id = #{userId} and is_default = 1
limit 1
</select>
<update id="clearDefaultAddressByUserId" parameterType="Long">
update user_address set is_default = 0
where del_flag = 0 and user_id = #{userId} and is_default = 1
</update>
<update id="setDefaultAddress" parameterType="Long">
update user_address set is_default = 1
where del_flag = 0 and id = #{addressId}
</update>
</mapper>