<?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.lyms.platform.permission.dao.master.Permissions2Mapper">
 <resultMap id="Permissions2ResultMap" type="com.lyms.platform.permission.model.Permissions2">
  <id column="id" property="id" jdbcType="INTEGER" />
  <result column="name" property="name" jdbcType="VARCHAR" />
  <result column="uri" property="uri" jdbcType="VARCHAR" />
  <result column="type" property="type" jdbcType="VARCHAR" />
  <result column="puri" property="puri" jdbcType="VARCHAR" />
  <result column="icon" property="icon" jdbcType="VARCHAR" />
  <result column="yn" property="yn" jdbcType="INTEGER" />
  <result column="create_date" property="createDate" jdbcType="TIMESTAMP" javaType="java.sql.Timestamp"/>
  <result column="create_user" property="createUser" jdbcType="VARCHAR" />
  <result column="enable" property="enable" jdbcType="INTEGER" />
  <result column="extra_data" property="extra_data" jdbcType="VARCHAR" />
  <result column="weight" property="weight" jdbcType="INTEGER" />
 </resultMap>
 <insert id="addPermissions2" parameterType="com.lyms.platform.permission.model.Permissions2">
insert into permissions2 (name,uri,type,puri,icon,yn,create_date,create_user,enable) values (#{name},#{uri},#{type},#{puri},#{icon},#{yn},#{createDate},#{createUser},#{enable})
</insert>
 <update id="updatePermissions2" parameterType="com.lyms.platform.permission.model.Permissions2">
  update permissions2 <set><if test="name != null and name != ''">
  name = #{name,jdbcType=VARCHAR},
 </if>
  <if test="uri != null and uri != ''">
   uri = #{uri,jdbcType=VARCHAR},
  </if>
  <if test="type != null and type != ''">
   type = #{type,jdbcType=VARCHAR},
  </if>
  <if test="puri != null and puri != ''">
   puri = #{puri,jdbcType=VARCHAR},
  </if>
  <if test="icon != null and icon != ''">
   icon = #{icon,jdbcType=VARCHAR},
  </if>
  <if test="yn != null and yn >= 0">
   yn = #{yn,jdbcType=INTEGER},
  </if>
  <if test="createDate != null ">
  create_date = #{createDate,jdbcType=TIMESTAMP}
  </if>
  <if test="createUser != null and createUser != ''">
   create_user = #{createUser,jdbcType=VARCHAR},
  </if>
  <if test="enable != null and enable >= 0">
   enable = #{enable,jdbcType=INTEGER},
  </if>
 </set>
  where id = #{id,jdbcType=INTEGER}
 </update>
 <delete id="deletePermissions2" parameterType="java.lang.Integer">
  delete from permissions2 where id = #{id,jdbcType=INTEGER}
 </delete>
 <select id="getPermissions2" resultMap="Permissions2ResultMap" parameterType="java.lang.Integer">
  select id,name,uri,type,puri,icon,yn,create_date,create_user,enable,extra_data,weight
  from permissions2 where id = #{id,jdbcType=INTEGER}
 </select>
 <sql id="orderAndLimit">
  <if test="sort != null and sort != '' ">
   order by ${sort}
   <if test="need != null">
    limit #{offset, jdbcType=INTEGER} , #{limit, jdbcType=INTEGER}
   </if>
  </if>
 </sql>
 <sql id="Permissions2Condition">
  <where>
   1 = 1
   <if test="id != null and id >= 0">
    and id = #{id,jdbcType=INTEGER}
   </if>
   <if test="name != null and name != ''">
    and name = #{name,jdbcType=VARCHAR}
   </if>
   <if test="uri != null and uri != ''">
    and uri = #{uri,jdbcType=VARCHAR}
   </if>
   <if test="type != null and type != ''">
    and type = #{type,jdbcType=VARCHAR}
   </if>
   <if test="puri != null and puri != ''">
    and puri = #{puri,jdbcType=VARCHAR}
   </if>
   <if test="icon != null and icon != ''">
    and icon = #{icon,jdbcType=VARCHAR}
   </if>
   <if test="yn != null and yn >= 0">
    and yn = #{yn,jdbcType=INTEGER}
   </if>
   <if test="createDate != null">
    and create_date = #{createDate,jdbcType=TIMESTAMP}
   </if>
   <if test="createUser != null and createUser != ''">
    and create_user = #{createUser,jdbcType=VARCHAR}
   </if>
   <if test="enable != null and enable >= 0">
    and enable = #{enable,jdbcType=INTEGER}
   </if>
  </where>
 </sql>
 <select id="queryPermissions2" resultMap="Permissions2ResultMap" parameterType="com.lyms.platform.permission.model.Permissions2Query">
  select id,name,uri,type,puri,icon,yn,create_date,create_user,enable,extra_data,weight
  from permissions2
  <include refid="Permissions2Condition" />
  <include refid="orderAndLimit" />
 </select>
 <select id="queryPermissions2Count" resultType="int" parameterType="com.lyms.platform.permission.model.Permissions2Query">
  select count(1) from permissions2
  <include refid="Permissions2Condition" />
 </select>
 <select id="queryPermissionByRoleIds" parameterType="java.util.List" resultMap="Permissions2ResultMap">
  select b.* from role_permission_maps a, permissions2 b where a.yn=1 and b.yn=1 and a.role_id
  in
  <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
   #{item}
  </foreach>
  and a.permission_id=b.id
 </select>
 <select id="queryPermissionByRoleIds1" parameterType="int" resultMap="Permissions2ResultMap">
  select b.* from role_permission_maps a, permissions2 b where  a.role_id=
  #{weight,jdbcType=INTEGER}
  and  b.yn=1 and a.yn=1 and a.permission_id=b.id;
 </select>
</mapper>