2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-01-05 d5c71f3c85e9370100559e86e1081c44b1cc15df
摄像头查询
已添加1个文件
已修改4个文件
189 ■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/bo/MonitorBo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/MonitorMapper.xml 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/bo/MonitorBo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.sandu.ximon.dao.bo;
import com.sandu.ximon.dao.domain.Monitor;
/**
 * @author ZZQ
 * @date 2021/12/31 16:33
 */
public class MonitorBo extends Monitor {
    private String poleId;
    private String PoleName;
}
dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java
@@ -1,6 +1,7 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.common.domain.BaseMapper;
import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
import org.apache.ibatis.annotations.Mapper;
@@ -12,6 +13,14 @@
                                       int bindingState1, int bindingState2);
    List<Monitor> listMonitorByKeyword1(String keyword, int bindingState1, int bindingState2);
    List<Long> listMonitorId(String keyword, Long clientId, int bindingState);
    List<MonitorBo> listMonitorByIds(List<Long> airEquipmentIdList);
}
dao/src/main/resources/mapper/MonitorMapper.xml
@@ -46,11 +46,47 @@
            t1.id DESC
    </select>
    <select id="listMonitorId" resultType="java.lang.Long">
        SELECT
        MAX(t1.id) AS air_equipment_id
        FROM
        monitor t1
        <if test="keyword != null and keyword != ''">
            LEFT JOIN pole_binding t2 ON t1.device_serial = t2.device_code
            AND t2.device_type = 7
            LEFT JOIN pole t3 ON t3.id = t2.pole_id
        </if>
        <where>
            <if test="keyword != null and keyword != ''">
                AND t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
            </if>
            <if test="clientId != null">
                AND t3.client_id = #{clientId}
            </if>
            <if test="bindingState != 2">
                AND t1.binding_state = #{bindingState}
            </if>
        </where>
        GROUP BY
        t1.device_serial
    </select>
    <select id="listMonitorByIds" resultType="com.sandu.ximon.dao.bo.MonitorBo">
        SELECT
        t1.*, t2.pole_id,
        t3.pole_name
        FROM
        monitor t1
        LEFT JOIN pole_binding t2 ON t1.device_serial = t2.device_code
        AND t2.device_type = 7
        LEFT JOIN pole t3 ON t3.id = t2.pole_id
        <where>
            t1.id IN
            <foreach collection="airEquipmentIdList" open="(" close=")" item="airId" separator=",">
                #{airId}
            </foreach>
        </where>
    </select>
