diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java index 2eb2d275..cf34b88d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java @@ -161,7 +161,21 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardState()),"instr(concat(',',standard_state,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardState() + str,0); queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardCode()),"instr(concat(',',standard_code,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardCode() + str,0); queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getGradeClassification()),"instr(concat(',',grade_classification,','),concat(',','" + lawsHomeNormalSearchDTO.getGradeClassification() + str,0); - queryWrapper.orderByAsc("length(REPLACE(standard_name,'" + lawsHomeNormalSearchDTO.getSearchContent() + "',''))/length(standard_name)"); + StringBuilder order = new StringBuilder(); + for (int i = 0; i < searchContent.length; i++) { + if(i == 0){ + order.append("("); + } + order.append("length(REPLACE(standard_name,'").append(searchContent[i]).append("',''))"); + if(i != searchContent.length - 1){ + order.append(" + "); + } + if(i == searchContent.length - 1){ + order.append(")"); + } + } + + queryWrapper.orderByAsc(order + "/length(standard_name)"); queryWrapper.orderByAsc("standard_type_order"); queryWrapper.orderByAsc("standard_state_order"); queryWrapper.orderByDesc(IMPLEMENTATION_DATE);