|
@@ -41,15 +41,81 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public Result trend(ReportPo po) {
|
|
|
+ public Result userTrend(ReportPo po) {
|
|
|
+ String startTime = po.getStartTime();
|
|
|
+ String endTime = po.getEndTime();
|
|
|
+ String timeType = po.getTimeType();
|
|
|
+
|
|
|
+ String sqlStr;
|
|
|
+ if ("day".equals(timeType)) {
|
|
|
+ sqlStr = userDayTrentSql(startTime, endTime);
|
|
|
+
|
|
|
+ } else if ("week".equals(timeType)) {
|
|
|
+ sqlStr = userWeekTrentSql(startTime, endTime);
|
|
|
+ } else {
|
|
|
+ sqlStr = userMonthTrentSql(startTime, endTime);
|
|
|
|
|
|
- return Result.success(getTrent(po));
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map> res = entityMapper.listMapSql(sqlStr);
|
|
|
+
|
|
|
+ return Result.success(res);
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private String userMonthTrentSql(String startTime, String endTime) {
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ builder.append(" select groupKey, total as count,type from (");
|
|
|
+ // 月累计相加
|
|
|
+ builder.append(" select DATE_FORMAT(day, '%Y-%m') as groupKey, sum(total) as total ,type from tb_report where is_delete=0");
|
|
|
+ if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
|
|
+ builder.append(" and day between '").append(startTime).append("' and '").append(endTime).append("'");
|
|
|
+ } else {
|
|
|
+ builder.append(" and DATE(day)>=DATE_SUB(CURDATE(), INTERVAL 200 DAY)");
|
|
|
+ }
|
|
|
+ builder.append(" and type='").append("user").append("'");
|
|
|
+ builder.append(" and info_type='").append("all").append("'");
|
|
|
|
|
|
- private List<Map> getTrent(ReportPo po) {
|
|
|
+ builder.append(" group by groupKey ) as a ");
|
|
|
+ builder.append(" order by groupKey desc");
|
|
|
+ return builder.toString();
|
|
|
+ }
|
|
|
|
|
|
+ private String userWeekTrentSql(String startTime, String endTime) {
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ builder.append(" select groupKey, total as count,type from (");
|
|
|
+ // 周累计相加
|
|
|
+ builder.append(" select DATE_FORMAT(DATE_ADD(day,INTERVAL- (WEEKDAY(day)) day), '%Y-%m-%d' ) as groupKey, sum(total) as total," +
|
|
|
+ " type from tb_report where is_delete=0 ");
|
|
|
+ if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
|
|
+ builder.append(" and day between '").append(startTime).append("' and '").append(endTime).append("'");
|
|
|
+ } else {
|
|
|
+ builder.append(" and DATE(day)>=DATE_SUB(CURDATE(), INTERVAL 200 DAY)");
|
|
|
+ }
|
|
|
+ builder.append(" and type='").append("user").append("'");
|
|
|
+ builder.append(" and info_type='").append("all").append("'");
|
|
|
+
|
|
|
+ builder.append(" group by groupKey ) as a ");
|
|
|
+ builder.append(" order by groupKey desc");
|
|
|
+ return builder.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String userDayTrentSql(String startTime, String endTime) {
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ builder.append("select DATE_FORMAT( day, '%Y-%m-%d' ) as groupKey, total as count, type from tb_report where is_delete=0 ");
|
|
|
+ if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
|
|
+ builder.append(" and day between '").append(startTime).append("' and '").append(endTime).append("'");
|
|
|
+ } else {
|
|
|
+ builder.append(" and DATE(day)>=DATE_SUB(CURDATE(), INTERVAL 30 DAY)");
|
|
|
+ }
|
|
|
+ builder.append(" and type='").append("user").append("'");
|
|
|
+ builder.append(" and info_type='").append("all").append("'");
|
|
|
+ builder.append(" order by day desc");
|
|
|
+ return builder.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result volumeTrend(ReportPo po) {
|
|
|
String startTime = po.getStartTime();
|
|
|
String endTime = po.getEndTime();
|
|
|
String timeType = po.getTimeType();
|
|
@@ -61,19 +127,24 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
|
|
|
String sqlStr;
|
|
|
if ("day".equals(timeType)) {
|
|
|
- sqlStr = dayTrentSql(infoType, type, startTime, endTime);
|
|
|
+ sqlStr = volumeDayTrentSql(infoType, type, startTime, endTime);
|
|
|
|
|
|
} else if ("week".equals(timeType)) {
|
|
|
- sqlStr = weekTrentSql(infoType, type, startTime, endTime);
|
|
|
+ sqlStr = volumeWeekTrentSql(infoType, type, startTime, endTime);
|
|
|
} else {
|
|
|
- sqlStr = monthTrentSql(infoType, type, startTime, endTime);
|
|
|
+ sqlStr = volumeMonthTrentSql(infoType, type, startTime, endTime);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
List<Map> res = entityMapper.listMapSql(sqlStr);
|
|
|
- return res;
|
|
|
+
|
|
|
+ return Result.success(res);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
+ // 作品趋势
|
|
|
private List<ReportVo> getWorkTrent(ReportPo po) {
|
|
|
String startTime = po.getStartTime();
|
|
|
String endTime = po.getEndTime();
|
|
@@ -86,20 +157,18 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
|
|
|
String sqlStr;
|
|
|
if ("day".equals(timeType)) {
|
|
|
- sqlStr = dayWorkTrentSql(infoType, type, startTime, endTime);
|
|
|
-
|
|
|
+ sqlStr = workDayTrentSql(infoType, type, startTime, endTime);
|
|
|
} else if ("week".equals(timeType)) {
|
|
|
- sqlStr = weekWorkTrentSql(infoType, type, startTime, endTime);
|
|
|
+ sqlStr = workWeekTrentSql(infoType, type, startTime, endTime);
|
|
|
} else {
|
|
|
- sqlStr = monthWorkTrentSql(infoType, type, startTime, endTime);
|
|
|
+ sqlStr = workMonthTrentSql(infoType, type, startTime, endTime);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
List<ReportVo> res = entityMapper.listReportVoSql(sqlStr);
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
- private String dayTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
+ private String volumeDayTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
builder.append("select DATE_FORMAT( day, '%Y-%m-%d' ) as groupKey, ROUND(total/1024, 2) as count, type from tb_report where is_delete=0 ");
|
|
|
if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
|
@@ -114,10 +183,10 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
return builder.toString();
|
|
|
}
|
|
|
|
|
|
- private String weekTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
+ private String volumeWeekTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
builder.append(" select groupKey, total as count,type from (");
|
|
|
- if ("add".equals(infoType)){
|
|
|
+ if ("add".equals(infoType)) {
|
|
|
// 容量累计相加
|
|
|
builder.append(" select DATE_FORMAT(DATE_ADD(day,INTERVAL- (WEEKDAY(day)) day), '%Y-%m-%d' ) as groupKey, ROUND(sum(total/1024),2) as total," +
|
|
|
" type from tb_report where is_delete=0 ");
|
|
@@ -128,7 +197,6 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
|
|
builder.append(" and day between '").append(startTime).append("' and '").append(endTime).append("'");
|
|
|
} else {
|
|
@@ -143,10 +211,10 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
return builder.toString();
|
|
|
}
|
|
|
|
|
|
- private String monthTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
+ private String volumeMonthTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
builder.append(" select groupKey, total as count,type from (");
|
|
|
- if ("add".equals(infoType)){
|
|
|
+ if ("add".equals(infoType)) {
|
|
|
builder.append(" select DATE_FORMAT(day, '%Y-%m') as groupKey, ROUND(sum(total/1024),2) as total ,type from tb_report where is_delete=0");
|
|
|
} else {
|
|
|
builder.append(" select DATE_FORMAT(day, '%Y-%m') as groupKey, ROUND(avg(total/1024),2) as total ,type from tb_report where is_delete=0");
|
|
@@ -168,7 +236,7 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
}
|
|
|
|
|
|
|
|
|
- private String dayWorkTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
+ private String workDayTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
builder.append("select DATE_FORMAT( day, '%Y-%m-%d' ) as groupKey, mix, pano, age, type from tb_report where is_delete=0 ");
|
|
|
if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)) {
|
|
@@ -183,7 +251,7 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
return builder.toString();
|
|
|
}
|
|
|
|
|
|
- private String weekWorkTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
+ private String workWeekTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
builder.append(" select groupKey, mix,age, pano,type from (");
|
|
|
builder.append(" select DATE_FORMAT(DATE_ADD(day,INTERVAL- (WEEKDAY(day)) day), '%Y-%m-%d' ) as groupKey, " +
|
|
@@ -201,7 +269,7 @@ public class ReportServiceImpl extends IBaseServiceImpl<ReportEntity, Long> impl
|
|
|
return builder.toString();
|
|
|
}
|
|
|
|
|
|
- private String monthWorkTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
+ private String workMonthTrentSql(String infoType, String type, String startTime, String endTime) {
|
|
|
StringBuilder builder = new StringBuilder();
|
|
|
builder.append(" select groupKey, mix,age, pano,type from (");
|
|
|
builder.append(" select DATE_FORMAT(day, '%Y-%m') as groupKey, mix,age, pano,type from tb_report where is_delete=0");
|