| <?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.matrix.system.shopXcx.dao.ShopReceiveAddressDao"> | 
|     <!-- 定义ShopReceiveAddress 的复杂关联map --> | 
|     <resultMap type="com.matrix.system.shopXcx.bean.ShopReceiveAddress" id="ShopReceiveAddressMap"> | 
|         <id property="addrId" column="addr_id" /> | 
|         <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="addrUserid" column="addr_userid" /> | 
|             <result property="addrLiaisonman" column="addr_liaisonman" /> | 
|             <result property="addrTelephone" column="addr_telephone" /> | 
|             <result property="addrProvince" column="addr_province" /> | 
|             <result property="addrCity" column="addr_city" /> | 
|             <result property="addrArea" column="addr_area" /> | 
|             <result property="addrDetailaddr" column="addr_detailaddr" /> | 
|             <result property="addrDefault" column="addr_default" /> | 
|             <result property="addrRegion" column="addr_region" /> | 
|             <result property="addrLongitude" column="addr_longitude" /> | 
|             <result property="addrLatitude" column="addr_latitude" /> | 
|         <result property="dormitory" column="dormitory" /> | 
|         <result property="school" column="school" /> | 
|     </resultMap> | 
|      | 
|      | 
|     <!-- 定义ShopReceiveAddress 的简单map  ,本map不添加其他的关联属性 --> | 
|     <resultMap type="com.matrix.system.shopXcx.bean.ShopReceiveAddress" id="ShopReceiveAddressSimpleMap"> | 
|         <id property="addrId" column="addr_id" /> | 
|         <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="addrUserid" column="addr_userid" /> | 
|             <result property="addrLiaisonman" column="addr_liaisonman" /> | 
|             <result property="addrTelephone" column="addr_telephone" /> | 
|             <result property="addrProvince" column="addr_province" /> | 
|             <result property="addrCity" column="addr_city" /> | 
|             <result property="addrArea" column="addr_area" /> | 
|             <result property="addrDetailaddr" column="addr_detailaddr" /> | 
|             <result property="addrDefault" column="addr_default" /> | 
|             <result property="addrRegion" column="addr_region" /> | 
|             <result property="addrLongitude" column="addr_longitude" /> | 
|             <result property="addrLatitude" column="addr_latitude" /> | 
|         <result property="dormitory" column="dormitory" /> | 
|         <result property="school" column="school" /> | 
|     </resultMap> | 
|      | 
|     <!-- 字段sql --> | 
|     <sql id="columns"> | 
|         create_by, | 
|         create_time, | 
|         update_by, | 
|         update_time, | 
|             addr_id, | 
|             addr_userid, | 
|             addr_liaisonman, | 
|             addr_telephone, | 
|             addr_province, | 
|             addr_city, | 
|             addr_area, | 
|             addr_detailaddr, | 
|             addr_default, | 
|             addr_longitude, | 
|             addr_latitude, | 
|             addr_region, | 
|             dormitory, | 
|             school | 
|     </sql> | 
|      | 
|     <!-- 属性sql --> | 
|     <sql id="propertys"> | 
|         #{item.createBy}, | 
|         now(), | 
|         #{item.updateBy}, | 
|         now(), | 
|             #{item.addrId}, | 
|             #{item.addrUserid}, | 
|             #{item.addrLiaisonman}, | 
|             #{item.addrTelephone}, | 
|             #{item.addrProvince}, | 
|             #{item.addrCity}, | 
|             #{item.addrArea}, | 
|             #{item.addrDetailaddr}, | 
|             #{item.addrDefault}, | 
|             #{item.addrLongitude}, | 
|             #{item.addrLatitude}, | 
|             #{item.addrRegion}, | 
|             #{item.dormitory}, | 
|             #{item.school} | 
|     </sql> | 
|      | 
|     <!-- where sql --> | 
|     <sql id="where_sql"> | 
|           | 
|          <if test="record!=null"> | 
|             <if test="(record.addrId!=null and record.addrId!='') or  (record.addrId!='' and record.addrId==0)  "> | 
|                 and addr_id  = #{record.addrId}  | 
|             </if> | 
|             <if test="(record.addrUserid!=null and record.addrUserid!='') or  (record.addrUserid!='' and record.addrUserid==0)  "> | 
|                 and addr_userid  = #{record.addrUserid}  | 
|             </if> | 
|             <if test="(record.addrLiaisonman!=null and record.addrLiaisonman!='') or  (record.addrLiaisonman!='' and record.addrLiaisonman==0)  "> | 
|                 and addr_liaisonman  = #{record.addrLiaisonman}  | 
|             </if> | 
|             <if test="(record.addrTelephone!=null and record.addrTelephone!='') or  (record.addrTelephone!='' and record.addrTelephone==0)  "> | 
|                 and addr_telephone  = #{record.addrTelephone}  | 
|             </if> | 
|             <if test="(record.addrProvince!=null and record.addrProvince!='') or  (record.addrProvince!='' and record.addrProvince==0)  "> | 
|                 and addr_province  = #{record.addrProvince}  | 
|             </if> | 
|             <if test="(record.addrCity!=null and record.addrCity!='') or  (record.addrCity!='' and record.addrCity==0)  "> | 
|                 and addr_city  = #{record.addrCity}  | 
|             </if> | 
|             <if test="(record.addrArea!=null and record.addrArea!='') or  (record.addrArea!='' and record.addrArea==0)  "> | 
|                 and addr_area  = #{record.addrArea}  | 
|             </if> | 
|             <if test="(record.addrDetailaddr!=null and record.addrDetailaddr!='') or  (record.addrDetailaddr!='' and record.addrDetailaddr==0)  "> | 
|                 and addr_detailaddr  = #{record.addrDetailaddr}  | 
|             </if> | 
|             <if test="(record.addrDefault!=null and record.addrDefault!='') or  (record.addrDefault!='' and record.addrDefault==0)  "> | 
|                 and addr_default  = #{record.addrDefault}  | 
|             </if> | 
|         </if> | 
|           | 
|     </sql> | 
|      | 
|     <!--  插入方法   --> | 
|     <insert id="insert" parameterType="com.matrix.system.shopXcx.bean.ShopReceiveAddress" | 
|         useGeneratedKeys="true" keyProperty="item.addrId"> | 
|         INSERT INTO shop_receive_address ( | 
|              <include refid="columns"></include> | 
|         ) | 
|     VALUES ( | 
|          <include refid="propertys"></include> | 
|     ) | 
|     </insert> | 
|      | 
|      | 
|      | 
|     <!--  批量插入   --> | 
|     <insert id="batchInsert" parameterType="java.util.List"> | 
|         INSERT INTO shop_receive_address ( | 
|         <include refid="columns"></include>     | 
|         ) | 
|     VALUES  | 
|     <foreach collection="list" item="item" index="index" separator=",">( | 
|         <include refid="propertys"></include>     | 
|     )</foreach> | 
|     </insert> | 
|      | 
|      | 
|      | 
|      | 
|      | 
|     <!--  根据Map更新 部分更新   --> | 
|     <update id="updateByMap" parameterType="java.util.HashMap" > | 
|         UPDATE shop_receive_address | 
|         <set> | 
|             <if test="_parameter.containsKey('addrUserid')"> | 
|                     addr_userid = #{addrUserid}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrLiaisonman')"> | 
|                     addr_liaisonman = #{addrLiaisonman}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrTelephone')"> | 
|                     addr_telephone = #{addrTelephone}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrProvince')"> | 
|                     addr_province = #{addrProvince}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrCity')"> | 
|                     addr_city = #{addrCity}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrArea')"> | 
|                     addr_area = #{addrArea}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrDetailaddr')"> | 
|                     addr_detailaddr = #{addrDetailaddr}, | 
|                 </if>         | 
|             <if test="_parameter.containsKey('addrDefault')"> | 
|                     addr_default = #{addrDefault}, | 
|                 </if> | 
|             <if test="_parameter.containsKey('dormitory')"> | 
|                 dormitory = #{dormitory}, | 
|                 </if> | 
|             <if test="_parameter.containsKey('school')"> | 
|                 school = #{school}, | 
|                 </if> | 
|   | 
|   | 
|   | 
|   | 
|         </set> | 
|         WHERE addr_id=#{addrId}  | 
|     </update>  | 
|      | 
|      | 
|     <!--  根据对象更新 部分更新   --> | 
|     <update id="updateByModel" parameterType="Integer"> | 
|         UPDATE shop_receive_address | 
|         <set> | 
|             <if test="record.addrUserid != null "> | 
|                 addr_userid  = #{record.addrUserid},  | 
|             </if> | 
|             <if test="record.addrLiaisonman != null and record.addrLiaisonman != '' "> | 
|                 addr_liaisonman  = #{record.addrLiaisonman},  | 
|             </if> | 
|             <if test="record.addrTelephone != null and record.addrTelephone != '' "> | 
|                 addr_telephone  = #{record.addrTelephone},  | 
|             </if> | 
|             <if test="record.addrProvince != null and record.addrProvince != '' "> | 
|                 addr_province  = #{record.addrProvince},  | 
|             </if> | 
|             <if test="record.addrCity != null and record.addrCity != '' "> | 
|                 addr_city  = #{record.addrCity},  | 
|             </if> | 
|             <if test="record.addrArea != null and record.addrArea != '' "> | 
|                 addr_area  = #{record.addrArea},  | 
|             </if> | 
|             <if test="record.addrDetailaddr != null and record.addrDetailaddr != '' "> | 
|                 addr_detailaddr  = #{record.addrDetailaddr},  | 
|             </if> | 
|             <if test="record.addrDefault != null "> | 
|                 addr_default  = #{record.addrDefault},  | 
|             </if> | 
|             <if test="record.addrRegion != null "> | 
|                 addr_region  = #{record.addrRegion}, | 
|             </if> | 
|             <if test="record.addrLongitude != null "> | 
|                 addr_longitude  = #{record.addrLongitude}, | 
|             </if> | 
|             <if test="record.addrLatitude != null "> | 
|                 addr_latitude  = #{record.addrLatitude}, | 
|             </if> | 
|             <if test="record.dormitory != null "> | 
|                 dormitory  = #{record.dormitory}, | 
|             </if> | 
|             <if test="record.school != null "> | 
|                 school  = #{record.school}, | 
|             </if> | 
|   | 
|   | 
|   | 
|   | 
|         </set> | 
|         WHERE addr_id=#{record.addrId}  | 
|     </update> | 
|      | 
|     <!-- 批量删除 --> | 
|     <delete id="deleteByIds" parameterType="java.util.List"> | 
|         delete from shop_receive_address where  addr_id in | 
|         <foreach collection="list" index="index" item="item" open="(" | 
|             separator="," close=")"> | 
|             #{item} | 
|         </foreach> | 
|     </delete> | 
|          | 
|     <!-- 根据id删除--> | 
|     <delete id="deleteById" parameterType="Integer"> | 
|         DELETE FROM shop_receive_address | 
|         where  addr_id=#{addrId}  | 
|     </delete> | 
|      | 
|     <!-- 根据对象删除--> | 
|     <delete id="deleteByModel" parameterType="com.matrix.system.shopXcx.bean.ShopReceiveAddress"> | 
|         DELETE FROM shop_receive_address | 
|         <where> | 
|         <include refid="where_sql" ></include> | 
|         </where> | 
|     </delete> | 
|      | 
|      | 
|      | 
|     <!-- 分页查询 --> | 
|     <select id="selectInPage" resultMap="ShopReceiveAddressMap"> | 
|         select  | 
|         <include refid="columns" ></include> | 
|         from shop_receive_address | 
|         <where> | 
|           <include refid="where_sql"></include> | 
|          </where> | 
|         <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> | 
|             <if test="pageVo.sort !=null  and pageVo.order !=null"> | 
|                 order by | 
|                 ${pageVo.sort} ${pageVo.order} | 
|             </if> | 
|             <if test="pageVo.offset >=0  and pageVo.limit >0"> | 
|                 limit | 
|                 #{pageVo.offset},#{pageVo.limit} | 
|             </if> | 
|         </if> | 
|     </select> | 
|      | 
|     <!-- 查询总条数 --> | 
|     <select id="selectTotalRecord" parameterType="long"   resultType="java.lang.Integer"> | 
|     select count(*) | 
|     from shop_receive_address | 
|         <where> | 
|            <include refid="where_sql"></include> | 
|         </where> | 
|     </select> | 
|   | 
|     <!-- 根据id查询--> | 
|     <select id="selectById" resultMap="ShopReceiveAddressMap"> | 
|         select  | 
|         <include refid="columns" ></include> | 
|         from shop_receive_address | 
|         where  addr_id=#{addrId}  | 
|     </select>     | 
|      | 
|   | 
|     <select id="selectDefaultAddress" resultMap="ShopReceiveAddressMap"> | 
|         select * from shop_receive_address where addr_default=1 and addr_userid  = #{openId} | 
|   | 
|     </select> | 
|     <!-- 根据id 锁表查询--> | 
|     <select id="selectForUpdate" resultMap="ShopReceiveAddressMap"> | 
|         select  | 
|         <include refid="columns" ></include> | 
|         from shop_receive_address | 
|         where  addr_id=#{addr_id}  | 
|         for update | 
|     </select>     | 
|      | 
|      | 
|      | 
|     <!-- 根据对象查询--> | 
|     <select id="selectByModel" resultMap="ShopReceiveAddressMap"> | 
|         select  | 
|         <include refid="columns" ></include> | 
|         from shop_receive_address | 
|         <where> | 
|           <include refid="where_sql"></include> | 
|          </where> | 
|         order by addr_default asc,create_time desc | 
|         <if test="record.offset >=0  and record.limit >0"> | 
|             limit | 
|             #{record.offset},#{record.limit} | 
|         </if> | 
|     </select> | 
| </mapper> |