Commit 5f11c387 authored by 廖旭伟's avatar 廖旭伟

数据汇聚增加应用接口访问统计

parent 8ae42570
......@@ -282,3 +282,14 @@ ALTER TABLE `mortals_xhx_sst_agreement` ADD COLUMN `protocolType` tinyint(2) DE
INSERT INTO `mortals_xhx_param` (`name`, `firstOrganize`, `secondOrganize`, `paramKey`, `paramValue`, `validStatus`, `modStatus`, `displayType`, `remark`, `createTime`, `createUserId`, `createUserName`) VALUES ('协议类型', 'SstAgreement', 'protocolType', '1', '注册协议', '1', '4', '0', NULL, NULL, NULL, NULL);
INSERT INTO `mortals_xhx_param` (`name`, `firstOrganize`, `secondOrganize`, `paramKey`, `paramValue`, `validStatus`, `modStatus`, `displayType`, `remark`, `createTime`, `createUserId`, `createUserName`) VALUES ('协议类型', 'SstAgreement', 'protocolType', '2', '申报协议', '1', '4', '0', NULL, NULL, NULL, NULL);
DROP TABLE IF EXISTS `mortals_xhx_converge_apps_interface`;
CREATE TABLE `mortals_xhx_converge_apps_interface` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增长',
`ecode` varchar(128) DEFAULT NULL COMMENT '设备唯一标识',
`applicationId` varchar(128) DEFAULT NULL COMMENT '应用ID',
`interfaceUniqueId` varchar(128) DEFAULT NULL COMMENT '接口标识',
`interfaceName` varchar(128) DEFAULT NULL COMMENT '接口名称',
`totalInvokeSum` int(8) DEFAULT NULL COMMENT '接口调用次数',
`createTime` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='应用接口';
\ No newline at end of file
package com.mortals.xhx.module.converge.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import com.mortals.xhx.module.converge.model.vo.InterfaceStatsVO;
import java.util.List;
/**
* 应用接口Dao
* 应用接口 DAO接口
*
* @author zxfei
* @date 2023-08-17
*/
public interface ConvergeAppsInterfaceDao extends ICRUDDao<ConvergeAppsInterfaceEntity,Long>{
/***
* 获取接口访问次数统计
* @param query
* @return
*/
List<InterfaceStatsVO> getTotalInvokeSum(ConvergeAppsInterfaceEntity query);
}
package com.mortals.xhx.module.converge.dao.ibatis;
import com.mortals.xhx.module.converge.model.vo.InterfaceStatsVO;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.converge.dao.ConvergeAppsInterfaceDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 应用接口DaoImpl DAO接口
*
* @author zxfei
* @date 2023-08-17
*/
@Repository("convergeAppsInterfaceDao")
public class ConvergeAppsInterfaceDaoImpl extends BaseCRUDDaoMybatis<ConvergeAppsInterfaceEntity,Long> implements ConvergeAppsInterfaceDao {
@Override
public List<InterfaceStatsVO> getTotalInvokeSum(ConvergeAppsInterfaceEntity query) {
return this.getSqlSession().selectList(this.getSqlId("getTotalInvokeSum"),query);
}
}
package com.mortals.xhx.module.converge.model;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.converge.model.vo.ConvergeAppsInterfaceVo;
import lombok.Data;
/**
* 应用接口实体对象
*
* @author zxfei
* @date 2023-08-17
*/
@Data
public class ConvergeAppsInterfaceEntity extends ConvergeAppsInterfaceVo {
private static final long serialVersionUID = 1L;
/**
* 应用ID
*/
private String applicationId;
/**
* 接口标识
*/
private String interfaceUniqueId;
/**
* 接口名称
*/
private String interfaceName;
/**
* 接口调用次数
*/
private Integer totalInvokeSum;
/**
* 设备唯一标识
*/
private String ecode;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof ConvergeAppsInterfaceEntity) {
ConvergeAppsInterfaceEntity tmp = (ConvergeAppsInterfaceEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.applicationId = "";
this.interfaceUniqueId = "";
this.interfaceName = "";
this.totalInvokeSum = -1;
this.ecode = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.converge.model.vo;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import lombok.Data;
import java.util.List;
@Data
public class AppVO {
/**
......@@ -40,4 +43,6 @@ public class AppVO {
* 操作类型
*/
private String opr;
List<InterfaceStatsVO> interfaceStats;
}
......@@ -3,6 +3,8 @@ import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import java.util.ArrayList;
import java.util.List;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
......@@ -16,4 +18,5 @@ import java.util.Date;
@Data
public class ConvergeAppsAccessVo extends BaseEntityLong {
private List<ConvergeAppsInterfaceEntity> interfaceList;
}
\ No newline at end of file
package com.mortals.xhx.module.converge.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
/**
* 应用接口视图对象
*
* @author zxfei
* @date 2023-08-17
*/
@Data
public class ConvergeAppsInterfaceVo extends BaseEntityLong {
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.converge.model.ConvergeAppsEntity;
import java.util.ArrayList;
import java.util.List;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
......@@ -15,5 +17,5 @@ import java.util.Date;
*/
@Data
public class ConvergeAppsVo extends BaseEntityLong {
List<InterfaceStatsVO> interfaceEntityList;
}
\ No newline at end of file
package com.mortals.xhx.module.converge.model.vo;
import lombok.Data;
@Data
public class InterfaceStatsVO {
/**
* 接口标识
*/
private String interfaceUniqueId;
/**
* 接口名称
*/
private String interfaceName;
/**
* 接口调用次数
*/
private Integer totalInvokeSum;
/**
* 操作类型
*/
private String opr="U";
}
package com.mortals.xhx.module.converge.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import com.mortals.xhx.module.converge.dao.ConvergeAppsInterfaceDao;
import com.mortals.xhx.module.converge.model.vo.InterfaceStatsVO;
import java.util.List;
/**
* ConvergeAppsInterfaceService
*
* 应用接口 service接口
*
* @author zxfei
* @date 2023-08-17
*/
public interface ConvergeAppsInterfaceService extends ICRUDService<ConvergeAppsInterfaceEntity,Long>{
ConvergeAppsInterfaceDao getDao();
/***
* 获取接口访问次数统计
* @param query
* @return
*/
List<InterfaceStatsVO> getTotalInvokeSum(ConvergeAppsInterfaceEntity query) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.converge.service.impl;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import com.mortals.xhx.module.converge.model.vo.AppsAccessVo;
import com.mortals.xhx.module.converge.service.ConvergeAppsInterfaceService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -9,6 +13,7 @@ import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import com.mortals.xhx.module.converge.service.ConvergeAppsAccessService;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -23,6 +28,9 @@ import java.util.Map;
@Slf4j
public class ConvergeAppsAccessServiceImpl extends AbstractCRUDServiceImpl<ConvergeAppsAccessDao, ConvergeAppsAccessEntity, Long> implements ConvergeAppsAccessService {
@Autowired
private ConvergeAppsInterfaceService convergeAppsInterfaceService;
@Override
public List<AppsAccessVo> getAppsAccessPv(Map<String,String> condition) throws AppException {
return dao.getAppsAccessPv(condition);
......@@ -32,4 +40,21 @@ public class ConvergeAppsAccessServiceImpl extends AbstractCRUDServiceImpl<Conve
public List<AppsAccessVo> getAppsAccessUv(Map<String,String> condition) throws AppException {
return dao.getAppsAccessUv(condition);
}
@Override
protected void saveAfter(ConvergeAppsAccessEntity entity, Context context) throws AppException {
super.saveAfter(entity,context);
if(CollectionUtils.isNotEmpty(entity.getInterfaceList())){
for(ConvergeAppsInterfaceEntity item:entity.getInterfaceList()){
item.setApplicationId(entity.getApplicationId());
item.setEcode(entity.getEcode());
item.setCreateTime(new Date());
if(item.getTotalInvokeSum()==null ||item.getTotalInvokeSum()==0){
item.setTotalInvokeSum(1);
}
}
convergeAppsInterfaceService.save(entity.getInterfaceList());
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.converge.service.impl;
import com.mortals.xhx.module.converge.model.vo.InterfaceStatsVO;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.converge.dao.ConvergeAppsInterfaceDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import com.mortals.xhx.module.converge.service.ConvergeAppsInterfaceService;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* ConvergeAppsInterfaceService
* 应用接口 service实现
*
* @author zxfei
* @date 2023-08-17
*/
@Service("convergeAppsInterfaceService")
@Slf4j
public class ConvergeAppsInterfaceServiceImpl extends AbstractCRUDServiceImpl<ConvergeAppsInterfaceDao, ConvergeAppsInterfaceEntity, Long> implements ConvergeAppsInterfaceService {
@Override
public List<InterfaceStatsVO> getTotalInvokeSum(ConvergeAppsInterfaceEntity query) throws AppException {
return dao.getTotalInvokeSum(query);
}
}
\ No newline at end of file
......@@ -10,6 +10,8 @@ import com.mortals.xhx.module.converge.model.*;
import com.mortals.xhx.module.converge.model.vo.AppVO;
import com.mortals.xhx.module.converge.model.vo.BranchVO;
import com.mortals.xhx.module.converge.model.vo.EquipmentVO;
import com.mortals.xhx.module.converge.model.vo.InterfaceStatsVO;
import com.mortals.xhx.module.converge.service.ConvergeAppsInterfaceService;
import com.mortals.xhx.module.converge.service.ConvergeAppsService;
import com.mortals.xhx.module.converge.service.ConvergeDeviceService;
import org.apache.commons.collections4.CollectionUtils;
......@@ -46,6 +48,8 @@ public class ConvergeSiteServiceImpl extends AbstractCRUDServiceImpl<ConvergeSit
private ConvergeDeviceService convergeDeviceService;
@Autowired
private ConvergeAppsService convergeAppsService;
@Autowired
private ConvergeAppsInterfaceService convergeAppsInterfaceService;
@Override
public List<BranchVO> getConvergeData() throws AppException {
......@@ -65,6 +69,16 @@ public class ConvergeSiteServiceImpl extends AbstractCRUDServiceImpl<ConvergeSit
if(CollectionUtils.isEmpty(apps)){
continue;
}
for(ConvergeAppsEntity item:apps){
ConvergeAppsInterfaceEntity query = new ConvergeAppsInterfaceEntity();
query.setEcode(deviceEntity.getLogo());
query.setApplicationId(item.getAppEname());
List<InterfaceStatsVO> interfaceEntityList = convergeAppsInterfaceService.getTotalInvokeSum(query);
if(CollectionUtils.isEmpty(interfaceEntityList) || interfaceEntityList.get(0) == null){
continue;
}
item.setInterfaceEntityList(interfaceEntityList);
}
equipmentVO.setAppStats(convertAppVO(apps));
equipments.add(equipmentVO);
}
......@@ -149,8 +163,12 @@ public class ConvergeSiteServiceImpl extends AbstractCRUDServiceImpl<ConvergeSit
}else {
List<AppVO> voList = new ArrayList<>();
for (ConvergeAppsEntity item:apps){
if(CollectionUtils.isEmpty(item.getInterfaceEntityList()) || item.getInterfaceEntityList().get(0) == null){
continue;
}
AppVO vo = new AppVO();
BeanUtils.copyProperties(item,vo,BeanUtil.getNullPropertyNames(item));
vo.setInterfaceStats(item.getInterfaceEntityList());
voList.add(vo);
}
return voList;
......
package com.mortals.xhx.module.converge.web;
import com.alibaba.fastjson.JSONArray;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.model.BaseEntity;
......@@ -9,6 +10,7 @@ import com.mortals.framework.utils.BeanUtil;
import com.mortals.framework.utils.ReflectUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -143,6 +145,13 @@ public class ConvergeAppsAccessController extends BaseCRUDJsonBodyMappingControl
entity.setAppSimpleName(request.getParameter("appSimpleName"));
entity.setProvider(request.getParameter("provider"));
entity.setOrigin(request.getParameter("origin"));
String interfaceStats = request.getParameter("interfaceStats");
try {
List<ConvergeAppsInterfaceEntity> interfaceList = JSONArray.parseArray(interfaceStats,ConvergeAppsInterfaceEntity.class);
entity.setInterfaceList(interfaceList);
}catch (Exception e){
}
try {
this.saveBefore(entity, model, context);
if (entity.newEntity()) {
......
package com.mortals.xhx.module.converge.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity;
import com.mortals.xhx.module.converge.service.ConvergeAppsInterfaceService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 应用接口
*
* @author zxfei
* @date 2023-08-17
*/
@RestController
@RequestMapping("converge/apps/interface")
public class ConvergeAppsInterfaceController extends BaseCRUDJsonBodyMappingController<ConvergeAppsInterfaceService,ConvergeAppsInterfaceEntity,Long> {
@Autowired
private ParamService paramService;
public ConvergeAppsInterfaceController(){
super.setModuleDesc( "应用接口");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.converge.dao.ibatis.ConvergeAppsInterfaceDaoImpl">
<!-- 接口访问次数统计 -->
<select id="getTotalInvokeSum" parameterType="com.mortals.xhx.module.converge.model.ConvergeAppsInterfaceEntity" resultType="com.mortals.xhx.module.converge.model.vo.InterfaceStatsVO">
SELECT
ecode,
applicationId,
interfaceUniqueId,
interfaceName,
sum(totalInvokeSum) AS totalInvokeSum
FROM
mortals_xhx_converge_apps_interface
WHERE 1=1
<if test="ecode != null and ecode!=''"> AND ecode = #{ecode}</if>
<if test="applicationId != null and applicationId!=''"> AND applicationId = #{applicationId}</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment