Subversion Repositories SmartDukaan

Rev

Rev 27554 | Rev 29739 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.service;

import java.lang.reflect.Array;
import java.util.*;

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

import com.spice.profitmandi.common.model.ProfitMandiConstants;
import com.spice.profitmandi.dao.entity.logistics.PostOffice;
import com.spice.profitmandi.dao.repository.logistics.PostOfficeRepository;

@Component
public class PostOfficeServiceImpl implements PostOfficeService {

        @Autowired
        private PostOfficeRepository postOfficeRepository;
        private static final Map<Integer, List<String>> pincodeCitiesMap = new HashMap<Integer, List<String>>();
        
        static {
                pincodeCitiesMap.put(160104, Arrays.asList("Ludhiana"));
                pincodeCitiesMap.put(232101, Arrays.asList("Padao", "Mughalsarai"));
                pincodeCitiesMap.put(261151, Arrays.asList("Pisawa"));
                pincodeCitiesMap.put(231304, Arrays.asList("Chunar"));

        }
        @Override
        public Map<String, Object> getPOPincode(int pincode) {
                List<PostOffice> postOffices = postOfficeRepository.selectByPinCode(pincode);
                Set<String> cities = new HashSet<>();
                //Add custom pincodes to support the major cities;
                if(pincodeCitiesMap.containsKey(pincode)) {
                        cities.addAll(pincodeCitiesMap.get(pincode));
                }
                Map<String, Object> map = new HashMap<>(3);

                map.put(ProfitMandiConstants.PIN_CODE, pincode);
                for (PostOffice postOffice : postOffices) {
                        String city = postOffice.getCity();
                        if (city.equals("NA")) {
                                cities.add(postOffice.getDistrict());

                        } else {
                                cities.add(postOffice.getCity());
                        }
                        map.put(ProfitMandiConstants.STATE, postOffice.getState());
                }
                map.put(ProfitMandiConstants.CITIES, cities);
                return map;
        }

}