Subversion Repositories SmartDukaan

Rev

Rev 33124 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.service;

import com.spice.profitmandi.common.model.ProfitMandiConstants;
import com.spice.profitmandi.dao.entity.logistics.*;
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
import com.spice.profitmandi.dao.repository.logistics.PostOfficeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.*;

@Component
public class PostOfficeServiceImpl implements PostOfficeService {

    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"));
        pincodeCitiesMap.put(224129, Arrays.asList("Tanda"));
        pincodeCitiesMap.put(204213, Arrays.asList("Hathras"));
        pincodeCitiesMap.put(323305, Arrays.asList("Rawatbhata"));
        pincodeCitiesMap.put(311030, Arrays.asList("Kanwaliyas"));
        pincodeCitiesMap.put(326021, Arrays.asList("Asnawar"));
        pincodeCitiesMap.put(326022, Arrays.asList("Bakani"));
        pincodeCitiesMap.put(303313, Arrays.asList("BandiKui"));
        pincodeCitiesMap.put(303301, Arrays.asList("Bassi"));
        pincodeCitiesMap.put(323802, Arrays.asList("Dei"));
        pincodeCitiesMap.put(322201, Arrays.asList("Gangapur City"));
        pincodeCitiesMap.put(327021, Arrays.asList("Ganoda"));
        pincodeCitiesMap.put(321204, Arrays.asList("GopalGarh"));
        pincodeCitiesMap.put(342902, Arrays.asList("Gotan"));
        pincodeCitiesMap.put(311201, Arrays.asList("Jahaajpur"));
        pincodeCitiesMap.put(326519, Arrays.asList("Julmi"));
        pincodeCitiesMap.put(321022, Arrays.asList("Kamaan"));
        pincodeCitiesMap.put(323603, Arrays.asList("Lakheri"));
        pincodeCitiesMap.put(301408, Arrays.asList("Machari"));
        pincodeCitiesMap.put(321608, Arrays.asList("Mahwa"));
        pincodeCitiesMap.put(301406, Arrays.asList("Malakhera"));
        pincodeCitiesMap.put(325221, Arrays.asList("Chhipabarod"));
        pincodeCitiesMap.put(326519, Arrays.asList("Morak"));
        pincodeCitiesMap.put(326514, Arrays.asList("Dag"));
        pincodeCitiesMap.put(341031, Arrays.asList("Padukallan"));
        pincodeCitiesMap.put(326034, Arrays.asList("Pirawa"));

    }

    @Autowired
    private PostOfficeRepository postOfficeRepository;

    @Autowired
    private ASTRepository astRepository;

    @Autowired
    private StateRepository stateRepository;

    @Autowired
    private AreaRepository areaRepository;

    @Autowired
    private TerritoryRepository territoryRepository;

    @Override
    public Map<String, Object> getPOPincode(int pinCode) {
        List<PostOffice> postOffices = postOfficeRepository.selectByPinCode(pinCode);
        Set<String> cities = new HashSet<>();
        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());
            cities.add(postOffice.getCodeName().substring(0, postOffice.getCodeName().lastIndexOf(" ")));

        }
        map.put(ProfitMandiConstants.CITIES, cities);
        return map;
    }

    @Override
    //Get descriptions
    public List<AST> getAreasAndTerritoriesByStateName(String stateName) {
        int stateId = stateRepository.selectByName(stateName).getId();
        List<AST> astList = astRepository.selectByStateId(stateId);

        for (AST ast : astList) {
            // Fetch territory descriptions from repository
            Territory territory = territoryRepository.selectByName(ast.getTerritory());
            ast.setTerritoryDescription(territory.getDescription());

            Area area = areaRepository.selectByName(ast.getArea());
            ast.setAreaDescription(area.getDescription());

        }
        return astList;
    }
}