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<Province> getProvinces() {
|
return provinceMapper.selectAll();
|
}
|
|
@Override
|
public List<City> getCities(int provinceCode) {
|
Example example = new Example(City.class);
|
example.or().andEqualTo("provinceCode",provinceCode);
|
return cityMapper.selectByExample(example);
|
}
|
|
@Override
|
public List<Area> 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<Town> getTowns(Integer areaCode) {
|
Example example = new Example(Town.class);
|
example.or().andEqualTo("areaCode",areaCode);
|
return townMapper.selectByExample(example);
|
}
|
|
@Override
|
public List<Village> getVillages(Long townCode) {
|
Example example = new Example(Village.class);
|
example.createCriteria().andEqualTo("townCode",townCode);
|
return villageMapper.selectByExample(example);
|
}
|
}
|