河东做网站的公司,视觉传达设计培训机构,系统优化方法,wordpress文字可以动的插件功能大体需求是通过平台获取该平台的所有节点(节点按省,运营商分组)以及节点的所有IP信息(地址和层级),表关系比较复杂,搞了两天才好,是自己一开始搞复杂了。
VO:存放所需元素实体类 public class PlatformIpVO implements Serializable {private String province;private Str…功能大体需求是通过平台获取该平台的所有节点(节点按省,运营商分组)以及节点的所有IP信息(地址和层级),表关系比较复杂,搞了两天才好,是自己一开始搞复杂了。
VO:存放所需元素实体类 public class PlatformIpVO implements Serializable {private String province;private String ISP;private ListPlatformMachineIp platformMachineIps;private String platformNodes;getters and setters...
}Service: /**据平台查询区域数据,省,isp,ip等 */
public ListPlatformIpVO getIpsAreaByPlatform(String platform);
Override
public ListPlatformIpVO getIpsAreaByPlatform(String pl_name_en) {pl_name_en StringUtils.trimToEmpty(pl_name_en);if(pl_name_en.equals()){return null;}ListPlatformIpVO tempPlatformIpVOs new ArrayListPlatformIpVO();ListPlatformIpVO platformIpVOs new ArrayListPlatformIpVO();PlatformInfo platformInfo this.platformInfoMapper.findPlatformByEname(pl_name_en);//根据英文名获取平台idtempPlatformIpVOs this.platformInfoMapper.getNodesByPlatform(platformInfo.getPlId());for(PlatformIpVO platformIpVO : tempPlatformIpVOs){//重新封装vo,添加ip信息platformIpVO wrapPlatformIpVO(platformIpVO);platformIpVOs.add(platformIpVO);}return platformIpVOs;
}Method: /**重新封装platformIpVO,给PlatformMachineIps赋值*/
PlatformIpVO wrapPlatformIpVO(PlatformIpVO platformIpVO){String ispShortname this.platformInfoMapper.getIspShortnameByid(platformIpVO.getISP());platformIpVO.setISP(ispShortname);String[] platformNodes platformIpVO.getPlatformNodes().split(,);ListPlatformMachineIp platformMachineIps this.platformMachineMapper.getMachineIpsByNodes(platformNodes);platformIpVO.setPlatformMachineIps(platformMachineIps);return platformIpVO;
}Mapper.java:/** 根据平台id获取节点*/
ListPlatformIpVO getNodesByPlatform(Param(pl_id) Integer pl_id);/** 通过isp的id获取shortname */
String getIspShortnameByid(Param(isp) String isp);Mapper.xml:!-- 通过平台id获取平台节点vo对象,不包含ip fangguitangdnion.com--
select idgetNodesByPlatform resultTypePlatformIpVOSELECT pn.province AS province,pn.nd_isp AS ISP,GROUP_CONCAT(pn.nd_id) AS platformNodesFROM platform_info pi LEFT JOIN platform_node_relation pnr ON pnr.pl_id pi.pl_idLEFT JOIN platform_node pn ON pn.nd_id pnr.nd_idWHERE pi.pl_id #{pl_id}GROUP BY pn.province,pn.nd_isp
/select
!-- 通过isp的id获取shortname --
select idgetIspShortnameByid resultTypeSTRINGSELECT si.shortnameFROM system_isp siWHERE si.id #{isp}
/selectTest:测试类://通过平台获取节点信息,ip信息
Test
Rollback
public void testGetIpsAreaByPlatform(){String platform XNOP060;try {ipPlatformService.getIpsAreaByPlatform(platform);} catch (Exception e) {e.printStackTrace();}
}