package com.web.generalKanBanPage.service.impl; import com.app.base.data.ApiResponseResult; import com.web.generalKanBanPage.dao.GeneralKanBanPageDao; import com.web.generalKanBanPage.entity.GeneralKanBanPage; import com.web.generalKanBanPage.service.IGeneralKanBanPageService; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.net.HttpURLConnection; import java.net.URL; import java.util.Date; import java.util.HashMap; import java.util.Map; @Service public class GeneralKanBanPageServiceImpl implements IGeneralKanBanPageService { protected Logger logger = LoggerFactory.getLogger(GeneralKanBanPageServiceImpl.class); @Autowired private GeneralKanBanPageDao generalKanBanPageDao; // 前台自动新增触发 @Transactional @Override public ApiResponseResult autoInsert(GeneralKanBanPage generalKanBanPage) { String ip = generalKanBanPage.getBsIp(); String port = generalKanBanPage.getBsPort(); String bsMac = generalKanBanPage.getBsMac(); Date time = generalKanBanPage.getCreatedTime(); if(ip==null||ip==""||port==null||port==""||bsMac==null||bsMac==""){ return ApiResponseResult.failure("ip或端口号或mac地址都不能为空"); } if(!port.matches("^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$")) { return ApiResponseResult.failure("请输入正确的端口号"); } int count = 0; // 根据bsMac查找数据库中存在数量,有则修改,无则新增 count = generalKanBanPageDao.countByBsMac(bsMac); if(count==1){ int row = 0; GeneralKanBanPage kanban = generalKanBanPageDao.findByBsMac(bsMac); // 若前台绑定了ip和端口号,那么换了服务器之后,就无法请求到 if(ip!=""||ip!=null){ // 因此若前台传入ip不为空,则将后台数据库的ip覆盖前台传入的ip且保存在数据库 kanban.setBsIp(ip); // ip = kanban.getBsIp(); } if(port!=""||port!=null){ // 因此若前台传入port不为空,则将后台数据库的port覆盖前台传入的port且保存在数据库 kanban.setBsPort(port); // port = kanban.getBsPort(); } // kanban.setBsIp(ip); // kanban.setBsPort(port); generalKanBanPageDao.save(kanban); return ApiResponseResult.success(); }else if(count>1){ logger.error("根据bsMac查询数据库,有多条数据,请修改!"); return ApiResponseResult.failure("请联系技术人员!"); } // count=0 根据mac没有找到对应的数据,则新增 generalKanBanPageDao.save(generalKanBanPage); return ApiResponseResult.success(); } // 前台点击提交触发 @Transactional @Override public ApiResponseResult insert(GeneralKanBanPage generalKanBanPage) { String ip = generalKanBanPage.getBsIp(); String port = generalKanBanPage.getBsPort(); String path1 = generalKanBanPage.getBsPath1(); String bsMac = generalKanBanPage.getBsMac(); String nick = generalKanBanPage.getBsNick(); Date time = generalKanBanPage.getCreatedTime(); if(ip==null||ip==""||port==null||port==""||bsMac==null||bsMac==""){ return ApiResponseResult.failure("ip或端口号或mac地址都不能为空"); } // if(!ip.matches("^((2((5[0-5])|([0-4]\\d)))|([0-1]?\\d{1,2}))(\\.((2((5[0-5])|([0-4]\\d)))|([0-1]?\\d{1,2}))){3}$")){ // return ApiResponseResult.failure("请输入正确的ip"); // } if(!port.matches("^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$")) { return ApiResponseResult.failure("请输入正确的端口号"); } int count = 0; // 根据bsMac查找数据库中存在数量,有则修改,无则新增 count = generalKanBanPageDao.countByBsMac(bsMac); if(count==1){ int row = 0; GeneralKanBanPage kanban = generalKanBanPageDao.findByBsMac(bsMac); // 手动输入点提交时,path1为空,那么将后台查询到的路径传入前台 if(path1==" "||StringUtils.isEmpty(path1)){ if(kanban.getBsPath1()!=" "||StringUtils.isNotEmpty(kanban.getBsPath1())){ path1 = kanban.getBsPath1(); } ApiResponseResult.failure("请联系技术人员,配置页面"); } // 手动输入点提交时,nick为空,那么将后台查询到的nick传入前台 if(nick==""||nick==null){ nick = kanban.getBsNick(); } row = generalKanBanPageDao.update(ip, port, path1, nick, bsMac); if(row==1){ return ApiResponseResult.success(); } }else if(count>1){ logger.error("根据bsMac查询数据库,有多条数据,请修改!"); return ApiResponseResult.failure("请联系技术人员!"); } // count=0 根据mac没有找到对应的数据,则新增 generalKanBanPageDao.save(generalKanBanPage); return ApiResponseResult.success(); } @Override public ApiResponseResult selectByBsMac(String bsMac) { Map map = new HashMap<>(); GeneralKanBanPage kanBanPage = generalKanBanPageDao.findByBsMac(bsMac); if(kanBanPage==null){ return ApiResponseResult.failure("请联系技术人员配置页面").data(kanBanPage); } String ip = kanBanPage.getBsIp(); String port = kanBanPage.getBsPort(); String bsPath1 = kanBanPage.getBsPath1(); String bsPath2 = kanBanPage.getBsPath2(); String bsPath3 = kanBanPage.getBsPath3(); String bsPath4 = kanBanPage.getBsPath4(); String bsPath5 = kanBanPage.getBsPath5(); String bsMsg = ""; map.put("ip",ip); map.put("port",port); if(bsPath1==" "||StringUtils.isEmpty(bsPath1)){ return ApiResponseResult.failure("缺失页面路径1,请联系技术人员配置页面").data(kanBanPage); } Boolean checkURL = false; if(bsPath1!=null||StringUtils.isNotEmpty(bsPath1)){ checkURL = checkUrl(ip, port, bsPath1); if(checkURL==false){ bsMsg = "页面路径1连接失败,请检查mes框架配置或ip,端口号以及路径是否正确"; generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); map.put("msg1",bsMsg); map.put("oracle_path1","0"); }else{ map.put("msg1","0"); map.put("oracle_path1",bsPath1); } } if(bsPath2!=null||StringUtils.isNotEmpty(bsPath2)){ checkURL = checkUrl(ip, port, bsPath2); if(checkURL==false){ bsMsg ="页面路径2连接失败,请检查mes框架配置或ip,端口号以及路径是否正确"; generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); map.put("msg2",bsMsg); map.put("oracle_path2","0"); }else{ map.put("msg2","0"); map.put("oracle_path2",bsPath2); } }else { map.put("oracle_path2", "0"); } if(bsPath3!=null||StringUtils.isNotEmpty(bsPath3)){ checkURL = checkUrl(ip, port, bsPath3); if(checkURL==false){ bsMsg ="页面路径3连接失败,请检查mes框架配置或ip,端口号以及路径是否正确"; generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); map.put("msg3",bsMsg); map.put("oracle_path3","0"); }else{ map.put("msg3","0"); map.put("oracle_path3",bsPath3); } }else { map.put("oracle_path3", "0"); } if(bsPath4!=null||StringUtils.isNotEmpty(bsPath4)){ checkURL = checkUrl(ip, port, bsPath4); if(checkURL==false){ bsMsg ="页面路径4连接失败,请检查mes框架配置或ip,端口号以及路径是否正确"; generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); map.put("msg4",bsMsg); map.put("oracle_path4","0"); }else{ map.put("msg4","0"); map.put("oracle_path4",bsPath4); } }else { map.put("oracle_path4", "0"); } if(bsPath5!=null||StringUtils.isNotEmpty(bsPath5)){ checkURL = checkUrl(ip, port, bsPath5); if(checkURL==false){ bsMsg ="页面路径5连接失败,请检查mes框架配置或ip,端口号以及路径是否正确"; generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); map.put("msg5",bsMsg); map.put("oracle_path5","0"); }else{ map.put("msg5","0"); map.put("oracle_path5",bsPath5); } }else { map.put("oracle_path5", "0"); } // Boolean checkUrl = checkUrl(ip, port, path1); // if(checkUrl==false){ // bsMsg = path1+"连接失败,请检查mes框架配置或ip,端口号以及路径是否正确"; // generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); // return ApiResponseResult.failure(path1+"连接失败,请检查mes框架配置或ip,端口号以及路径是否正确").data(kanBanPage); // } generalKanBanPageDao.updataByBsMsg(bsMsg, bsMac); return ApiResponseResult.success().data(map); } public Boolean checkUrl(String ip,String port,String path){ String url = "http://"+ip+":"+port+"/"+path; System.out.println("url:"+url); boolean flag = false; if(null==url||url.length()<=0){ return flag; } try{ HttpURLConnection connection = (HttpURLConnection) new URL(url) .openConnection(); int state = connection.getResponseCode(); System.out.println("state: "+state); if(state==200){ flag=true; } }catch (Exception e){ e.printStackTrace(); } return flag; } }