Auth.xml 4.62 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.AuthDao">

	<!-- auth 所有查询列 -->
	<sql id="QUERY_COLUMN_LIST">
		<![CDATA[id,name,auth_icon AS authIcon,status,ctime,utime]]>
	</sql>

	<!-- auth 查询列来源表-->
	<sql id="QUERY_FROM_TABLE"><![CDATA[FROM auth]]></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="authIcon != null and authIcon != ''"><![CDATA[AND auth_icon = #{authIcon}]]></if>
			<if test="status != null and status != ''"><![CDATA[AND status = #{status}]]></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="authIcon != null"><![CDATA[auth_icon = #{authIcon},]]></if>
			<if test="status != null"><![CDATA[status = #{status},]]></if>
			<![CDATA[utime = now()]]>
		</set>
	</sql>

	<!-- 插入auth记录 -->
	<insert id="insertEntry" parameterType="auth" >
		<![CDATA[
			INSERT INTO auth (id,name,auth_icon,status,ctime,utime)
			VALUES (#{id},#{name},#{authIcon},#{status},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 auth WHERE id IN]]>
		<foreach collection="array" item="id" open="(" separator="," close=")">
			<![CDATA[#{id}]]>
		</foreach>
	</delete>

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

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

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

	<!-- 级联auth_scope表 -->
   <resultMap id="authInfo" type="map" >
      <id column="id" property="id" />
   	  <result column="name" property="name"/>
   	  <result column="auth_icon" property="authIcon"/>
   	  <result column="status" property="status"/>
   	  <collection property="scopeSet" column="id" ofType="java.util.HashMap" select="com.diligrp.titan.dao.AuthScopeDao.getByAuthId" javaType="ArrayList" ></collection>   
   </resultMap>
    
	<!-- 查询,通过条件 -->
	<select id="selectEntryList" resultMap="authInfo">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<include refid="QUERY_WHERE_CLAUSE"/>
		<![CDATA[ORDER BY id desc ]]>
	</select>
	
    <!-- 根据证书名称查询 -->
	<select id="selecEntrytByName" resultType="auth">
		<![CDATA[SELECT]]>
		<include refid="QUERY_COLUMN_LIST"/>
		<include refid="QUERY_FROM_TABLE"/>
		<![CDATA[WHERE name = #{name}]]>
	</select>

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

	<!-- 其它SQL语句 -->
    <select id="findNormalAuthByScope" parameterType="int" resultType="auth">
        <![CDATA[SELECT a.id,a.name,a.auth_icon AS authIcon,a.status,a.ctime,a.utime FROM
        auth a , auth_scope s
        WHERE  a.id=s.auth_id AND s.scope_id = #{scope} AND a.status = 1 ]]>
        GROUP BY a.id
    </select>
	
</mapper>