소스 검색

fix: 空指针问题

dongdong.xiang 3 주 전
부모
커밋
ab010a81ed
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      fs-service-system/src/main/java/com/fs/sop/service/impl/QwSopTempServiceImpl.java

+ 7 - 2
fs-service-system/src/main/java/com/fs/sop/service/impl/QwSopTempServiceImpl.java

@@ -7,6 +7,7 @@ import com.fs.common.annotation.DataSource;
 import com.fs.common.enums.DataSourceType;
 import com.fs.common.exception.base.BaseException;
 import com.fs.common.utils.PubFun;
+import com.fs.common.utils.StringUtils;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.FsUserCourse;
 import com.fs.course.domain.FsUserCourseVideo;
@@ -420,12 +421,16 @@ public class QwSopTempServiceImpl implements IQwSopTempService
     public QwSopTempDay selectRulesInfo(Long id) {
         QwSopTempDay day = qwSopTempDayService.info(id);
         List<QwSopTempRules> rulesList = qwSopTempRulesService.listByDayId(id);
-        if(!rulesList.isEmpty()){
+        if(CollectionUtils.isNotEmpty(rulesList)){
             List<QwSopTempContent> contentList = qwSopTempContentService.listByRulesIds(PubFun.listToNewList(rulesList, QwSopTempRules::getId));
             Map<Long, List<QwSopTempContent>> contentMap = PubFun.listToMapByGroupList(contentList, QwSopTempContent::getRulesId);
             rulesList.forEach(e -> {
                 List<QwSopTempContent> contents = contentMap.get(e.getId());
-                e.setSetting(contents.stream().map(c -> JSON.parseObject(c.getContent())).collect(Collectors.toList()));
+                if(CollectionUtils.isNotEmpty(contents)){
+                    e.setSetting(contents.stream()
+                            .filter(c-> c!=null && StringUtils.isNotBlank(c.getContent()))
+                            .map(c -> JSON.parseObject(c.getContent())).collect(Collectors.toList()));
+                }
             });
         }
         day.setList(rulesList);