|
@@ -2,7 +2,6 @@ package cn.com.ctop.bytedance.service.impl;
|
|
|
|
|
|
import cn.com.ctop.bytedance.entity.BytedanceAdvertiserDailyReport;
|
|
import cn.com.ctop.bytedance.entity.BytedanceAdvertiserDailyReport;
|
|
import cn.com.ctop.bytedance.mapper.BytedanceAdvertiserDailyReportMapper;
|
|
import cn.com.ctop.bytedance.mapper.BytedanceAdvertiserDailyReportMapper;
|
|
-import cn.com.ctop.bytedance.mapper.BytedanceCampaignDailyReportMapper;
|
|
|
|
import cn.com.ctop.bytedance.mapper.BytedanceReportMapper;
|
|
import cn.com.ctop.bytedance.mapper.BytedanceReportMapper;
|
|
import cn.com.ctop.bytedance.service.IBytedanceReportService;
|
|
import cn.com.ctop.bytedance.service.IBytedanceReportService;
|
|
import cn.com.ctop.common.module.entity.UserAllocation;
|
|
import cn.com.ctop.common.module.entity.UserAllocation;
|
|
@@ -19,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -195,59 +195,54 @@ public class BytedanceReportServiceImpl implements IBytedanceReportService {
|
|
* @param requestJson
|
|
* @param requestJson
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- @Autowired
|
|
|
|
- private BytedanceCampaignDailyReportMapper campaignDailyReportMapper;
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public JSONObject getKuaiShouAccountReport(JSONObject requestJson) {
|
|
public JSONObject getKuaiShouAccountReport(JSONObject requestJson) {
|
|
Integer type = requestJson.getInteger("type");
|
|
Integer type = requestJson.getInteger("type");
|
|
JSONObject accountJson = new JSONObject();
|
|
JSONObject accountJson = new JSONObject();
|
|
-
|
|
|
|
try {
|
|
try {
|
|
String nowDate = DateUtils.getNowDate("yyyy-MM-dd"); // 当前日期
|
|
String nowDate = DateUtils.getNowDate("yyyy-MM-dd"); // 当前日期
|
|
String anotherDay = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1); // 当前日期-1
|
|
String anotherDay = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1); // 当前日期-1
|
|
if (type == 1) { // 今日总消耗
|
|
if (type == 1) { // 今日总消耗
|
|
accountJson = reportMapper.selectDayReport(nowDate);
|
|
accountJson = reportMapper.selectDayReport(nowDate);
|
|
if (!Check.isNull(accountJson)) {
|
|
if (!Check.isNull(accountJson)) {
|
|
- JSONObject yesterJson = reportMapper.selectDayReport(anotherDay);
|
|
|
|
- if (!Check.isNull(yesterJson)) {
|
|
|
|
|
|
+ JSONObject yesterdayJson = reportMapper.selectDayReport(anotherDay);
|
|
|
|
+ if (!Check.isNull(yesterdayJson)) {
|
|
BigDecimal cost = accountJson.getBigDecimal("cost"); // 今日消耗
|
|
BigDecimal cost = accountJson.getBigDecimal("cost"); // 今日消耗
|
|
- BigDecimal yesterCost = yesterJson.getBigDecimal("cost");// 昨日消耗
|
|
|
|
|
|
+ BigDecimal yesterdayCost = yesterdayJson.getBigDecimal("cost");// 昨日消耗
|
|
BigDecimal compareBigDecima = new BigDecimal(0);
|
|
BigDecimal compareBigDecima = new BigDecimal(0);
|
|
- if (yesterCost.compareTo(compareBigDecima) != 0) {
|
|
|
|
- BigDecimal costProportion = (cost.subtract(yesterCost)).divide(yesterCost, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
+ if (yesterdayCost.compareTo(compareBigDecima) != 0) {
|
|
|
|
+ BigDecimal costProportion = (cost.subtract(yesterdayCost)).divide(yesterdayCost, BigDecimal.ROUND_HALF_UP);
|
|
accountJson.put("costProportion", costProportion); // 较昨日增加比例
|
|
accountJson.put("costProportion", costProportion); // 较昨日增加比例
|
|
} else {
|
|
} else {
|
|
accountJson.put("costProportion", 0); // 较昨日增加比例
|
|
accountJson.put("costProportion", 0); // 较昨日增加比例
|
|
}
|
|
}
|
|
|
|
|
|
Long photoShow = accountJson.getLong("photoShow");// 今日封面展示
|
|
Long photoShow = accountJson.getLong("photoShow");// 今日封面展示
|
|
- Long yesterPhotoShow = yesterJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
- if (yesterPhotoShow != 0L) {
|
|
|
|
- double showProportion = (photoShow.doubleValue() - yesterPhotoShow.doubleValue()) / yesterPhotoShow.doubleValue();
|
|
|
|
|
|
+ Long yesterdayPhotoShow = yesterdayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
+ if (yesterdayPhotoShow != 0L) {
|
|
|
|
+ double showProportion = (photoShow.doubleValue() - yesterdayPhotoShow.doubleValue()) / yesterdayPhotoShow.doubleValue();
|
|
accountJson.put("showProportion", showProportion); // 较昨日增加比例
|
|
accountJson.put("showProportion", showProportion); // 较昨日增加比例
|
|
} else {
|
|
} else {
|
|
accountJson.put("showProportion", 0); // 较昨日增加比例
|
|
accountJson.put("showProportion", 0); // 较昨日增加比例
|
|
}
|
|
}
|
|
|
|
|
|
Long photoClick = accountJson.getLong("photoClick");// 今日封面展示
|
|
Long photoClick = accountJson.getLong("photoClick");// 今日封面展示
|
|
- Long yesterphotoClick = yesterJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
- if (yesterPhotoShow != 0L) {
|
|
|
|
- double photoClickProportion = (photoClick.doubleValue() - yesterphotoClick.doubleValue()) / yesterphotoClick.doubleValue();
|
|
|
|
|
|
+ Long yesterdayPhotoClick = yesterdayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
+ if (yesterdayPhotoClick != 0L) {
|
|
|
|
+ double photoClickProportion = (photoClick.doubleValue() - yesterdayPhotoClick.doubleValue()) / yesterdayPhotoClick.doubleValue();
|
|
accountJson.put("photoClickProportion", photoClickProportion); // 较昨日增加比例
|
|
accountJson.put("photoClickProportion", photoClickProportion); // 较昨日增加比例
|
|
} else {
|
|
} else {
|
|
accountJson.put("photoClickProportion", 0); // 较昨日增加比例
|
|
accountJson.put("photoClickProportion", 0); // 较昨日增加比例
|
|
}
|
|
}
|
|
|
|
|
|
- Long aclick = accountJson.getLong("aclick");// 今日封面展示
|
|
|
|
- Long yesterAclick = yesterJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
- if (yesterPhotoShow != 0L) {
|
|
|
|
- double aClickProportion = (aclick.doubleValue() - yesterAclick.doubleValue()) / yesterAclick.doubleValue();
|
|
|
|
|
|
+ Long aClick = accountJson.getLong("aclick");// 今日封面展示
|
|
|
|
+ Long yesterdayAClick = yesterdayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
+ if (yesterdayAClick != 0L) {
|
|
|
|
+ double aClickProportion = (aClick.doubleValue() - yesterdayAClick.doubleValue()) / yesterdayAClick.doubleValue();
|
|
accountJson.put("aClickProportion", aClickProportion); // 较昨日增加比例
|
|
accountJson.put("aClickProportion", aClickProportion); // 较昨日增加比例
|
|
} else {
|
|
} else {
|
|
accountJson.put("aClickProportion", 0); // 较昨日增加比例
|
|
accountJson.put("aClickProportion", 0); // 较昨日增加比例
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (type == 2) { // 昨日总消耗
|
|
} else if (type == 2) { // 昨日总消耗
|
|
@@ -284,13 +279,23 @@ public class BytedanceReportServiceImpl implements IBytedanceReportService {
|
|
String sign = requestJson.getString("sign");
|
|
String sign = requestJson.getString("sign");
|
|
String bigDate = requestJson.getString("bigDate");
|
|
String bigDate = requestJson.getString("bigDate");
|
|
String smallDate = requestJson.getString("smallDate");
|
|
String smallDate = requestJson.getString("smallDate");
|
|
|
|
+
|
|
|
|
+ JSONObject beComparedJson = new JSONObject();
|
|
|
|
+ JSONObject comparedJson = new JSONObject();
|
|
|
|
+
|
|
if ("month".equals(sign)) {
|
|
if ("month".equals(sign)) {
|
|
Map<String, Object> dateMap = DateUtils.compare_date("yyyy-MM", bigDate, smallDate);
|
|
Map<String, Object> dateMap = DateUtils.compare_date("yyyy-MM", bigDate, smallDate);
|
|
- JSONObject beComparedJson = reportMapper.selectMonthReportByDate((String) dateMap.get("smallDate")); // 被除数数据
|
|
|
|
- JSONObject comparedJson = reportMapper.selectMonthReportByDate((String) dateMap.get("bigDate")); // 除数数据
|
|
|
|
|
|
+ beComparedJson = reportMapper.selectMonthReportByDate((String) dateMap.get("smallDate")); // 被除数数据
|
|
|
|
+ comparedJson = reportMapper.selectMonthReportByDate((String) dateMap.get("bigDate")); // 除数数据
|
|
|
|
+ } else if ("day".equals(sign)) {
|
|
|
|
+ Map<String, Object> dateMap = DateUtils.compare_date("yyyy-MM-dd", bigDate, smallDate);
|
|
|
|
+ beComparedJson = reportMapper.selectDayReportByDate((String) dateMap.get("smallDate")); // 被除数数据
|
|
|
|
+ comparedJson = reportMapper.selectDayReportByDate((String) dateMap.get("bigDate")); // 除数数据
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!Check.isNull(comparedJson)) {
|
|
BigDecimal cost = comparedJson.getBigDecimal("cost");
|
|
BigDecimal cost = comparedJson.getBigDecimal("cost");
|
|
BigDecimal comparedCost = beComparedJson.getBigDecimal("cost");
|
|
BigDecimal comparedCost = beComparedJson.getBigDecimal("cost");
|
|
-
|
|
|
|
if (comparedCost.compareTo(new BigDecimal(0)) != 0) {
|
|
if (comparedCost.compareTo(new BigDecimal(0)) != 0) {
|
|
BigDecimal costProportion = (cost.subtract(comparedCost)).divide(comparedCost, BigDecimal.ROUND_HALF_UP);
|
|
BigDecimal costProportion = (cost.subtract(comparedCost)).divide(comparedCost, BigDecimal.ROUND_HALF_UP);
|
|
comparedJson.put("costProportion", costProportion);
|
|
comparedJson.put("costProportion", costProportion);
|
|
@@ -306,26 +311,28 @@ public class BytedanceReportServiceImpl implements IBytedanceReportService {
|
|
} else {
|
|
} else {
|
|
comparedJson.put("photoClickProportion", 0);
|
|
comparedJson.put("photoClickProportion", 0);
|
|
}
|
|
}
|
|
- Long comparedPhotoShow = beComparedJson.getLong("photoShow");
|
|
|
|
- Long photoShow = comparedJson.getLong("photoShow");
|
|
|
|
- if (comparedPhotoShow != 0L) {
|
|
|
|
- double showProportion = (photoShow.doubleValue() - comparedPhotoShow.doubleValue()) / comparedPhotoShow.doubleValue();
|
|
|
|
- comparedJson.put("showProportion", showProportion);
|
|
|
|
- } else {
|
|
|
|
- comparedJson.put("showProportion", 0);
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
Long aClick = comparedJson.getLong("aclick");
|
|
Long aClick = comparedJson.getLong("aclick");
|
|
- Long comparedAclick = beComparedJson.getLong("photoShow");
|
|
|
|
- if (comparedAclick != 0L) {
|
|
|
|
- double aClickProportion = (aClick.doubleValue() - comparedAclick.doubleValue()) / comparedAclick.doubleValue();
|
|
|
|
|
|
+ Long comparedAClick = beComparedJson.getLong("photoShow");
|
|
|
|
+ if (comparedAClick != 0L) {
|
|
|
|
+ double aClickProportion = (aClick.doubleValue() - comparedAClick.doubleValue()) / comparedAClick.doubleValue();
|
|
comparedJson.put("comparedAclick", aClickProportion);
|
|
comparedJson.put("comparedAclick", aClickProportion);
|
|
} else {
|
|
} else {
|
|
comparedJson.put("comparedAclick", 0);
|
|
comparedJson.put("comparedAclick", 0);
|
|
}
|
|
}
|
|
- accountJson.put("beCompared", beComparedJson);
|
|
|
|
- accountJson.put("compared", comparedJson);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ Long comparedPhotoShow = beComparedJson.getLong("photoShow");
|
|
|
|
+ Long photoShow = comparedJson.getLong("photoShow");
|
|
|
|
+ if (comparedPhotoShow != 0L) {
|
|
|
|
+ double showProportion = (photoShow.doubleValue() - comparedPhotoShow.doubleValue()) / comparedPhotoShow.doubleValue();
|
|
|
|
+ comparedJson.put("showProportion", showProportion);
|
|
|
|
+ } else {
|
|
|
|
+ comparedJson.put("showProportion", 0);
|
|
|
|
+ }
|
|
|
|
+ accountJson.put("beCompared", beComparedJson);
|
|
|
|
+ accountJson.put("compared", comparedJson);
|
|
|
|
+
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -343,53 +350,64 @@ public class BytedanceReportServiceImpl implements IBytedanceReportService {
|
|
String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
|
|
String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
|
|
String anotherDay = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
|
|
String anotherDay = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
|
|
if (type == 1) { // 今日明细
|
|
if (type == 1) { // 今日明细
|
|
|
|
+
|
|
|
|
+ List<JSONObject> yesterdayDetail = reportMapper.selectReportDetail(anotherDay);
|
|
List<JSONObject> dayDetail = reportMapper.selectReportDetail(nowDate);
|
|
List<JSONObject> dayDetail = reportMapper.selectReportDetail(nowDate);
|
|
- for (int i = 0; i < dayDetail.size(); i++) {
|
|
|
|
- JSONObject detailJson = dayDetail.get(i);
|
|
|
|
- String statHour = detailJson.getString("statHour");
|
|
|
|
- JSONObject yesterDayJson = reportMapper.selectYesterdayByHourAndDate(anotherDay, statHour);
|
|
|
|
- if (!Check.isNull(yesterDayJson)) {
|
|
|
|
- BigDecimal cost = detailJson.getBigDecimal("cost"); // 今日消耗
|
|
|
|
- BigDecimal yesterCost = yesterDayJson.getBigDecimal("cost");// 昨日消耗
|
|
|
|
- BigDecimal compareBigDecima = new BigDecimal(0);
|
|
|
|
- if (yesterCost.compareTo(compareBigDecima) != 0) {
|
|
|
|
- BigDecimal costProportion = (cost.subtract(yesterCost)).divide(yesterCost, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- detailJson.put("proportion", costProportion); // 较昨日增加比例
|
|
|
|
- } else {
|
|
|
|
- detailJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
- }
|
|
|
|
- Long photoShow = detailJson.getLong("photoShow");// 今日封面展示
|
|
|
|
- Long yesterPhotoShow = yesterDayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
- if (yesterPhotoShow != 0L) {
|
|
|
|
- double showProportion = (photoShow.doubleValue() - yesterPhotoShow.doubleValue()) / yesterPhotoShow.doubleValue();
|
|
|
|
- detailJson.put("proportion", showProportion); // 较昨日增加比例
|
|
|
|
- } else {
|
|
|
|
- detailJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
- }
|
|
|
|
|
|
+ for (int i = 0; i < yesterdayDetail.size(); i++) {
|
|
|
|
+ JSONObject yesterdayJson = yesterdayDetail.get(i);
|
|
|
|
+ if (!Check.isNull(yesterdayJson)) {
|
|
|
|
+ String yesterdayStatHour = yesterdayJson.getString("statHour");
|
|
|
|
+
|
|
|
|
+ for (int j = 0; j < dayDetail.size(); j++) {
|
|
|
|
+ JSONObject nowJson = dayDetail.get(j);
|
|
|
|
+ String statHour = nowJson.getString("statHour");
|
|
|
|
+ if (yesterdayStatHour.equals(statHour)) {
|
|
|
|
+ BigDecimal cost = nowJson.getBigDecimal("cost"); // 今日消耗
|
|
|
|
+ BigDecimal yesterdayCost = yesterdayJson.getBigDecimal("cost");// 昨日消耗
|
|
|
|
+ BigDecimal compareBigDecimal = new BigDecimal(0);
|
|
|
|
+ if (yesterdayCost.compareTo(compareBigDecimal) != 0) {
|
|
|
|
+ BigDecimal costProportion = (cost.subtract(yesterdayCost)).divide(yesterdayCost, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ nowJson.put("proportion", costProportion); // 较昨日增加比例
|
|
|
|
+ } else {
|
|
|
|
+ nowJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
+ }
|
|
|
|
|
|
- Long photoClick = detailJson.getLong("photoClick");// 今日封面展示
|
|
|
|
- Long yesterphotoClick = yesterDayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
- if (yesterPhotoShow != 0L) {
|
|
|
|
- double photoClickroportion = (photoClick.doubleValue() - yesterphotoClick.doubleValue()) / yesterphotoClick.doubleValue();
|
|
|
|
- detailJson.put("proportion", photoClickroportion); // 较昨日增加比例
|
|
|
|
- } else {
|
|
|
|
- detailJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
- }
|
|
|
|
- Long aclick = detailJson.getLong("aclick");// 今日封面展示
|
|
|
|
- Long yesterAclick = yesterDayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
- if (yesterPhotoShow != 0L) {
|
|
|
|
- double aClickProportion = (aclick.doubleValue() - yesterAclick.doubleValue()) / yesterAclick.doubleValue();
|
|
|
|
- detailJson.put("proportion", aClickProportion); // 较昨日增加比例
|
|
|
|
- } else {
|
|
|
|
- detailJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
- }
|
|
|
|
|
|
+ Long photoShow = nowJson.getLong("photoShow");// 今日封面展示
|
|
|
|
+ Long yesterdayPhotoShow = yesterdayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
+ if (yesterdayPhotoShow != 0L) {
|
|
|
|
+ double showProportion = (photoShow.doubleValue() - yesterdayPhotoShow.doubleValue()) / yesterdayPhotoShow.doubleValue();
|
|
|
|
+ nowJson.put("proportion", showProportion); // 较昨日增加比例
|
|
|
|
+ } else {
|
|
|
|
+ nowJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
|
- detail.add(detailJson);
|
|
|
|
|
|
+ Long photoClick = nowJson.getLong("photoClick");// 今日封面展示
|
|
|
|
+ Long yesterdayPhotoClick = yesterdayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
+ if (yesterdayPhotoClick != 0L) {
|
|
|
|
+ double photoClickProportion = (photoClick.doubleValue() - yesterdayPhotoClick.doubleValue()) / yesterdayPhotoClick.doubleValue();
|
|
|
|
+ nowJson.put("proportion", photoClickProportion); // 较昨日增加比例
|
|
|
|
+ } else {
|
|
|
|
+ nowJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ Long aClick = nowJson.getLong("aclick");// 今日封面展示
|
|
|
|
+ Long yesterdayAClick = yesterdayJson.getLong("photoShow");// 昨日封面展示
|
|
|
|
+ if (yesterdayAClick != 0L) {
|
|
|
|
+ double aClickProportion = (aClick.doubleValue() - yesterdayAClick.doubleValue()) / yesterdayAClick.doubleValue();
|
|
|
|
+ nowJson.put("proportion", aClickProportion); // 较昨日增加比例
|
|
|
|
+ } else {
|
|
|
|
+ nowJson.put("proportion", 0); // 较昨日增加比例
|
|
|
|
+ }
|
|
|
|
+ yesterdayJson.put("now", nowJson);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ detail.add(yesterdayJson);
|
|
}
|
|
}
|
|
} else if (type == 2) { // 昨日明细
|
|
} else if (type == 2) { // 昨日明细
|
|
detail = reportMapper.selectReportDetail(anotherDay);
|
|
detail = reportMapper.selectReportDetail(anotherDay);
|
|
|
|
+
|
|
} else if (type == 3) { // 近七天明细
|
|
} else if (type == 3) { // 近七天明细
|
|
String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", anotherDay, -7);
|
|
String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", anotherDay, -7);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
@@ -397,96 +415,122 @@ public class BytedanceReportServiceImpl implements IBytedanceReportService {
|
|
} else if (type == 4) { // 近十五天明细
|
|
} else if (type == 4) { // 近十五天明细
|
|
String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", anotherDay, -15);
|
|
String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", anotherDay, -15);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
} else if (type == 5) { // 近1个月明细
|
|
} else if (type == 5) { // 近1个月明细
|
|
String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -1);
|
|
String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -1);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
} else if (type == 6) { // 近三个月明细
|
|
} else if (type == 6) { // 近三个月明细
|
|
String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -3);
|
|
String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -3);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
detail = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
} else if (type == 7) { // 近半年明细
|
|
} else if (type == 7) { // 近半年明细
|
|
String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -6);
|
|
String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -6);
|
|
detail = reportMapper.selectDayDetailByMonth(anotherDay, endDate);
|
|
detail = reportMapper.selectDayDetailByMonth(anotherDay, endDate);
|
|
- } else if (type == 8) {
|
|
|
|
|
|
+
|
|
|
|
+ } else if (type == 8) {// 所有数据按月明细
|
|
detail = reportMapper.selectAllDayDetailByMonth();
|
|
detail = reportMapper.selectAllDayDetailByMonth();
|
|
- } else if (type == 9) {
|
|
|
|
|
|
+
|
|
|
|
+ } else if (type == 9) { // 自定义查询区间
|
|
String startDate = requestJson.getString("startDate");
|
|
String startDate = requestJson.getString("startDate");
|
|
String endDate = requestJson.getString("endDate");
|
|
String endDate = requestJson.getString("endDate");
|
|
detail = reportMapper.selectDayDetailByDate(startDate, endDate);
|
|
detail = reportMapper.selectDayDetailByDate(startDate, endDate);
|
|
- } else if (type == 10) {
|
|
|
|
|
|
+
|
|
|
|
+ } else if (type == 10) { // 数据对比
|
|
String sign = requestJson.getString("sign");
|
|
String sign = requestJson.getString("sign");
|
|
String bigDate = requestJson.getString("bigDate");
|
|
String bigDate = requestJson.getString("bigDate");
|
|
String smallDate = requestJson.getString("smallDate");
|
|
String smallDate = requestJson.getString("smallDate");
|
|
|
|
+
|
|
|
|
+ List<JSONObject> comparedArr = new ArrayList<>();
|
|
|
|
+ String comparedDate = "";
|
|
if ("month".equals(sign)) {
|
|
if ("month".equals(sign)) {
|
|
Map<String, Object> dateMap = DateUtils.compare_date("yyyy-MM", bigDate, smallDate);
|
|
Map<String, Object> dateMap = DateUtils.compare_date("yyyy-MM", bigDate, smallDate);
|
|
- List<JSONObject> comparedArr = reportMapper.selectDayDetailsByMonth((String) dateMap.get("bigDate")); // 除数数据
|
|
|
|
- String comparedDate = (String) dateMap.get("smallDate");
|
|
|
|
- for (int i = 0; i < comparedArr.size(); i++) {
|
|
|
|
- JSONObject comparedJson = comparedArr.get(i);
|
|
|
|
- if (!Check.isNull(comparedJson)) {
|
|
|
|
- String statDate = comparedJson.getString("statDate");
|
|
|
|
|
|
+ comparedDate = (String) dateMap.get("smallDate");
|
|
|
|
+ comparedArr = reportMapper.selectDayDetailsByMonth((String) dateMap.get("bigDate")); // 除数数据
|
|
|
|
+ } else if ("day".equals(sign)) {
|
|
|
|
+ Map<String, Object> dateMap = DateUtils.compare_date("yyyy-MM-dd", bigDate, smallDate);
|
|
|
|
+ comparedDate = (String) dateMap.get("smallDate");
|
|
|
|
+ comparedArr = reportMapper.selectHourlyDetailsByDate((String) dateMap.get("bigDate")); // 除数数据
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < comparedArr.size(); i++) {
|
|
|
|
+ JSONObject comparedJson = comparedArr.get(i);
|
|
|
|
+ if (!Check.isNull(comparedJson)) {
|
|
|
|
+
|
|
|
|
+ JSONObject beComparedJson = new JSONObject();
|
|
|
|
+ String statDate = comparedJson.getString("statDate");
|
|
|
|
+ String beComparedDate = "";
|
|
|
|
+ String statHour = "";
|
|
|
|
+ if ("month".equals(sign)) {
|
|
String day = DateUtils.getDay("yyyy-MM-dd", statDate);
|
|
String day = DateUtils.getDay("yyyy-MM-dd", statDate);
|
|
- String beComparedDate = comparedDate + "-" + day;
|
|
|
|
- JSONObject beComparedJson = reportMapper.selectDayDailyByDate(beComparedDate);
|
|
|
|
- if (!Check.isNull(beComparedJson)) {
|
|
|
|
- JSONObject json = new JSONObject();
|
|
|
|
- BigDecimal cost = comparedJson.getBigDecimal("cost");
|
|
|
|
- Long photoShow = comparedJson.getLong("photoShow");
|
|
|
|
- Long photoClick = comparedJson.getLong("photoClick");
|
|
|
|
- Long aClick = comparedJson.getLong("aclick");
|
|
|
|
- json.put("cost", cost);
|
|
|
|
- json.put("photoShow", photoShow);
|
|
|
|
- json.put("photoClick", photoClick);
|
|
|
|
- json.put("aClick", aClick);
|
|
|
|
- json.put("statDate", statDate);
|
|
|
|
-
|
|
|
|
- BigDecimal comparedCost = beComparedJson.getBigDecimal("cost");
|
|
|
|
- Long comparedPhotoShow = beComparedJson.getLong("photoShow");
|
|
|
|
- Long comparedPhotoClick = beComparedJson.getLong("photoClick");
|
|
|
|
- Long comparedAClick = beComparedJson.getLong("aclick");
|
|
|
|
- json.put("beComparedCost", comparedCost);
|
|
|
|
- json.put("beComparedPhotoShow", comparedPhotoShow);
|
|
|
|
- json.put("beComparedPhotoClick", comparedPhotoClick);
|
|
|
|
- json.put("beComparedAClick", comparedAClick);
|
|
|
|
- json.put("beComparedDate", beComparedDate);
|
|
|
|
- if (comparedCost.compareTo(new BigDecimal(0)) != 0) {
|
|
|
|
- BigDecimal costProportion = (cost.subtract(comparedCost)).divide(comparedCost, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- json.put("costProportion", costProportion);
|
|
|
|
- } else {
|
|
|
|
- json.put("costProportion", 0);
|
|
|
|
- }
|
|
|
|
|
|
+ beComparedDate = comparedDate + "-" + day;
|
|
|
|
+ beComparedJson = reportMapper.selectDayDailyByDate(beComparedDate);
|
|
|
|
|
|
- if (comparedPhotoClick != 0L) {
|
|
|
|
- double photoClickProportion = (photoClick.doubleValue() - comparedPhotoClick.doubleValue()) / comparedPhotoClick.doubleValue();
|
|
|
|
- json.put("photoClickProportion", photoClickProportion);
|
|
|
|
- } else {
|
|
|
|
- json.put("photoClickProportion", 0);
|
|
|
|
- }
|
|
|
|
|
|
+ } else if ("day".equals(sign)) {
|
|
|
|
+ statHour = comparedJson.getString("statHour");
|
|
|
|
+ beComparedJson = reportMapper.selectDayHourlyByHourAndDate(comparedDate, statHour);
|
|
|
|
+ beComparedDate = comparedDate;
|
|
|
|
+ }
|
|
|
|
|
|
- if (comparedPhotoShow != 0L) {
|
|
|
|
- double showProportion = (photoShow.doubleValue() - comparedPhotoShow.doubleValue()) / comparedPhotoShow.doubleValue();
|
|
|
|
- json.put("showProportion", showProportion);
|
|
|
|
- } else {
|
|
|
|
- json.put("showProportion", 0);
|
|
|
|
- }
|
|
|
|
|
|
+ if (!Check.isNull(beComparedJson)) {
|
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
|
+ BigDecimal cost = comparedJson.getBigDecimal("cost");
|
|
|
|
+ Long photoShow = comparedJson.getLong("photoShow");
|
|
|
|
+ Long photoClick = comparedJson.getLong("photoClick");
|
|
|
|
+ Long aClick = comparedJson.getLong("aclick");
|
|
|
|
+ json.put("cost", cost);
|
|
|
|
+ json.put("photoShow", photoShow);
|
|
|
|
+ json.put("photoClick", photoClick);
|
|
|
|
+ json.put("aClick", aClick);
|
|
|
|
+ json.put("statDate", statDate);
|
|
|
|
+ if ("day".equals(sign)) {
|
|
|
|
+ json.put("statHour", statHour);
|
|
|
|
+ }
|
|
|
|
|
|
- if (comparedAClick != 0L) {
|
|
|
|
- double aClickProportion = (aClick.doubleValue() - comparedAClick.doubleValue()) / comparedAClick.doubleValue();
|
|
|
|
- json.put("comparedAclick", aClickProportion);
|
|
|
|
- } else {
|
|
|
|
- json.put("comparedAclick", 0);
|
|
|
|
- }
|
|
|
|
|
|
+ BigDecimal comparedCost = beComparedJson.getBigDecimal("cost");
|
|
|
|
+ Long comparedPhotoShow = beComparedJson.getLong("photoShow");
|
|
|
|
+ Long comparedPhotoClick = beComparedJson.getLong("photoClick");
|
|
|
|
+ Long comparedAClick = beComparedJson.getLong("aclick");
|
|
|
|
+ json.put("beComparedCost", comparedCost);
|
|
|
|
+ json.put("beComparedPhotoShow", comparedPhotoShow);
|
|
|
|
+ json.put("beComparedPhotoClick", comparedPhotoClick);
|
|
|
|
+ json.put("beComparedAClick", comparedAClick);
|
|
|
|
+ json.put("beComparedDate", beComparedDate);
|
|
|
|
+
|
|
|
|
+ if (comparedCost.compareTo(new BigDecimal(0)) != 0) {
|
|
|
|
+ BigDecimal costProportion = (cost.subtract(comparedCost)).divide(comparedCost, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ json.put("costProportion", costProportion);
|
|
|
|
+ } else {
|
|
|
|
+ json.put("costProportion", 0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (comparedPhotoClick != 0L) {
|
|
|
|
+ double photoClickProportion = (photoClick.doubleValue() - comparedPhotoClick.doubleValue()) / comparedPhotoClick.doubleValue();
|
|
|
|
+ json.put("photoClickProportion", photoClickProportion);
|
|
|
|
+ } else {
|
|
|
|
+ json.put("photoClickProportion", 0);
|
|
|
|
+ }
|
|
|
|
|
|
- detail.add(json);
|
|
|
|
|
|
+ if (comparedPhotoShow != 0L) {
|
|
|
|
+ double showProportion = (photoShow.doubleValue() - comparedPhotoShow.doubleValue()) / comparedPhotoShow.doubleValue();
|
|
|
|
+ json.put("showProportion", showProportion);
|
|
|
|
+ } else {
|
|
|
|
+ json.put("showProportion", 0);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ if (comparedAClick != 0L) {
|
|
|
|
+ double aClickProportion = (aClick.doubleValue() - comparedAClick.doubleValue()) / comparedAClick.doubleValue();
|
|
|
|
+ json.put("comparedAclick", aClickProportion);
|
|
|
|
+ } else {
|
|
|
|
+ json.put("comparedAclick", 0);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ detail.add(json);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -494,7 +538,101 @@ public class BytedanceReportServiceImpl implements IBytedanceReportService {
|
|
}
|
|
}
|
|
|
|
|
|
System.err.println(detail);
|
|
System.err.println(detail);
|
|
-
|
|
|
|
return detail;
|
|
return detail;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 明细列表
|
|
|
|
+ *
|
|
|
|
+ * @param requestJson
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Override
|
|
|
|
+ public List<JSONObject> getReportList(JSONObject requestJson) {
|
|
|
|
+ List<JSONObject> reportList = new ArrayList<>();
|
|
|
|
+ try {
|
|
|
|
+ Integer type = requestJson.getInteger("type");
|
|
|
|
+ String nowDate = DateUtils.getNowDate("yyyy-MM-dd");
|
|
|
|
+ String anotherDay = DateUtils.getAnotherDay("yyyy-MM-dd", nowDate, -1);
|
|
|
|
+ if (type == 1) {//今日分时列表
|
|
|
|
+ List<JSONObject> nowReportList = reportMapper.selectReportDetail(nowDate);
|
|
|
|
+ List<JSONObject> yesterdayReportList = reportMapper.selectReportDetail(anotherDay);
|
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
|
+ json.put("now", nowReportList);
|
|
|
|
+ json.put("yesterday", yesterdayReportList);
|
|
|
|
+ reportList.add(json);
|
|
|
|
+
|
|
|
|
+ } else if (type == 2) { //昨日分时列表
|
|
|
|
+ reportList = reportMapper.selectReportDetail(anotherDay);
|
|
|
|
+
|
|
|
|
+ } else if (type == 3) {// 近七天分天列表
|
|
|
|
+
|
|
|
|
+ String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", anotherDay, -7);
|
|
|
|
+ reportList = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
|
|
+ } else if (type == 4) { // 近十五天明细
|
|
|
|
+ String endDate = DateUtils.getAnotherDay("yyyy-MM-dd", anotherDay, -15);
|
|
|
|
+ reportList = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
|
|
+ } else if (type == 5) { // 近1个月明细
|
|
|
|
+ String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -1);
|
|
|
|
+ reportList = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
|
|
+ } else if (type == 6) { // 近三个月明细
|
|
|
|
+ String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -3);
|
|
|
|
+ reportList = reportMapper.selectDayDetailByDate(anotherDay, endDate);
|
|
|
|
+
|
|
|
|
+ } else if (type == 7) { // 近半年明细
|
|
|
|
+ String endDate = DateUtils.getMonthBefore("yyyy-MM-dd", anotherDay, -6);
|
|
|
|
+ reportList = reportMapper.selectDayDetailByMonth(anotherDay, endDate);
|
|
|
|
+
|
|
|
|
+ } else if (type == 8) {// 所有数据按月明细
|
|
|
|
+ reportList = reportMapper.selectAllDayDetailByMonth();
|
|
|
|
+
|
|
|
|
+ } else if (type == 9) { // 自定义查询区间
|
|
|
|
+ String startDate = requestJson.getString("startDate");
|
|
|
|
+ String endDate = requestJson.getString("endDate");
|
|
|
|
+ reportList = reportMapper.selectDayDetailByDate(startDate, endDate);
|
|
|
|
+
|
|
|
|
+ } else if (type == 10) {
|
|
|
|
+ String sign = requestJson.getString("sign");
|
|
|
|
+ String bigDate = requestJson.getString("bigDate");
|
|
|
|
+ String smallDate = requestJson.getString("smallDate");
|
|
|
|
+ Map<String, Object> dateMap = new HashMap<>();
|
|
|
|
+ if ("month".equals(sign)) {
|
|
|
|
+ dateMap = DateUtils.compare_date("yyyy-MM", bigDate, smallDate);
|
|
|
|
+ } else if ("day".equals(sign)) {
|
|
|
|
+ dateMap = DateUtils.compare_date("yyyy-MM-dd", bigDate, smallDate);
|
|
|
|
+ }
|
|
|
|
+ String comparedDate = (String) dateMap.get("bigDate");
|
|
|
|
+ String beComparedDate = (String) dateMap.get("smallDate");
|
|
|
|
+ JSONObject detailJson = new JSONObject();
|
|
|
|
+ if ("month".equals(sign)) {
|
|
|
|
+ List<JSONObject> comparedArr = reportMapper.selectDayDetailsByMonth(beComparedDate); // 被除数数据
|
|
|
|
+ detailJson.put("beStatDate", beComparedDate);
|
|
|
|
+ detailJson.put("beComparedDetail", comparedArr);
|
|
|
|
+ List<JSONObject> beComparedArr = reportMapper.selectDayDetailsByMonth(comparedDate); // 除数数据
|
|
|
|
+ detailJson.put("statDate", comparedDate);
|
|
|
|
+ detailJson.put("comparedDetail", beComparedArr);
|
|
|
|
+
|
|
|
|
+ } else if ("day".equals(sign)) {
|
|
|
|
+ List<JSONObject> comparedArr = reportMapper.selectHourlyDetailsByDate(comparedDate);// 除数数据
|
|
|
|
+ detailJson.put("beStatDate", beComparedDate);
|
|
|
|
+ detailJson.put("beComparedDetail", comparedArr);
|
|
|
|
+ List<JSONObject> beComparedArr = reportMapper.selectHourlyDetailsByDate(beComparedDate);// 被除数数据
|
|
|
|
+ detailJson.put("statDate", comparedDate);
|
|
|
|
+ detailJson.put("comparedDetail", beComparedArr);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ reportList.add(detailJson);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ System.err.println(reportList);
|
|
|
|
+ return reportList;
|
|
|
|
+ }
|
|
}
|
|
}
|