|
|
|
@ -253,6 +253,220 @@ public class HousingEstateServiceImpl extends ServiceImpl<HousingEstateMapper, H
|
|
|
|
|
return this.list(housingEstateQueryWrapper);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<HousingEstateEntity> getHousingList(HousingEstatePagination housingEstatePagination){
|
|
|
|
|
return getHousingTypeList(housingEstatePagination,housingEstatePagination.getDataType());
|
|
|
|
|
}
|
|
|
|
|
/** 列表查询 */
|
|
|
|
|
@Override
|
|
|
|
|
public List<HousingEstateEntity> getHousingTypeList(HousingEstatePagination housingEstatePagination,String dataType){
|
|
|
|
|
String userId=userProvider.get().getUserId();
|
|
|
|
|
List<String> AllIdList =new ArrayList();
|
|
|
|
|
List<List<String>> intersectionList =new ArrayList<>();
|
|
|
|
|
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
|
|
|
|
|
String columnData = !isPc ? HousingEstateConstant.getAppColumnData() : HousingEstateConstant.getColumnData();
|
|
|
|
|
ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(columnData, ColumnDataModel.class);
|
|
|
|
|
String ruleJson = !isPc ? JsonUtil.getObjectToString(columnDataModel.getRuleListApp()) : JsonUtil.getObjectToString(columnDataModel.getRuleList());
|
|
|
|
|
|
|
|
|
|
int total=0;
|
|
|
|
|
int housingEstateNum =0;
|
|
|
|
|
QueryWrapper<HousingEstateEntity> housingEstateQueryWrapper=new QueryWrapper<>();
|
|
|
|
|
List<String> allSuperIDlist = new ArrayList<>();
|
|
|
|
|
String superOp ="";
|
|
|
|
|
if (ObjectUtil.isNotEmpty(housingEstatePagination.getSuperQueryJson())){
|
|
|
|
|
List<String> allSuperList = new ArrayList<>();
|
|
|
|
|
List<List<String>> intersectionSuperList = new ArrayList<>();
|
|
|
|
|
String queryJson = housingEstatePagination.getSuperQueryJson();
|
|
|
|
|
SuperJsonModel superJsonModel = JsonUtil.getJsonToBean(queryJson, SuperJsonModel.class);
|
|
|
|
|
int superNum = 0;
|
|
|
|
|
QueryWrapper<HousingEstateEntity> housingEstateSuperWrapper = new QueryWrapper<>();
|
|
|
|
|
housingEstateSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(housingEstateSuperWrapper,HousingEstateEntity.class,queryJson,"0"));
|
|
|
|
|
int housingEstateNum1 = housingEstateSuperWrapper.getExpression().getNormal().size();
|
|
|
|
|
if (housingEstateNum1>0){
|
|
|
|
|
List<String> housingEstateList =this.list(housingEstateSuperWrapper).stream().map(HousingEstateEntity::getId).collect(Collectors.toList());
|
|
|
|
|
allSuperList.addAll(housingEstateList);
|
|
|
|
|
intersectionSuperList.add(housingEstateList);
|
|
|
|
|
superNum++;
|
|
|
|
|
}
|
|
|
|
|
superOp = superNum > 0 ? superJsonModel.getMatchLogic() : "";
|
|
|
|
|
//and or
|
|
|
|
|
if(superOp.equalsIgnoreCase("and")){
|
|
|
|
|
allSuperIDlist = generaterSwapUtil.getIntersection(intersectionSuperList);
|
|
|
|
|
}else{
|
|
|
|
|
allSuperIDlist = allSuperList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
List<String> allRuleIDlist = new ArrayList<>();
|
|
|
|
|
String ruleOp ="";
|
|
|
|
|
if (ObjectUtil.isNotEmpty(ruleJson)){
|
|
|
|
|
List<String> allRuleList = new ArrayList<>();
|
|
|
|
|
List<List<String>> intersectionRuleList = new ArrayList<>();
|
|
|
|
|
SuperJsonModel ruleJsonModel = JsonUtil.getJsonToBean(ruleJson, SuperJsonModel.class);
|
|
|
|
|
int ruleNum = 0;
|
|
|
|
|
QueryWrapper<HousingEstateEntity> housingEstateSuperWrapper = new QueryWrapper<>();
|
|
|
|
|
housingEstateSuperWrapper = generaterSwapUtil.getCondition(new QueryModel(housingEstateSuperWrapper,HousingEstateEntity.class,ruleJson,"0"));
|
|
|
|
|
int housingEstateNum1 = housingEstateSuperWrapper.getExpression().getNormal().size();
|
|
|
|
|
if (housingEstateNum1>0){
|
|
|
|
|
List<String> housingEstateList =this.list(housingEstateSuperWrapper).stream().map(HousingEstateEntity::getId).collect(Collectors.toList());
|
|
|
|
|
allRuleList.addAll(housingEstateList);
|
|
|
|
|
intersectionRuleList.add(housingEstateList);
|
|
|
|
|
ruleNum++;
|
|
|
|
|
}
|
|
|
|
|
ruleOp = ruleNum > 0 ? ruleJsonModel.getMatchLogic() : "";
|
|
|
|
|
//and or
|
|
|
|
|
if(ruleOp.equalsIgnoreCase("and")){
|
|
|
|
|
allRuleIDlist = generaterSwapUtil.getIntersection(intersectionRuleList);
|
|
|
|
|
}else{
|
|
|
|
|
allRuleIDlist = allRuleList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
boolean pcPermission = false;
|
|
|
|
|
boolean appPermission = false;
|
|
|
|
|
if(isPc && pcPermission){
|
|
|
|
|
if (!userProvider.get().getIsAdministrator()){
|
|
|
|
|
Object housingEstateObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(housingEstateQueryWrapper,HousingEstateEntity.class,housingEstatePagination.getMenuId(),"0"));
|
|
|
|
|
if (ObjectUtil.isEmpty(housingEstateObj)){
|
|
|
|
|
return new ArrayList<>();
|
|
|
|
|
} else {
|
|
|
|
|
housingEstateQueryWrapper = (QueryWrapper<HousingEstateEntity>)housingEstateObj;
|
|
|
|
|
if( housingEstateQueryWrapper.getExpression().getNormal().size()>0){
|
|
|
|
|
housingEstateNum++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!isPc && appPermission){
|
|
|
|
|
if (!userProvider.get().getIsAdministrator()){
|
|
|
|
|
Object housingEstateObj=generaterSwapUtil.getAuthorizeCondition(new QueryModel(housingEstateQueryWrapper,HousingEstateEntity.class,housingEstatePagination.getMenuId(),"0"));
|
|
|
|
|
if (ObjectUtil.isEmpty(housingEstateObj)){
|
|
|
|
|
return new ArrayList<>();
|
|
|
|
|
} else {
|
|
|
|
|
housingEstateQueryWrapper = (QueryWrapper<HousingEstateEntity>)housingEstateObj;
|
|
|
|
|
if( housingEstateQueryWrapper.getExpression().getNormal().size()>0){
|
|
|
|
|
housingEstateNum++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(isPc){
|
|
|
|
|
if(ObjectUtil.isNotEmpty(housingEstatePagination.getName())){
|
|
|
|
|
housingEstateNum++;
|
|
|
|
|
|
|
|
|
|
String value = housingEstatePagination.getName() instanceof List ?
|
|
|
|
|
JsonUtil.getObjectToString(housingEstatePagination.getName()) :
|
|
|
|
|
String.valueOf(housingEstatePagination.getName());
|
|
|
|
|
housingEstateQueryWrapper.lambda().like(HousingEstateEntity::getName,value);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(housingEstatePagination.getExcludeIdList() != null && housingEstatePagination.getExcludeIdList().size() > 0){
|
|
|
|
|
housingEstateNum++;
|
|
|
|
|
housingEstateQueryWrapper.lambda().notIn(HousingEstateEntity::getId,housingEstatePagination.getExcludeIdList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if(housingEstatePagination.getStationId() != null){
|
|
|
|
|
// housingEstateNum++;
|
|
|
|
|
// housingEstateQueryWrapper.lambda().notIn(HousingEstateEntity::getId,housingEstatePagination.getStationId());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(ObjectUtil.isNotEmpty(housingEstatePagination.getSourceType())){
|
|
|
|
|
housingEstateNum++;
|
|
|
|
|
|
|
|
|
|
List<String> idList = new ArrayList<>();
|
|
|
|
|
try {
|
|
|
|
|
String[][] sourceType = JsonUtil.getJsonToBean(housingEstatePagination.getSourceType(),String[][].class);
|
|
|
|
|
for(int i=0;i<sourceType.length;i++){
|
|
|
|
|
if(sourceType[i].length>0){
|
|
|
|
|
idList.add(JsonUtil.getObjectToString(Arrays.asList(sourceType[i])));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception e1){
|
|
|
|
|
try {
|
|
|
|
|
List<String> sourceType = JsonUtil.getJsonToList(housingEstatePagination.getSourceType(),String.class);
|
|
|
|
|
if(sourceType.size()>0){
|
|
|
|
|
idList.addAll(sourceType);
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception e2){
|
|
|
|
|
idList.add(String.valueOf(housingEstatePagination.getSourceType()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
housingEstateQueryWrapper.lambda().and(t->{
|
|
|
|
|
idList.forEach(tt->{
|
|
|
|
|
t.like(HousingEstateEntity::getSourceType, tt).or();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(ObjectUtil.isNotEmpty(housingEstatePagination.getAddress())){
|
|
|
|
|
housingEstateNum++;
|
|
|
|
|
|
|
|
|
|
String value = housingEstatePagination.getAddress() instanceof List ?
|
|
|
|
|
JsonUtil.getObjectToString(housingEstatePagination.getAddress()) :
|
|
|
|
|
String.valueOf(housingEstatePagination.getAddress());
|
|
|
|
|
housingEstateQueryWrapper.lambda().like(HousingEstateEntity::getAddress,value);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
List<String> intersection = generaterSwapUtil.getIntersection(intersectionList);
|
|
|
|
|
if (total>0){
|
|
|
|
|
if (intersection.size()==0){
|
|
|
|
|
intersection.add("jnpfNullList");
|
|
|
|
|
}
|
|
|
|
|
housingEstateQueryWrapper.lambda().in(HousingEstateEntity::getId, intersection);
|
|
|
|
|
}
|
|
|
|
|
//是否有高级查询
|
|
|
|
|
if (StringUtil.isNotEmpty(superOp)){
|
|
|
|
|
if (allSuperIDlist.size()==0){
|
|
|
|
|
allSuperIDlist.add("jnpfNullList");
|
|
|
|
|
}
|
|
|
|
|
List<String> finalAllSuperIDlist = allSuperIDlist;
|
|
|
|
|
housingEstateQueryWrapper.lambda().and(t->t.in(HousingEstateEntity::getId, finalAllSuperIDlist));
|
|
|
|
|
}
|
|
|
|
|
//是否有数据过滤查询
|
|
|
|
|
if (StringUtil.isNotEmpty(ruleOp)){
|
|
|
|
|
if (allRuleIDlist.size()==0){
|
|
|
|
|
allRuleIDlist.add("jnpfNullList");
|
|
|
|
|
}
|
|
|
|
|
List<String> finalAllRuleIDlist = allRuleIDlist;
|
|
|
|
|
housingEstateQueryWrapper.lambda().and(t->t.in(HousingEstateEntity::getId, finalAllRuleIDlist));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//排序
|
|
|
|
|
if(StringUtil.isEmpty(housingEstatePagination.getSidx())){
|
|
|
|
|
housingEstateQueryWrapper.lambda().orderByDesc(HousingEstateEntity::getId);
|
|
|
|
|
}else{
|
|
|
|
|
try {
|
|
|
|
|
String sidx = housingEstatePagination.getSidx();
|
|
|
|
|
String[] strs= sidx.split("_name");
|
|
|
|
|
HousingEstateEntity housingEstateEntity = new HousingEstateEntity();
|
|
|
|
|
Field declaredField = housingEstateEntity.getClass().getDeclaredField(strs[0]);
|
|
|
|
|
declaredField.setAccessible(true);
|
|
|
|
|
String value = declaredField.getAnnotation(TableField.class).value();
|
|
|
|
|
housingEstateQueryWrapper="asc".equals(housingEstatePagination.getSort().toLowerCase())?housingEstateQueryWrapper.orderByAsc(value):housingEstateQueryWrapper.orderByDesc(value);
|
|
|
|
|
} catch (NoSuchFieldException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if("0".equals(dataType)){
|
|
|
|
|
if((total>0 && AllIdList.size()>0) || total==0){
|
|
|
|
|
Page<HousingEstateEntity> page=new Page<>(housingEstatePagination.getCurrentPage(), housingEstatePagination.getPageSize());
|
|
|
|
|
IPage<HousingEstateEntity> userIPage=this.page(page, housingEstateQueryWrapper);
|
|
|
|
|
return housingEstatePagination.setData(userIPage.getRecords(),userIPage.getTotal());
|
|
|
|
|
}else{
|
|
|
|
|
List<HousingEstateEntity> list = new ArrayList();
|
|
|
|
|
return housingEstatePagination.setData(list, list.size());
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
return this.list(housingEstateQueryWrapper);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
|
public HousingEstateEntity getInfo(String id){
|
|
|
|
|
QueryWrapper<HousingEstateEntity> queryWrapper=new QueryWrapper<>();
|
|
|
|
|