package com.sandu.ximon.admin.service;
|
|
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.BroadcastTerminalV2Param;
|
import com.sandu.ximon.admin.security.SecurityUtils;
|
import com.sandu.ximon.admin.utils.TerminalAPIUtils;
|
import com.sandu.ximon.admin.vo.EquipmentInfomation;
|
import com.sandu.ximon.admin.vo.TerminalVO;
|
import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo;
|
import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
|
import com.sandu.ximon.dao.mapper.IPBroadcastMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Service
|
public class IpVolumeService extends BaseServiceImpl<IPBroadcastMapper, BroadcastTerminalV2Entity> {
|
// private final BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalDao;
|
// @Autowired
|
// private SysUserRoleService sysUserRoleService;
|
// @Autowired
|
// private SysUserCompanyService sysUserCompanyService;
|
// @Autowired
|
// private BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalMapper;
|
@Autowired
|
private IPBroadcastMapper broadcastTerminalV2EntityMapper;
|
|
/**
|
* 同步终端
|
*/
|
public void synchTerminal() {
|
List<BroadcastTerminalV2Entity> server;
|
//为空是超管
|
if (SecurityUtils.getClientId() == null) {
|
server = broadcastTerminalV2EntityMapper.listAll(null);
|
} else {
|
server = broadcastTerminalV2EntityMapper.listAll(SecurityUtils.getUserId());
|
}
|
|
List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
|
System.out.println(list);
|
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);
|
save(b);
|
// broadcastTerminalV2EntityMapper.insert(b);
|
}
|
});
|
}
|
|
public List<BroadcastTerminalV2EntityBo> getBroadcastTerminalList(BaseConditionVO baseConditionVO, BroadcastTerminalV2Param broadcastTerminalV2Param) {
|
if (broadcastTerminalV2Param == null) {
|
broadcastTerminalV2Param = new BroadcastTerminalV2Param();
|
}
|
|
//在线状态全部的话需要分页
|
if (baseConditionVO != null && 2 == broadcastTerminalV2Param.getWorkState()) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
}
|
|
List<BroadcastTerminalV2EntityBo> broadcastTerminalV2EntityBos;
|
List<BroadcastTerminalV2EntityBo> broadcastTerminalV2EntityBos_final = new ArrayList<>();
|
//绑定状态:已绑定/未绑定/全部
|
if (broadcastTerminalV2Param.getBindingState() == null || 2 == broadcastTerminalV2Param.getBindingState()) {
|
//全部
|
int bindingState = 2;
|
if (SecurityUtils.getClientId() == null) {
|
broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), null, bindingState);
|
} else {
|
broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), SecurityUtils.getUserId(), bindingState);
|
}
|
} else {
|
if (SecurityUtils.getClientId() == null) {
|
broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword()
|
, null, broadcastTerminalV2Param.getBindingState());
|
} else {
|
broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword()
|
, SecurityUtils.getUserId(), broadcastTerminalV2Param.getBindingState());
|
}
|
}
|
|
List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
|
for (BroadcastTerminalV2EntityBo bean : broadcastTerminalV2EntityBos) {
|
for (TerminalVO terminalVO : list) {
|
if (bean.getId().equals(terminalVO.getId())) {
|
bean.setStatus(terminalVO.getStatus());
|
bean.setIp(terminalVO.getIp());
|
bean.setVolumn(terminalVO.getVolumn());
|
bean.setDefaultVolumn(terminalVO.getDefaultVolumn());
|
bean.setPower(terminalVO.getPower());
|
bean.setDefaultPower(terminalVO.getDefaultPower());
|
bean.setLast(terminalVO.getLast());
|
bean.setTaskType(terminalVO.getTaskType());
|
bean.setTaskID(terminalVO.getTaskID());
|
|
if (0 == broadcastTerminalV2Param.getWorkState() && 0 == terminalVO.getStatus()) {
|
broadcastTerminalV2EntityBos_final.add(bean);
|
} else if (1 == broadcastTerminalV2Param.getWorkState() && 1 == terminalVO.getStatus()) {
|
broadcastTerminalV2EntityBos_final.add(bean);
|
}
|
break;
|
}
|
}
|
}
|
if (2 == broadcastTerminalV2Param.getWorkState()) {
|
return broadcastTerminalV2EntityBos;
|
} else {
|
return broadcastTerminalV2EntityBos_final;
|
}
|
}
|
|
/**
|
* 修改设备绑定状态
|
*
|
* @param flag true为绑定 false 为解绑
|
*/
|
public void updateBingdingState(boolean flag, int deviceCode) {
|
if (flag) {//绑定
|
BroadcastTerminalV2Entity broadcastTerminalV2Entity = getOne(Wrappers.lambdaQuery(BroadcastTerminalV2Entity.class).eq(BroadcastTerminalV2Entity::getId, deviceCode));
|
if (broadcastTerminalV2Entity == null) {
|
return;
|
}
|
broadcastTerminalV2Entity.setBindStates(1);
|
updateById(broadcastTerminalV2Entity);
|
} else {//解绑
|
BroadcastTerminalV2Entity broadcastTerminalV2Entity = getOne(Wrappers.lambdaQuery(BroadcastTerminalV2Entity.class).eq(BroadcastTerminalV2Entity::getId, deviceCode));
|
if (broadcastTerminalV2Entity == null) {
|
return;
|
}
|
broadcastTerminalV2Entity.setBindStates(0);
|
updateById(broadcastTerminalV2Entity);
|
}
|
}
|
|
/**
|
* 修改终端
|
* @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
|
* @return
|
*/
|
public boolean changeVol(BroadcastTerminalV2Param params) {
|
return TerminalAPIUtils.changeVol(params.getId(), params.getDefaultVolumn());
|
}
|
|
/**
|
* 终端详情
|
*/
|
public EquipmentInfomation getIpTerminalDetail(String id) {
|
EquipmentInfomation equipmentInfo = new EquipmentInfomation();
|
equipmentInfo.setEquipmentType("IP音柱");
|
if (id == null || id.trim().length() == 0) {
|
return equipmentInfo;
|
}
|
equipmentInfo.setEquipmentMac(id);
|
TerminalVO terminalInfo = TerminalAPIUtils.getTerminalInfo(Integer.valueOf(id));
|
if (terminalInfo != null) {
|
//空闲 1、 工作中 2 或者 4、 断线 0, 报 错 8
|
switch (terminalInfo.getStatus()) {
|
case 1:
|
equipmentInfo.setEquipmentState("空闲");
|
break;
|
case 2:
|
case 4:
|
equipmentInfo.setEquipmentState("工作中");
|
break;
|
case 0:
|
equipmentInfo.setEquipmentState("断线");
|
break;
|
case 8:
|
equipmentInfo.setEquipmentState("报错");
|
break;
|
default:
|
equipmentInfo.setEquipmentState("未知");
|
|
}
|
} else {
|
equipmentInfo.setEquipmentState("未知");
|
}
|
return equipmentInfo;
|
}
|
|
|
/**
|
* 根据终端id获取终端信息
|
*
|
* @param name
|
* @param id
|
* @return
|
*/
|
public boolean updateBroadcastTerminalName(String name, Integer id) {
|
BroadcastTerminalV2Entity byId = getById(id);
|
if (byId == null) {
|
throw new BusinessException("终端不存在");
|
}
|
byId.setTerminalName(name);
|
return updateById(byId);
|
}
|
}
|