<?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.by4cloud.platformx.device.mapper.DeviceClassMapper">
|
|
<resultMap id="deviceClassMap" type="com.by4cloud.platformx.device.entity.DeviceClass">
|
<id property="id" column="id"/>
|
<result property="name" column="name"/>
|
<result property="number" column="number"/>
|
<result property="pNum" column="p_num"/>
|
<result property="pId" column="p_id"/>
|
<result property="depreciation" column="depreciation"/>
|
<result property="beforeDate" column="before_date"/>
|
<result property="remark" column="remark"/>
|
<result property="createBy" column="create_by"/>
|
<result property="createTime" column="create_time"/>
|
<result property="updateBy" column="update_by"/>
|
<result property="updateTime" column="update_time"/>
|
<result property="delFlag" column="del_flag"/>
|
</resultMap>
|
<select id="selectEndNode" resultType="java.lang.Long">
|
SELECT parent.id
|
FROM (
|
SELECT t1.*
|
FROM device_class t1
|
WHERE FIND_IN_SET(t1.id, (
|
SELECT GROUP_CONCAT(id)
|
FROM (
|
SELECT id, IF(FIND_IN_SET(p_id, @pids) > 0, @pids := CONCAT(@pids, ',', id), 0) AS is_child
|
FROM device_class, (SELECT @pids := #{classId}) tmp
|
ORDER BY p_id
|
) t
|
WHERE is_child != 0
|
)) OR t1.id = #{classId}
|
) parent
|
LEFT JOIN device_class child ON parent.id = child.p_id
|
WHERE child.id IS NULL; -- 验证是否为末端节点
|
|
</select>
|
</mapper>
|