|
@@ -281,30 +281,22 @@ public class SunDataServiceImpl implements SunDataService {
|
|
@Autowired
|
|
@Autowired
|
|
private SunStaticOrderDayMapper sunStaticOrderDayMapper;
|
|
private SunStaticOrderDayMapper sunStaticOrderDayMapper;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private SunStaticOrderDay2Mapper sunStaticOrderDay2Mapper;
|
|
|
|
+ @Autowired
|
|
private SunStaticOrderDayChannelMapper sunStaticOrderDayChannelMapper;
|
|
private SunStaticOrderDayChannelMapper sunStaticOrderDayChannelMapper;
|
|
|
|
|
|
private int getIntFromDb(Object obj) {
|
|
private int getIntFromDb(Object obj) {
|
|
return Integer.parseInt(String.valueOf(obj));
|
|
return Integer.parseInt(String.valueOf(obj));
|
|
}
|
|
}
|
|
|
|
+
|
|
private float getFloatFromDb(Object obj) {
|
|
private float getFloatFromDb(Object obj) {
|
|
return Float.parseFloat(String.valueOf(obj));
|
|
return Float.parseFloat(String.valueOf(obj));
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
- public void orderStaticDate(String date) {
|
|
|
|
- /*
|
|
|
|
- * 清除指定日期的统计,因为可能重新计算
|
|
|
|
- */
|
|
|
|
- sunStaticOrderDayMapper.deleteByExample(SunStaticOrderDayExample.newAndCreateCriteria().andStaticDateEqualTo(date).example());
|
|
|
|
- sunStaticOrderDayChannelMapper.deleteByExample(SunStaticOrderDayChannelExample.newAndCreateCriteria().andStaticDateEqualTo(date).example());
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- 开始统计
|
|
|
|
- */
|
|
|
|
- // 先不分渠道
|
|
|
|
|
|
+ private SunStaticOrderDay getSunOrderByDate(String date) {
|
|
int i = sunUserActive2Mapper.selectActiveCountByDate(date);
|
|
int i = sunUserActive2Mapper.selectActiveCountByDate(date);
|
|
if (i <= 0) {
|
|
if (i <= 0) {
|
|
- return;
|
|
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
HashMap<String, String> map = sunUserActive2Mapper.selectRechargeByDate(date);
|
|
HashMap<String, String> map = sunUserActive2Mapper.selectRechargeByDate(date);
|
|
int recharge_count = getIntFromDb(map.get("recharge_count"));
|
|
int recharge_count = getIntFromDb(map.get("recharge_count"));
|
|
@@ -322,10 +314,10 @@ public class SunDataServiceImpl implements SunDataService {
|
|
.rechargeAvg(String.format("%.2f", avg))
|
|
.rechargeAvg(String.format("%.2f", avg))
|
|
.createTime(TimeUtil.getCurrentTimestamp())
|
|
.createTime(TimeUtil.getCurrentTimestamp())
|
|
.build();
|
|
.build();
|
|
- sunStaticOrderDayMapper.insert(staticOrderDay);
|
|
|
|
- /*
|
|
|
|
- 分渠道统计
|
|
|
|
- */
|
|
|
|
|
|
+ return staticOrderDay;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<SunStaticOrderDayChannel> getSunOrderByDateChannels(String date) {
|
|
HashMap<String, Integer> activeMap = new HashMap<>();
|
|
HashMap<String, Integer> activeMap = new HashMap<>();
|
|
List<HashMap<String, String>> activeList = sunUserActive2Mapper.selectActiveCountByDateGroupByChannel(date);
|
|
List<HashMap<String, String>> activeList = sunUserActive2Mapper.selectActiveCountByDateGroupByChannel(date);
|
|
for (HashMap<String, String> hashMap : activeList) {
|
|
for (HashMap<String, String> hashMap : activeList) {
|
|
@@ -335,18 +327,18 @@ public class SunDataServiceImpl implements SunDataService {
|
|
List<HashMap<String, String>> recharges = sunUserActive2Mapper.selectRechargeByDateGroupByChannel(date);
|
|
List<HashMap<String, String>> recharges = sunUserActive2Mapper.selectRechargeByDateGroupByChannel(date);
|
|
ArrayList<SunStaticOrderDayChannel> sunStaticOrderDayChannels = new ArrayList<>();
|
|
ArrayList<SunStaticOrderDayChannel> sunStaticOrderDayChannels = new ArrayList<>();
|
|
for (HashMap<String, String> recharge : recharges) {
|
|
for (HashMap<String, String> recharge : recharges) {
|
|
- int recharge_count1 = getIntFromDb(map.get("recharge_count"));
|
|
|
|
- float recharge_sum1 = getFloatFromDb(map.get("recharge_sum"));
|
|
|
|
|
|
+ int recharge_count1 = getIntFromDb(recharge.get("recharge_count"));
|
|
|
|
+ float recharge_sum1 = getFloatFromDb(recharge.get("recharge_sum"));
|
|
float avg1 = 0;
|
|
float avg1 = 0;
|
|
- if (recharge_count > 0) {
|
|
|
|
- avg1 = recharge_sum / recharge_count;
|
|
|
|
|
|
+ if (recharge_count1 > 0) {
|
|
|
|
+ avg1 = recharge_sum1 / recharge_count1;
|
|
}
|
|
}
|
|
SunStaticOrderDayChannel dayChannel = SunStaticOrderDayChannel.builder()
|
|
SunStaticOrderDayChannel dayChannel = SunStaticOrderDayChannel.builder()
|
|
.staticDate(date)
|
|
.staticDate(date)
|
|
.channelId(recharge.get("channel_id"))
|
|
.channelId(recharge.get("channel_id"))
|
|
.channelName(recharge.get("channel_name"))
|
|
.channelName(recharge.get("channel_name"))
|
|
- .activeCount(activeMap.getOrDefault(recharge.get("channel_id"),0))
|
|
|
|
- .rechargeUserCount(getIntFromDb(map.get("recharge_user_count")))
|
|
|
|
|
|
+ .activeCount(activeMap.getOrDefault(recharge.get("channel_id"), 0))
|
|
|
|
+ .rechargeUserCount(getIntFromDb(recharge.get("recharge_user_count")))
|
|
.rechargeSum(String.valueOf(recharge_sum1))
|
|
.rechargeSum(String.valueOf(recharge_sum1))
|
|
.rechargeCount(recharge_count1)
|
|
.rechargeCount(recharge_count1)
|
|
.rechargeAvg(String.format("%.2f", avg1))
|
|
.rechargeAvg(String.format("%.2f", avg1))
|
|
@@ -354,7 +346,72 @@ public class SunDataServiceImpl implements SunDataService {
|
|
.build();
|
|
.build();
|
|
sunStaticOrderDayChannels.add(dayChannel);
|
|
sunStaticOrderDayChannels.add(dayChannel);
|
|
}
|
|
}
|
|
- sunStaticOrderDayChannelMapper.batchInsert(sunStaticOrderDayChannels);
|
|
|
|
|
|
+ return sunStaticOrderDayChannels;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void orderStaticDate(String date) {
|
|
|
|
+ /*
|
|
|
|
+ * 清除指定日期的统计,因为可能重新计算
|
|
|
|
+ */
|
|
|
|
+ sunStaticOrderDayMapper.deleteByExample(SunStaticOrderDayExample.newAndCreateCriteria().andStaticDateEqualTo(date).example());
|
|
|
|
+ sunStaticOrderDayChannelMapper.deleteByExample(SunStaticOrderDayChannelExample.newAndCreateCriteria().andStaticDateEqualTo(date).example());
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ 开始统计
|
|
|
|
+ */
|
|
|
|
+ // 先不分渠道
|
|
|
|
+ SunStaticOrderDay staticOrderDay = getSunOrderByDate(date);
|
|
|
|
+ if (staticOrderDay == null) {
|
|
|
|
+ return;
|
|
|
|
+ } else {
|
|
|
|
+ sunStaticOrderDayMapper.insert(staticOrderDay);
|
|
|
|
+ }
|
|
|
|
+ /*
|
|
|
|
+ 分渠道统计
|
|
|
|
+ */
|
|
|
|
+ sunStaticOrderDayChannelMapper.batchInsert(getSunOrderByDateChannels(date));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public SunStaticOrderDay getTodayOrderStatic() {
|
|
|
|
+ return getSunOrderByDate(TimeUtil.getTodayStr());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public SunStaticOrderDay getYesterdayOrderStatic() {
|
|
|
|
+ return sunStaticOrderDayMapper.selectOneByExample(SunStaticOrderDayExample.newAndCreateCriteria()
|
|
|
|
+ .andStaticDateEqualTo(TimeUtil.getYesterdayStr()).example());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Map getHistoryOrderStatic() {
|
|
|
|
+ return sunStaticOrderDay2Mapper.selectHistory();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<SunStaticOrderDayChannel> getTodayOrderStaticByChannel() {
|
|
|
|
+ return getSunOrderByDateChannels(TimeUtil.getTodayStr());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public PageResult<SunStaticOrderDay> getOrderStatics(int page, int size) {
|
|
|
|
+ SunStaticOrderDayExample example = SunStaticOrderDayExample.newAndCreateCriteria().example();
|
|
|
|
+ long l = sunStaticOrderDayMapper.countByExample(example);
|
|
|
|
+ example.page(page, size);
|
|
|
|
+ example.orderBy(SunStaticOrderDay.Column.staticDate.desc());
|
|
|
|
+ List<SunStaticOrderDay> sunStaticOrderDays = sunStaticOrderDayMapper.selectByExample(example);
|
|
|
|
+ return new PageResult<>(l, sunStaticOrderDays);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<SunStaticOrderDayChannel> getOrderStaticByDateAndChannel(String date, String channelId) {
|
|
|
|
+ return sunStaticOrderDayChannelMapper.selectByExample(
|
|
|
|
+ SunStaticOrderDayChannelExample.newAndCreateCriteria()
|
|
|
|
+ .andStaticDateEqualTo(date)
|
|
|
|
+ .andChannelIdEqualTo(channelId)
|
|
|
|
+ .example()
|
|
|
|
+ );
|
|
}
|
|
}
|
|
|
|
|
|
private void handleOrder(List<String> list, Integer taskId) {
|
|
private void handleOrder(List<String> list, Integer taskId) {
|