按結束日期往前推30天,12個周,12個月獲取資料,補齊缺失的資料
阿新 • • 發佈:2018-12-03
public List<Integer> getThirtyDates() { List<Integer> weeks = new ArrayList<Integer>(); long endTime = LDateTime.getTime(LDateTime.FORMAT_YYYYMMDD, this.toDate.toString()); for(int i = 29; i > 0; i--) { weeks.add(LDateTime.getIntDate(LDateTime.getTime4Dalay(endTime, -i))); } weeks.add(LDateTime.getIntDate(endTime)); return weeks; } public List<Integer> getTwelveWeeks() { List<Integer> weeks = new ArrayList<Integer>(); long endTime = LDateTime.getTime(LDateTime.FORMAT_YYYYMMDD, this.toDate.toString()); for(int i = 11; i > 0; i--) { weeks.add(LDateTime.getYearWeek(LDateTime.getTime4DelayWeek(endTime, -i))); } weeks.add(LDateTime.getYearWeek(endTime)); return weeks; } public List<Integer> getTwelveMonths() { List<Integer> months = new ArrayList<Integer>(); long endTime = LDateTime.getTime(LDateTime.FORMAT_YYYYMMDD, this.toDate.toString()); for(int i = 11; i > 0; i--) { months.add(LDateTime.getIntMonth(LDateTime.getTime4DelayMonth(endTime, -i))); } months.add(LDateTime.getIntMonth(endTime)); return months; }
//30天收幣量 param.setGameTableName(LDateTime.getBetweenMonths(startMonth1, endMonth1), GlobalCode.TABLE_NAME.GAME_DEVICE_LOG_TABLE); List<Coins> coins = fanAwardMapper.getCoins(param); List<Integer> thirtyDates = param.getThirtyDates(); for (Integer dates : thirtyDates) { boolean existData = false; int insertIndex = -1; for (int i = 0; i < coins.size(); i++) { Coins coins2 = coins.get(i); if(coins2.getDateNo().intValue() == dates.intValue()) { existData = true; break; } else if(coins2.getDateNo().intValue() > dates.intValue()) { insertIndex = i; break; } } if(!existData) { Coins coins2 = new Coins(); coins2.setDateNo(dates); coins2.setCoin(0); coins2.setDeviceCoin(0); if(insertIndex == -1) coins.add(coins2); else coins.add(insertIndex, coins2); } } deviceAward.setCoins(coins);
//12周收幣量 List<Coins> weekCoins = fanAwardMapper.getWeekCoins(param); List<Integer> allweeks = param.getTwelveWeeks(); for (Integer week : allweeks) { boolean existData = false; int insertIndex = -1; for (int i = 0; i < weekCoins.size(); i++) { Coins coins = weekCoins.get(i); if(coins.getDateNo().intValue() == week.intValue()) { existData = true; break; } else if(coins.getDateNo().intValue() > week.intValue()) { insertIndex = i; break; } } if(!existData) { Coins coins = new Coins(); coins.setDateNo(week); coins.setCoin(0); coins.setDeviceCoin(0); if(insertIndex == -1) weekCoins.add(coins); else weekCoins.add(insertIndex, coins); } } for (Coins coins : weekCoins) { String weeks = String.valueOf(coins.getDateNo()); Integer parseInt = Integer.parseInt(weeks.substring(4)); coins.setDateNo(parseInt); } deviceAward.setCoins(weekCoins);
//12月收幣量
List<Coins> monthCoins = fanAwardMapper.getMonthCoins(param);
List<Integer> twelveMonths = param.getTwelveMonths();
for (Integer months : twelveMonths) {
boolean existData = false;
int insertIndex = -1;
for (int i = 0; i < monthCoins.size(); i++) {
Coins coins = monthCoins.get(i);
if(coins.getDateNo().intValue() == months.intValue()) {
existData = true;
break;
} else if(coins.getDateNo().intValue() > months.intValue()) {
insertIndex = i;
break;
}
}
if(!existData) {
Coins coins = new Coins();
coins.setDateNo(months);
coins.setCoin(0);
coins.setDeviceCoin(0);
if(insertIndex == -1) monthCoins.add(coins);
else monthCoins.add(insertIndex, coins);
}
}
deviceAward.setCoins(monthCoins);