suerprisePlus
2024-09-27 53ae0215de46b9bb68d9aa5d5a3e83dde7cb3986
src/main/java/com/yb/service/XzService.java
@@ -7,6 +7,7 @@
import com.yb.helper.RsaHelper;
import com.yb.util.EntityHttpUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.locationtech.jts.geom.*;
@@ -35,12 +36,27 @@
    private EntityHttpUtil entityHttpUtil;
    @Autowired
    private AgentService agentService;
    int num = 40;
    // 关键字查询
    public String getQueryFiled(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
        String querySQL = "";
        String valSql = " like '%" + place + "%'";
        String querySQL = getQuerySql(valSql, filed);
        String key = getPublickey();
        String query = getQuerySql(valSql, filed);
//        int num = 40;
        if (query.length() > num) {
            String[] sbuString = getSqlSubStr(query, num);
            for (int w = 0; w < sbuString.length; w++) {
                if (w > 0) {
                    querySQL += ",";
                }
                querySQL += RsaHelper.encrypt(key, sbuString[w]);
            }
        } else {
            querySQL += RsaHelper.encrypt(key, query);
        }
        System.out.println("rec getQueryFiled:" + querySQL);
        HashMap formData = getHashMap(layerId, dbId, "1", "0", querySQL, null);
        String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData);
        System.out.println("rec getQueryFiled:" + jsonString);
@@ -53,32 +69,53 @@
        return "";
    }
    private String getQuerySql(String valSql, String filed) throws Exception {
        String key = getPublickey();
        String querySQL = "";
    public String[] getSqlSubStr(String str, int chunkSize) {
        int numChunks = (str.length() + chunkSize - 1) / chunkSize;
        String[] chunks = new String[numChunks];
        for (int i = 0; i < numChunks; i++) {
            int start = i * chunkSize;
            int end = Math.min(start + chunkSize, str.length());
            chunks[i] = str.substring(start, end);
        }
        return chunks;
    }
    public String getQuerySql(String valSql, String filed) {
        String query = "";
        if (filed.indexOf(",") > -1) {
            String[] fileds = filed.split(",");
            for (int i = 0; i < fileds.length; i++) {
                String name = fileds[i];
                if (i > 0) {
                    querySQL += ";";
                    query += " or ";
                }
                String Sql = name + valSql + "";
                querySQL += RsaHelper.encrypt(key, Sql);
                query += name + valSql;
            }
            query += "";
        } else {
            String Sql = filed + valSql + "";
            querySQL = RsaHelper.encrypt(key, Sql);
            query = filed + valSql + "";
        }
        return querySQL;
        return query;
    }
    // 关键字查询
    public String getQueryEntity(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception {
        String valSql = " like '%" + place + "%'";
        String querySQL = getQuerySql(valSql, filed);
        String key = getPublickey();
        String query = getQuerySql(valSql, filed);
        String querySQL = "";
//        int num = 40;
        if (query.length() > num) {
            String[] sbuString = getSqlSubStr(query, num);
            for (int w = 0; w < sbuString.length; w++) {
                if (w > 0) {
                    querySQL += ",";
                }
                querySQL += RsaHelper.encrypt(key, sbuString[w]);
            }
        } else {
            querySQL += RsaHelper.encrypt(key, query);
        }
        HashMap formData = getHashMap(layerId, dbId, "1", "100", querySQL, null);
        formData.put("querytype", "entity");
        String jsonString1 = entityHttpUtil.getPostMessage(queryEntity, formData);