</mapper>
        <!--        SELECT    * FROM   (SELECT    * FROM    (SELECT    * FROM    monitor AS table1-->
        <!--        WHERE device_serial  LIKE CONCAT(CONCAT('%', #{keyword}), '%')-->
        <!--        OR belong_to  LIKE CONCAT(CONCAT('%', #{keyword}), '%')) AS table2-->
        <!--        WHERE equipment_status = #{equipmentState1}-->
        <!--        OR equipment_status = #{equipmentState2}) AS table3-->
        <!--        WHERE binding_state = #{bindingState1} OR binding_state = #{bindingState2};-->
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
@@ -2,9 +2,11 @@
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.param.MonitorParam;
import com.sandu.ximon.admin.service.MonitorService;
import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
import com.sandu.ximon.admin.dto.YSY_MonitorDto;
import lombok.AllArgsConstructor;
@@ -21,21 +23,20 @@
public class MonitorController {
    private final MonitorService monitorService;
    @GetMapping
    public ResponseVO<Object> listMonitor() {
        List<Monitor> list = monitorService.listMonitor();
        return ResponseUtil.success(list);
    }
    /**
     * æ¨¡ç³ŠæŸ¥è¯¢
     *
     * @return
     */
    @PostMapping("/listMonitorByKeyword")
    public ResponseVO<Object> listMonitorByKeyword(@RequestBody MonitorParam monitorParam) {
        List<Monitor> list = monitorService.listMonitorByKeyword(monitorParam);
        return ResponseUtil.success(list);
    @PostMapping("/listMonitor")
    public ResponseVO<Object> listMonitorByKeyword(BaseConditionVO baseConditionVO, @RequestBody(required = false) MonitorParam monitorParam) {
        List<MonitorBo> list;
        if (monitorParam == null) {
            list = monitorService.listMonitorByKeyword(baseConditionVO, new MonitorParam());
        } else {
            list = monitorService.listMonitorByKeyword(baseConditionVO, monitorParam);
        }
        return ResponseUtil.successPage(list);
    }
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -1,13 +1,19 @@
package com.sandu.ximon.admin.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.MonitorParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.bo.AirEquipmentBo;
import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
import com.sandu.ximon.admin.dto.YSY_MonitorDto;
@@ -45,48 +51,73 @@
    private final PoleBindingService poleBindingService;
    /**
     * æŸ¥è¯¢å…¨éƒ¨æ‘„像头
     */
    public List<Monitor> listMonitor() {
        LambdaQueryWrapper<Monitor> wrapper = Wrappers.lambdaQuery(Monitor.class);
        List<Monitor> list = list(wrapper);
        return list;
    }
    /**
     * æ¨¡ç³ŠæŸ¥è¯¢
     */
    public List<Monitor> listMonitorByKeyword(MonitorParam monitorParam) {
        //设备状态:在线/离线/全部
        int equipmentState1;
        int equipmentState2;
        if (2 == monitorParam.getEquipmentState()) {
            //在线
            equipmentState1 = 1;
            //离线
            equipmentState2 = 0;
        } else {
            equipmentState1 = monitorParam.getEquipmentState();
            equipmentState2 = monitorParam.getEquipmentState();
        }
    public List<MonitorBo> listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) {
        Long clientId = SecurityUtils.getClientId();
        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
        List<Long> listAirEquipmentId;
        //绑定状态:已绑定/未绑定/全部
        int bindingState1;
        int bindingState2;
        if (2 == monitorParam.getBindingState()) {
            //已绑定
            bindingState1 = 1;
            //未绑定
            bindingState2 = 0;
        if (monitorParam.getBindingState() == null || 2 == monitorParam.getBindingState()) {
            //全部
            int bindingState = 2;
            listAirEquipmentId = monitorMapper.listMonitorId(monitorParam.getKeyword(), clientId, bindingState);
        } else {
            bindingState1 = monitorParam.getBindingState();
            bindingState2 = monitorParam.getBindingState();
            listAirEquipmentId = monitorMapper.listMonitorId(monitorParam.getKeyword(), clientId, monitorParam.getBindingState());
        }
//        return monitorMapper.listMonitorByKeyword(monitorParam.getKeyword(), equipmentState1, equipmentState2, bindingState1, bindingState2);
        return monitorMapper.listMonitorByKeyword1(monitorParam.getKeyword(), bindingState1, bindingState2);
        if (CollUtil.isEmpty(listAirEquipmentId)) {
            return CollUtil.newArrayList();
        }
        List<MonitorBo> monitorList = monitorMapper.listMonitorByIds(listAirEquipmentId);
        return monitorList;
    }
//    /**
//     * æŸ¥è¯¢å…¨éƒ¨æ‘„像头
//     */
//    public List<Monitor> listMonitor() {
//        LambdaQueryWrapper<Monitor> wrapper = Wrappers.lambdaQuery(Monitor.class);
//        List<Monitor> list = list(wrapper);
//
//        return list;
//    }
//
//    /**
//     * æ¨¡ç³ŠæŸ¥è¯¢
//     */
//    public List<Monitor> listMonitorByKeyword(MonitorParam monitorParam) {
//        //设备状态:在线/离线/全部
//        int equipmentState1;
//        int equipmentState2;
//        if (2 == monitorParam.getEquipmentState()) {
//            //在线
//            equipmentState1 = 1;
//            //离线
//            equipmentState2 = 0;
//        } else {
//            equipmentState1 = monitorParam.getEquipmentState();
//            equipmentState2 = monitorParam.getEquipmentState();
//        }
//
//        //绑定状态:已绑定/未绑定/全部
//        int bindingState1;
//        int bindingState2;
//        if (2 == monitorParam.getBindingState()) {
//            //已绑定
//            bindingState1 = 1;
//            //未绑定
//            bindingState2 = 0;
//        } else {
//            bindingState1 = monitorParam.getBindingState();
//            bindingState2 = monitorParam.getBindingState();
//        }
////        return monitorMapper.listMonitorByKeyword(monitorParam.getKeyword(), equipmentState1, equipmentState2, bindingState1, bindingState2);
//        return monitorMapper.listMonitorByKeyword1(baseConditionVO, monitorParam.getKeyword(), bindingState1, bindingState2);
//    }
    /**
     * åˆ é™¤æ‘„像头
     *