2021与蓝度共同重构项目,服务端
liuhaonan
2022-01-05 3d84bc3273c6ef38a304b7af08e8e380ef25c05b
功能完善
已添加7个文件
已修改2个文件
497 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/domain/BroadcastTerminalV2Entity.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TerminalAPIUtils.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/CommonRequestParams.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/ListDataResponseVO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/TerminalVO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/BroadcastTerminalV2Entity.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.sandu.ximon.dao.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
/**
 *
 * @TableName broadcast_v2_terminal
 */
@TableName(value ="broadcast_v2_terminal")
@Data
public class BroadcastTerminalV2Entity implements Serializable {
    //  ç»ˆç«¯ID
    @TableId
    private Integer id;
    //  ç»ˆç«¯åç§°
    private String terminalName;
    //  ç»‘定灯杆ID
    private Long streetlightId;
    @TableField(exist = false)
    private String streetlightName;
    /**
     * 0未绑定  1已绑定
     */
    private Integer bindStates;
    //  æ˜¯å¦å­˜åœ¨äºŽæœåС噍 0:不存在 1:正常 2:异常
    private Integer exist;
    //  ç»ˆç«¯çŠ¶æ€ï¼ˆç©ºé—² 1、工作中 2 æˆ–者 4、断线 0,报 é”™ 8)
    @TableField(exist = false)
    private Integer status;
    //  ç»ˆç«¯ IP åœ°å€
    @TableField(exist = false)
    private String ip;
    //  ç»ˆç«¯éŸ³é‡(1-100)
    @TableField(exist = false)
    private Integer volumn;
    //  ç»ˆç«¯ç™»é™†çš„默认音量
    @TableField(exist = false)
    private Integer defaultVolumn;
    //  ç»ˆç«¯åŠŸæ”¾çŠ¶æ€(开为 1、关为 0)
    @TableField(exist = false)
    private Integer power;
    //  ç»ˆç«¯ç™»é™†çš„默认功放状态
    @TableField(exist = false)
    private Integer defaultPower;
    //  ç»ˆç«¯æœ€è¿‘一次登陆时间
    @TableField(exist = false)
    private Integer last;
    //  æ’­æ”¾æ—¶ï¼Œä»»åŠ¡çš„ç±»åž‹
    @TableField(exist = false)
    private Integer taskType;
    //  æ’­æ”¾æ—¶ï¼Œä»»åŠ¡çš„ ID
    @TableField(exist = false)
    private Long taskID;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Entity com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity
 */
public interface BroadcastTerminalV2EntityMapper extends BaseMapper<BroadcastTerminalV2Entity> {
}
dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?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.sandu.ximon.dao.mapper.BroadcastTerminalV2EntityMapper">
    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="terminalName" column="terminal_name" jdbcType="VARCHAR"/>
            <result property="streetlightId" column="streetlight_id" jdbcType="BIGINT"/>
            <result property="bindStates" column="bind_states" jdbcType="INTEGER"/>
            <result property="exist" column="exist" jdbcType="INTEGER"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,terminal_name,streetlight_id,
        bind_states,exist
    </sql>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
@@ -4,11 +4,11 @@
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.dto.YSY_MonitorDto;
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;
import org.springframework.web.bind.annotation.*;
ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,187 @@
package com.sandu.ximon.admin.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sandu.ximon.admin.utils.TerminalAPIUtils;
import com.sandu.ximon.admin.utils.request.BroadcastParams;
import com.sandu.ximon.admin.vo.TerminalVO;
import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
import com.sandu.ximon.dao.mapper.BroadcastV2TaskTerminalMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BroadcastTerminalV2Service {
/*
    private final BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalDao;
    *//**
     * èŽ·å–åˆ—è¡¨
     * @param params
     * @param userId
     * @return
     *//*
    public PageInfo<BroadcastTerminalV2Entity> list(BroadcastParams params, Long userId) {
        Long roleId = sysUserRoleService.queryRoleId(userId);
        Long companyId = sysUserCompanyService.queryCompanyId(userId);
        Integer limit = params.getLimit();
        Integer page = params.getPage();
        List<BroadcastTerminalV2Entity> list = null;
        if(roleId == Constant.SUPER_ADMIN) {
            PageHelper.startPage(page,limit);
            list = broadcastTerminalV2Dao.listAll(params.getName());
        }else if(roleId == Constant.ADMIN) {
            PageHelper.startPage(page,limit);
            list = broadcastTerminalV2Dao.listByCompanyId(companyId, params.getName());
        }else {
            PageHelper.startPage(page,limit);
            list = broadcastTerminalV2Dao.listByUserId(userId,params.getName());
        }
        PageInfo<BroadcastTerminalV2Entity> pageInfo = new PageInfo(list);
        for(BroadcastTerminalV2Entity b :pageInfo.getList()){
            try {
                TerminalVO terminalInfo = TerminalAPIUtils.getTerminalInfo(b.getId());
                if(null == terminalInfo) {
                    b.setExist(0);
                }else {
                    b.setExist(1);
                }
                b.setStatus(terminalInfo.getStatus());
                b.setIp(terminalInfo.getIp());
                b.setVolumn(terminalInfo.getVolumn());
                b.setDefaultVolumn(terminalInfo.getDefaultVolumn());
                b.setPower(terminalInfo.getPower());
                b.setDefaultPower(terminalInfo.getDefaultPower());
                b.setLast(terminalInfo.getLast());
                b.setTaskType(terminalInfo.getTaskType());
                b.setTaskID(terminalInfo.getTaskID());
            }catch (Exception e) {
                b.setExist(2);
            }
        }
        return pageInfo;
    }
    *//**
     * åŒæ­¥ç»ˆç«¯
     *//*
    public void synchTerminal() {
        List<BroadcastTerminalV2Entity> server = broadcastTerminalV2Dao.listAll("");
        List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
        list.stream().forEach(item->{
            //  éŸ³æŸ±æœåŠ¡å™¨ç»ˆç«¯ID
            Integer id = item.getId();
            boolean add = true;
            //  éåŽ†æ•°æ®åº“ç»ˆç«¯
            for(BroadcastTerminalV2Entity b: server) {
                Integer id1 = b.getId();
                if(id.equals(id1)){
                    add = false;
                    break;
                }
            }
            if(add){
                BroadcastTerminalV2Entity b = new BroadcastTerminalV2Entity();
                b.setId(id);
                b.setTerminalName(item.getName());
                b.setStreetlightId(0l);
                b.setExist(1);
                broadcastTerminalV2Dao.insert(b);
            }
        });
    }
    *//**
     * ä¿®æ”¹ç»ˆç«¯
      * @param params
     * @return 0:成功 1:名称不能为空
     *//*
    public Integer updateTerminal(BroadcastParams params, Long userId) {
        // æ ¡éªŒåç§°åˆæ³•性
        if(null == params.getTerminalName() || "".equals(params.getTerminalName())){
            return 1;
        }
        if(null == params.getDefaultVolumn() || params.getDefaultVolumn() < 0) {
            params.setDefaultVolumn(0);
        }
        BroadcastTerminalV2Entity b = new BroadcastTerminalV2Entity();
        b.setId(params.getTerminalId());
        b.setTerminalName(params.getTerminalName());
        b.setStreetlightId(params.getStreetlightId());
        b.setExist(1);
        //  API调用修改终端音量
        TerminalAPIUtils.changeVol(params.getTerminalId(),params.getDefaultVolumn(),userId);
        broadcastTerminalV2Dao.update(b);
        return 0;
    }
    *//**
     * éŸ³é‡ä¿®æ”¹
     * @param params
     * @param userId
     * @return
     *//*
    public Integer changeVol(BroadcastParams params, Long userId) {
        boolean b = TerminalAPIUtils.changeVol(params.getTerminalId(), params.getDefaultVolumn(), userId);
        if(b){
            return 0;
        }
        return 1;
    }
    public List<BroadcastTerminalV2Entity> getAll(Long userId) {
        Long roleId = sysUserRoleService.queryRoleId(userId);
        Long companyId = sysUserCompanyService.queryCompanyId(userId);
        List<BroadcastTerminalV2Entity> list = null;
        if(roleId == Constant.SUPER_ADMIN) {
            list = broadcastTerminalV2Dao.getAll();
        }else if(roleId == Constant.ADMIN) {
            list = broadcastTerminalV2Dao.getAllByCompanyId(companyId);
        }else {
            list = broadcastTerminalV2Dao.getAllByUserId(userId);
        }
        return list;
    }
    public BroadcastTerminalV2Entity getById(Integer i) {
        return broadcastTerminalV2Dao.getById(i);
    }
    public Object getAllWithStatus(Long userId) {
        List<BroadcastTerminalV2Entity> all = getAll(userId);
        for(BroadcastTerminalV2Entity b : all){
            try {
                TerminalVO terminalInfo = TerminalAPIUtils.getTerminalInfo(b.getId());
                if(null == terminalInfo) {
                    b.setExist(0);
                }else {
                    b.setExist(1);
                }
                b.setStatus(terminalInfo.getStatus());
                b.setIp(terminalInfo.getIp());
                b.setVolumn(terminalInfo.getVolumn());
                b.setDefaultVolumn(terminalInfo.getDefaultVolumn());
                b.setPower(terminalInfo.getPower());
                b.setDefaultPower(terminalInfo.getDefaultPower());
                b.setLast(terminalInfo.getLast());
                b.setTaskType(terminalInfo.getTaskType());
                b.setTaskID(terminalInfo.getTaskID());
            }catch (Exception e) {
                b.setExist(2);
            }
        }
        return all;
    }*/
}
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/TerminalAPIUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
package com.sandu.ximon.admin.utils;
import com.alibaba.fastjson.JSON;
import com.sandu.ximon.admin.config.BroadcastAPI;
import com.sandu.ximon.admin.utils.request.CommonRequestParams;
import com.sandu.ximon.admin.utils.response.CommonResponseVO;
import com.sandu.ximon.admin.utils.response.DataResponseVO;
import com.sandu.ximon.admin.vo.ListDataResponseVO;
import com.sandu.ximon.admin.vo.TerminalVO;
import java.util.List;
public class TerminalAPIUtils {
    /**
     * èŽ·å–ç»ˆç«¯æœåŠ¡å™¨å¯¹è±¡
     *
     * @param terminalId
     * @return
     */
    public static TerminalVO getTerminalInfo(Integer terminalId) {
        DataResponseVO responseVO = JSON.parseObject(
                BroadcastPostUtils.Post(
                        new CommonRequestParams().put("id", terminalId).getParams(),
                        BroadcastAPI.GET_TERMINAL.getUrl(),
                        CharUtils.GBK),
                DataResponseVO.class
        );
        return responseVO.convert(TerminalVO.class);
    }
    /**
     * èŽ·å–ç»ˆç«¯æœåŠ¡å™¨å¯¹è±¡åˆ—è¡¨
     */
    public static List<TerminalVO> getTerminalList() {
        ListDataResponseVO responseVO = JSON.parseObject(
                BroadcastPostUtils.Post(
                        new CommonRequestParams().getParams(),
                        BroadcastAPI.GET_TERMINAL_LIST.getUrl(),
                        CharUtils.GBK),
                ListDataResponseVO.class
        );
        return responseVO.covertTerminalList();
    }
    /**
     * æ›´æ–°æ’­æ”¾ç»ˆç«¯
     *
     * @param terminalId
     * @param terminalVO
     * @param userId
     * @return
     */
    public static boolean updateTerminal(Integer terminalId, TerminalVO terminalVO, Long userId) {
        CommonResponseVO responseVO = JSON.parseObject(
                BroadcastPostUtils.Post(
                        new CommonRequestParams()
                                .put("id", terminalId)
                                .put("data", JSON.toJSONString(terminalVO))
                                .getParams(),
                        BroadcastAPI.UPDATE_TERMINAL.getUrl(),
                        CharUtils.GBK),
                CommonResponseVO.class
        );
        if (responseVO.isOK()) {
//            log("修改播放终端(id:"+terminalId+", name:"+terminalVO.getName()+")",userId,null);
            return true;
        }
//        logError("修改播放终端失败!(id:"+terminalId+", name:"+terminalVO.getName()+")",userId,null);
        return false;
    }
    /**
     * åˆ é™¤æ’­æ”¾ç»ˆç«¯
     *
     * @param terminalId
     * @param userId
     * @return
     */
    public static boolean delTerminal(Integer terminalId, Long userId) {
        CommonResponseVO responseVO = JSON.parseObject(
                BroadcastPostUtils.Post(
                        new CommonRequestParams()
                                .put("id", terminalId)
                                .getParams(),
                        BroadcastAPI.DEL_TERMINAL.getUrl(),
                        CharUtils.GBK),
                CommonResponseVO.class
        );
        if (responseVO.isOK()) {
//            log("删除播放终端(id:"+terminalId+")",userId,null);
            return true;
        }
//        logError("删除播放终端失败!(id:"+terminalId+")",userId,null);
        return false;
    }
    /**
     * ä¿®æ”¹ç»ˆç«¯éŸ³é‡
     *
     * @param terminalId
     * @param defaultVolumn
     */
    public static boolean changeVol(Integer terminalId, Integer defaultVolumn, Long userId) {
        TerminalVO terminalInfo = getTerminalInfo(terminalId);
        terminalInfo.setDefaultVolumn(defaultVolumn);
        terminalInfo.setVolumn(defaultVolumn);
        CommonResponseVO responseVO = JSON.parseObject(
                BroadcastPostUtils.Post(
                        new CommonRequestParams()
                                .put("id", terminalId)
                                .put("data", terminalInfo)
                                .getParams(),
                        BroadcastAPI.UPDATE_TERMINAL.getUrl(),
                        CharUtils.GBK),
                CommonResponseVO.class
        );
        if (responseVO.isOK()) {
//            log("修改播放终端音量(id:"+terminalId+")",userId,null);
            return true;
        }
//        logError("修改播放终端音量失败!(id:"+terminalId+")",userId,null);
        return false;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/CommonRequestParams.java
@@ -1,7 +1,10 @@
package com.sandu.ximon.admin.utils.request;
import com.alibaba.fastjson.JSON;
import com.sandu.ximon.admin.config.BroadcastAPI;
import com.sandu.ximon.admin.config.BroadcastV2Config;
import com.sandu.ximon.admin.utils.BroadcastPostUtils;
import com.sandu.ximon.admin.utils.CharUtils;
import com.sandu.ximon.admin.vo.LoginResponseVO;
@@ -14,8 +17,21 @@
    @Override
    public String getParams() {
        map.put("access_key", BroadcastV2Config.accessKey);
        map.put("access_id", BroadcastV2Config.accessId);
        LoginResponseVO responseVO1 = JSON.parseObject(
                BroadcastPostUtils.Post(
                        new LoginRequestParams(
                                BroadcastV2Config.LOGIN_USERNAME,
                                BroadcastV2Config.LOGIN_PASSWORD
                        ).getParams(),
                        BroadcastAPI.LOGIN.getUrl(), CharUtils.UTF8
                )
                ,LoginResponseVO.class
        );
        /*map.put("access_key", BroadcastV2Config.accessKey);
        map.put("access_id", BroadcastV2Config.accessId);*/
        map.put("access_key", responseVO1.getAccess_key());
        map.put("access_id", responseVO1.getAccess_id());
        return JSON.toJSONString(map);
    }
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/ListDataResponseVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.sandu.ximon.admin.vo;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.sandu.ximon.admin.utils.response.CommonResponseVO;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class ListDataResponseVO extends CommonResponseVO {
    private List<Map> data;
    private static final Gson gson = new Gson();
    public List<TerminalVO> covertTerminalList() {
        return gson.fromJson(gson.toJson(data), new TypeToken<List<TerminalVO>>(){}.getType());
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/TerminalVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.sandu.ximon.admin.vo;
import lombok.Data;
@Data
public class TerminalVO {
    //  ç»ˆç«¯å”¯ä¸€æ ‡è¯†ï¼ˆ>=1)
    private Integer id;
    //  ç»ˆç«¯ç±»åž‹æ ‡è¯†
    private Integer type;
    //  ç»ˆç«¯åç§°
    private String name;
    //  ç»ˆç«¯çŠ¶æ€ï¼ˆç©ºé—² 1、工作中 2 æˆ–者 4、断线 0,报 é”™ 8)
    private Integer status;
    //  ç»ˆç«¯ IP åœ°å€
    private String ip;
    //  ç»ˆç«¯éŸ³é‡(1-100)
    private Integer volumn;
    //  ç»ˆç«¯ç™»é™†çš„默认音量
    private Integer defaultVolumn;
    //  ç»ˆç«¯åŠŸæ”¾çŠ¶æ€(开为 1、关为 0)
    private Integer power;
    //  ç»ˆç«¯ç™»é™†çš„默认功放状态
    private Integer defaultPower;
    //  ç³»ç»Ÿä¿ç•™
    private String context;
    //  ç»ˆç«¯æœ€è¿‘一次登陆时间
    private Integer last;
    //  æ’­æ”¾æ—¶ï¼Œä»»åŠ¡çš„ç±»åž‹
    private Integer taskType;
    //  æ’­æ”¾æ—¶ï¼Œä»»åŠ¡çš„ ID
    private Long taskID;
    //  æ„Ÿåº”触发播放的音频,要终端有触发功能支持
    private String media;
    //  å‘¼å«ç­–ç•¥ ID,要终端有呼叫功能支持
    private Integer strategy_id;
}