Video.xml 8.68 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.dili.titan.dao.VideoDao">

	<!-- video 所有查询列 -->
	<sql id="QUERY_COLUMN_LIST">
		<![CDATA[id,name,category_id AS categoryId,img,file_id AS fileId,page_url AS pageUrl,status,aqy_status as aqystatus,description,reason,ctime,utime]]>
	</sql>

	<!-- video 查询列来源表-->
	<sql id="QUERY_FROM_TABLE"><![CDATA[FROM video]]></sql>
	
	<!-- 全部条件(更多功能可以通过queryData扩展实现)  -->
	<sql id="QUERY_WHERE_CLAUSE">
		<where>
			<if test="id != null and id != ''"><![CDATA[AND id = #{id}]]></if>
			<if test="name != null and name != ''"><![CDATA[AND name like '%${name}%']]></if>
			<if test="cateList != null and cateList != ''"><![CDATA[AND category_id IN]]>
                <foreach collection="cateList" item="cate" open="(" separator="," close=")">
                    <![CDATA[#{cate}]]>
                </foreach>
            </if>
            <if test="categoryId != null and categoryId != ''"><![CDATA[AND category_id = #{categoryId}]]></if>			
			<if test="status != null and status != ''"><![CDATA[AND status = #{status}]]></if>
			<if test="status == null or status == ''"><![CDATA[AND status != -1]]></if>
			<if test="description != null and description != ''"><![CDATA[AND description = #{description}]]></if>
			<if test="ctime != null and ctime != ''"><![CDATA[AND ctime = #{ctime}]]></if>
			<if test="utime != null and utime != ''"><![CDATA[AND utime = #{utime}]]></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="name != null"><![CDATA[name = #{name},]]></if>
			<if test="categoryId != null"><![CDATA[category_id = #{categoryId},]]></if>
			<if test="status != null"><![CDATA[status = #{status},]]></if>
			<if test="reason != null"><![CDATA[reason = #{reason},]]></if>
			<if test="fileId != null"><![CDATA[file_id = #{fileId},]]></if>
			<if test="pageUrl != null"><![CDATA[page_url = #{pageUrl},]]></if>
			<if test="description != null"><![CDATA[description = #{description},]]></if>
			<if test="ctime != null"><![CDATA[ctime = #{ctime},]]></if>
			<if test="utime != null"><![CDATA[utime = #{utime},]]></if>
		</set>
	</sql>
 
	<!-- 插入video记录 -->
	<insert id="insertEntry" parameterType="video" >
		<![CDATA[
			INSERT INTO video (name,category_id,status,aqy_status,file_id,page_url,description,reason,ctime,utime)
			VALUES (#{name},#{categoryId},#{status},#{aqyStatus},#{fileId},#{pageUrl},#{description},#{reason},NOW(),NOW())
		]]>
	</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 video WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</delete>

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

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

	<!-- 查询,通过主键IN(array) -->
	<select id="selectEntryArray" parameterType="java.lang.reflect.Array" resultType="video">
		<![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="video" resultType="video">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
		<include refid="QUERY_ORDER_LIMIT_CONDTION"/>
	</select>

	<!-- 总数查询,通过条件 -->
	<select id="selectEntryListCount" parameterType="video" resultType="int">
		<![CDATA[SELECT COUNT(id) AS dataCount]]>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
	</select>

	<!-- 查询,通过条件 -->
	<select id="searchEntryList" parameterType="video" resultType="video">
		<![CDATA[select pvv.id,pvv.name,pvv.categoryId,pvv.img,pvv.fileId,pvv.pageUrl,pvv.status,pvv.aqyStatus,pvv.description,pvv.ctime,pvv.utime,pvv.pid,pvv.reason,pp.name as pname,pp.shop_name AS shopName  from ]]>
		<![CDATA[ (select v.id,v.name,v.category_id AS categoryId,img,v.file_id AS fileId,v.page_url AS pageUrl,v.status,v.aqy_status as aqyStatus,v.description,v.ctime,v.utime,pv.pid,v.reason from video v left JOIN product_video pv on v.id = pv.video_id ]]>
		<where>
			<if test="id != null and id != ''"><![CDATA[AND v.id = #{id}]]></if>
			<if test="name != null and name != ''"><![CDATA[AND v.name like '%${name}%']]></if>
			<if test="cateList != null and cateList != ''"><![CDATA[AND v.category_id IN]]>
				<foreach collection="cateList" item="cate" open="(" separator="," close=")">
					<![CDATA[#{cate}]]>
				</foreach>
			</if>
			<if test="categoryId != null and categoryId != ''"><![CDATA[AND v.category_id = #{categoryId}]]></if>
			<if test="status != null and status != ''"><![CDATA[AND v.status = #{status}]]></if>
			<if test="status == null or status == ''"><![CDATA[AND v.status > 0]]></if>
			<if test="aqyStatus != null and aqyStatus != ''"><![CDATA[AND v.aqy_status = #{aqyStatus}]]></if>
			<if test="aqyStatus == null or aqyStatus == ''"><![CDATA[AND v.aqy_status > 0]]></if>
			<if test="pid != null and pid != ''"><![CDATA[AND pv.pid = #{pid}]]></if>
			<if test="description != null and description != ''"><![CDATA[AND v.description = #{description}]]></if>
		</where>
		<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>
		<![CDATA[	) pvv LEFT JOIN  product_pop pp on pvv.pid= pp.pid]]>
	</select>

	<!-- 总数查询,通过条件 -->
	<select id="searchEntryListCount" parameterType="video" resultType="int">
		<![CDATA[select count(pvv.id)  from ]]>
		<![CDATA[ (select v.id,v.name,v.category_id AS categoryId,img,v.file_id AS fileId,v.page_url AS pageUrl,v.status,v.description,v.ctime,v.utime,pv.pid,v.reason from video v left JOIN product_video pv on v.id = pv.video_id ]]>
		<where>
			<if test="id != null and id != ''"><![CDATA[AND v.id = #{id}]]></if>
			<if test="name != null and name != ''"><![CDATA[AND v.name like '%${name}%']]></if>
			<if test="cateList != null and cateList != ''"><![CDATA[AND v.category_id IN]]>
				<foreach collection="cateList" item="cate" open="(" separator="," close=")">
					<![CDATA[#{cate}]]>
				</foreach>
			</if>
			<if test="categoryId != null and categoryId != ''"><![CDATA[AND v.category_id = #{categoryId}]]></if>
			<if test="status != null and status != ''"><![CDATA[AND v.status = #{status}]]></if>
			<if test="status == null or status == ''"><![CDATA[AND v.status > 0]]></if>
			<if test="aqyStatus != null and aqyStatus != ''"><![CDATA[AND v.aqy_status = #{aqyStatus}]]></if>
			<if test="aqyStatus == null or aqyStatus == ''"><![CDATA[AND v.aqy_status > 0]]></if>
			<if test="pid != null and pid != ''"><![CDATA[AND pv.pid = #{pid}]]></if>
			<if test="description != null and description != ''"><![CDATA[AND v.description = #{description}]]></if>
		</where>
		<![CDATA[	) pvv LEFT JOIN  product_pop pp on pvv.pid= pp.pid]]>
	</select>
	
	<!-- 其它SQL语句 -->
    <select id="selectVideoByPid" parameterType="long" resultType="video">
		<![CDATA[
			select a.id,a.name,a.category_id AS categoryId,a.img,file_id AS fileId,a.page_url AS pageUrl,a.status,a.aqy_status AS aqyStatus,a.description,a.reason,a.ctime,a.utime
			FROM video a 
			LEFT JOIN product_video b ON a.id=b.video_id
			where b.`status` != -1 AND b.pid=#{pid}
		]]>
	</select>

	<select id="findPidsByVideoId" parameterType="java.lang.Long" resultType="java.lang.Long">
		<![CDATA[SELECT pid from product_video where video_id=#{vodeoId} and status = 1]]>
	</select>
	
</mapper>