package com.tievd.jyz.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.tievd.jyz.dto.DeviceDTO; import com.tievd.jyz.dto.DeviceStatusStatDTO; import com.tievd.jyz.entity.Device; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** * Device * * @author cube * @version V2.0.0 * @since 2023-02-27 */ public interface DeviceMapper extends BaseMapper { /** * 自定义分页查询 * * @param page * @param queryWrapper * @return */ @Select("select d.*,count(c.id) cameraCount,count(if(c.status = 2, 1, null)) cameraOnlineCount from ( select * from t_device ${ew.customSqlSegment} ) d left join t_camera c on c.device_id = d.id group by d.id") IPage tables(Page page, @Param("ew") QueryWrapper queryWrapper); /** 在线状态统计 */ @Select("select count(if(tc.status =1,1,null)) onlineCount, count(if(tc.status =2,1,null)) offlineCount from t_device tc where tc.org_code like concat(#{orgCode},'%')") DeviceStatusStatDTO cameraStatusStat(String orgCode); }