流量统计app趋势跟apptop100增加isp运营商查询条件

This commit is contained in:
zhanghongqing
2019-01-18 16:33:20 +08:00
parent 58c7089f19
commit cdd3c857b7
8 changed files with 217 additions and 5 deletions

View File

@@ -26,6 +26,7 @@ import com.nis.domain.restful.NtcConnNumReport;
import com.nis.domain.restful.NtcRadiusReport;
import com.nis.domain.restful.dashboard.AppConnRecordStatistic;
import com.nis.domain.restful.dashboard.AppTrendEntity;
import com.nis.domain.restful.dashboard.SysDeviceInfo;
import com.nis.domain.restful.dashboard.TrafficAppFocusStatistic;
import com.nis.domain.restful.dashboard.TrafficAsnStatistic;
import com.nis.restful.RestBusinessCode;
@@ -1018,6 +1019,10 @@ public class DashboardServiceController extends BaseRestController {
entity.setSearchStartTime(map.get("startTime"));
entity.setSearchEndTime(map.get("endTime"));
}
if(StringUtils.isNotBlank(entity.getSearchIspCode())){
String ispNum = dashboardService.getIspNum(entity.getSearchIspCode());
entity.setIspNum(ispNum);
}
//将数据源切换到本地clickhouse
CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_B);
resultMap = dashboardService.getAppTrend(entity);
@@ -1070,9 +1075,28 @@ public class DashboardServiceController extends BaseRestController {
entity.setSearchStartTime(map.get("startTime"));
entity.setSearchEndTime(map.get("endTime"));
}
// 查询运营商编码所对应的设备号跟出入口编号
String ispNum="";
if(StringUtils.isNotBlank(entity.getSearchIspCode())){
ispNum = dashboardService.getIspNum(entity.getSearchIspCode());
entity.setIspNum(ispNum);
}
List<SysDeviceInfo> sysDeviceInfo =dashboardService.getIspListByIspNum(ispNum);
CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_B);
list = dashboardService.appConnRecordTop100(entity);
// 设置运营商编码
if(list!=null&&list.size()>0&&sysDeviceInfo!=null&&sysDeviceInfo.size()>0){
for (AppConnRecordStatistic app : list) {
for (SysDeviceInfo device : sysDeviceInfo) {
if((app.getIspNum().trim()).equals(device.getIspNum().trim())){
app.setIspName(device.getIspName());
break;
}
}
}
}
CustomerContextHolder.clearCustomerType();
} catch (Exception e) {
auditLogThread.setExceptionInfo("App通联关系Top100数据检索失败:" + e.getMessage());
logger.error("App通联关系Top100检索失败:" + ExceptionUtil.getExceptionMsg(e));

View File

@@ -4,6 +4,8 @@ import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nis.domain.restful.dashboard.SysDeviceInfo;
/**
*
* @ClassName:IspInfoDao
@@ -16,4 +18,6 @@ import org.apache.ibatis.annotations.Param;
public interface IspInfoDao {
List<String> getIspNum(@Param("ispCode") String ispCode);
List<SysDeviceInfo> getIspListByIspNum(@Param("ispNum")String ispNum);
}

View File

@@ -3,6 +3,15 @@
<mapper namespace="com.nis.web.dao.IspInfoDao">
<select id="getIspNum" resultType="java.lang.String">
select distinct concat(entrance_id,device_id) as ispNum from ui_sys_device_info where
isp=#{ispCode}
isp in (${ispCode})
</select>
<select id="getIspListByIspNum" resultType="com.nis.domain.restful.dashboard.SysDeviceInfo">
select distinct d.isp isp ,concat(d.entrance_id,d.device_id) ispNum,isp_key_name ispName from ui_sys_device_info d
left join ui_sys_isp_info s on d.isp=s.isp_key_code
<where>
<if test="ispNum!=null and ispNum!=''">
concat(entrance_id,device_id) in (${ispNum})
</if>
</where>
</select>
</mapper>

View File

@@ -53,19 +53,25 @@
<if test="searchEntranceId !=null and searchEntranceId != ''">
<![CDATA[and entrance_id=toInt64(#{searchEntranceId}) ]]>
</if>
<if test="ispNum !=null and ispNum != ''">
<![CDATA[and concat(toString(entrance_id),toString(device_id)) in (${ispNum})]]>
</if>
group by stat_time
order by stat_time
</select>
<!-- App 活跃IP Top100 -->
<select id="appConnRecordTop100" parameterType="com.nis.domain.restful.dashboard.AppConnRecordStatistic" resultType="com.nis.domain.restful.dashboard.AppConnRecordStatistic">
select s_ip ipAddr, sum(c2s_byte_num + s2c_byte_num) byteNum, sum(c2s_pkt_num + s2c_pkt_num) pktNum, count(s_ip) logNum
select s_ip ipAddr,concat(toString(entrance_id),toString(device_id)) ispNum, sum(c2s_byte_num + s2c_byte_num) byteNum, sum(c2s_pkt_num + s2c_pkt_num) pktNum, count(s_ip) logNum
from tbs_ods_ntc_conn_record_log t where
<![CDATA[ found_time>= toDateTime(#{searchStartTime}) and found_time< toDateTime(#{searchEndTime})
and app_id=toInt64(#{searchAppId}) ]]>
<if test="searchEntranceId !=null and searchEntranceId != ''">
<![CDATA[and entrance_id=toInt64(#{searchEntranceId}) ]]>
</if>
group by s_ip
<if test="ispNum !=null and ispNum != ''">
<![CDATA[and concat(toString(entrance_id),toString(device_id)) in (${ispNum})]]>
</if>
group by s_ip,entrance_id,device_id
order by
<choose>
<when test="searchQuota !=null and searchQuota != '' and searchQuota == 2 ">

View File

@@ -27,6 +27,7 @@ import com.nis.domain.restful.NtcConnNumReport;
import com.nis.domain.restful.NtcEntranceReport;
import com.nis.domain.restful.dashboard.AppConnRecordStatistic;
import com.nis.domain.restful.dashboard.NtcTotalReport;
import com.nis.domain.restful.dashboard.SysDeviceInfo;
import com.nis.domain.restful.dashboard.TrafficAppFocusStatistic;
import com.nis.domain.restful.dashboard.TrafficAppStatistic;
import com.nis.domain.restful.dashboard.TrafficAsnStatistic;
@@ -41,6 +42,7 @@ import com.nis.restful.RestServiceException;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.StringUtils;
import com.nis.web.dao.IspInfoDao;
import com.nis.web.dao.dashboard.NtcTotalReportDao;
import com.nis.web.dao.dashboard.TrafficAppStatisticDao;
import com.nis.web.dao.dashboard.TrafficAsnStatisticDao;
@@ -71,6 +73,8 @@ public class DashboardService extends BaseService {
public TrafficAsnStatisticDao trafficAsnStatisticDao;
@Autowired
public TrafficPortActiveStatisticDao trafficPortActiveStatisticDao;
@Autowired
private IspInfoDao ispInfoDao;
//ip地址类型
private final String[] addrTypes = {"4","6"} ;
//tcp udp
@@ -1773,4 +1777,29 @@ public class DashboardService extends BaseService {
ntcAsnRecord.setPage(page);
page.setList(trafficAsnStatisticDao.getTrafficAsnStatisticList(ntcAsnRecord));
}
/**
* 根据ispcode获取当前运营商下所有的entrance_id,device_id,link_id组合
*
* @param ispCode
* @return
*/
public String getIspNum(String ispCode) {
List<String> ispNum = ispInfoDao.getIspNum(ispCode);
if (ispNum != null && ispNum.size() > 0) {
StringBuffer sb = new StringBuffer();
for (String ispNumStr : ispNum) {
sb.append("'");
sb.append(ispNumStr);
sb.append("'");
sb.append(",");
}
return sb.substring(0, sb.length() - 1);
}
return null;
}
public List<SysDeviceInfo> getIspListByIspNum(String ispNum) {
return ispInfoDao.getIspListByIspNum(ispNum);
}
}