Category.xml 5.99 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.CategoryDao">

	<!-- category 所有查询列 -->
	<sql id="QUERY_COLUMN_LIST">
		<![CDATA[id,`name`,jp,`alias`,parent,status,activate, `order`,icon,deal_type AS dealType]]>
	</sql>

	<!-- category 查询列来源表-->
	<sql id="QUERY_FROM_TABLE"><![CDATA[FROM category]]></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` = #{name}]]></if>
            <if test="dealType != null and dealType == 1"><![CDATA[AND deal_type in(1,3)]]></if>
            <if test="dealType != null and dealType == 2"><![CDATA[AND deal_type in(2,3)]]></if>
            <if test="alias != null and alias != ''"><![CDATA[AND `alias` = #{alias}]]></if>
			<if test="parent != null and parent != '' or parent==0"><![CDATA[AND parent = #{parent}]]></if>
			<if test="status != null and status != ''"><![CDATA[AND status = #{status}]]></if>
			<if test="activate != null and activate != ''"><![CDATA[AND activate = #{activate}]]></if>
			<if test="order != null and order != ''"><![CDATA[AND `order` = #{order}]]></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="jp != null"><![CDATA[`jp` = #{jp},]]></if>
            <if test="alias != null"><![CDATA[`alias` = #{alias},]]></if>
            <if test="dealType != null"><![CDATA[deal_type = #{dealType},]]></if>
			<if test="parent != null"><![CDATA[parent = #{parent},]]></if>
			<if test="status != null"><![CDATA[status = #{status},]]></if>
			<if test="activate != null"><![CDATA[activate = #{activate},]]></if>
			<if test="order != null"><![CDATA[`order` = #{order},]]></if>
            <if test="icon != null"><![CDATA[icon = #{icon},]]></if>
            <![CDATA[utime =now(),]]>
		</set>
	</sql>

	<!-- 插入category记录 -->
	<insert id="insertEntry" parameterType="category" >
		<![CDATA[
			INSERT INTO category (id,`name`,jp,`alias`,parent,status,activate, `order`,icon,deal_type,ctime,utime)
			VALUES (#{id},#{name},#{jp},#{alias},#{parent},#{status},#{activate}, #{order},#{icon}, #{dealType},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 category WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</delete>

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

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

	<!-- 查询,通过主键IN(array) -->
	<select id="selectEntryArray" parameterType="java.lang.reflect.Array" resultType="category">
		<![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>
		order by `order`
	</select>

	<!-- 查询,通过条件 -->
	<select id="selectEntryList" parameterType="category" resultType="category">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
		<include refid="QUERY_ORDER_LIMIT_CONDTION"/>
		order by `order`
	</select>

	<!-- 总数查询,通过条件 -->
	<select id="selectEntryListCount" parameterType="category" resultType="int">
		<![CDATA[SELECT COUNT(id) AS dataCount]]>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
	</select>
	
	<!-- 其它SQL语句 -->
	<select id="findAllByStatus" parameterType="java.util.List" resultType="category">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		WHERE
		<foreach collection="list" item="item" separator=" OR ">
			status=#{item}
		</foreach>
		order by `order`
	</select>
	
    <select id="findByScpoes" parameterType="java.util.HashMap" resultType="category">
        <![CDATA[SELECT a.id,a.name,a.jp,a.alias,a.parent,a.status,a.activate, a.order,a.icon,a.deal_type AS dealType FROM
        category a 
        WHERE 1=1 ]]>
        <if test="id != null and id != ''"><![CDATA[AND a.id = #{id}]]></if>
        <if test="parent != null and parent != '' or parent==0"><![CDATA[AND a.parent = #{parent}]]></if>
        <if test="status != null and status != ''"><![CDATA[AND a.status = #{status}]]></if>
        <if test="activate != null and activate != ''"><![CDATA[AND a.activate = #{activate}]]></if>
        GROUP BY a.id ORDER BY a.order ASC
    </select>

    <!--<select id="findNormalCateAttr" parameterType="Integer"-->
            <!--resultType="attribute">-->
        <!--<![CDATA[SELECT a.id, a.name,a.alias,a.deal_type AS dealType,a.inputtype,a.type,a.required,a.status,a.ctime,a.utime-->
        <!--FROM attribute a, category_attr c-->
        <!--WHERE c.cate_id = #{catId} AND c.attr_id = a.id AND a.status=1-->
        <!--]]>-->
    <!--</select>-->
</mapper>