Selaa lähdekoodia

修复搜索人才异常BUG

DESKTOP-VAEGFGM\zqc 3 kuukautta sitten
vanhempi
commit
4de819605b

+ 25 - 12
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java

@@ -202,11 +202,15 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
         query.eqIfPresent(PersonInfoDO::getExpType, reqVO.getExpType());
         query.eqIfPresent(PersonInfoDO::getType, reqVO.getType());
 
-        query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
-                .or()
-                .in(CollUtil.isNotEmpty(reqVO.getAreaIds()), JobInterestedDO::getWorkAreaId, reqVO.getAreaIds())
+        query.and(CollUtil.isNotEmpty(reqVO.getPositionIds()) || CollUtil.isNotEmpty(reqVO.getAreaIds()) ,qw->qw.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
+                .or(CollUtil.isNotEmpty(reqVO.getPositionIds()))
+                .in(CollUtil.isNotEmpty(reqVO.getAreaIds()), JobInterestedDO::getWorkAreaId, reqVO.getAreaIds()))
         ;
-
+        // 2504414 反馈BUG后修改前代码
+//        query.in(CollUtil.isNotEmpty(reqVO.getPositionIds()), JobInterestedDO::getPositionId, reqVO.getPositionIds())
+//                .or()
+//               .in(CollUtil.isNotEmpty(reqVO.getAreaIds()), JobInterestedDO::getWorkAreaId, reqVO.getAreaIds())
+//        ;
         if (CollUtil.isNotEmpty(reqVO.getAreaIds())) {
             StringBuilder jsonContainsClause = new StringBuilder();
             for (Long areaId : reqVO.getAreaIds()) {
@@ -217,15 +221,24 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
             }
             query.apply("(" + jsonContainsClause.toString() + ")");
         }
+        query.and(StringUtils.isNotEmpty(reqVO.getContent()),
+                qw->qw.like(PersonInfoDO::getName, reqVO.getContent())
+                        .or()
+                        .like(PersonInfoDO::getTagList, reqVO.getContent())
+                        .or()
+                        .like(PersonInfoDO::getAdvantage, reqVO.getContent())
+                        .or()
+                        .like(PersonInfoDO::getForeignName, reqVO.getContent())
+        );
+//     2504414 反馈BUG后修改前代码
+//     query.likeIfPresent(PersonInfoDO::getName, reqVO.getContent())
+//                .or()
+//                .likeIfExists(PersonInfoDO::getTagList, reqVO.getContent())
+//                .or()
+//                .likeIfExists(PersonInfoDO::getAdvantage, reqVO.getContent())
+//                .or()
+//                .likeIfExists(PersonInfoDO::getForeignName, reqVO.getContent());
 
-        // 或者条件
-        query.likeIfPresent(PersonInfoDO::getName, reqVO.getContent())
-                .or()
-                .likeIfExists(PersonInfoDO::getTagList, reqVO.getContent())
-                .or()
-                .likeIfExists(PersonInfoDO::getAdvantage, reqVO.getContent())
-                .or()
-                .likeIfExists(PersonInfoDO::getForeignName, reqVO.getContent());
 
         query.orderByDesc(PersonInfoDO::getUpdateTime);