Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-api
Commits
7581c5e3
Commit
7581c5e3
authored
Dec 24, 2024
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
style: 时间范围计算
parent
cd765570
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
89 additions
and
129 deletions
+89
-129
DataAnalyzeTimeRangeEnum.java
.../poc/data_analyze/constants/DataAnalyzeTimeRangeEnum.java
+46
-0
TimeRange.java
src/main/java/cn/com/poc/data_analyze/domain/TimeRange.java
+28
-0
AgentDataAnalyzeServiceImpl.java
...oc/expose/aggregate/impl/AgentDataAnalyzeServiceImpl.java
+8
-73
DataStatisticsServiceImpl.java
.../poc/expose/aggregate/impl/DataStatisticsServiceImpl.java
+7
-56
No files found.
src/main/java/cn/com/poc/data_analyze/constants/DataAnalyzeTimeRangeEnum.java
View file @
7581c5e3
package
cn
.
com
.
poc
.
data_analyze
.
constants
;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.DateUtils
;
import
cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange
;
import
cn.com.poc.data_analyze.domain.TimeRange
;
import
cn.com.yict.framemax.core.i18n.I18nMessageException
;
import
java.util.Date
;
/**
* 应用数据分析-时间范围枚举
*
...
...
@@ -38,4 +44,44 @@ public enum DataAnalyzeTimeRangeEnum {
throw
new
I18nMessageException
(
"data-analyze/not.support.rang.type"
);
}
public
static
TimeRange
calculateTimeRange
(
DataAnalyzeTimeRange
dataAnalyzeTimeRange
)
{
String
startTime
;
String
endTime
;
Date
startDate
;
Date
endDate
;
String
rangType
=
dataAnalyzeTimeRange
.
getRangType
();
switch
(
DataAnalyzeTimeRangeEnum
.
getByType
(
rangType
))
{
case
today:
endDate
=
DateUtils
.
getTodayEnd
();
startDate
=
DateUtils
.
getDayStartTime
(
endDate
);
startTime
=
DateUtils
.
formatDate
(
startDate
,
DateUtils
.
yyyy_MM_dd
);
endTime
=
DateUtils
.
formatDate
(
endDate
,
DateUtils
.
yyyy_MM_dd_HH_mm_ss
);
break
;
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
(
dataAnalyzeTimeRange
.
getStartTime
());
Assert
.
notBlank
(
dataAnalyzeTimeRange
.
getEndTime
());
startTime
=
dataAnalyzeTimeRange
.
getStartTime
();
endDate
=
DateUtils
.
getDayEnd
(
DateUtils
.
stringToDateShort
(
dataAnalyzeTimeRange
.
getEndTime
()));
endTime
=
DateUtils
.
formatDate
(
endDate
,
DateUtils
.
yyyy_MM_dd_HH_mm_ss
);
break
;
default
:
throw
new
I18nMessageException
(
"data-analyze/not.support.rang.type"
);
}
TimeRange
timeRange
=
new
TimeRange
();
timeRange
.
setStartTime
(
startTime
);
timeRange
.
setEndTime
(
endTime
);
return
timeRange
;
}
}
src/main/java/cn/com/poc/data_analyze/domain/TimeRange.java
0 → 100644
View file @
7581c5e3
package
cn
.
com
.
poc
.
data_analyze
.
domain
;
/**
* @author alex.yao
* @date 2024/12/24
*/
public
class
TimeRange
{
private
String
startTime
;
private
String
endTime
;
public
String
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
String
startTime
)
{
this
.
startTime
=
startTime
;
}
public
String
getEndTime
()
{
return
endTime
;
}
public
void
setEndTime
(
String
endTime
)
{
this
.
endTime
=
endTime
;
}
}
src/main/java/cn/com/poc/expose/aggregate/impl/AgentDataAnalyzeServiceImpl.java
View file @
7581c5e3
package
cn
.
com
.
poc
.
expose
.
aggregate
.
impl
;
import
cn.com.poc.agent_application.aggregate.AgentApplicationInfoService
;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.common.utils.DateUtils
;
import
cn.com.poc.data_analyze.constants.DataAnalyzeChannelEnum
;
import
cn.com.poc.data_analyze.constants.DataAnalyzeTimeDimensionEnum
;
import
cn.com.poc.data_analyze.constants.DataAnalyzeTimeRangeEnum
;
import
cn.com.poc.data_analyze.domain.ChannelDataCount
;
import
cn.com.poc.data_analyze.domain.DataAnalyze
;
import
cn.com.poc.data_analyze.domain.DataAnalyzeInfo
;
import
cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange
;
import
cn.com.poc.data_analyze.domain.*
;
import
cn.com.poc.data_analyze.entity.*
;
import
cn.com.poc.data_analyze.query.*
;
import
cn.com.poc.data_analyze.service.BizDataAnalyzeDialogueRecordService
;
import
cn.com.poc.data_analyze.service.BizDataAnalyzePointRecordService
;
import
cn.com.poc.expose.aggregate.AgentDataAnalyzeService
;
import
cn.com.yict.framemax.core.i18n.I18nMessageException
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -115,35 +108,9 @@ public class AgentDataAnalyzeServiceImpl implements AgentDataAnalyzeService {
@Override
public
List
<
AgentDataAnalyzeTrendEntity
>
getAgentDataTrend
(
String
agentId
,
List
<
String
>
channel
,
DataAnalyzeTimeRange
timeRange
)
{
String
rangType
=
timeRange
.
getRangType
();
String
startTime
=
""
;
String
endTime
=
""
;
Date
endDate
;
Date
startDate
;
switch
(
DataAnalyzeTimeRangeEnum
.
getByType
(
rangType
))
{
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"
);
}
TimeRange
timeRangeResult
=
DataAnalyzeTimeRangeEnum
.
calculateTimeRange
(
timeRange
);
String
endTime
=
timeRangeResult
.
getEndTime
();
String
startTime
=
timeRangeResult
.
getStartTime
();
AgentDataTrendQueryCondition
agentDataTrendQueryCondition
=
new
AgentDataTrendQueryCondition
();
agentDataTrendQueryCondition
.
setStartDate
(
startTime
);
agentDataTrendQueryCondition
.
setEndDate
(
endTime
);
...
...
@@ -167,40 +134,9 @@ public class AgentDataAnalyzeServiceImpl implements AgentDataAnalyzeService {
@Override
public
List
<
AgentDataAnalyzeApiChannelEntity
>
getAgentApiChannelPointCount
(
String
agentId
,
DataAnalyzeTimeRange
timeRange
)
{
String
rangType
=
timeRange
.
getRangType
();
String
startTime
=
""
;
String
endTime
=
""
;
Date
endDate
;
Date
startDate
;
switch
(
DataAnalyzeTimeRangeEnum
.
getByType
(
rangType
))
{
case
today:
endDate
=
DateUtils
.
getTodayEnd
();
startDate
=
DateUtils
.
getDayStartTime
(
endDate
);
startTime
=
DateUtils
.
formatDate
(
startDate
,
DateUtils
.
yyyy_MM_dd
);
endTime
=
DateUtils
.
formatDate
(
endDate
,
DateUtils
.
yyyy_MM_dd_HH_mm_ss
);
break
;
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"
);
}
TimeRange
timeRangeResult
=
DataAnalyzeTimeRangeEnum
.
calculateTimeRange
(
timeRange
);
String
endTime
=
timeRangeResult
.
getEndTime
();
String
startTime
=
timeRangeResult
.
getStartTime
();
List
<
String
>
channels
=
new
ArrayList
<
String
>()
{{
add
(
DataAnalyzeChannelEnum
.
api
.
getChannel
());
}};
...
...
@@ -222,8 +158,7 @@ public class AgentDataAnalyzeServiceImpl implements AgentDataAnalyzeService {
return
result
;
}
private
static
void
buildGeneralData
(
DataAnalyzeTimeDimensionEnum
dataAnalyzeTimeDimensionEnum
,
List
<
PointsUsageQueryItem
>
pointsUsageQueryItems
,
List
<
AgentUsageQueryItem
>
agentUsageQueryItems
,
List
<
AgentDataAnalyzeGeneralEntity
>
result
)
{
private
static
void
buildGeneralData
(
DataAnalyzeTimeDimensionEnum
dataAnalyzeTimeDimensionEnum
,
List
<
PointsUsageQueryItem
>
pointsUsageQueryItems
,
List
<
AgentUsageQueryItem
>
agentUsageQueryItems
,
List
<
AgentDataAnalyzeGeneralEntity
>
result
)
{
DataAnalyzeInfo
dataAnalyzeInfo
=
new
DataAnalyzeInfo
();
//积分
DataAnalyze
pointsCount
=
new
DataAnalyze
();
...
...
src/main/java/cn/com/poc/expose/aggregate/impl/DataStatisticsServiceImpl.java
View file @
7581c5e3
...
...
@@ -4,10 +4,10 @@ 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.DateUtils
;
import
cn.com.poc.data_analyze.constants.DataAnalyzeTimeRangeEnum
;
import
cn.com.poc.data_analyze.domain.DataAnalyzeTimeRange
;
import
cn.com.poc.data_analyze.domain.TimeRange
;
import
cn.com.poc.data_analyze.query.*
;
import
cn.com.poc.data_analyze.service.BizDataAnalyzeDialogueRecordService
;
import
cn.com.poc.data_analyze.service.BizDataAnalyzePointRecordService
;
...
...
@@ -15,7 +15,6 @@ import cn.com.poc.expose.aggregate.DataStatisticsService;
import
cn.com.poc.expose.entity.PlatformAgentUsageDetailEntity
;
import
cn.com.poc.expose.entity.PlatformAgentUsageEntity
;
import
cn.com.poc.expose.entity.PlatformPointUsageEntity
;
import
cn.com.yict.framemax.core.i18n.I18nMessageException
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -66,33 +65,9 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
@Override
public
Map
<
String
,
List
<
MemberPointUsageTrendQueryItem
>>
platformPointTrend
(
Long
memberId
,
List
<
String
>
channels
,
DataAnalyzeTimeRange
timeRange
)
{
Map
<
String
,
List
<
MemberPointUsageTrendQueryItem
>>
result
=
new
TreeMap
<>();
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"
);
}
TimeRange
timeRangeResult
=
DataAnalyzeTimeRangeEnum
.
calculateTimeRange
(
timeRange
);
String
endTime
=
timeRangeResult
.
getEndTime
();
String
startTime
=
timeRangeResult
.
getStartTime
();
for
(
String
channel
:
channels
)
{
MemberPointUsageTrendQueryCondition
memberPointUsageTrendQueryCondition
=
new
MemberPointUsageTrendQueryCondition
();
memberPointUsageTrendQueryCondition
.
setStartDate
(
startTime
);
...
...
@@ -126,33 +101,9 @@ public class DataStatisticsServiceImpl implements DataStatisticsService {
@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"
);
}
TimeRange
timeRangeResult
=
DataAnalyzeTimeRangeEnum
.
calculateTimeRange
(
timeRange
);
String
endTime
=
timeRangeResult
.
getEndTime
();
String
startTime
=
timeRangeResult
.
getStartTime
();
MemberAgentUsageDetailsQueryCondition
memberAgentUsageDetailsQueryCondition
=
new
MemberAgentUsageDetailsQueryCondition
();
memberAgentUsageDetailsQueryCondition
.
setMemberId
(
memberId
);
memberAgentUsageDetailsQueryCondition
.
setStartDate
(
startTime
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment