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 dba636b2..4a7c940c 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("参数错误,未指定课程"); } @@ -260,51 +260,36 @@ public class CoursePortalApi extends ApiBaseController{ if(preview==null) { preview=true; } - -// StudyCourse sc = new StudyCourse(); -// sc.setCourseId(course.getId()); -// sc.setAid(aid); - log.debug("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid ); -// PageList rs1= studyCourseService.findPage(1,10, sc, OrderCondition.desc("id"),null); + log.error("---------------课程的受众------------ courseCrowdList = " + courseCrowdList); StudyCourse studyCourse = studyCourseService.findByCourseIdAndAid(course.getId(), aid); - log.debug("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); + log.error("--------------------------- studyCourse = " + studyCourse); + // 无受众 所有人可看 + // 此课程是否包含此aid用户 + // 例外情况判断 boolean pass = false; - if(!preview) { - log.debug("=--------- 开始查询受众信息 ---------------------------------aid = " + aid); - String token = request.getHeader("XBOE-Access-Token"); - log.debug("=--------- 获取token token = " + token); - if (!courseCrowdList.isEmpty()) { - 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(id + "=--------- 开始查询课程信息信息 ---------------------------------dynamicList = " + dynamicList);*/ - - - if (userIdList.contains(Long.parseLong(aid)) || !Objects.isNull(studyCourse)) { + if (!Objects.isNull(studyCourse)){ + pass = true; + } + if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty()) { + List audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组 + log.error("---------------参数------------ audienceList = " + audienceList); + for (CourseCrowd c : courseCrowdList) { + for (String audience :audienceList){ + if (c.getGroupId().equals(audience)) { pass = true; break; } } -// if (!pass) { -// //return badRequest("您无学习此课程的权限,请与管理员联系"); -// return wrap(JsonResponseStatus.NO_CONTENT, "您无学习此课程的权限,请与管理员联系",rs); -// } - - }else { - pass = true; + if (pass){ + break; + } } + }else { + pass = true; } - log.debug("=--------- 是否有权限查看此课程: " +pass); + + log.error("=--------- 是否有权限查看此课程: " +pass); List cclist=contentService.getByCourseId(id); List sectionlist=sectionService.getByCourseId(id); List teachers=courseService.findTeachersByCourseId(id); 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..62cc2810 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("无课程信息"); } @@ -164,27 +166,27 @@ public class StudyCourseApi extends ApiBaseController{ if(crowd!=null && crowd) { rs.put("crowds",courseCrowdList); } - + log.error("---------------课程的受众------------ courseCrowdList = " + courseCrowdList); StudyCourse studyCourse = service.findByCourseIdAndAid(course.getId(), aid); - log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse); + log.error("--------------------------- studyCourse = " + studyCourse); + // 无受众 所有人可看 + // 此课程是否包含此aid用户 + // 例外情况判断 boolean pass = false; - if (!courseCrowdList.isEmpty()) { - log.debug("=---studyIndex------ 开始查询受众信息 ---------------------------------"); - String token = request.getHeader("XBOE-Access-Token"); + if (!Objects.isNull(studyCourse)){ + pass = true; + } + if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty()) { + List audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组 + log.error("---------------参数------------ audienceList = " + audienceList); 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 (c.getGroupId().equals(audience)) { + pass = true; + break; + } + } + if (pass){ break; } }