生效区域配置下发格式修改.
This commit is contained in:
@@ -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.add(areaItemValue);
|
locaValueList = new ArrayList();
|
||||||
}
|
locaValueList.add(areaItemValue);
|
||||||
}else {
|
area.setValue(locaValueList);
|
||||||
if(!ispValueList.contains(dict.getItemValue())) {
|
areaIspList.add(area);
|
||||||
ispValueList.add(dict.getItemValue());
|
effectiveRangeList.add(areaIspList);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(locaValueList.size() > 0) {
|
|
||||||
AreaIsp area = new AreaIsp();
|
|
||||||
area.setTag(Constants.AREA_TAG);
|
|
||||||
area.setValue(locaValueList);
|
|
||||||
areaIspList.add(area);
|
|
||||||
}
|
|
||||||
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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user