管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-04-11 4bc6c32f168cd4b4fda77b3a628c0fcd99268ec5
src/main/java/com/lf/server/service/all/BaseQueryService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lf.server.entity.all.RedisCacheKey;
import com.lf.server.entity.all.StaticData;
import com.lf.server.entity.ctrl.IdNameEntity;
import com.lf.server.entity.ctrl.KeyValueEntity;
import com.lf.server.entity.ctrl.TabEntity;
@@ -18,10 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
@@ -67,7 +65,7 @@
            String express = str.substring(start + 1, end).trim().toLowerCase();
            String value = str.substring(end + 1).trim();
            addWrapper(wrapper, field, express, getObjectVal(value));
            addWrapper(wrapper, field, express, getObjectVal(express, value));
        }
    }
@@ -77,13 +75,15 @@
     * @param val 值
     * @return 对象
     */
    private Object getObjectVal(String val) {
    private Object getObjectVal(String express, String val) {
        if (StringHelper.isInteger(val)) {
            return Long.parseLong(val);
        }
        if (StringHelper.isNumeric(val)) {
            return Double.parseDouble(val);
        }
        if (StaticData.IN.equals(express)) {
            return val;
        }
        return val.replace("'", "");
@@ -127,11 +127,34 @@
                wrapper.le(field, val);
                break;
            case "in":
                wrapper.in(field, Arrays.asList(val.toString().split(",")));
                if (val.toString().contains(StaticData.SINGLE_QUOTES)) {
                    wrapper.in(field, getStringList(val.toString()));
                } else {
                    wrapper.in(field, getIntegerList(val.toString()));
                }
                break;
            default:
                break;
        }
    }
    /**
     * 获取字符串列表
     */
    private List<String> getStringList(String val) {
        return Arrays.asList(val.replace(StaticData.SINGLE_QUOTES, "").split(StaticData.COMMA));
    }
    /**
     * 获取整数列表
     */
    private List<Integer> getIntegerList(String val) {
        List<Integer> list = new ArrayList<>();
        for (String str : val.split(StaticData.COMMA)) {
            list.add(Integer.parseInt(str));
        }
        return list;
    }
    /**
@@ -147,9 +170,7 @@
            wkt = AesHelper.decrypt(wkt);
            Integer srid = getSrid((GeomBaseMapper) basicMapper);
            if (null != srid) {
                wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid));
            }
            wrapper.apply(String.format("ST_Intersects(ST_PolygonFromText('%s', %d), geom)", wkt, srid));
        }
    }
@@ -169,9 +190,10 @@
        }
        Integer srid = basicMapper.selectSrid(tab);
        if (srid != null) {
            redisService.put(key, srid, 5, TimeUnit.MINUTES);
        if (null == srid) {
            return StaticData.I4490;
        }
        redisService.put(key, srid, 5, TimeUnit.MINUTES);
        return srid;
    }
@@ -222,9 +244,6 @@
     */
    public void addBufferWrapper(GeomBaseMapper baseMapper, QueryWrapper wrapper, String wkt, double buffer) {
        Integer srid = getSrid(baseMapper);
        if (null == srid) {
            srid = 4490;
        }
        // buffer = buffer * 0.00000899928
        buffer = buffer / 1852 / 60;