package cn.com.basic.face.service; import android.widget.Toast; import org.xutils.http.RequestParams; import org.xutils.x; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.dialog.CountryDialog; import cn.com.basic.face.dialog.SelectDialog; import cn.com.basic.face.discern.common.BaseCommonCallBack; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.common.SqliteSqlBean; import cn.com.basic.face.discern.entity.Dictionary; import cn.com.basic.face.discern.query.condition.DictionaryQueryCondition; import cn.com.basic.face.service.sqlite.DictionaryDao; import cn.com.basic.face.util.AppApi; import cn.com.basic.face.util.CharacterParser; import cn.com.basic.face.util.Constant; import cn.com.basic.face.util.SqliteSqlUtil; public class DictionaryMng extends BaseMng { public static DictionaryMng instance = new DictionaryMng(); public static DictionaryMng getInstance() { return instance; } public void loadAllDictionaryData() { if (!BaseApplication.deviceAvailable) { return; } loadCountries(); loadIdTypeList(); loadGenderList(); loadVisitReasonList(); loadVisitorTypeList(); loadResolutionList(); loadProtocolList(); loadCameraBrandList(); DepartmentMng.getInstance().loadDepartmentDictionary(); PostMng.getInstance().loadPostDictionary(); loadAttenderTypeList(); } public void loadCountries() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.COUNTRY); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { loadCountriesAfterReturn(getList(Dictionary.class)); } }); } else { loadCountriesAfterReturn(DictionaryDao.getInstance().loadCountries()); } } private void loadCountriesAfterReturn(List items) { int i=0; List uniqueFirstLetterList = new ArrayList(); HashMap> countriesGroupByFirstLetter = new HashMap>(); sortCountries(items); for (Dictionary item : items) { idMap.put(item.getName(), item.getDictId()+""); String firstLetter = item.getName(); if (item.getName().length() > 0) { firstLetter = CharacterParser.getInstance().getSelling(item.getName()).substring(0, 1).toUpperCase(); } List list = countriesGroupByFirstLetter.get(firstLetter); if (list == null) { list = new ArrayList(); countriesGroupByFirstLetter.put(firstLetter, list); uniqueFirstLetterList.add(0, firstLetter); } list.add(item.getName()); i++; } CountryDialog.setCountries(uniqueFirstLetterList, countriesGroupByFirstLetter); } private void sortCountries(List countries) { if (!BaseApplication.deviceAvailable) { return; } Collections.sort(countries, new Comparator() { @Override public int compare(Dictionary t1, Dictionary t2) { String name1 = t1.getName()==null?"":t1.getName(); String name2 = t2.getName()==null?"":t2.getName(); String dept1Name_a = name1.trim(); String dept1Name_b = name2.trim(); if (dept1Name_a.length() > 0 && dept1Name_b.length() > 0) { dept1Name_a = CharacterParser.getInstance().getSelling(name1).toLowerCase(); dept1Name_b = CharacterParser.getInstance().getSelling(name2).toLowerCase(); } return dept1Name_b.compareTo(dept1Name_a); } }); } public void loadIdTypeList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.ID_TYPE); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setIdTypeList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setIdTypeList(getDictionaryNameList(DictionaryDao.getInstance().loadIdTypeList())); } } private void loadGenderList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.GENDER); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setGenderList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setGenderList(getDictionaryNameList(DictionaryDao.getInstance().loadGenderList())); } } public void loadVisitReasonList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.VISIT_REASON); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setVisitReasonList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setVisitReasonList(getDictionaryNameList(DictionaryDao.getInstance().loadVisitReasonList())); } } public void loadResolutionList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.RESOLUTION); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setResolutionList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setResolutionList(getDictionaryNameList(DictionaryDao.getInstance().loadResolutionList())); } } public void loadProtocolList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.PROTOCOL); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setProtocolList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setProtocolList(getDictionaryNameList(DictionaryDao.getInstance().loadProtocolList())); } } public void loadCameraBrandList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.CAMERA_BRAND); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setCameraBrandList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setCameraBrandList(getDictionaryNameList(DictionaryDao.getInstance().loadCameraBrandList())); } } private void loadVisitorTypeList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.VISITOR_TYPE); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setVisitorTypeList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setVisitorTypeList(getDictionaryNameList(DictionaryDao.getInstance().loadVisitorTypeList())); } } private void loadAttenderTypeList() { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.ATTENDER_TYPE); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().get(params, new BaseCommonCallBack() { public void success() { SelectDialog.setAttenderTypeList(getDictionaryNameList(getList(Dictionary.class))); } }); } else { SelectDialog.setAttenderTypeList(getDictionaryNameList(DictionaryDao.getInstance().loadAttenderTypeList())); } } public void addDictionary(final int type, String type1, String name) { if (!BaseApplication.deviceAvailable) { return; } if (BaseApplication.getInstance().networkAvailable()) { RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.DICTIONARY_ADD); params.addBodyParameter(Dictionary.FieldNames.type, type1); params.addBodyParameter(Dictionary.FieldNames.name, name); params.addBodyParameter(Dictionary.FieldNames.orderBy, "10"); params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); x.http().post(params, new BaseCommonCallBack() { public void success() { SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); addDictionaryAfterReturn(getList(Dictionary.class), type); } }); } else { addDictionaryAfterReturn(DictionaryDao.getInstance().addDictionary(type1, name), type); } } public void addDictionaryAfterReturn(List list, int type) { switch (type) { case Constant.DialogSelectType.VISIT_REASON: break; case Constant.DialogSelectType.RESOLUTION: SelectDialog.setResolutionList(getDictionaryNameList(list)); break; case Constant.DialogSelectType.PROTOCOL: SelectDialog.setProtocolList(getDictionaryNameList(list)); break; case Constant.DialogSelectType.CAMERA_BRAND: SelectDialog.setCameraBrandList(getDictionaryNameList(list)); break; } Toast.makeText(MainActivity.getInstance(), "添加成功", Toast.LENGTH_SHORT).show(); } }