diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java index bffa8f81..2d3c933f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CoursePortalApi.java @@ -234,7 +234,7 @@ public class CoursePortalApi extends ApiBaseController{ * @return */ @RequestMapping(value="/detail",method = {RequestMethod.GET,RequestMethod.POST}) - public JsonResponse> detail(String id,Boolean addView,Boolean crowd,Boolean preview, HttpServletRequest request){ + public JsonResponse> detail(String id,Boolean addView,Boolean crowd,Boolean preview, HttpServletRequest request,String audiences){ if(StringUtils.isBlank(id)) { return badRequest("参数错误,未指定课程"); } @@ -262,20 +262,25 @@ public class CoursePortalApi extends ApiBaseController{ } StudyCourse studyCourse = studyCourseService.findByCourseIdAndAid(course.getId(), aid); + // 无受众 所有人可看 + // 此课程是否包含此aid用户 + // 例外情况判断 boolean pass = false; - if(!preview) { - if (!courseCrowdList.isEmpty()) { - for (CourseCrowd c : courseCrowdList) { - //同一个受众,同一个只会有一条记录,所以这里就直接查询了 - List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - if (hasItem != null && !hasItem.isEmpty() || !Objects.isNull(studyCourse)) { + if (!courseCrowdList.isEmpty()) { + List audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组 + for (CourseCrowd c : courseCrowdList) { + for (String audience :audienceList){ + if (Objects.isNull(studyCourse) || c.getGroupId().equals(audience)) { pass = true; break; } } - }else { - pass = true; + if (pass){ + break; + } } + }else { + pass = true; } log.debug("=--------- 是否有权限查看此课程: " +pass); diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index 8022fc88..47848b18 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -4,6 +4,7 @@ import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import cn.hutool.core.util.ArrayUtil; import com.xboe.api.ThirdApi; import com.xboe.api.vo.AuditList; import com.xboe.api.vo.AuditListParam; @@ -11,6 +12,7 @@ import com.xboe.api.vo.UserDynamic; import com.xboe.api.vo.UserdynamicParam; import com.xboe.module.usergroup.entity.UserGroupItem; import com.xboe.module.usergroup.service.IUserGroupService; +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -146,7 +148,7 @@ public class StudyCourseApi extends ApiBaseController{ * @return */ @RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST}) - public JsonResponse> loadDetail(String cid,Boolean addView,Boolean crowd, HttpServletRequest request){ + public JsonResponse> loadDetail(String cid,Boolean addView,Boolean crowd, HttpServletRequest request,String audiences){ if(StringUtils.isBlank(cid)){ return error("无课程信息"); } @@ -166,25 +168,21 @@ public class StudyCourseApi extends ApiBaseController{ } StudyCourse studyCourse = service.findByCourseIdAndAid(course.getId(), aid); - log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); + + // 无受众 所有人可看 + // 此课程是否包含此aid用户 + // 例外情况判断 boolean pass = false; if (!courseCrowdList.isEmpty()) { - log.debug("=---studyIndex------ 开始查询受众信息 ---------------------------------"); - String token = request.getHeader("XBOE-Access-Token"); + List audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组 for (CourseCrowd c : courseCrowdList) { - //同一个受众,同一个只会有一条记录,所以这里就直接查询了 -// List hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid); - log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId()); - List allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token); - List userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList()); - log.debug("=--------- allAudienceList: " +allAudienceList); - - /*List userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token); - log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList); - List dynamicList = userDynamicList.stream().map(UserDynamic::getContentId).map(Long::parseLong).collect(Collectors.toList()); - log.error(cid + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList);*/ - if (userIdList.contains(Long.parseLong(aid)) || !Objects.isNull(studyCourse)) { - pass = true; + for (String audience :audienceList){ + if (Objects.isNull(studyCourse) || c.getGroupId().equals(audience)) { + pass = true; + break; + } + } + if (pass){ break; } }