按结束日期往前推30天,12个周,12个月获取数据,补齐缺失的数据

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);

猜你喜欢

转载自blog.csdn.net/weixin_40650583/article/details/84749818
今日推荐