zhongrj
2024-04-11 df2082cabc47f26f3aa884f49c63550b3fc1439b
es 数据同步bug 修复,解决实体新增时异常问题
2 files modified
51 ■■■■■ changed files
src/main/java/org/springblade/common/interceptor/DataSyncInterceptor.java 6 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java 45 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/interceptor/DataSyncInterceptor.java
@@ -98,15 +98,15 @@
                elasticsearchDocumentService.addArticle(esParam, entity);
            }
            if (tableName.equals("jczz_place")) {
                PlaceVO entity = (PlaceVO) parameter;
                PlaceEntity entity = (PlaceEntity) parameter;
                elasticsearchDocumentService.addPlace(esParam, entity);
            }
            if (tableName.equals("jczz_house")) {
                HouseVO entity = (HouseVO) parameter;
                HouseEntity entity = (HouseEntity) parameter;
                elasticsearchDocumentService.addHouse(esParam, entity);
            }
            if (tableName.equals("jczz_household")) {
                HouseholdVO entity = (HouseholdVO) parameter;
                HouseholdEntity entity = (HouseholdEntity) parameter;
                elasticsearchDocumentService.addHousehold(esParam, entity);
            }
        }
src/main/java/org/springblade/es/service/ElasticsearchDocumentService.java
@@ -342,11 +342,8 @@
     * @param place
     */
    @Async
    public void addPlace(EsParam esParam, PlaceVO place) {
    public void addPlace(EsParam esParam, PlaceEntity place) {
        if (elasticsearchSync) {
            if (!Strings.isBlank(place.getCommunityCode())) {
                place.setCommunityCode(placeService.getCommunityCode(place.getId()));
            }
            try {
                indexDocument(esParam.getIndexName(),
                    "tableId", place.getId().toString(),
@@ -356,7 +353,7 @@
                    "phone", place.getPrincipalPhone(),
                    "idCard", place.getPrincipalIdCard(),
                    "content", place.getLocation(),
                    "communityCode", place.getCommunityCode()
                    "communityCode", placeService.getCommunityCode(place.getId())
                );
            } catch (IOException e) {
                e.printStackTrace();
@@ -371,11 +368,8 @@
     * @param house
     */
    @Async
    public void addHouse(EsParam esParam, HouseVO house) {
    public void addHouse(EsParam esParam, HouseEntity house) {
        if (elasticsearchSync) {
            if (!Strings.isBlank(house.getCommunityCode())) {
                house.setCommunityCode(houseService.getCommunityCode(house.getId()));
            }
            try {
                indexDocument(esParam.getIndexName(),
                    "tableId", house.getId().toString(),
@@ -385,7 +379,7 @@
                    "phone", null,
                    "idCard", null,
                    "content", null,
                    "communityCode", house.getCommunityCode()
                    "communityCode", houseService.getCommunityCode(house.getId())
                );
            } catch (IOException e) {
                e.printStackTrace();
@@ -400,11 +394,8 @@
     * @param household
     */
    @Async
    public void addHousehold(EsParam esParam, HouseholdVO household) {
    public void addHousehold(EsParam esParam, HouseholdEntity household) {
        if (elasticsearchSync) {
            if (!Strings.isBlank(household.getCommunityCode())) {
                household.setCommunityCode(householdService.getCommunityCode(household.getId()));
            }
            try {
                indexDocument(esParam.getIndexName(),
                    "tableId", household.getId().toString(),
@@ -413,8 +404,8 @@
                    "name", household.getName(),
                    "phone", household.getPhoneNumber(),
                    "idCard", household.getIdCard(),
                    "content", household.getAddress(),
                    "communityCode", household.getCommunityCode()
                    "content", household.getCurrentAddress(),
                    "communityCode", householdService.getCommunityCode(household.getId())
                );
            } catch (IOException e) {
                e.printStackTrace();
@@ -473,17 +464,33 @@
            BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//            boolQueryBuilder.should(QueryBuilders.matchQuery("content", esParam.getSearchKey()));
//            boolQueryBuilder.should(QueryBuilders.matchQuery("name", esParam.getSearchKey()));
            boolQueryBuilder.should(QueryBuilders.matchQuery("title", esParam.getSearchKey()));
            boolQueryBuilder.must(QueryBuilders.matchQuery("title", esParam.getSearchKey()));
//            boolQueryBuilder.should(QueryBuilders.matchQuery("location", esParam.getSearchKey()));
//            boolQueryBuilder.should(QueryBuilders.matchQuery("phone", esParam.getSearchKey()));
//            boolQueryBuilder.should(QueryBuilders.matchQuery("idCard", esParam.getSearchKey()));
            if (!Strings.isBlank(esParam.getTableName())) {
                boolQueryBuilder.must(QueryBuilders.matchQuery("tableName", esParam.getTableName()));
            }
            String communityCode = SpringUtils.getRequestParam("communityCode");
            if (!Strings.isBlank(communityCode)) {
                boolQueryBuilder.must(QueryBuilders.matchQuery("communityCode", communityCode));
            }
            if (!Strings.isBlank(esParam.getTableName())) {
                boolQueryBuilder.must(QueryBuilders.matchQuery("tableName", esParam.getTableName()));
            String roleName = SpringUtils.getRequestParam("roleName");
            if (!Strings.isBlank(roleName)){
                if (roleName.equals("wgy") || roleName.equals("mj")){
                    // 不查公告
                    boolQueryBuilder.mustNot(QueryBuilders.matchQuery("tableName", "jczz_article"));
                }
                if (roleName.equals("inhabitant")){
                    // 只查公告
                    boolQueryBuilder.must(QueryBuilders.matchQuery("tableName", "jczz_article"));
                }
                if (roleName.equals("wzcj")){
                    // 只查场所
                    boolQueryBuilder.must(QueryBuilders.matchQuery("tableName", "jczz_place"));
                }
            }
            boolQueryBuilder.minimumShouldMatch(1);
            searchSourceBuilder.query(boolQueryBuilder);