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.apache.thrift.protocol.TMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import in.shop2020.model.v1.user.Affiliate;
import in.shop2020.model.v1.user.MasterAffiliate;
import in.shop2020.user.persistence.AffiliateMapper;
import in.shop2020.user.util.Converter;

@Service
public class AffiliateHandler {

        @Autowired
        private AffiliateMapper affiliateMapper;
        
        private static final Log log = LogFactory.getLog(AffiliateHandler.class);

        public Affiliate getAffiliateById(long id) throws TException{
                return Converter.toThriftAffiliate(affiliateMapper.getAffiliateById(id));
        }

        public Affiliate getAffiliateByName(String name) throws TException{
                return Converter.toThriftAffiliate(affiliateMapper.getAffiliateByName(name));
        }

        public MasterAffiliate getMasterAffiliateById(long id) throws TException{
                return Converter.toThriftMasterAffiliate(affiliateMapper.getMasterAffiliateById(id));
        }

        public MasterAffiliate getMasterAffiliateByName(String name) throws TException{
                return Converter.toThriftMasterAffiliate(affiliateMapper.getMasterAffiliateByName(name));
        }

        public MasterAffiliate createMasterAffiliate(String name, long addedOn) 
                throws TException{
                in.shop2020.user.domain.MasterAffiliate masterAffiliate = new in.shop2020.user.domain.MasterAffiliate();
                masterAffiliate.setName(name);
                masterAffiliate.setAdded_on(new Date(addedOn));
                affiliateMapper.createMasterAffiliate(masterAffiliate);
                return Converter.toThriftMasterAffiliate(masterAffiliate);
        }

        public List<MasterAffiliate> getAllMasterAffiliates() throws TException{
                List<in.shop2020.user.domain.MasterAffiliate> masterAffiliates = 
                        new ArrayList<in.shop2020.user.domain.MasterAffiliate>();
                masterAffiliates = affiliateMapper.getAllMasterAffiliates();
                if(masterAffiliates!=null) {
                        List<MasterAffiliate> tMasterAffiliates = new ArrayList<MasterAffiliate>();
                        for(in.shop2020.user.domain.MasterAffiliate masterAffiliate : 
                                        masterAffiliates) {
                                tMasterAffiliates.add(Converter.toThriftMasterAffiliate(masterAffiliate));
                        }
                        return tMasterAffiliates;
                }
                return null;
        }

        public Affiliate createAffiliate(String name, String url,
                long masterAffiliateId, long addedOn) throws TException{
                in.shop2020.user.domain.Affiliate affiliate = new in.shop2020.user.domain.Affiliate();
                affiliate.setName(name);
                if(url!=null) {
                        affiliate.setUrl(url);
                }
                affiliate.setMaster_affiliate_id(masterAffiliateId);
                affiliate.setAdded_on(new Date(addedOn));
                affiliateMapper.createAffiliate(affiliate);
                return Converter.toThriftAffiliate(affiliate);
        }

        public List<Affiliate> getAffiliatesByMasterAffiliate(long masterAffiliateId) 
                throws TException{
                List<in.shop2020.user.domain.Affiliate> affiliates = 
                        new ArrayList<in.shop2020.user.domain.Affiliate>();
                affiliates = affiliateMapper.getAffiliatesByMasterAffiliate(masterAffiliateId);
                if(affiliates!=null) {
                        List<Affiliate> tMasterAffiliates = new ArrayList<Affiliate>();
                        for(in.shop2020.user.domain.Affiliate affiliate : affiliates) {
                                tMasterAffiliates.add(Converter.toThriftAffiliate(affiliate));
                        }
                        return tMasterAffiliates;
                }
                log.warn("No affiliates for MasterAffiliate : " + masterAffiliateId);
                return null;
        }
}