<?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.casic.missiles.mapper.DeviceGroupMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.DeviceGroup"> <id column="id" property="id" /> <result column="group_name" property="groupName" /> <result column="group_no" property="groupNo" /> <result column="descn" property="descn" /> <result column="deptid" property="deptid" /> <result column="create_time" property="createTime" /> <result column="create_user_id" property="createUserId" /> <result column="owner" property="owner" /> <result column="valid" property="valid" /> </resultMap> <sql id="char_toDate" databaseId="mysql"> ${paramStr} </sql> <sql id="char_toDate" databaseId="pgsql"> TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone </sql> <sql id="char_toDate" databaseId="oracle"> TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') </sql> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, name, owner, subcribe_ids, descn, dept, create_time, create_user_id </sql> <select id="listPage" resultType="com.casic.missiles.dto.group.DeviceGroupListVO"> SELECT dg.id, group_no AS "groupNo", deptid, deviceCount, subscribeCount, descn, create_time AS "createTime", group_name AS "groupName", create_user_id AS "createUserId", create_user_name AS "createUserName" FROM ( SELECT * FROM device_group WHERE valid = 1 <if test="request.groupNo != null and request.groupNo != '' "> AND group_no =#{request.groupNo} </if> <if test="request.groupName != '' and request.groupName != null"> AND group_name =#{request.groupName} </if> <if test="request.ids != null"> and id in <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> <if test="request.beginTime!='' and request.beginTime!=null"> AND create_time <![CDATA[ >= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.beginTime}"/> </include> </if> <if test="request.endTime!='' and request.endTime!=null"> AND create_time <![CDATA[ <= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.endTime}"/> </include> </if> ) dg LEFT JOIN ( SELECT count(id) AS "deviceCount",group_id as groupId FROM device d WHERE VALID = 1 GROUP BY group_id ) d ON d.groupId = dg.id LEFT JOIN ( SELECT count(id) AS "subscribeCount",group_id AS groupId FROM subscribe_store GROUP BY group_id ) s ON s.groupId = dg.id order by create_time desc </select> <select id="list" resultType="com.casic.missiles.dto.group.DeviceGroupListVO"> SELECT dg.id, group_no AS "groupNo", deptid, count( d.id ) AS "deviceCount", count( s.id ) AS "subscribeCount", descn, create_time AS "createTime", group_name AS "groupName" FROM ( SELECT * FROM device_group WHERE valid = 1 <if test="request.groupNo != null and request.groupNo != '' "> AND group_no =#{request.groupNo} </if> <if test="request.groupName != '' and request.groupName != null"> AND group_name =#{request.groupName} </if> <if test="request.ids != null"> and id in <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> <if test="request.beginTime!='' and request.beginTime!=null"> AND create_time <![CDATA[ >= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.beginTime}"/> </include> </if> <if test="request.endTime!='' and request.endTime!=null"> AND create_time <![CDATA[ <= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.endTime}"/> </include> </if> ) dg LEFT JOIN ( SELECT id, group_id AS "groupId" FROM device d WHERE VALID = 1 ) d ON d.groupId = dg.id LEFT JOIN ( SELECT id, group_id AS "groupId" FROM subscribe_store ) s ON s.groupId = dg.id GROUP BY dg.id order by create_time desc </select> <select id="selectMaxNo" resultType="java.lang.Long"> SELECT IFNULL(max(RIGHT(group_no, 12)), 0) from device_group </select> </mapper>