package com.moral.entity;
|
|
import com.moral.common.util.StringUtils;
|
import com.moral.entity.charts.AreaRange;
|
import lombok.Data;
|
import org.apache.commons.lang.math.NumberUtils;
|
|
@Data
|
public class Region {
|
private AreaRange areaRange;
|
private Integer code;
|
private Region(Integer code,AreaRange areaRange){
|
this.code = code;
|
this.areaRange = areaRange;
|
}
|
public static Region create(Integer code){
|
if(code!=null){
|
return create(code.toString());
|
}else {
|
return null;
|
}
|
}
|
public static Region create(String code){
|
AreaRange areaRange = Region.determine(code);
|
if(areaRange != null) {
|
return new Region(Integer.parseInt(code),areaRange);
|
}else {
|
return null;
|
}
|
}
|
public static AreaRange determine(String code) {
|
AreaRange areaRange = null;
|
if(!StringUtils.isNullOrEmpty(code)&& NumberUtils.isDigits(code)){
|
if(code.length()==6){
|
if(code.endsWith("0000")){
|
areaRange = AreaRange.PROVINCE;
|
}else if(code.endsWith("00")){
|
areaRange = AreaRange.CITY;
|
} else {
|
areaRange = AreaRange.AREA;
|
}
|
} else if(code.length()==12){
|
if(code.endsWith("000")){
|
areaRange = AreaRange.TOWN;
|
}else {
|
areaRange = AreaRange.VILLAGE;
|
}
|
}
|
}
|
return areaRange;
|
}
|
}
|