|
@@ -297,12 +297,12 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
return Float.parseFloat(String.valueOf(obj));
|
|
|
}
|
|
|
|
|
|
- private SunStaticOrderDay getSunOrderByDate(String startDate,String endDate) {
|
|
|
+ private SunStaticOrderDay getSunOrderByDate(String startDate, String endDate) {
|
|
|
int i = sunUserActive2Mapper.selectActiveCountByDate(startDate);
|
|
|
if (i <= 0) {
|
|
|
return null;
|
|
|
}
|
|
|
- HashMap<String, String> map = sunUserActive2Mapper.selectRechargeByDate(startDate,endDate);
|
|
|
+ HashMap<String, String> map = sunUserActive2Mapper.selectRechargeByDate(startDate, endDate);
|
|
|
int recharge_count = getIntFromDb(map.get("recharge_count"));
|
|
|
float recharge_sum = getFloatFromDb(map.get("recharge_sum"));
|
|
|
float avg = 0;
|
|
@@ -321,40 +321,55 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
return staticOrderDay;
|
|
|
}
|
|
|
|
|
|
- private List<SunStaticOrderDayChannel> getSunOrderByDateChannels(String startDate,String endDate) {
|
|
|
- HashMap<String, Integer> activeMap = new HashMap<>();
|
|
|
+ private List<SunStaticOrderDayChannel> getSunOrderByDateChannels(String startDate, String endDate) {
|
|
|
List<HashMap<String, String>> activeList = sunUserActive2Mapper.selectActiveCountByDateGroupByChannel(startDate);
|
|
|
- for (HashMap<String, String> hashMap : activeList) {
|
|
|
- activeMap.put(hashMap.get("channel_id"), getIntFromDb(hashMap.get("active_user_count")));
|
|
|
- }
|
|
|
-
|
|
|
- List<HashMap<String, String>> recharges = sunUserActive2Mapper.selectRechargeByDateGroupByChannel(startDate,endDate);
|
|
|
+ List<HashMap<String, String>> recharges = sunUserActive2Mapper.selectRechargeByDateGroupByChannel(startDate, endDate);
|
|
|
ArrayList<SunStaticOrderDayChannel> sunStaticOrderDayChannels = new ArrayList<>();
|
|
|
- for (HashMap<String, String> recharge : recharges) {
|
|
|
- int recharge_count1 = getIntFromDb(recharge.get("recharge_count"));
|
|
|
- float recharge_sum1 = getFloatFromDb(recharge.get("recharge_sum"));
|
|
|
- float avg1 = 0;
|
|
|
- if (recharge_count1 > 0) {
|
|
|
- avg1 = recharge_sum1 / recharge_count1;
|
|
|
+ for (HashMap<String, String> hashMap : activeList) {
|
|
|
+ String channel_id = hashMap.get("channel_id");
|
|
|
+ int active_user_count = getIntFromDb(hashMap.get("active_user_count"));
|
|
|
+ Optional<HashMap<String, String>> optionalHashMap = recharges.stream().filter(x -> channel_id.equals(x.get("channel_id"))).findFirst();
|
|
|
+ if (optionalHashMap.isPresent()) {
|
|
|
+ HashMap<String, String> recharge = optionalHashMap.get();
|
|
|
+ int recharge_count1 = getIntFromDb(recharge.get("recharge_count"));
|
|
|
+ float recharge_sum1 = getFloatFromDb(recharge.get("recharge_sum"));
|
|
|
+ float avg1 = 0;
|
|
|
+ if (recharge_count1 > 0) {
|
|
|
+ avg1 = recharge_sum1 / recharge_count1;
|
|
|
+ }
|
|
|
+ SunStaticOrderDayChannel dayChannel = SunStaticOrderDayChannel.builder()
|
|
|
+ .staticDate(startDate)
|
|
|
+ .channelId(recharge.get("channel_id"))
|
|
|
+ .channelName(recharge.get("channel_name"))
|
|
|
+ .activeCount(active_user_count)
|
|
|
+ .rechargeUserCount(getIntFromDb(recharge.get("recharge_user_count")))
|
|
|
+ .rechargeSum(String.valueOf(recharge_sum1))
|
|
|
+ .rechargeCount(recharge_count1)
|
|
|
+ .rechargeAvg(String.format("%.2f", avg1))
|
|
|
+ .createTime(TimeUtil.getCurrentTimestamp())
|
|
|
+ .build();
|
|
|
+ sunStaticOrderDayChannels.add(dayChannel);
|
|
|
+ } else {
|
|
|
+ SunStaticOrderDayChannel dayChannel = SunStaticOrderDayChannel.builder()
|
|
|
+ .staticDate(startDate)
|
|
|
+ .channelId(channel_id)
|
|
|
+ .channelName(cacheService.getChannelName(channel_id))
|
|
|
+ .activeCount(active_user_count)
|
|
|
+ .rechargeUserCount(0)
|
|
|
+ .rechargeSum("0")
|
|
|
+ .rechargeCount(0)
|
|
|
+ .rechargeAvg("0")
|
|
|
+ .createTime(TimeUtil.getCurrentTimestamp())
|
|
|
+ .build();
|
|
|
+ sunStaticOrderDayChannels.add(dayChannel);
|
|
|
}
|
|
|
- SunStaticOrderDayChannel dayChannel = SunStaticOrderDayChannel.builder()
|
|
|
- .staticDate(startDate)
|
|
|
- .channelId(recharge.get("channel_id"))
|
|
|
- .channelName(recharge.get("channel_name"))
|
|
|
- .activeCount(activeMap.getOrDefault(recharge.get("channel_id"), 0))
|
|
|
- .rechargeUserCount(getIntFromDb(recharge.get("recharge_user_count")))
|
|
|
- .rechargeSum(String.valueOf(recharge_sum1))
|
|
|
- .rechargeCount(recharge_count1)
|
|
|
- .rechargeAvg(String.format("%.2f", avg1))
|
|
|
- .createTime(TimeUtil.getCurrentTimestamp())
|
|
|
- .build();
|
|
|
- sunStaticOrderDayChannels.add(dayChannel);
|
|
|
}
|
|
|
+
|
|
|
return sunStaticOrderDayChannels;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void orderStaticDate(String startDate,String endDate) {
|
|
|
+ public void orderStaticDate(String startDate, String endDate) {
|
|
|
/*
|
|
|
* 清除指定日期的统计,因为可能重新计算
|
|
|
*/
|
|
@@ -365,7 +380,7 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
开始统计
|
|
|
*/
|
|
|
// 先不分渠道
|
|
|
- SunStaticOrderDay staticOrderDay = getSunOrderByDate(startDate,endDate);
|
|
|
+ SunStaticOrderDay staticOrderDay = getSunOrderByDate(startDate, endDate);
|
|
|
if (staticOrderDay == null) {
|
|
|
return;
|
|
|
} else {
|
|
@@ -374,12 +389,12 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
/*
|
|
|
分渠道统计
|
|
|
*/
|
|
|
- sunStaticOrderDayChannelMapper.batchInsert(getSunOrderByDateChannels(startDate,endDate));
|
|
|
+ sunStaticOrderDayChannelMapper.batchInsert(getSunOrderByDateChannels(startDate, endDate));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public SunStaticOrderDay getTodayOrderStatic() {
|
|
|
- return getSunOrderByDate(TimeUtil.getTodayStr(),TimeUtil.getTomorrowStr());
|
|
|
+ return getSunOrderByDate(TimeUtil.getTodayStr(), TimeUtil.getTomorrowStr());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -395,7 +410,7 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
|
|
|
@Override
|
|
|
public List<SunStaticOrderDayChannel> getTodayOrderStaticByChannel() {
|
|
|
- return getSunOrderByDateChannels(TimeUtil.getTodayStr(),TimeUtil.getTomorrowStr());
|
|
|
+ return getSunOrderByDateChannels(TimeUtil.getTodayStr(), TimeUtil.getTomorrowStr());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -456,12 +471,12 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
|
|
|
@Override
|
|
|
public SunStaticUserDay getTodayUserStatic() {
|
|
|
- return getSunUserByDate(TimeUtil.getTodayStr(),TimeUtil.getTomorrowStr());
|
|
|
+ return getSunUserByDate(TimeUtil.getTodayStr(), TimeUtil.getTomorrowStr());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<SunStaticUserDayChannel> getTodayUserStaticByChannel() {
|
|
|
- return getSunUserByDateChannels(TimeUtil.getTodayStr(),TimeUtil.getTomorrowStr());
|
|
|
+ return getSunUserByDateChannels(TimeUtil.getTodayStr(), TimeUtil.getTomorrowStr());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -499,12 +514,12 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
return sunStaticUserDayMapper.selectByExample(example);
|
|
|
}
|
|
|
|
|
|
- private SunStaticUserDay getSunUserByDate(String startDate,String endDate) {
|
|
|
- int i = sunUser2Mapper.selectCountUserByDay(startDate,endDate);
|
|
|
+ private SunStaticUserDay getSunUserByDate(String startDate, String endDate) {
|
|
|
+ int i = sunUser2Mapper.selectCountUserByDay(startDate, endDate);
|
|
|
if (i <= 0) {
|
|
|
return null;
|
|
|
}
|
|
|
- HashMap<String, String> recharge = sunUser2Mapper.selectByDay(startDate,endDate);
|
|
|
+ HashMap<String, String> recharge = sunUser2Mapper.selectByDay(startDate, endDate);
|
|
|
int new_recharge_user = getIntFromDb(recharge.get("new_recharge_user"));
|
|
|
float new_recharge_sum = getFloatFromDb(recharge.get("new_recharge_sum"));
|
|
|
float avg = 0;
|
|
@@ -512,7 +527,7 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
float rate = 0;
|
|
|
if (new_recharge_sum > 0) {
|
|
|
avg = new_recharge_sum / new_recharge_user;
|
|
|
- rate = (float)new_recharge_user / i;
|
|
|
+ rate = (float) new_recharge_user / i;
|
|
|
}
|
|
|
SunStaticUserDay day = SunStaticUserDay.builder()
|
|
|
.staticDate(startDate)
|
|
@@ -528,8 +543,8 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
return day;
|
|
|
}
|
|
|
|
|
|
- private List<SunStaticUserDayChannel> getSunUserByDateChannels(String startDate,String endDate) {
|
|
|
- List<HashMap<String, String>> list = sunUser2Mapper.selectCountByDayChannel(startDate,endDate);
|
|
|
+ private List<SunStaticUserDayChannel> getSunUserByDateChannels(String startDate, String endDate) {
|
|
|
+ List<HashMap<String, String>> list = sunUser2Mapper.selectCountByDayChannel(startDate, endDate);
|
|
|
List<HashMap<String, String>> recharges = sunUser2Mapper.selectByDayChannel(startDate, endDate);
|
|
|
ArrayList<SunStaticUserDayChannel> sunStaticDayChannels = new ArrayList<>();
|
|
|
|
|
@@ -539,7 +554,7 @@ public class SunDataServiceImpl implements SunDataService {
|
|
|
Optional<HashMap<String, String>> optionalHashMap = recharges.stream().filter(x -> x.get("channel_id").equals(channel_id)).findFirst();
|
|
|
|
|
|
if (optionalHashMap.isPresent()) {
|
|
|
- HashMap<String, String> recharge = recharges.stream().filter(x -> x.get("channel_id").equals(channel_id)).findFirst().get();
|
|
|
+ HashMap<String, String> recharge = optionalHashMap.get();
|
|
|
|
|
|
int new_recharge_user = getIntFromDb(recharge.get("new_recharge_user"));
|
|
|
float new_recharge_sum = getFloatFromDb(recharge.get("new_recharge_sum"));
|