配置统计修改为功能统计

This commit is contained in:
DuanDongmei
2018-11-26 20:19:21 +08:00
parent 01815bcf76
commit 97b4fdd3cb
13 changed files with 153 additions and 19 deletions

View File

@@ -743,4 +743,7 @@ public final class Constants {
public static final Integer DEFAULT_MAX_PERROUTE=Configurations.getIntProperty("default_max_perroute", 100);
public static final Integer POOLCM_SOCKET_TIMEOUT=Configurations.getIntProperty("poolcm_socket_timeout", 3000);
public static final String POLICIES_MENU_ID=Configurations.getStringProperty("policies_menu_id", "86");
}

View File

@@ -28,6 +28,7 @@ import com.mchange.v1.util.MapUtils;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.SysArea;
import com.nis.domain.SysMenu;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.RequestInfo;
import com.nis.util.CacheUtils;
@@ -36,6 +37,7 @@ import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
import com.nis.web.service.CommonService;
@@ -57,13 +59,15 @@ public class ConfigureStatisticsController extends BaseController{
/****************************Request Info Statistics*****************************/
//1、查询所有有效的service
List<FunctionServiceDict> serviceDictList = DictUtils.getFunctionServiceDictList();
//2、根据来函分页
//2、查询所有菜单
List<SysMenu> menuList = UserUtils.getMenuCfgList();
//3、根据来函分页
RequestInfo requestInfo=new RequestInfo();
requestInfo.setIsAudit(1);
requestInfo.setIsValid(1);
Page requestPage = requestInfoService.findRequestInfo(new Page(request, response,"r"),requestInfo);
List<RequestInfo> requestInfos=requestPage.getList();
//3、根据当前页的requestInfo信息查询request统计信息
//4、根据当前页的requestInfo信息查询request统计信息
List<Object[]> requestStatisticList=new ArrayList<Object[]>();
if(!StringUtil.isEmpty(requestInfos)){
Date requestStatisticTime=configureStatisticsService.getRequestStatisticTime();
@@ -71,7 +75,7 @@ public class ConfigureStatisticsController extends BaseController{
if(!StringUtil.isEmpty(requestStatisticTime)){
requestStatisticTimeStr=sdf.format(requestStatisticTime);
}
requestStatisticList=configureStatisticsService.getRequestStateStatistics(requestInfos,serviceDictList,requestStatisticTimeStr);
requestStatisticList=configureStatisticsService.getRequestStateStatistics(requestInfos,menuList,requestStatisticTimeStr);
if(!StringUtil.isEmpty(requestStatisticList)){
for (Iterator iterator = requestStatisticList.iterator(); iterator.hasNext();) {
Map map = (Map) iterator.next();

View File

@@ -24,4 +24,6 @@ public interface SysMenuDao extends CrudDao<SysMenu>{
Integer getServiceId(@Param("functionId")Integer functionId, @Param("action")Integer action);
List<SysMenu> findAllCfgList(@Param("policiesMenuId")String policiesMenuId);
}

View File

@@ -27,6 +27,30 @@
a.function_id
</sql>
<sql id="menuCfgColumns">
a.id,
a.parent_id AS "parent.id",
a.parent_ids,
a.code,
a.name,
a.href,
a.target,
a.icon,
a.sort,
a.is_show,
a.permission,
a.remarks,
a.create_by AS "createBy.id",
a.create_date,
a.update_by AS "updateBy.id",
a.update_date,
a.del_flag,
a.quick_action,
a.menu_bg,
a.is_top,
a.function_id
</sql>
<sql id="menuJoins">
LEFT JOIN sys_menu p ON p.id = a.parent_id
@@ -48,6 +72,18 @@
WHERE a.del_flag = #{DEL_FLAG_NORMAL}
ORDER BY a.sort
</select>
<!-- 查询所有业务配置菜单 -->
<select id="findAllCfgList" resultType="sysMenu" parameterType="java.lang.String">
SELECT
<include refid="menuCfgColumns"/>
FROM sys_menu a
WHERE a.del_flag = 1
and a.is_show=1
and function_id is not null
<![CDATA[ and function_id <> 0 ]]>
<![CDATA[ and function_id <> '' ]]>
and a.parent_Ids like CONCAT('%,', #{policiesMenuId}, ',%')
</select>
<select id="findSysMenuByUserId" resultType="sysMenu">
SELECT DISTINCT

View File

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.SysMenu;
import com.nis.domain.configuration.HttpBodyCfg;
import com.nis.domain.configuration.RequestInfo;
import com.nis.web.dao.MyBatisDao;
@@ -18,6 +19,7 @@ public interface ConfigureStatisticsDao {
public List<Object[]> getConfigStateStatistics(@Param("statisticTime")String statisticTime);
public Date getConfigStatisticTime();
public Date getRequestStatisticTime();
public List<Object[]> getRequestStateStatistics(@Param("requestList")List<RequestInfo> requestList,@Param("serviceList")List<FunctionServiceDict> serviceList,@Param("statisticTime")String statisticTime) ;
public List<Object[]> getRequestStateStatistics(@Param("requestList")List<RequestInfo> requestList,@Param("menuList")List<SysMenu> menuList,@Param("statisticTime")String statisticTime) ;
/*public List<Object[]> getRequestStateStatistics(@Param("requestList")List<RequestInfo> requestList,@Param("serviceList")List<FunctionServiceDict> serviceList,@Param("statisticTime")String statisticTime) ;*/
public Integer getEffectiveCfgNum(@Param("serviceId")Integer serviceId);
}

View File

@@ -1,7 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.nis.web.dao.configuration.statistics.ConfigureStatisticsDao" >
<!-- -->
<select id="getConfigStateStatistics" resultType="map">
select c.function_id functionId,
sum(case when c.cfg_state =1 then 1 else 0 end) as approved,
sum(case when c.cfg_state =2 then 1 else 0 end) as unapproved,
sum(case when c.cfg_state =3 then 1 else 0 end) as cancle_approved,
sum(case when c.cfg_state =0 then 1 else 0 end) as created,
sum(case when c.cfg_state =-1 then 1 else 0 end) as deleted
from cfg_num_statistics c where c.statistic_time = #{statisticTime}
group by c.function_id;
</select>
<!-- 业务配置数统计 20181126废弃
<select id="getConfigStateStatistics" resultType="map">
select service_id service,
sum(case when c.cfg_state =1 then 1 else 0 end) as approved,
@@ -14,9 +25,19 @@
where statistic_time = #{statisticTime}
) c
group by service_id;
</select>
</select> -->
<select id="getRequestStateStatistics" resultType="java.util.LinkedHashMap">
select request_id request,
<foreach item="menu" collection="menuList" separator=",">
sum(case when c.function_id =${menu.functionId} then 1 else 0 end) as '${menu.functionId}_${menu.functionId}'
</foreach>
from request_num_statistics c
where statistic_time =#{statisticTime}
group by request_id
</select>
<!-- 来函业务配置数统计 20181126废弃
<select id="getRequestStateStatistics" resultType="java.util.LinkedHashMap">
select request_id request,
<foreach item="serivice" collection="serviceList" separator=",">
sum(case when c.service_id =${serivice.serviceId} then 1 else 0 end) as ${serivice.serviceName}
@@ -25,7 +46,7 @@
where statistic_time =#{statisticTime}
) c
group by request_id
</select>
</select> -->
<select id="getConfigStatisticTime" resultType="java.util.Date">
select min(statistic_time) statistic_time
from cfg_num_statistics c

View File

@@ -53,6 +53,7 @@ public class UserUtils {
public static final String CACHE_ROLE_LIST = "roleList";
public static final String CACHE_MENU_LIST = "menuList";
public static final String CACHE_MENU_CFG_LIST = "menuCfgList";
public static final String CACHE_AREA_LIST = "areaList";
public static final String CACHE_OFFICE_LIST = "officeList";
public static final String CACHE_OFFICE_ALL_LIST = "officeAllList";
@@ -101,6 +102,7 @@ public class UserUtils {
public static void clearCache(){
removeCache(CACHE_ROLE_LIST);
removeCache(CACHE_MENU_LIST);
removeCache(CACHE_MENU_CFG_LIST);
removeCache(CACHE_AREA_LIST);
removeCache(CACHE_OFFICE_LIST);
removeCache(CACHE_OFFICE_ALL_LIST);
@@ -186,6 +188,19 @@ public class UserUtils {
}
/**
* 获取所有业务配置菜单
* @return
*/
public static List<SysMenu> getMenuCfgList(){
@SuppressWarnings("unchecked")
List<SysMenu> menuList = (List<SysMenu>)getCache(CACHE_MENU_CFG_LIST);
if (StringUtil.isEmpty(menuList)){
menuList = sysMenuDao.findAllCfgList(com.nis.util.Constants.POLICIES_MENU_ID);
putCache(CACHE_MENU_CFG_LIST, menuList);
}
return menuList;
}
public static String getMenuNameById(String id) {

View File

@@ -67,6 +67,7 @@ public class MenuService extends BaseService {
}
// 清除用户菜单缓存
UserUtils.removeCache(UserUtils.CACHE_MENU_LIST);
UserUtils.removeCache(UserUtils.CACHE_MENU_CFG_LIST);
// // 清除权限缓存
// systemRealm.clearAllCachedAuthorizationInfo();
// 清除日志相关缓存
@@ -78,6 +79,7 @@ public class MenuService extends BaseService {
menuDao.delete(menu);
// 清除用户菜单缓存
UserUtils.removeCache(UserUtils.CACHE_MENU_LIST);
UserUtils.removeCache(UserUtils.CACHE_MENU_CFG_LIST);
// // 清除权限缓存
// systemRealm.clearAllCachedAuthorizationInfo();
// 清除日志相关缓存
@@ -89,6 +91,7 @@ public class MenuService extends BaseService {
menuDao.updateSort(menu);
// 清除用户菜单缓存
UserUtils.removeCache(UserUtils.CACHE_MENU_LIST);
UserUtils.removeCache(UserUtils.CACHE_MENU_CFG_LIST);
// // 清除权限缓存
// systemRealm.clearAllCachedAuthorizationInfo();
// 清除日志相关缓存

View File

@@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.SysMenu;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.NumBoundaryCfg;
@@ -37,11 +38,15 @@ public class ConfigureStatisticsService extends CrudService<NumCfgDao,NumBoundar
Date statisticTime=configureStatisticsDao.getRequestStatisticTime();
return statisticTime;
}
public List<Object[]> getRequestStateStatistics(List<RequestInfo> requestList,List<FunctionServiceDict> serviceList,String statistcTime){
public List<Object[]> getRequestStateStatistics(List<RequestInfo> requestList,List<SysMenu> menuList,String statistcTime){
List<Object[]> dataList=configureStatisticsDao.getRequestStateStatistics(requestList,menuList,statistcTime);
return dataList;
}
/* public List<Object[]> getRequestStateStatistics(List<RequestInfo> requestList,List<FunctionServiceDict> serviceList,String statistcTime){
List<Object[]> dataList=configureStatisticsDao.getRequestStateStatistics(requestList,serviceList,statistcTime);
return dataList;
}
public Integer getEffectiveCfgNum(Integer serviceId){
*/ public Integer getEffectiveCfgNum(Integer serviceId){
return configureStatisticsDao.getEffectiveCfgNum(serviceId);
}
}

View File

@@ -83,7 +83,7 @@ ssl_control=SSL
ssl_feature_control=\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0430 SSL
ssl_sni_control=\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 SSL SNI
ssl_address_control=\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 IP SSL
HTTP(s)_website_content_replace=\u0437\u0430\u043C\u0435\u043D\u0430 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430 HTTPS
https_website_content_replace=\u0437\u0430\u043C\u0435\u043D\u0430 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430 HTTPS
https_website_control=\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u0435\u0431-\u0441\u0430\u0439\u0442 HTTPS
rtp_ip_control=\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 IP RTP
mms_ip_control=\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 IP MMS

View File

@@ -557,4 +557,6 @@ max_allowed_packet=1048576
http_max_connection=1000
default_max_perroute=100
poolcm_socket_timeout=3000
app_vignore_user_region_key=VIGNORE
app_vignore_user_region_key=VIGNORE
#policies菜单的菜单ID
policies_menu_id=86

View File

@@ -53,6 +53,13 @@
<function-signature>java.util.List getMenuList()</function-signature>
<example>${fns:getMenuList()}</example>
</function>
<function>
<description>获取配置菜单对象列表</description>
<name>getMenuCfgList</name>
<function-class>com.nis.web.security.UserUtils</function-class>
<function-signature>java.util.List getMenuCfgList()</function-signature>
<example>${fns:getMenuCfgList()}</example>
</function>
<function>
<description>获取用户的菜单名称</description>

View File

@@ -118,8 +118,20 @@
<thead>
<tr>
<th><spring:message code="letter"/></th>
<c:forEach items="${serviceList }" var="serviceDict" varStatus="status" step="1">
<th><spring:message code="${serviceDict.serviceName }"/></th>
<c:forEach items="${fns:getMenuCfgList() }" var="functionDict" varStatus="status" step="1">
<th>
<c:choose>
<c:when test="${functionDict.functionId eq 8}">
HTTP <spring:message code="${functionDict.code }"/>
</c:when>
<c:when test="${functionDict.functionId eq 35}">
MAIL <spring:message code="${functionDict.code }"/>
</c:when>
<c:otherwise>
<spring:message code="${functionDict.code }"/>
</c:otherwise>
</c:choose>
</th>
</c:forEach>
</tr>
</thead>
@@ -129,9 +141,13 @@
<td>
${requestStatistics['request']}
</td>
<c:forEach items="${serviceList }" var="serviceDict" varStatus="status" step="1">
<td>${requestStatistics[serviceDict.serviceName]}</td>
</c:forEach>
<c:forEach items="${fns:getMenuCfgList() }" var="functionDict" varStatus="status" step="1">
<td>
<c:set var="functionId" value="${functionDict.functionId}_${functionDict.functionId}"></c:set>
${requestStatistics[functionId]}
</<td>
</c:forEach>
</tr>
</c:forEach>
</tbody>
@@ -158,16 +174,34 @@
</thead>
<tbody>
<c:forEach items="${configStatistics }" var="statistics" varStatus="status" step="1">
<c:set var="serviceName" value=""></c:set>
<%-- <c:set var="serviceName" value=""></c:set>
<c:forEach items="${serviceList }" var="serviceDict" varStatus="status" step="1">
<c:if test="${serviceDict.serviceId eq statistics.service }">
<c:set var="serviceName" value="${serviceDict.serviceName }"></c:set>
</c:if>
</c:forEach> --%>
<c:set var="functionName" value=""></c:set>
<c:forEach items="${fns:getMenuCfgList() }" var="functionDict" varStatus="status" step="1">
<c:if test="${(functionDict.functionId eq statistics.functionId)}">
<c:choose>
<c:when test="${functionDict.functionId eq 8 && functionDict.code eq 'advanced'}">
<c:set var="functionName" value="HTTP ${functionDict.code }"></c:set>
</c:when>
<c:when test="${functionDict.functionId eq 35 && functionDict.code eq 'advanced'}">
<c:set var="functionName" value="MAIL ${functionDict.code }"></c:set>
</c:when>
<c:otherwise>
<c:set var="functionName" value="${functionDict.code }"></c:set>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
<c:if test="${!empty serviceName }">
<%-- <c:if test="${!empty serviceName }"> --%>
<c:if test="${!empty functionName }">
<tr>
<td>
<spring:message code="${serviceName }"/>
<%-- <spring:message code="${serviceName }"/>${serviceName } --%>
<spring:message code="${functionName }"/>
</td>
<td>
${statistics.approved }