Merge remote-tracking branch 'boe/dev0731' into dev0731

This commit is contained in:
yujicun
2023-08-15 13:26:55 +08:00
3 changed files with 46 additions and 58 deletions

View File

@@ -354,7 +354,8 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
}
//加上Source判断是为了应对后台查询后台查询时不需要权限但是需要指定数据来源
/* 2023-08-08 不管是否是此课程受众 ,都可以搜索到 但点进课程详情提示无权限
//加上Source判断是为了应对后台查询后台查询时不需要权限但是需要指定数据来源
if(params.getSource()==null || params.getSource()==0 ) {
//受众权限条件,必须是有受众的课程并且受众条件不为空
if(params.getAudiences()!=null && params.getAudiences().length>0) {
@@ -377,7 +378,7 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
//如果当前用户无受众,只能查询未设置受众的课程
boolQuery.must(QueryBuilders.termQuery("isSetAudience",0));
}
}
}*/
//在哪端显示
if(params.getDevice()!=null) {

View File

@@ -234,7 +234,7 @@ public class CoursePortalApi extends ApiBaseController{
* @return
*/
@RequestMapping(value="/detail",method = {RequestMethod.GET,RequestMethod.POST})
public JsonResponse<Map<String,Object>> detail(String id,Boolean addView,Boolean crowd,Boolean preview, HttpServletRequest request){
public JsonResponse<Map<String,Object>> 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<StudyCourse> 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.error("=--------- 开始查询受众信息 ---------------------------------aid = " + aid);
String token = request.getHeader("XBOE-Access-Token");
log.debug("=--------- 获取token token = " + token);
if (!courseCrowdList.isEmpty()) {
for (CourseCrowd c : courseCrowdList) {
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
// List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId());
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token);
List<Long> userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList());
log.debug("=--------- allAudienceList: " +allAudienceList);
/*
List<UserDynamic> userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token);
log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList);
List<Long> 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<String> 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<CourseContent> cclist=contentService.getByCourseId(id);
List<CourseSection> sectionlist=sectionService.getByCourseId(id);
List<CourseTeacher> teachers=courseService.findTeachersByCourseId(id);

View File

@@ -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<Map<String,Object>> loadDetail(String cid,Boolean addView,Boolean crowd, HttpServletRequest request){
public JsonResponse<Map<String,Object>> 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<String> audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组
log.error("---------------参数------------ audienceList = " + audienceList);
for (CourseCrowd c : courseCrowdList) {
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
// List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId());
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token);
List<Long> userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList());
log.debug("=--------- allAudienceList: " +allAudienceList);
/*List<UserDynamic> userDynamicList = thirdApi.getAllUserdynamicList(UserdynamicParam.builder().aid(Long.parseLong(aid)).pageSize(1000).pageIndex(1).build(), token);
log.error("=--------- 开始查询课程信息信息 ---------------------------------userDynamicList = " + userDynamicList);
List<Long> 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;
}
}