package com.moral.service.impl; import com.moral.entity.Area; import com.moral.entity.City; import com.moral.entity.Province; import com.moral.entity.Town; import com.moral.entity.Village; import com.moral.mapper.AreaMapper; import com.moral.mapper.CityMapper; import com.moral.mapper.ProvinceMapper; import com.moral.mapper.TownMapper; import com.moral.mapper.VillageMapper; import com.moral.service.AreaService; import org.springframework.stereotype.Service; import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; import java.util.List; @Service public class AreaServiceImpl implements AreaService{ @Resource ProvinceMapper provinceMapper; @Resource CityMapper cityMapper; @Resource AreaMapper areaMapper; @Resource private TownMapper townMapper; @Resource private VillageMapper villageMapper; @Override public List getProvinces() { return provinceMapper.selectAll(); } @Override public List getCities(int provinceCode) { Example example = new Example(City.class); example.or().andEqualTo("provinceCode",provinceCode); return cityMapper.selectByExample(example); } @Override public List getAreas(int cityCode) { Example example = new Example(Area.class); example.or().andEqualTo("cityCode",cityCode); return areaMapper.selectByExample(example); } /** * 通过地区编码获取 中文全程,例如 江苏省 苏州市 昆山市 * @param code 可以是省 市 区 到地区编码 * @return */ @Override public String queryFullNameByCode(Integer code){ String codeStr = code.toString(); String fullName = ""; // 此时为地区code if(!codeStr.endsWith("00")){ String provinceCode = codeStr.substring(0,2)+"0000"; Province province = provinceMapper.selectByPrimaryKey(Integer.valueOf(provinceCode)); String cityCode = codeStr.substring(0,4)+"00"; City city = cityMapper.selectByPrimaryKey(Integer.valueOf(cityCode)); Area area = areaMapper.selectByPrimaryKey(code); fullName = province.getProvinceName().replaceAll(" ", "") +" "+city.getCityName().replaceAll(" ", "") +" "+area.getAreaName().replaceAll(" ", ""); } else if(!codeStr.endsWith("0000")){ // 此时为 地级市code String provinceCode = codeStr.substring(0,2)+"0000"; Province province = provinceMapper.selectByPrimaryKey(Integer.valueOf(provinceCode)); City city = cityMapper.selectByPrimaryKey(code); fullName = province.getProvinceName().replaceAll(" ", "") +" "+city.getCityName().replaceAll(" ", ""); } else { // 此时为 省code Province province = provinceMapper.selectByPrimaryKey(code); fullName = province.getProvinceName().replaceAll(" ", ""); } return fullName; } @Override public List getTowns(Integer areaCode) { Example example = new Example(Town.class); example.or().andEqualTo("areaCode",areaCode); return townMapper.selectByExample(example); } @Override public List getVillages(Long townCode) { Example example = new Example(Village.class); example.createCriteria().andEqualTo("townCode",townCode); return villageMapper.selectByExample(example); } }