Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package in.shop2020.user.handler;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.thrift.TException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import in.shop2020.model.v1.user.Address;
import in.shop2020.model.v1.user.TrackLog;
import in.shop2020.model.v1.user.TrackLogType;
import in.shop2020.model.v1.user.Tracker;
import in.shop2020.user.persistence.TrackMapper;
import in.shop2020.user.util.Converter;

@Service
public class TrackHandler {

        @Autowired
        private TrackMapper trackMapper;
        
        private static final Log log = LogFactory.getLog(TrackHandler.class);

        public in.shop2020.user.domain.TrackLog getTrackLogById(long id) 
                throws TException{
                return trackMapper.getTrackLogById(id);
        }

        public Tracker getTrackerById(long id) throws TException{
                return Converter.toThriftTracker(trackMapper.getTrackerById(id));
        }

        public List<TrackLog> getTrackLogsByUser(long userId) throws TException{
                List<TrackLog> tTrackLogs= new ArrayList<TrackLog>();
                List<in.shop2020.user.domain.TrackLog> trackLogs = 
                        new ArrayList<in.shop2020.user.domain.TrackLog>();
                
                trackLogs = trackMapper.getTrackLogsByUser(userId);
                
                for(in.shop2020.user.domain.TrackLog trackLog : trackLogs) {
                        tTrackLogs.add(Converter.toThriftTrackLog(trackLog));
                }
                return tTrackLogs;
        }

        public long addTrackLog(long affiliateId, long userId, TrackLogType event,
                String url, String data, long addedOn) throws TException{
                in.shop2020.user.domain.TrackLog trackLog = new in.shop2020.user.domain.TrackLog();
                trackLog.setAffiliate_id(affiliateId);
                if(userId!=0) {
                        trackLog.setUser_id(userId);
                }
                trackLog.setEvent(event.toString());
                if(url!=null) {
                        trackLog.setUrl(url);
                }
                if(data!=null) {
                        trackLog.setData(data);
                }
                trackLog.setAdded_on(new Date(addedOn));
                trackMapper.addTrackLog(trackLog);
                
                return trackLog.getId();
        }

        public List<TrackLog> getTrackLogs(long userId, String event, String url) 
                throws TException{
                List<TrackLog> tTrackLogs= new ArrayList<TrackLog>();
                List<in.shop2020.user.domain.TrackLog> trackLogs = 
                        new ArrayList<in.shop2020.user.domain.TrackLog>();
                
                trackLogs = trackMapper.getTrackLogs(userId, event, url);
                
                for(in.shop2020.user.domain.TrackLog trackLog : trackLogs) {
                        tTrackLogs.add(Converter.toThriftTrackLog(trackLog));
                }
                return tTrackLogs;
        }

        public List<TrackLog> getTrackLogsByAffiliate(long affiliateId,
                        long startDate, long endDate) throws TException{
                List<TrackLog> tTrackLogs= new ArrayList<TrackLog>();
                List<in.shop2020.user.domain.TrackLog> trackLogs = 
                        new ArrayList<in.shop2020.user.domain.TrackLog>();
                
                trackLogs = trackMapper.getTrackLogsByAffiliate(affiliateId, new Date(startDate), new Date(endDate));
                
                for(in.shop2020.user.domain.TrackLog trackLog : trackLogs) {
                        tTrackLogs.add(Converter.toThriftTrackLog(trackLog));
                }
                return tTrackLogs;
        }
}