<?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.orion.visor.module.infra.dao.DataGroupDAO">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.orion.visor.module.infra.entity.domain.DataGroupDO">
        <id column="id" property="id"/>
        <result column="parent_id" property="parentId"/>
        <result column="type" property="type"/>
        <result column="user_id" property="userId"/>
        <result column="name" property="name"/>
        <result column="sort" property="sort"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="creator" property="creator"/>
        <result column="updater" property="updater"/>
        <result column="deleted" property="deleted"/>
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, parent_id, type, user_id, name, sort, create_time, update_time, creator, updater, deleted
    </sql>

    <update id="updateSort">
        UPDATE data_group
        SET sort = sort + #{addition}
        WHERE parent_id = #{parentId}
        AND sort ${condition} #{referSort}
    </update>

    <select id="selectMaxSort" resultType="java.lang.Integer">
        SELECT IFNULL(MAX(sort), 0)
        FROM data_group
        WHERE deleted = 0
        AND type = #{type}
        AND parent_id = #{parentId}
    </select>

</mapper>
