package com.jiuqi.njt.register.city;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;
/**
* 省市县数据处理帮助类
* @author joe
*
*/
public class CityDataUtil extends CityDBHelper<CityBean>{
public CityDataUtil(Context context) {
super(context);
try {
TableUtils.createTableIfNotExists(getConnectionSource(),
getBeanClass());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected Class<CityBean> getBeanClass() {
return CityBean.class;
}
/**
* 保存省市数据
* @param cityList
*/
public void addCityData(List<CityBean> cityList){
for (CityBean cityBean : cityList) {
try {
getDao().create(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 查询中国的所有省市县
* @return
*/
public List<CityBean> queryAllCity(){
List<CityBean> cityList = new ArrayList<CityBean>();
CityBean cityBean = new CityBean();
cityBean.setCountryName("中国");
cityBean.setCountryNameInEnglish("CHINA");
try {
cityList = getDao().queryForMatching(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
return cityList;
}
/**
* 查询中国的所有省
* @return
*/
public List<CityBean> queryProvince(){
List<CityBean> cityList = new ArrayList<CityBean>();
List<String> cityListNew = new ArrayList<String>();
/**
* 省分中去掉特别行政区和直辖市
*/
cityListNew.add("特别行政区");
cityListNew.add("直辖市");
/**
* 省份中去掉自治区
*/
cityListNew.add("内蒙古");
cityListNew.add("广西");
cityListNew.add("西藏");
cityListNew.add("宁夏");
cityListNew.add("新疆");
List<CityBean> provinceList = new ArrayList<CityBean>();
cityList = queryAllCity();
for (CityBean cityBean : cityList) {
if(!cityListNew.contains(cityBean.getProvinceName())){
cityListNew.add(cityBean.getProvinceName());
provinceList.add(cityBean);
}
}
return provinceList;
}
/**
* 获取中国所有的自治区
* @return
*/
public List<CityBean> queryAutonomousRegionCity(){
List<CityBean> cityList = new ArrayList<CityBean>();
List<String> cityListNew = new ArrayList<String>();
cityListNew.add("内蒙古");
cityListNew.add("广西");
cityListNew.add("西藏");
cityListNew.add("宁夏");
cityListNew.add("新疆");
for (String string : cityListNew) {
CityBean city = new CityBean();
city.setCountryName("中国");
city.setProvinceName(string);
cityList.add(city );
}
return cityList;
}
/**
* 查询中国的所有直辖市
* @return
*/
public List<CityBean> queryMunicipalitiesCity(){
List<CityBean> cityList = new ArrayList<CityBean>();
List<CityBean> provinceList = new ArrayList<CityBean>();
CityBean cityBean = new CityBean();
cityBean.setProvinceName("直辖市");
cityBean.setCountryName("中国");
cityBean.setCountryNameInEnglish("CHINA");
try {
cityList= getDao().queryForMatching(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
List<String> cityListNew = new ArrayList<String>();
for (CityBean city : cityList) {
if(!cityListNew.contains(city.getCityName())){
cityListNew.add(city.getCityName());
provinceList.add(city);
}
}
return provinceList;
}
/**
* 查询中国的所有特别行政区
* @return
*/
public List<CityBean> querySpecialAdministrativeRegionCity(){
List<CityBean> cityList = new ArrayList<CityBean>();
List<CityBean> provinceList = new ArrayList<CityBean>();
CityBean cityBean = new CityBean();
cityBean.setProvinceName("特别行政区");
cityBean.setCountryName("中国");
cityBean.setCountryNameInEnglish("CHINA");
try {
cityList= getDao().queryForMatching(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
List<String> cityListNew = new ArrayList<String>();
for (CityBean city : cityList) {
if(!cityListNew.contains(city.getCityName())){
cityListNew.add(city.getCityName());
provinceList.add(city);
}
}
return provinceList;
}
/**
* 查询中国的某个地区下的数据(县级/三级)
* @param cityBean
* @return
*/
public List<CityBean> queryChildCity(CityBean cityBean){
List<CityBean> cityList = new ArrayList<CityBean>();
List<CityBean> provinceList = new ArrayList<CityBean>();
List<String> cityListNew = new ArrayList<String>();
if(null!=cityBean){
cityBean.setCountryName("中国");
cityBean.setCountryNameInEnglish("CHINA");
try {
cityList= getDao().queryForMatching(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
for (CityBean city : cityList) {
if(!cityListNew.contains(city.getCountyName())){
cityListNew.add(city.getCountyName());
provinceList.add(city);
}
}
}
return provinceList;
}
/**
* 查询中国的省下的市数据
* @param cityBean
* @return
*/
public List<CityBean> queryProvinceChildCity(String provinceName){
List<CityBean> cityList = new ArrayList<CityBean>();
List<CityBean> provinceList = new ArrayList<CityBean>();
List<String> cityListNew = new ArrayList<String>();
CityBean cityBean = new CityBean();
cityBean.setProvinceName(provinceName);
cityBean.setCountryName("中国");
cityBean.setCountryNameInEnglish("CHINA");
try {
cityList= getDao().queryForMatching(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
for (CityBean city : cityList) {
if(!cityListNew.contains(city.getCityName())){
cityListNew.add(city.getCityName());
provinceList.add(city);
}
}
return provinceList;
}
/**
* 删除某一个省市数据
* @param cityBean
*/
public void deleteCity(CityBean cityBean){
cityBean = new CityBean();
try {
getDao().delete(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 更新某一个省市数据
* @param cityBean
*/
public void updateCity(CityBean cityBean){
cityBean = new CityBean();
try {
getDao().update(cityBean);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1,
int oldVersion, int newVersion) {
super.onUpgrade(arg0, arg1, oldVersion, newVersion);
try {
TableUtils.dropTable(arg1, CityBean.class, true);
TableUtils.createTable(arg1, CityBean.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
}