package track.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import track.model.Account;
import track.model.App;
import track.repository.MeasureRepository;
import track.repository.TrackAppRepository;
import track.service.TrackAccountFlowRestrictService;
import util.DateUtil;
import util.ValidateUtil;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by song on 2017/10/19.
 */
@Service
public class TrackAccountFlowRestrictServiceImpl implements TrackAccountFlowRestrictService {

    @Autowired
    TrackAppRepository trackAppRepository;
    @Autowired
    MeasureRepository measureRepository;

    @Override
    public BigInteger findRestrictByAccount(Account account) {
       BigInteger re =  new BigInteger("0");
        List<App> apps = trackAppRepository.findByAccount(account.getId());

        StringBuffer appsStr = new StringBuffer();
        if(ValidateUtil.isValid(apps)){
            List<String> appids = new ArrayList<>();
            for (App app : apps) {
                appids.add(app.getAppkey());
            }
            String startDate = DateUtil.format(account.getPubDate());
            String endDate = DateUtil.getBeforeDays(0);
            Double click = measureRepository.findByApp(appids, endDate, startDate);
            return null == click ? re : new BigInteger(click.intValue() + "");
        }

        return re;
    }


}