<?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.mingsoft.basic.dao.IColumnDao">
<sql id="column_list">
		co.column_categoryid,co.column_keyword,co.column_descrip,co.column_type,co.column_url,co.column_listurl,co.column_contentmodelid,co.column_websiteid,co.column_path,
		ca.category_id,ca.category_title,ca.category_sort,ca.category_datetime,ca.category_managerid,ca.category_modelid,ca.category_categoryid,ca.category_smallimg
	</sql>
	
	<sql id="category_column_list">
		category_id,category_title,category_sort,category_datetime,category_managerid,category_modelid,category_categoryid,category_smallimg
	</sql>
	
	<sql id="where_modelcode">
			and (ca.category_modelid=7 or ca.category_modelid=53)
	</sql>
	<!-- 字段绑定  开始 -->
	<resultMap type="com.mingsoft.basic.entity.ColumnEntity" id="resultMap">
		<id column="column_categoryid" property="categoryId"/><!-- 与Category类别类绑定ID -->
		<result column="column_keyword" property="columnKeyword"/><!-- 栏目简介-->
		<result column="column_descrip" property="columnDescrip"/><!-- 栏目简介扩展-->
		<result column="column_type" property="columnType"/><!--栏目属性 -->
		<result column="column_url" property="columnUrl"/><!-- 连接地址 -->
		<result column="column_listurl" property="columnListUrl"/><!-- 最终栏目列表地址 -->
		<result column="column_contentmodelid" property="columnContentModelId"/><!-- 栏目类型 -->
		<result column="column_websiteid" property="columnWebsiteId"/><!-- 所属站点ID -->
		<result column="column_path" property="columnPath"/><!-- 栏目路径 -->
		<result column="category_id" property="categoryId"/><!-- 类别ID -->
		<result column="category_title" property="categoryTitle"/><!-- 类别标题 -->
		<result column="category_sort" property="categorySort"/><!-- 类别排序 -->
		<result column="category_datetime" property="categoryDateTime"/><!-- 类别发布时间-->
		<result column="category_managerid" property="categoryManagerId"/><!-- 类别发布者ID -->
		<result column="category_modelid" property="categoryModelId"/><!-- 类别所属模块ID -->
		<result column="category_categoryid" property="categoryCategoryId"/><!-- 父类别ID -->
		<result column="category_smallimg" property="categorySmallImg"/><!-- 略缩图 -->
		</resultMap>
		
		<!-- 字段绑定  开始 -->
	<resultMap type="com.mingsoft.basic.entity.CategoryEntity" id="categoryResultMap">
		<id column="category_id" property="categoryId"/><!-- 类别ID -->
		<result column="category_title" property="categoryTitle"/><!-- 类别标题 -->
		<result column="category_sort" property="categorySort"/><!-- 类别排序 -->
		<result column="category_datetime" property="categoryDateTime"/><!-- 类别发布时间-->
		<result column="category_managerid" property="categoryManagerId"/><!-- 类别发布者ID -->
		<result column="category_modelid" property="categoryModelId"/><!-- 类别所属模块ID -->
		<result column="category_categoryid" property="categoryCategoryId"/><!-- 父类别ID -->
		<result column="category_smallimg" property="categorySmallImg"/><!-- 略缩图 -->
		</resultMap>
		
		<!-- 栏目添加开始 -->
		<insert id="saveEntity" parameterType="com.mingsoft.base.entity.BaseEntity">
		insert into cms_column
		<!-- 注入表字段 -->
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="categoryId != null">column_categoryid,</if><!-- 关联类别ID -->
			<if test="columnKeyword != null">column_keyword,</if><!-- 栏目简介 -->
			<if test="columnDescrip != null">column_descrip,</if><!-- 列表栏目连接 -->
			<if test="columnType != null">column_type,</if><!-- 栏目属性 -->
			<if test="columnUrl != null">column_url,</if><!-- 栏目链接 -->
			<if test="columnListUrl != null">column_listurl,</if><!-- 栏目列表链接 -->
			<if test="columnContentModelId != null">column_contentmodelid,</if><!-- 栏目类型 -->
			<if test="columnWebsiteId != null">column_websiteid,</if><!-- 栏目所属站点ID -->
			<if test="columnPath != null">column_path,</if><!-- 栏目路径 -->
		</trim>

		<!-- 注入控制层字段 -->
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="categoryId != null">#{categoryId},</if>
			<if test="columnKeyword != null">#{columnKeyword},</if>
			<if test="columnDescrip != null">#{columnDescrip},</if>
			<if test="columnType != null">#{columnType},</if>
			<if test="columnUrl != null">#{columnUrl},</if>
			<if test="columnListUrl != null">#{columnListUrl},</if>
			<if test="columnContentModelId != null">#{columnContentModelId},</if>
			<if test="columnWebsiteId != null">#{columnWebsiteId},</if>
			<if test="columnPath != null">#{columnPath},</if>
		</trim>
	</insert>
		<!-- 栏目添加结束 -->
		
			<!-- 更新栏目开始 -->
	<update id="updateEntity" parameterType="com.mingsoft.base.entity.BaseEntity">
		update cms_column
		<set>
			<if test="columnKeyword != null">column_keyword=#{columnKeyword},</if>
			<if test="columnDescrip != null">column_descrip=#{columnDescrip},</if>
			<if test="columnType != null">column_type=#{columnType},</if>
			<if test="columnUrl != null">column_url=#{columnUrl},</if>
			<if test="columnListUrl != null">column_listurl=#{columnListUrl},</if>
			<if test="columnContentModelId != null">column_contentmodelid=#{columnContentModelId},</if>
			<if test="columnWebsiteId != null">column_websiteid=#{columnWebsiteId},</if>
			<if test="columnPath != null">column_path=#{columnPath},</if>
		</set>
		where column_categoryid = #{categoryId}
	</update>
	<!-- 更新栏目结束 -->
	
	<!-- 删除栏目开始 -->
	<delete id="deleteEntity" parameterType="int">
		delete from cms_column where
		column_categoryid = #{categoryId}
	</delete>
	<!-- 删除栏目结束-->
	
	<!-- 根据ID查询开始 -->
	<select id="getEntity" resultMap="resultMap" parameterType="int">
		select
		<include refid="column_list"/>
		from cms_column co left join category ca on co.column_categoryid=ca.category_id where co.column_categoryid=#{categoryId};
	</select>
	<!-- 根据ID查询结束 -->
	
	<!-- 根据ID查询开始 -->
	<select id="queryCategoryByManagerIdAndModelId" resultMap="categoryResultMap">
		select
		<include refid="category_column_list"/>
		from category where category_managerid = #{categoryManagerId} and category_modelid = #{categoryModelId};
		
	</select>
	<!-- 根据ID查询结束 -->
	
	<!-- 根据站点ID查询栏目集开始 -->
	<select id="queryColumnListByWebsiteId" resultMap="resultMap" >
		select
		<include refid="column_list"/>
		from cms_column co left join category ca on ca.category_id=co.column_categoryid where co.column_websiteid=#{columnWebsiteId} <include refid="where_modelcode"/>;
	</select>
	<!-- 根据管站点ID查询栏目集结束 -->

	<!-- 根据站点Id查询栏目，返回该父栏目ID为categoryCategoryId的栏目集合开始 -->
	<select id="queryColumnByCategoryIdAndWebsiteIdAndModelId" resultMap="resultMap" >
		select
		<include refid="column_list"/>
		from cms_column co left join category ca on co.column_categoryid=ca.category_id where co.column_websiteid=#{columnWebsiteId}  and ca.category_categoryid=#{categoryCategoryId}
		<if test="modelId!=null">
		 and ca.category_modelId=#{modelId}
		</if> 
		order by ca.CATEGORY_SORT desc,ca.category_id desc
		<if test="size!=null">
			limit 0,#{size}
		</if>
	</select>
	<!-- 根据站点Id查询栏目，返回该父栏目ID为categoryCategoryId的栏目集合结束 -->
	
	<!-- 根据栏目id查询其子栏目Id的集合开始 -->
	<select id="queryColumnChildIdList" resultType="int" >
		select co.column_categoryid from cms_column co left join category ca on co.column_categoryid=ca.category_id where ca.category_categoryid=#{categoryId} and ca.category_appid = #{appId} <include refid="where_modelcode"/>;
	</select>
	<!-- 根据栏目id查询其子栏目Id的集合结束 -->
	
	<!-- 根据栏目属性查询站点ID为columnWebsiteId栏目集开始 -->
	<select id="queryColumnListBycolumnType" resultMap="resultMap" >
		select
		<include refid="column_list"/>
		from cms_column co left join category ca on ca.category_id=co.column_categoryid where co.column_websiteid=#{columnWebsiteId} and co.column_type=#{columnType} <include refid="where_modelcode"/>;
	</select>
	<!-- 根据栏目属性查询站点ID为columnWebsiteId栏目集结束 -->
	
	<!-- 根据站点Id查询栏目，返回该父栏目ID为categoryCategoryId的栏目集合数目统计开始 -->
	<select id="queryColumnChildListCountByWebsiteId" resultType="int" >
		select
		count(*)
		from cms_column co left join category ca on co.column_categoryid=ca.category_id where ca.category_categoryid=#{categoryCategoryId} and co.column_websiteid=#{columnWebsiteId} <include refid="where_modelcode"/>;
	</select>
	<!-- 根据站点Id查询栏目，返回该父栏目ID为categoryCategoryId的栏目集合数目统计结束 -->
	
	<!-- 获取当前应用下面对应模块的所以栏目分类 -->
	<select id="queryByAppIdAndModelId"  resultMap="resultMap" >
		select
		<include refid="column_list"/>
		from cms_column co left join category ca on ca.category_id=co.column_categoryid where ca.category_appId=#{appId} and ca.category_modelId=#{modelId}
	</select>
	
</mapper>