ph.fingra.statisticsweb.service.DistributionServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for ph.fingra.statisticsweb.service.DistributionServiceImpl.java

Source

/**
 * Copyright 2014 tgrape Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package ph.fingra.statisticsweb.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import ph.fingra.statisticsweb.dao.DistributionDao;
import ph.fingra.statisticsweb.domain.DayOfWeekData;
import ph.fingra.statisticsweb.domain.Figures;
import ph.fingra.statisticsweb.domain.FingraphSearchParam;
import ph.fingra.statisticsweb.domain.ResolutionData;
import ph.fingra.statisticsweb.domain.ResolutionTimeSeriesData;
import ph.fingra.statisticsweb.domain.TimeOfDayData;
import ph.fingra.statisticsweb.domain.TopResolutionData;
import ph.fingra.statisticsweb.domain.TopVersionsData;
import ph.fingra.statisticsweb.domain.VersionsData;
import ph.fingra.statisticsweb.domain.VersionsTimeSeriesData;

@Service
public class DistributionServiceImpl implements DistributionService {

    @Autowired
    private DistributionDao distributionDao;

    @Override
    public List<DayOfWeekData> getDayOfWeekList(FingraphSearchParam searchParam) {
        return distributionDao.getDayOfWeekList(searchParam);
    }

    @Override
    public Figures getDayOfWeekFigures(FingraphSearchParam searchParam) {
        Figures figures = distributionDao.getDayOfWeekFigures(searchParam);
        if (figures == null) {
            figures = new Figures();
            figures.setMost("N/A");
            figures.setLeast("N/A");
        }
        return figures;
    }

    @Override
    public TimeOfDayData getTimeOfDayList(FingraphSearchParam searchParam) {
        TimeOfDayData total = distributionDao.getTimeOfDayList(searchParam);
        if (total != null)
            total.calculateTotal();
        return total;
    }

    @Override
    public Figures getTimeOfDayFigures(FingraphSearchParam searchParam) {
        return distributionDao.getTimeOfDayFigures(searchParam);
    }

    @Override
    public TopVersionsData getOsVesionsDailyData(FingraphSearchParam searchParam) {
        TopVersionsData data = new TopVersionsData();

        List<String> osTopNList = distributionDao.getOsVersionsDailyTopNList(searchParam);
        if (osTopNList.size() > 0) {
            searchParam.setTopNList(osTopNList);
            data.setTopOsVer(osTopNList.get(0));
            List<VersionsData> sumList = distributionDao.getOsVersionsDailyTopNSum(searchParam);
            data.setSumList(sumList);

            List<VersionsTimeSeriesData> vtsList = distributionDao
                    .getOsVersionsDailyTimeSeriesDataList(searchParam);
            data.setVtsList(vtsList);
        }
        return data;
    }

    @Override
    public TopVersionsData getAppVesionsDailyData(FingraphSearchParam searchParam) {
        TopVersionsData data = new TopVersionsData();

        List<String> appTopNList = distributionDao.getAppVersionsDailyTopNList(searchParam);
        if (appTopNList.size() > 0) {
            searchParam.setTopNList(appTopNList);
            data.setTopAppVer(appTopNList.get(0));
            List<VersionsData> sumList = distributionDao.getAppVersionsDailyTopNSum(searchParam);
            data.setSumList(sumList);

            List<VersionsTimeSeriesData> vtsList = distributionDao
                    .getAppVersionsDailyTimeSeriesDataList(searchParam);
            data.setVtsList(vtsList);
        }

        return data;
    }

    @Override
    public TopVersionsData getOsVesionsWeeklyData(FingraphSearchParam searchParam) {
        TopVersionsData data = new TopVersionsData();

        List<String> osTopNList = distributionDao.getOsVersionsWeeklyTopNList(searchParam);
        if (osTopNList.size() > 0) {
            searchParam.setTopNList(osTopNList);
            data.setTopOsVer(osTopNList.get(0));
            List<VersionsData> sumList = distributionDao.getOsVersionsWeeklyTopNSum(searchParam);
            data.setSumList(sumList);

            List<VersionsTimeSeriesData> vtsList = distributionDao
                    .getOsVersionsWeeklyTimeSeriesDataList(searchParam);
            data.setVtsList(vtsList);
        }
        return data;
    }

    @Override
    public TopVersionsData getAppVesionsWeeklyData(FingraphSearchParam searchParam) {
        TopVersionsData data = new TopVersionsData();

        List<String> appTopNList = distributionDao.getAppVersionsWeeklyTopNList(searchParam);
        if (appTopNList.size() > 0) {
            searchParam.setTopNList(appTopNList);
            data.setTopAppVer(appTopNList.get(0));
            List<VersionsData> sumList = distributionDao.getAppVersionsWeeklyTopNSum(searchParam);
            data.setSumList(sumList);

            List<VersionsTimeSeriesData> vtsList = distributionDao
                    .getAppVersionsWeeklyTimeSeriesDataList(searchParam);
            data.setVtsList(vtsList);
        }

        return data;
    }

    @Override
    public TopVersionsData getOsVesionsMonthlyData(FingraphSearchParam searchParam) {
        TopVersionsData data = new TopVersionsData();

        List<String> osTopNList = distributionDao.getOsVersionsMonthlyTopNList(searchParam);
        if (osTopNList.size() > 0) {
            searchParam.setTopNList(osTopNList);
            data.setTopOsVer(osTopNList.get(0));
            List<VersionsData> sumList = distributionDao.getOsVersionsMonthlyTopNSum(searchParam);
            data.setSumList(sumList);

            List<VersionsTimeSeriesData> vtsList = distributionDao
                    .getOsVersionsMonthlyTimeSeriesDataList(searchParam);
            data.setVtsList(vtsList);
        }
        return data;
    }

    @Override
    public TopVersionsData getAppVesionsMonthlyData(FingraphSearchParam searchParam) {
        TopVersionsData data = new TopVersionsData();

        List<String> appTopNList = distributionDao.getAppVersionsMonthlyTopNList(searchParam);
        if (appTopNList.size() > 0) {
            searchParam.setTopNList(appTopNList);
            data.setTopAppVer(appTopNList.get(0));
            List<VersionsData> sumList = distributionDao.getAppVersionsMonthlyTopNSum(searchParam);
            data.setSumList(sumList);

            List<VersionsTimeSeriesData> vtsList = distributionDao
                    .getAppVersionsMonthlyTimeSeriesDataList(searchParam);
            data.setVtsList(vtsList);
        }

        return data;
    }

    @Override
    public TopResolutionData getResolutionDailyData(FingraphSearchParam searchParam) {
        TopResolutionData data = new TopResolutionData();

        List<String> rTopNList = distributionDao.getResolutionDailyTopNList(searchParam);
        if (rTopNList.size() > 0) {

            if (rTopNList.size() > 5) {
                searchParam.setTopNList(rTopNList.subList(0, searchParam.getTopN()));
                searchParam.setOthers(true);
            } else {
                searchParam.setTopNList(rTopNList);
                searchParam.setOthers(false);
            }

            List<ResolutionData> sumList = distributionDao.getResolutionDailySum(searchParam);
            data.setSumList(sumList);
            List<ResolutionTimeSeriesData> rtsList = distributionDao
                    .getResolutionDailyTimeSeriesDataList(searchParam);
            data.setRtsList(rtsList);
        }

        return data;
    }

    @Override
    public TopResolutionData getResolutionWeeklyData(FingraphSearchParam searchParam) {
        TopResolutionData data = new TopResolutionData();

        List<String> rTopNList = distributionDao.getResolutionWeeklyTopNList(searchParam);
        if (rTopNList.size() > 0) {

            if (rTopNList.size() > 5) {
                searchParam.setTopNList(rTopNList.subList(0, searchParam.getTopN()));
                searchParam.setOthers(true);
            } else {
                searchParam.setTopNList(rTopNList);
                searchParam.setOthers(false);
            }

            List<ResolutionData> sumList = distributionDao.getResolutionWeeklySum(searchParam);
            data.setSumList(sumList);
            List<ResolutionTimeSeriesData> rtsList = distributionDao
                    .getResolutionWeeklyTimeSeriesDataList(searchParam);
            data.setRtsList(rtsList);
        }

        return data;
    }

    @Override
    public TopResolutionData getResolutionMonthlyData(FingraphSearchParam searchParam) {
        TopResolutionData data = new TopResolutionData();

        List<String> rTopNList = distributionDao.getResolutionMonthlyTopNList(searchParam);
        if (rTopNList.size() > 0) {

            if (rTopNList.size() > 5) {
                searchParam.setTopNList(rTopNList.subList(0, searchParam.getTopN()));
                searchParam.setOthers(true);
            } else {
                searchParam.setTopNList(rTopNList);
                searchParam.setOthers(false);
            }

            List<ResolutionData> sumList = distributionDao.getResolutionMonthlySum(searchParam);
            data.setSumList(sumList);
            List<ResolutionTimeSeriesData> rtsList = distributionDao
                    .getResolutionMonthlyTimeSeriesDataList(searchParam);
            data.setRtsList(rtsList);
        }

        return data;
    }

}