Commit cd765570 authored by alex yao's avatar alex yao

feat:数据统计-应用统计

parent 7d033828
package cn.com.poc.agent_application.service; package cn.com.poc.agent_application.service;
import cn.com.poc.agent_application.dto.AgentApplicationInfoDto;
import cn.com.poc.agent_application.entity.Variable; import cn.com.poc.agent_application.entity.Variable;
import cn.com.poc.agent_application.query.AgentApplicationInfoQueryCondition; import cn.com.poc.agent_application.query.AgentApplicationInfoQueryCondition;
import cn.com.yict.framemax.core.service.BaseService; import cn.com.yict.framemax.core.service.BaseService;
...@@ -13,7 +12,7 @@ public interface BizAgentApplicationInfoService extends BaseService { ...@@ -13,7 +12,7 @@ public interface BizAgentApplicationInfoService extends BaseService {
BizAgentApplicationInfoEntity getByAgentId(String agentId); BizAgentApplicationInfoEntity getByAgentId(String agentId);
List<BizAgentApplicationInfoEntity> findByExample(BizAgentApplicationInfoEntity example, PagingInfo pagingInfo) throws Exception; List<BizAgentApplicationInfoEntity> findByExample(BizAgentApplicationInfoEntity example, PagingInfo pagingInfo) ;
List<BizAgentApplicationInfoEntity> agentApplicationInfoQuery(AgentApplicationInfoQueryCondition condition, PagingInfo pagingInfo); List<BizAgentApplicationInfoEntity> agentApplicationInfoQuery(AgentApplicationInfoQueryCondition condition, PagingInfo pagingInfo);
......
...@@ -15,8 +15,6 @@ import cn.com.poc.agent_application.entity.BizAgentApplicationInfoEntity; ...@@ -15,8 +15,6 @@ import cn.com.poc.agent_application.entity.BizAgentApplicationInfoEntity;
import cn.com.poc.agent_application.convert.AgentApplicationInfoConvert; import cn.com.poc.agent_application.convert.AgentApplicationInfoConvert;
import cn.com.poc.agent_application.repository.BizAgentApplicationInfoRepository; import cn.com.poc.agent_application.repository.BizAgentApplicationInfoRepository;
import cn.com.yict.framemax.data.model.PagingInfo; import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.core.bean.BeanUtil;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -64,7 +62,7 @@ public class BizAgentApplicationInfoServiceImpl extends BaseServiceImpl ...@@ -64,7 +62,7 @@ public class BizAgentApplicationInfoServiceImpl extends BaseServiceImpl
} }
@Override @Override
public List<BizAgentApplicationInfoEntity> findByExample(BizAgentApplicationInfoEntity example, PagingInfo pagingInfo) throws Exception { public List<BizAgentApplicationInfoEntity> findByExample(BizAgentApplicationInfoEntity example, PagingInfo pagingInfo) {
List<BizAgentApplicationInfoEntity> result = new ArrayList<BizAgentApplicationInfoEntity>(); List<BizAgentApplicationInfoEntity> result = new ArrayList<BizAgentApplicationInfoEntity>();
BizAgentApplicationInfoModel model = new BizAgentApplicationInfoModel(); BizAgentApplicationInfoModel model = new BizAgentApplicationInfoModel();
if (example != null) { if (example != null) {
......
select * from (select
bmi.nick_name as owner,
baai.agent_title ,
count(bdapr.relation_id) as usage_count,
sum(bdapr.point_num) as total_points,
max(bdapr.datetime) as last_usage_time,
(case when bdapr.channel = 'preview' or bdapr.channel = 'multi_preview' then "Y" else "N" end) as publish_status
from
biz_data_analyze_point_record bdapr
left join biz_agent_application_info baai on baai.agent_id = bdapr.relation_id
left join biz_member_info bmi on bmi.member_id = baai.member_id
where 1=1
<< and bdapr.member_id = :memberId>>
group by bdapr.relation_id,publish_status
) as t1
where 1=1
<< and t1.last_usage_time >= :startDate and t1.last_usage_time <= :endDate >>
order by t1.last_usage_time desc
\ No newline at end of file
package cn.com.poc.data_analyze.query;
import java.io.Serializable;
/**
* Query Condition class for MemberAgentUsageDetailsQuery
*/
public class MemberAgentUsageDetailsQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
private java.lang.String startDate;
public java.lang.String getStartDate(){
return this.startDate;
}
public void setStartDate(java.lang.String startDate){
this.startDate = startDate;
}
private java.lang.String endDate;
public java.lang.String getEndDate(){
return this.endDate;
}
public void setEndDate(java.lang.String endDate){
this.endDate = endDate;
}
}
\ No newline at end of file
package cn.com.poc.data_analyze.query;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import cn.com.yict.framemax.data.model.BaseItemClass;
/**
* Query Item class for MemberAgentUsageDetailsQuery
*/
@Entity
public class MemberAgentUsageDetailsQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** owner
*owner
*/
private java.lang.String owner;
@Column(name = "owner")
public java.lang.String getOwner(){
return this.owner;
}
public void setOwner(java.lang.String owner){
this.owner = owner;
}
/** agent_title
*agent_title
*/
private java.lang.String agentTitle;
@Column(name = "agent_title")
public java.lang.String getAgentTitle(){
return this.agentTitle;
}
public void setAgentTitle(java.lang.String agentTitle){
this.agentTitle = agentTitle;
}
/** usage_count
*usage_count
*/
private java.lang.Long usageCount;
@Column(name = "usage_count")
public java.lang.Long getUsageCount(){
return this.usageCount;
}
public void setUsageCount(java.lang.Long usageCount){
this.usageCount = usageCount;
}
/** total_points
*total_points
*/
private java.lang.Double totalPoints;
@Column(name = "total_points")
public java.lang.Double getTotalPoints(){
return this.totalPoints;
}
public void setTotalPoints(java.lang.Double totalPoints){
this.totalPoints = totalPoints;
}
/** last_usage_time
*last_usage_time
*/
private java.util.Date lastUsageTime;
@Column(name = "last_usage_time")
public java.util.Date getLastUsageTime(){
return this.lastUsageTime;
}
public void setLastUsageTime(java.util.Date lastUsageTime){
this.lastUsageTime = lastUsageTime;
}
/** publish_status
*publish_status
*/
private java.lang.String publishStatus;
@Column(name = "publish_status")
public java.lang.String getPublishStatus(){
return this.publishStatus;
}
public void setPublishStatus(java.lang.String publishStatus){
this.publishStatus = publishStatus;
}
}
\ No newline at end of file
select
count(distinct relation_id) as count
from
biz_data_analyze_dialogue_record
where 1=1
<< and member_id = :memberId >>
\ No newline at end of file
package cn.com.poc.data_analyze.query;
import java.io.Serializable;
/**
* Query Condition class for MemberUsageCountQuery
*/
public class MemberUsageCountQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
this.memberId = memberId;
}
}
\ No newline at end of file
package cn.com.poc.data_analyze.query;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import cn.com.yict.framemax.data.model.BaseItemClass;
/**
* Query Item class for MemberUsageCountQuery
*/
@Entity
public class MemberUsageCountQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** count
*count
*/
private java.lang.Long count;
@Column(name = "count")
public java.lang.Long getCount(){
return this.count;
}
public void setCount(java.lang.Long count){
this.count = count;
}
}
\ No newline at end of file
...@@ -27,5 +27,8 @@ public interface BizDataAnalyzeDialogueRecordService extends BaseService { ...@@ -27,5 +27,8 @@ public interface BizDataAnalyzeDialogueRecordService extends BaseService {
List<ChannelUsageCountQueryItem> channelUsageCountQuery(ChannelUsageCountQueryCondition condition, PagingInfo pagingInfo); List<ChannelUsageCountQueryItem> channelUsageCountQuery(ChannelUsageCountQueryCondition condition, PagingInfo pagingInfo);
Long memberUsageCount(Long memberId);
List<MemberAgentUsageDetailsQueryItem> memberAgentUsageDetailsQuery(MemberAgentUsageDetailsQueryCondition condition, PagingInfo pagingInfo);
} }
\ No newline at end of file
...@@ -111,4 +111,21 @@ public class BizDataAnalyzeDialogueRecordServiceImpl extends BaseServiceImpl ...@@ -111,4 +111,21 @@ public class BizDataAnalyzeDialogueRecordServiceImpl extends BaseServiceImpl
public List<ChannelUsageCountQueryItem> channelUsageCountQuery(ChannelUsageCountQueryCondition condition, PagingInfo pagingInfo) { public List<ChannelUsageCountQueryItem> channelUsageCountQuery(ChannelUsageCountQueryCondition condition, PagingInfo pagingInfo) {
return this.sqlDao.query(condition, ChannelUsageCountQueryItem.class, pagingInfo); return this.sqlDao.query(condition, ChannelUsageCountQueryItem.class, pagingInfo);
} }
@Override
public Long memberUsageCount(Long memberId) {
MemberUsageCountQueryCondition condition = new MemberUsageCountQueryCondition();
condition.setMemberId(memberId);
List<MemberUsageCountQueryItem> items = this.sqlDao.query(condition, MemberUsageCountQueryItem.class);
if (CollectionUtils.isNotEmpty(items)) {
MemberUsageCountQueryItem memberUsageCountQueryItem = items.get(0);
return memberUsageCountQueryItem.getCount();
}
return 0L;
}
@Override
public List<MemberAgentUsageDetailsQueryItem> memberAgentUsageDetailsQuery(MemberAgentUsageDetailsQueryCondition condition, PagingInfo pagingInfo) {
return this.sqlDao.query(condition, MemberAgentUsageDetailsQueryItem.class, pagingInfo);
}
} }
\ No newline at end of file
...@@ -2,7 +2,10 @@ package cn.com.poc.expose.aggregate; ...@@ -2,7 +2,10 @@ package cn.com.poc.expose.aggregate;
import cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange; import cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange;
import cn.com.poc.data_analyze.query.MemberPointUsageTrendQueryItem; import cn.com.poc.data_analyze.query.MemberPointUsageTrendQueryItem;
import cn.com.poc.expose.entity.PlatformAgentUsageDetailEntity;
import cn.com.poc.expose.entity.PlatformAgentUsageEntity;
import cn.com.poc.expose.entity.PlatformPointUsageEntity; import cn.com.poc.expose.entity.PlatformPointUsageEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -26,4 +29,16 @@ public interface DataStatisticsService { ...@@ -26,4 +29,16 @@ public interface DataStatisticsService {
*/ */
Map<String, List<MemberPointUsageTrendQueryItem>> platformPointTrend(Long memberId, List<String> channels, DataAnalyzeTimeRange timeRange); Map<String, List<MemberPointUsageTrendQueryItem>> platformPointTrend(Long memberId, List<String> channels, DataAnalyzeTimeRange timeRange);
/**
* 平台应用使用情况
*/
PlatformAgentUsageEntity platformAgentUsage(Long memberId, List<String> channels);
/**
* 平台应用使用明细
*/
List<PlatformAgentUsageDetailEntity> platformAgentUsageDetail(Long memberId, DataAnalyzeTimeRange timeRange, PagingInfo pagingInfo);
} }
package cn.com.poc.expose.aggregate.impl; package cn.com.poc.expose.aggregate.impl;
import cn.com.poc.agent_application.constant.AgentApplicationConstants;
import cn.com.poc.agent_application.entity.BizAgentApplicationInfoEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationInfoService;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.Assert; import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.DateUtils; import cn.com.poc.common.utils.DateUtils;
import cn.com.poc.data_analyze.constants.DataAnalyzeTimeRangeEnum; import cn.com.poc.data_analyze.constants.DataAnalyzeTimeRangeEnum;
import cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange; import cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange;
import cn.com.poc.data_analyze.query.MemberPointUsageOverallQueryCondition; import cn.com.poc.data_analyze.query.*;
import cn.com.poc.data_analyze.query.MemberPointUsageOverallQueryItem; import cn.com.poc.data_analyze.service.BizDataAnalyzeDialogueRecordService;
import cn.com.poc.data_analyze.query.MemberPointUsageTrendQueryCondition;
import cn.com.poc.data_analyze.query.MemberPointUsageTrendQueryItem;
import cn.com.poc.data_analyze.service.BizDataAnalyzePointRecordService; import cn.com.poc.data_analyze.service.BizDataAnalyzePointRecordService;
import cn.com.poc.expose.aggregate.DataStatisticsService; import cn.com.poc.expose.aggregate.DataStatisticsService;
import cn.com.poc.expose.dto.data_statistics.PlatformPointUsageDto; import cn.com.poc.expose.entity.PlatformAgentUsageDetailEntity;
import cn.com.poc.expose.entity.PlatformAgentUsageEntity;
import cn.com.poc.expose.entity.PlatformPointUsageEntity; import cn.com.poc.expose.entity.PlatformPointUsageEntity;
import cn.com.yict.framemax.core.i18n.I18nMessageException; import cn.com.yict.framemax.core.i18n.I18nMessageException;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.math.BigDecimal;
import java.util.List; import java.math.RoundingMode;
import java.util.Map; import java.util.*;
import java.util.TreeMap;
/** /**
* @author alex.yao * @author alex.yao
...@@ -32,6 +35,12 @@ public class DataStatisticsServiceImpl implements DataStatisticsService { ...@@ -32,6 +35,12 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
@Resource @Resource
private BizDataAnalyzePointRecordService bizDataAnalyzePointRecordService; private BizDataAnalyzePointRecordService bizDataAnalyzePointRecordService;
@Resource
private BizDataAnalyzeDialogueRecordService bizDataAnalyzeDialogueRecordService;
@Resource
private BizAgentApplicationInfoService bizAgentApplicationInfoService;
@Override @Override
public PlatformPointUsageEntity platformPointUsage(Long memberId, List<String> channels) { public PlatformPointUsageEntity platformPointUsage(Long memberId, List<String> channels) {
MemberPointUsageOverallQueryCondition memberPointUsageOverallQueryCondition = new MemberPointUsageOverallQueryCondition(); MemberPointUsageOverallQueryCondition memberPointUsageOverallQueryCondition = new MemberPointUsageOverallQueryCondition();
...@@ -95,4 +104,74 @@ public class DataStatisticsServiceImpl implements DataStatisticsService { ...@@ -95,4 +104,74 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
} }
return result; return result;
} }
@Override
public PlatformAgentUsageEntity platformAgentUsage(Long memberId, List<String> channels) {
BizAgentApplicationInfoEntity bizAgentApplicationInfoEntity = new BizAgentApplicationInfoEntity();
bizAgentApplicationInfoEntity.setMemberId(memberId.intValue());
bizAgentApplicationInfoEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAgentApplicationInfoEntity> applicationInfoEntities = bizAgentApplicationInfoService.findByExample(bizAgentApplicationInfoEntity, null);
long createCount = applicationInfoEntities.size();
long publishCount = applicationInfoEntities.stream().filter(entity -> AgentApplicationConstants.AGENT_PUBLISH_STATUS.PUBLISH.equals(entity.getAgentPublishStatus())).count();
long unPublishCount = createCount - publishCount;
Long memberUsageCount = bizDataAnalyzeDialogueRecordService.memberUsageCount(memberId);
PlatformAgentUsageEntity platformAgentUsageEntity = new PlatformAgentUsageEntity();
platformAgentUsageEntity.setCreateCount(createCount);
platformAgentUsageEntity.setUsageCount(memberUsageCount);
platformAgentUsageEntity.setUnPublishCount(unPublishCount);
platformAgentUsageEntity.setPublishCount(publishCount);
return platformAgentUsageEntity;
}
@Override
public List<PlatformAgentUsageDetailEntity> platformAgentUsageDetail(Long memberId, DataAnalyzeTimeRange timeRange, PagingInfo pagingInfo) {
String startTime;
String endTime;
Date startDate;
Date endDate;
switch (DataAnalyzeTimeRangeEnum.getByType(timeRange.getRangType())) {
case week:
endDate = DateUtils.getTodayEnd();
startDate = DateUtils.getDayStartTime(DateUtils.addDays(endDate, -6));
startTime = DateUtils.formatDate(startDate, DateUtils.yyyy_MM_dd);
endTime = DateUtils.formatDate(endDate, DateUtils.yyyy_MM_dd_HH_mm_ss);
break;
case month:
endDate = DateUtils.getTodayEnd();
startDate = DateUtils.getDayStartTime(DateUtils.addMonth(endDate, -1));
startTime = DateUtils.formatDate(startDate, DateUtils.yyyy_MM_dd);
endTime = DateUtils.formatDate(endDate, DateUtils.yyyy_MM_dd_HH_mm_ss);
break;
case customize:
Assert.notBlank(timeRange.getStartTime());
Assert.notBlank(timeRange.getEndTime());
startTime = timeRange.getStartTime();
endDate = DateUtils.getDayEnd(DateUtils.stringToDateShort(timeRange.getEndTime()));
endTime = DateUtils.formatDate(endDate, DateUtils.yyyy_MM_dd_HH_mm_ss);
break;
default:
throw new I18nMessageException("data-analyze/not.support.rang.type");
}
MemberAgentUsageDetailsQueryCondition memberAgentUsageDetailsQueryCondition = new MemberAgentUsageDetailsQueryCondition();
memberAgentUsageDetailsQueryCondition.setMemberId(memberId);
memberAgentUsageDetailsQueryCondition.setStartDate(startTime);
memberAgentUsageDetailsQueryCondition.setEndDate(endTime);
List<MemberAgentUsageDetailsQueryItem> items = bizDataAnalyzeDialogueRecordService.memberAgentUsageDetailsQuery(memberAgentUsageDetailsQueryCondition, pagingInfo);
List<PlatformAgentUsageDetailEntity> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(items)) {
for (MemberAgentUsageDetailsQueryItem item : items) {
PlatformAgentUsageDetailEntity platformAgentUsageDetailEntity = new PlatformAgentUsageDetailEntity();
platformAgentUsageDetailEntity.setAgentTitle(item.getAgentTitle());
platformAgentUsageDetailEntity.setOwner(item.getOwner());
platformAgentUsageDetailEntity.setPublishStatus(item.getPublishStatus());
platformAgentUsageDetailEntity.setTotalPoint(BigDecimal.valueOf(item.getTotalPoints()).setScale(2, RoundingMode.HALF_UP).doubleValue());
platformAgentUsageDetailEntity.setUsageCount(item.getUsageCount());
platformAgentUsageDetailEntity.setLastUsageTime(DateUtils.formatDate(item.getLastUsageTime(), DateUtils.yyyy_MM_dd_HH_mm_ss));
result.add(platformAgentUsageDetailEntity);
}
}
return result;
}
} }
package cn.com.poc.expose.dto.data_statistics;
/**
* @author alex.yao
* @date 2024/12/23
*/
public class PlatformAgentUsageDetailDto {
private String agentTitle;
private String owner;
private String publishStatus;
private Double totalPoint;
private Long usageCount;
private String lastUsageTime;
public String getAgentTitle() {
return agentTitle;
}
public void setAgentTitle(String agentTitle) {
this.agentTitle = agentTitle;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getPublishStatus() {
return publishStatus;
}
public void setPublishStatus(String publishStatus) {
this.publishStatus = publishStatus;
}
public Double getTotalPoint() {
return totalPoint;
}
public void setTotalPoint(Double totalPoint) {
this.totalPoint = totalPoint;
}
public Long getUsageCount() {
return usageCount;
}
public void setUsageCount(Long usageCount) {
this.usageCount = usageCount;
}
public String getLastUsageTime() {
return lastUsageTime;
}
public void setLastUsageTime(String lastUsageTime) {
this.lastUsageTime = lastUsageTime;
}
}
package cn.com.poc.expose.dto.data_statistics;
import cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange;
/**
* @author alex.yao
* @date 2024/12/23
*/
public class PlatformAgentUsageDetailRequestDto {
private DataAnalyzeTimeRange timeRange;
public DataAnalyzeTimeRange getTimeRange() {
return timeRange;
}
public void setTimeRange(DataAnalyzeTimeRange timeRange) {
this.timeRange = timeRange;
}
}
package cn.com.poc.expose.dto.data_statistics;
import java.io.Serializable;
/**
* @author alex.yao
* @date 2024/12/23
*/
public class PlatformAgentUsageDto implements Serializable {
/**
* 创建的应用
*/
private Long createCount;
/**
* 已使用应用
*/
private Long usageCount;
/**
* 未发布应用数量
*/
private Long unPublishCount;
/**
* 已发布应用数量
*/
private Long publishCount;
public Long getCreateCount() {
return createCount;
}
public void setCreateCount(Long createCount) {
this.createCount = createCount;
}
public Long getUsageCount() {
return usageCount;
}
public void setUsageCount(Long usageCount) {
this.usageCount = usageCount;
}
public Long getUnPublishCount() {
return unPublishCount;
}
public void setUnPublishCount(Long unPublishCount) {
this.unPublishCount = unPublishCount;
}
public Long getPublishCount() {
return publishCount;
}
public void setPublishCount(Long publishCount) {
this.publishCount = publishCount;
}
}
package cn.com.poc.expose.entity;
/**
* @author alex.yao
* @date 2024/12/23
*/
public class PlatformAgentUsageDetailEntity {
private String agentTitle;
private String owner;
private String publishStatus;
private Double totalPoint;
private Long usageCount;
private String lastUsageTime;
public String getAgentTitle() {
return agentTitle;
}
public void setAgentTitle(String agentTitle) {
this.agentTitle = agentTitle;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getPublishStatus() {
return publishStatus;
}
public void setPublishStatus(String publishStatus) {
this.publishStatus = publishStatus;
}
public Double getTotalPoint() {
return totalPoint;
}
public void setTotalPoint(Double totalPoint) {
this.totalPoint = totalPoint;
}
public Long getUsageCount() {
return usageCount;
}
public void setUsageCount(Long usageCount) {
this.usageCount = usageCount;
}
public String getLastUsageTime() {
return lastUsageTime;
}
public void setLastUsageTime(String lastUsageTime) {
this.lastUsageTime = lastUsageTime;
}
}
package cn.com.poc.expose.entity;
import java.io.Serializable;
/**
* @author alex.yao
* @date 2024/12/23
*/
public class PlatformAgentUsageEntity implements Serializable {
/**
* 创建的应用
*/
private Long createCount;
/**
* 已使用应用
*/
private Long usageCount;
/**
* 未发布应用数量
*/
private Long unPublishCount;
/**
* 已发布应用数量
*/
private Long publishCount;
public Long getCreateCount() {
return createCount;
}
public void setCreateCount(Long createCount) {
this.createCount = createCount;
}
public Long getUsageCount() {
return usageCount;
}
public void setUsageCount(Long usageCount) {
this.usageCount = usageCount;
}
public Long getUnPublishCount() {
return unPublishCount;
}
public void setUnPublishCount(Long unPublishCount) {
this.unPublishCount = unPublishCount;
}
public Long getPublishCount() {
return publishCount;
}
public void setPublishCount(Long publishCount) {
this.publishCount = publishCount;
}
}
package cn.com.poc.expose.rest; package cn.com.poc.expose.rest;
import cn.com.poc.expose.dto.data_statistics.PlatformPointTrendDto; import cn.com.poc.expose.dto.data_statistics.*;
import cn.com.poc.expose.dto.data_statistics.PlatformPointTrendRequestDto;
import cn.com.poc.expose.dto.data_statistics.PlatformPointUsageDto;
import cn.com.yict.framemax.core.rest.BaseRest; import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.yict.framemax.web.permission.Access; import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission; import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -29,4 +28,14 @@ public interface DataStatisticsRest extends BaseRest { ...@@ -29,4 +28,14 @@ public interface DataStatisticsRest extends BaseRest {
* 平台积分使用趋势 * 平台积分使用趋势
*/ */
List<PlatformPointTrendDto> platformPointTrend(@RequestBody PlatformPointTrendRequestDto dto); List<PlatformPointTrendDto> platformPointTrend(@RequestBody PlatformPointTrendRequestDto dto);
/**
* 平台应用使用情况
*/
PlatformAgentUsageDto platformAgentUsage(@RequestParam List<String> channels);
/**
* 平台应用使用明细
*/
List<PlatformAgentUsageDetailDto> platformAgentUsageDetail(@RequestBody PlatformAgentUsageDetailRequestDto dto, PagingInfo pagingInfo);
} }
...@@ -4,13 +4,15 @@ import cn.com.poc.common.utils.Assert; ...@@ -4,13 +4,15 @@ import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.data_analyze.query.MemberPointUsageTrendQueryItem; import cn.com.poc.data_analyze.query.MemberPointUsageTrendQueryItem;
import cn.com.poc.expose.aggregate.DataStatisticsService; import cn.com.poc.expose.aggregate.DataStatisticsService;
import cn.com.poc.expose.dto.data_statistics.PlatformPointTrendDto; import cn.com.poc.expose.dto.data_statistics.*;
import cn.com.poc.expose.dto.data_statistics.PlatformPointTrendRequestDto; import cn.com.poc.expose.entity.PlatformAgentUsageDetailEntity;
import cn.com.poc.expose.dto.data_statistics.PlatformPointUsageDto; import cn.com.poc.expose.entity.PlatformAgentUsageEntity;
import cn.com.poc.expose.dto.data_statistics.PointUsage;
import cn.com.poc.expose.entity.PlatformPointUsageEntity; import cn.com.poc.expose.entity.PlatformPointUsageEntity;
import cn.com.poc.expose.rest.DataStatisticsRest; import cn.com.poc.expose.rest.DataStatisticsRest;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.core.bean.BeanUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -20,6 +22,7 @@ import java.util.ArrayList; ...@@ -20,6 +22,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
/** /**
* @author alex.yao * @author alex.yao
...@@ -68,4 +71,36 @@ public class DataStatisticsRestImpl implements DataStatisticsRest { ...@@ -68,4 +71,36 @@ public class DataStatisticsRestImpl implements DataStatisticsRest {
} }
return result; return result;
} }
@Override
public PlatformAgentUsageDto platformAgentUsage(List<String> channels) {
Assert.notEmpty(channels);
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
PlatformAgentUsageDto platformAgentUsageDto = new PlatformAgentUsageDto();
PlatformAgentUsageEntity platformAgentUsageEntity = dataStatisticsService.platformAgentUsage(userBaseEntity.getUserId(), channels);
BeanUtil.copyProperties(platformAgentUsageEntity, platformAgentUsageDto);
return platformAgentUsageDto;
}
@Override
public List<PlatformAgentUsageDetailDto> platformAgentUsageDetail(PlatformAgentUsageDetailRequestDto dto, PagingInfo pagingInfo) {
Assert.notNull(dto.getTimeRange());
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
List<PlatformAgentUsageDetailEntity> platformAgentUsageDetailEntities = dataStatisticsService.platformAgentUsageDetail(userBaseEntity.getUserId(), dto.getTimeRange(), pagingInfo);
List<PlatformAgentUsageDetailDto> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(platformAgentUsageDetailEntities)) {
result = platformAgentUsageDetailEntities.stream().map(entity -> {
PlatformAgentUsageDetailDto platformAgentUsageDetailDto = new PlatformAgentUsageDetailDto();
platformAgentUsageDetailDto.setAgentTitle(entity.getAgentTitle());
platformAgentUsageDetailDto.setOwner(entity.getOwner());
platformAgentUsageDetailDto.setPublishStatus(entity.getPublishStatus());
platformAgentUsageDetailDto.setTotalPoint(entity.getTotalPoint());
platformAgentUsageDetailDto.setUsageCount(entity.getUsageCount());
platformAgentUsageDetailDto.setLastUsageTime(entity.getLastUsageTime());
return platformAgentUsageDetailDto;
}
).collect(Collectors.toList());
}
return result;
}
} }
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