package com.sandu.ximon.admin.service; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; 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.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 { // private final BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalDao; // @Autowired // private SysUserRoleService sysUserRoleService; // @Autowired // private SysUserCompanyService sysUserCompanyService; // @Autowired // private BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalMapper; @Autowired private IPBroadcastMapper broadcastTerminalV2EntityMapper; /** * 同步终端 */ public void synchTerminal() { List server = broadcastTerminalV2EntityMapper.listAll(""); List 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 getBroadcastTerminalList(BaseConditionVO baseConditionVO, BroadcastTerminalV2Param broadcastTerminalV2Param) { if (broadcastTerminalV2Param == null) { broadcastTerminalV2Param = new BroadcastTerminalV2Param(); } Long clientId = SecurityUtils.getClientId(); //在线状态全部的话需要分页 if (2 == broadcastTerminalV2Param.getWorkState()) { PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); } List broadcastTerminalV2EntityBos; List broadcastTerminalV2EntityBos_final = new ArrayList<>(); //绑定状态:已绑定/未绑定/全部 if (broadcastTerminalV2Param.getBindingState() == null || 2 == broadcastTerminalV2Param.getBindingState()) { //全部 int bindingState = 2; broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, bindingState); } else { broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, broadcastTerminalV2Param.getBindingState()); } List 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 List getAll(Long userId) { Long roleId = sysUserRoleService.queryRoleId(userId); Long companyId = sysUserCompanyService.queryCompanyId(userId); List 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 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; }*/ }