生效区域配置下发格式修改.

This commit is contained in:
zhangwenqing
2018-09-29 21:41:03 +08:00
parent 02257001b4
commit a29c6367b3

View File

@@ -225,78 +225,101 @@ public class SysDictInfoService extends BaseService{
// 组织区域、运营商配置下发格式 // 组织区域、运营商配置下发格式
public String setEffectiveRange(String areaEffectiveIds){ public String setEffectiveRange(String areaEffectiveIds){
EffectiveRangeCfg rangeCfg = new EffectiveRangeCfg(); EffectiveRangeCfg rangeCfg = new EffectiveRangeCfg();
List<AreaIsp> areaIspList = new ArrayList(); List<List<AreaIsp>> effectiveRangeList = new ArrayList();
List<String> locaValueList = new ArrayList(); List<String> locaValueList = new ArrayList();
List<String> ispValueList = new ArrayList(); List<String> ispValueList = new ArrayList();
for (String areaEffectiveId : StringUtils.split(areaEffectiveIds, ",")) { for (String areaEffectiveId : StringUtils.split(areaEffectiveIds, ",")) {
String area = ""; List<AreaIsp> areaIspList = new ArrayList();
AreaIsp area = new AreaIsp();
area.setTag(Constants.AREA_TAG);
AreaIsp isp = new AreaIsp();
isp.setTag(Constants.ISP_TAG);
String areaStr = "";
// 区域和运营商 // 区域和运营商
if(areaEffectiveId.contains(":")) { if(areaEffectiveId.contains(":")) {
int index = areaEffectiveId.indexOf(":"); int index = areaEffectiveId.indexOf(":");
String areaCode = areaEffectiveId.substring(0, index); String areaCode = areaEffectiveId.substring(0, index);
String ispCode = areaEffectiveId.substring(index+1); String ispCode = areaEffectiveId.substring(index+1);
// 查询该区域信息及其所有父节点信息 // 查询该区域信息及其所有父节点信息
List<SysDictInfo> list = sysDictInfoDao.getEffectiveArea(areaCode); List<SysDictInfo> list = sysDictInfoDao.getEffectiveArea(areaCode);
for (SysDictInfo sysDictInfo : list) { for (SysDictInfo sysDictInfo : list) {
area += sysDictInfo.getItemValue(); areaStr += sysDictInfo.getItemValue();
while(sysDictInfo.getParent().getSysDictId() != 0) { while(sysDictInfo.getParent().getSysDictId() != 0) {
sysDictInfo = sysDictInfoDao.getDictById(sysDictInfo.getParent().getSysDictId()); sysDictInfo = sysDictInfoDao.getDictById(sysDictInfo.getParent().getSysDictId());
area += "/"+sysDictInfo.getItemValue(); areaStr += "/"+sysDictInfo.getItemValue();
} }
} }
String areaItemValue = StringUtils.revertStr(area, "/"); String areaItemValue = StringUtils.revertStr(areaStr, "/");
if(!locaValueList.contains(areaItemValue)) { if(!locaValueList.contains(areaItemValue)) {
locaValueList = new ArrayList();
ispValueList = new ArrayList();
locaValueList.add(areaItemValue); locaValueList.add(areaItemValue);
}else {
// 区域相同就只加运营商信息
SysDictInfo ispStr = sysDictInfoDao.getDictByItemCode(ispCode);
if(!ispValueList.contains(ispStr.getItemValue())) {
ispValueList.add(ispStr.getItemValue());
if(ispValueList.size() < 2) {
isp.setValue(ispValueList);
areaIspList.add(isp);
effectiveRangeList.add(areaIspList);
}
}
continue;
} }
// 查询运营商信息 // 查询运营商信息
SysDictInfo isp = sysDictInfoDao.getDictByItemCode(ispCode); SysDictInfo ispStr = sysDictInfoDao.getDictByItemCode(ispCode);
if(!ispValueList.contains(isp.getItemValue())) { if(!ispValueList.contains(ispStr.getItemValue())) {
ispValueList.add(isp.getItemValue()); ispValueList.add(ispStr.getItemValue());
} }
area.setValue(locaValueList);
isp.setValue(ispValueList);
areaIspList.add(area);
areaIspList.add(isp);
effectiveRangeList.add(areaIspList);
}else { }else {
// 区域或运营商 // 区域
SysDictInfo dict = sysDictInfoDao.getDictByItemCode(areaEffectiveId); SysDictInfo dict = sysDictInfoDao.getDictByItemCode(areaEffectiveId);
if(dict.getItemType() == 1) {
// 查询所有父节点区域信息 // 查询所有父节点区域信息
area += dict.getItemValue(); areaStr += dict.getItemValue();
while(dict.getParent().getSysDictId() != 0) { while(dict.getParent().getSysDictId() != 0) {
dict = sysDictInfoDao.getDictById(dict.getParent().getSysDictId()); dict = sysDictInfoDao.getDictById(dict.getParent().getSysDictId());
area += "/"+dict.getItemValue(); areaStr += "/"+dict.getItemValue();
} }
String areaItemValue = StringUtils.revertStr(area, "/"); String areaItemValue = StringUtils.revertStr(areaStr, "/");
if(!locaValueList.contains(areaItemValue)) { if(!locaValueList.contains(areaItemValue)) {
locaValueList = new ArrayList();
locaValueList.add(areaItemValue); locaValueList.add(areaItemValue);
}
}else {
if(!ispValueList.contains(dict.getItemValue())) {
ispValueList.add(dict.getItemValue());
}
}
}
}
if(locaValueList.size() > 0) {
AreaIsp area = new AreaIsp();
area.setTag(Constants.AREA_TAG);
area.setValue(locaValueList); area.setValue(locaValueList);
areaIspList.add(area); areaIspList.add(area);
} effectiveRangeList.add(areaIspList);
if(ispValueList.size() > 0) { }
AreaIsp isp = new AreaIsp();
isp.setTag(Constants.ISP_TAG); }
isp.setValue(ispValueList);
areaIspList.add(isp);
} }
List<List<AreaIsp>> effectiveRangeList = new ArrayList();
effectiveRangeList.add(areaIspList);
rangeCfg.setEffectiveRangeList(effectiveRangeList); rangeCfg.setEffectiveRangeList(effectiveRangeList);
return gsonToJson(rangeCfg); return gsonToJson(rangeCfg);
} }
public static void main(String[] args) {
SysDictInfoService service = new SysDictInfoService();
String json = service.setEffectiveRange("7182:4,7182:5");
System.err.println(json);
}
} }