ProductComment.xml 8.03 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.diligrp.titan.dao.comment.ProductCommentDao">

    <!-- product_comment 所有查询列 -->
	<sql id="QUERY_COLUMN_LIST">
		<![CDATA[id,pid,seller_user_id AS sellerUserId,buyer_user_id AS buyerUserId,comment,status,rate,
		   product_rate AS productRate,service_rate AS serviceRate,delivery_rate AS deliveryRate,ctime,utime]]>
	</sql>

	<!-- product_comment 查询列来源表-->
	<sql id="QUERY_FROM_TABLE"><![CDATA[FROM product_comment]]></sql>
	
	<!-- 全部条件(更多功能可以通过queryData扩展实现)  -->
	<sql id="QUERY_WHERE_CLAUSE">
		<where>
			<if test="id != null and id != ''"><![CDATA[AND id = #{id}]]></if>
			<if test="pid != null and pid != ''"><![CDATA[AND pid = #{pid}]]></if>
			<if test="sellerUserId != null and sellerUserId != ''"><![CDATA[AND seller_user_id = #{sellerUserId}]]></if>
			<if test="buyerUserId != null and buyerUserId != ''"><![CDATA[AND buyer_user_id = #{buyerUserId}]]></if>
			<if test="comment != null and comment != ''"><![CDATA[AND comment = #{comment}]]></if>
			<if test="status != null and status != ''"><![CDATA[AND status = #{status}]]></if>
			<if test="rate != null and rate != ''"><![CDATA[AND rate = #{rate}]]></if>
			<if test="productRate != null and productRate != ''"><![CDATA[AND product_rate = #{productRate}]]></if>
			<if test="serviceRate != null and serviceRate != ''"><![CDATA[AND service_rate = #{serviceRate}]]></if>
			<if test="deliveryRate != null and deliveryRate != ''"><![CDATA[AND delivery_rate = #{deliveryRate}]]></if>
			<if test="ctime != null and ctime != ''"><![CDATA[AND ctime = #{ctime}]]></if>
			<if test="utime != null and utime != ''"><![CDATA[AND utime = #{utime}]]></if>
			<if test="rate != null and rate != ''"><![CDATA[AND rate = #{rate}]]></if>
			<if test="startTime != null and startTime != ''"><![CDATA[AND ctime >= #{startTime}]]></if>
        	<if test="endTime != null and endTime != ''"><![CDATA[AND ctime <= #{endTime}]]></if>
		</where>
	</sql>
	
	<!-- 智能排序与分页 -->
	<sql id="QUERY_ORDER_LIMIT_CONDTION">
		<if test="orderField != null and orderField != '' and orderFieldType != null and orderFieldType != ''"><![CDATA[ORDER BY ${orderField} ${orderFieldType}]]></if>
		<if test="startIndex != null and startIndex &gt;= 0 and pageSize != null and pageSize &gt; 0"><![CDATA[LIMIT #{startIndex},#{pageSize}]]></if>
	</sql>

	<!-- 更新列字段,只要不为NULL则更新,除开主键列 -->
	<sql id="UPDATE_COLUMN_SET">
		<set>
			<if test="pid != null"><![CDATA[pid = #{pid},]]></if>
			<if test="sellerUserId != null and sellerUserId != ''"><![CDATA[seller_user_id = #{sellerUserId},]]></if>
			<if test="buyerUserId != null and buyerUserId != ''"><![CDATA[buyer_user_id = #{buyerUserId},]]></if>
			<if test="comment != null"><![CDATA[comment = #{comment},]]></if>
			<if test="status != null"><![CDATA[status = #{status},]]></if>
			<if test="rate != null"><![CDATA[rate = #{rate},]]></if>
			<if test="productRate != null and productRate != ''"><![CDATA[product_rate = #{productRate},]]></if>
			<if test="serviceRate != null and serviceRate != ''"><![CDATA[service_rate = #{serviceRate},]]></if>
			<if test="deliveryRate != null and deliveryRate != ''"><![CDATA[delivery_rate = #{deliveryRate},]]></if>			
			<if test="ctime != null"><![CDATA[ctime = #{ctime},]]></if>
			<if test="utime != null"><![CDATA[utime = #{utime},]]></if>
		</set>
	</sql>

	<!-- 插入product_comment记录 -->
	<insert id="insertEntry" parameterType="productComment" >
		<![CDATA[
			INSERT INTO product_comment (id,pid,seller_user_id,buyer_user_id,comment,status,rate,product_rate,service_rate,delivery_rate,ctime,utime)
			VALUES (#{id},#{pid},#{sellerUserId},#{buyerUserId},#{comment},#{status},#{rate},#{productRate},#{serviceRate},#{deliveryRate},now(),#{utime})
		]]>
	</insert>
	
	<!-- 返回插入的编号,在事务开启状态下有效 -->
	<select id="lastSequence" resultType="int"><![CDATA[SELECT LAST_INSERT_ID() AS id]]></select>

	<!-- 删除记录,主键IN(array) -->
	<delete id="deleteByArrayKey" parameterType="java.lang.reflect.Array" >
		<![CDATA[DELETE FROM product_comment WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</delete>

	<!-- 删除,通过条件 -->
	<update id="deleteByCondtion" parameterType="productComment" >
		<![CDATA[DELETE FROM product_comment]]>
		<include refid="QUERY_WHERE_CLAUSE"/>
	</update>

	<!-- 修改记录通过主键 -->
	<update id="updateByKey" parameterType="java.lang.Long" >
		<![CDATA[UPDATE product_comment]]>
		<include refid="UPDATE_COLUMN_SET"/>
		<![CDATA[WHERE id = #{id}]]>
	</update>

	<!-- 查询,通过主键IN(array) -->
	<select id="selectEntryArray" parameterType="java.lang.reflect.Array" resultType="productComment">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<![CDATA[WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</select>

	<!-- 查询,通过条件 -->
	<select id="selectEntryList" parameterType="productComment" resultType="productComment">
		  <![CDATA[
			SELECT a.id,a.pid,c.name AS name,a.seller_user_id AS sellerUserId,a.buyer_user_id AS buyerUserId,a.comment,a.status,a.rate,
					   a.product_rate AS productRate,a.service_rate AS serviceRate,a.delivery_rate AS deliveryRate,a.ctime,a.utime
			FROM product_comment a
			LEFT JOIN product_pop c ON c.pid=a.pid
			where 1=1
		   ]]>		
			<if test="id != null and id != ''"><![CDATA[AND a.id = #{id}]]></if>
			<if test="pid != null and pid != ''"><![CDATA[AND a.pid = #{pid}]]></if>
			<if test="sellerUserId != null and sellerUserId != ''"><![CDATA[AND a.seller_user_id = #{sellerUserId}]]></if>
			<if test="buyerUserId != null and buyerUserId != ''"><![CDATA[AND a.buyer_user_id = #{buyerUserId}]]></if>
			<if test="comment != null and comment != ''"><![CDATA[AND a.comment = #{comment}]]></if>
			<if test="status != null and status != ''"><![CDATA[AND a.status = #{status}]]></if>
			<if test="rate != null and rate != ''"><![CDATA[AND a.rate = #{rate}]]></if>
			<if test="productRate != null and productRate != ''"><![CDATA[AND a.product_rate = #{productRate}]]></if>
			<if test="serviceRate != null and serviceRate != ''"><![CDATA[AND a.service_rate = #{serviceRate}]]></if>
			<if test="deliveryRate != null and deliveryRate != ''"><![CDATA[AND a.delivery_rate = #{deliveryRate}]]></if>
			<if test="ctime != null and ctime != ''"><![CDATA[AND a.ctime = #{ctime}]]></if>
			<if test="utime != null and utime != ''"><![CDATA[AND a.utime = #{utime}]]></if>
			<if test="rate != null and rate != ''"><![CDATA[AND a.rate = #{rate}]]></if>
			<if test="startTime != null and startTime != ''"><![CDATA[AND a.ctime >= #{startTime}]]></if>
        	<if test="endTime != null and endTime != ''"><![CDATA[AND a.ctime <= #{endTime}]]></if>
		<if test="orderField != null and orderField != '' and orderFieldType != null and orderFieldType != ''"><![CDATA[ORDER BY ${orderField} ${orderFieldType}]]></if>
		<if test="startIndex != null and startIndex &gt;= 0 and pageSize != null and pageSize &gt; 0"><![CDATA[LIMIT #{startIndex},#{pageSize}]]></if>
	</select>

	<!-- 总数查询,通过条件 -->
	<select id="selectEntryListCount" parameterType="productComment" resultType="int">
		<![CDATA[SELECT COUNT(id) AS dataCount]]>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
	</select>
	
	<!-- 批量插入product_comment记录 -->
	<insert id="batchInsert" parameterType="productComment" >
		<![CDATA[
			INSERT INTO product_comment (id,pid,seller_user_id,buyer_user_id,comment,status,rate,product_rate,service_rate,delivery_rate,ctime,utime)
			]]>
			VALUES 
			<foreach collection="list" item="item" index="index" separator=",">
				(#{item.id},#{item.pid},#{item.sellerUserId},#{item.buyerUserId},#{item.comment},#{item.status},#{item.rate},#{item.productRate}
				,#{item.serviceRate},#{item.deliveryRate},now(),#{item.utime})
			</foreach>
	</insert>	
</mapper>