mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-07 01:46:47 +08:00
Merge branch 'xiaozhequ'
# Conflicts: # servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java # servers/boe-server-all/src/main/resources/application.properties
This commit is contained in:
@@ -126,4 +126,19 @@ public class CourseFullText {
|
||||
*/
|
||||
private List<String> keywordsList;
|
||||
|
||||
|
||||
/**
|
||||
* 课程创建人id
|
||||
*/
|
||||
private String sysCreateAid;
|
||||
|
||||
/**
|
||||
* 课程创建人id
|
||||
*/
|
||||
private String[] sysCreateAids;
|
||||
|
||||
/**
|
||||
* 受众
|
||||
*/
|
||||
private String audience;
|
||||
}
|
||||
|
||||
@@ -354,31 +354,31 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
|
||||
}
|
||||
|
||||
|
||||
/* 2023-08-08 不管是否是此课程受众 ,都可以搜索到 但点进课程详情提示无权限
|
||||
/* 2023-08-08 不管是否是此课程受众 ,都可以搜索到 但点进课程详情提示无权限*/
|
||||
//加上Source判断,是为了应对后台查询,后台查询时,不需要权限,但是需要指定数据来源
|
||||
if(params.getSource()==null || params.getSource()==0 ) {
|
||||
//受众权限条件,必须是有受众的课程并且受众条件不为空
|
||||
if(params.getAudiences()!=null && params.getAudiences().length>0) {
|
||||
//if(StringUtils.isNotBlank(params.getAudience())) {
|
||||
BoolQueryBuilder audience= QueryBuilders.boolQuery();
|
||||
audience.should(QueryBuilders.termQuery("isSetAudience",0));
|
||||
|
||||
// audience.should(QueryBuilders.termQuery("isSetAudience",0));
|
||||
|
||||
BoolQueryBuilder has= QueryBuilders.boolQuery();
|
||||
//String[] ids=params.getAudience().split(",");
|
||||
has.must(QueryBuilders.termQuery("isSetAudience",1));
|
||||
//has.must(QueryBuilders.termsQuery("audience", ids));
|
||||
has.must(QueryBuilders.termsQuery("audiences", params.getAudiences()));
|
||||
audience.should(has);
|
||||
|
||||
|
||||
audience.minimumShouldMatch(1);
|
||||
|
||||
|
||||
boolQuery.filter(audience);
|
||||
//log.error("audience="+audience.toString());
|
||||
}else {
|
||||
//如果当前用户无受众,只能查询未设置受众的课程
|
||||
boolQuery.must(QueryBuilders.termQuery("isSetAudience",0));
|
||||
// boolQuery.must(QueryBuilders.termQuery("isSetAudience",0));
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
//在哪端显示
|
||||
if(params.getDevice()!=null) {
|
||||
@@ -611,6 +611,11 @@ public class CourseElasticsearchImpl implements ICourseFullTextSearch{
|
||||
if(boolQuery.hasClauses()) {
|
||||
sourceBuilder.query(boolQuery);
|
||||
}
|
||||
// 查出例外人员
|
||||
BoolQueryBuilder builder= QueryBuilders.boolQuery();
|
||||
builder.should(QueryBuilders.termsQuery("sysCreateAid",paras.getSysCreateAids()));
|
||||
sourceBuilder.query(builder);
|
||||
|
||||
|
||||
//排序
|
||||
if(StringUtils.isBlank(paras.getKeywords()) && paras.getOrderType()!=3) {
|
||||
|
||||
@@ -5,14 +5,20 @@ import cn.hutool.core.lang.Opt;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.xboe.api.vo.*;
|
||||
import com.xboe.module.dict.entity.DictDto;
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import com.xboe.system.user.entity.User;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ForkJoinPool;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
@Service
|
||||
@@ -34,6 +40,27 @@ public class ThirdApi {
|
||||
@Value("${statApi.userdynamicList}")
|
||||
private String userdynamicListUrl;
|
||||
|
||||
@Autowired
|
||||
UserDao userDao;
|
||||
|
||||
@Value("${infrasApi.dict}")
|
||||
private String infarasApiUrl;
|
||||
|
||||
|
||||
|
||||
//获取例外人员的id
|
||||
public List<String> getUserId(){
|
||||
log.info("正在获取例外人员工号");
|
||||
// String s ="{\"show\":false,\"version\":\"1.1.0\",\"code\":200,\"msg\":\"请求成功!\",\"data\":{\"records\":[{\"id\":129,\"deleted\":null,\"createTime\":\"2023-10-16T10:03:25\",\"createId\":0,\"createName\":\"管理员\",\"updateTime\":\"2023-10-16T10:03:25\",\"updateId\":0,\"updateName\":\"管理员\",\"name\":\"李玉冰\",\"pid\":128,\"code\":\"00004409\",\"description\":null,\"value\":\"00004409\",\"img\":null,\"type\":1,\"level\":0,\"status\":0,\"sort\":0,\"children\":[]}],\"total\":0,\"size\":10,\"current\":1,\"orders\":[],\"id\":null,\"pid\":128,\"type\":1,\"status\":null,\"code\":null,\"name\":null,\"searchCount\":true,\"pages\":0},\"success\":true}";
|
||||
String s = Optional.ofNullable(HttpRequest.get(infarasApiUrl).execute() //"current",1,"type",1,"pid",128)
|
||||
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
List<DictDto> dictDtos = Opt.ofBlankAble(s).map(t -> JSONUtil.toBean(t, DictResult.class)).map(DictResult::getData).orElseThrow();
|
||||
List<String>userNo=new ArrayList<>();
|
||||
for (DictDto dictDto : dictDtos) {
|
||||
userNo.add(dictDto.getValue());
|
||||
}
|
||||
return userDao.getListByUserNos(userNo).stream().map(User::getId).collect(Collectors.toList());
|
||||
}
|
||||
@Value("${audience.getOrgUsers}")
|
||||
private String searchOrgUsersUrl;
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.xboe.api.vo;
|
||||
|
||||
import com.xboe.module.dict.entity.DictDto;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class DictResult {
|
||||
private Boolean show;
|
||||
private String version;
|
||||
private String code;
|
||||
private String msg;
|
||||
private List<DictDto> data;
|
||||
private String success;
|
||||
}
|
||||
@@ -3,7 +3,17 @@ package com.xboe.module.course.api;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.common.utils.StringUtil;
|
||||
import com.xboe.module.boecase.dao.CasesRecordDao;
|
||||
import com.xboe.old.dto.OrganizationDto;
|
||||
import com.xboe.system.organization.api.OrganizationApi;
|
||||
import com.xboe.system.organization.entity.Organization;
|
||||
import com.xboe.system.organization.service.IOrganizationService;
|
||||
import com.xboe.system.organization.service.impl.OrganizationServiceImpl;
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -29,6 +39,8 @@ import com.xboe.module.course.service.ICourseTeacherService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping(value="/xboe/m/course/fulltext")
|
||||
@@ -45,6 +57,11 @@ public class CourseFullTextApi extends ApiBaseController{
|
||||
|
||||
@Autowired(required = false)
|
||||
ICourseFullTextSearch fullTextSearch;
|
||||
@Resource
|
||||
IOrganizationService organizationService;
|
||||
|
||||
@Autowired
|
||||
ThirdApi thirdApi;
|
||||
|
||||
/**
|
||||
* 课程的初始化
|
||||
@@ -67,6 +84,8 @@ public class CourseFullTextApi extends ApiBaseController{
|
||||
for(Course c:clist) {
|
||||
CourseFullText cft=CourseToCourseFullText.convert(c);
|
||||
try {
|
||||
//添加创建人Id
|
||||
cft.setSysCreateAid(c.getSysCreateAid());
|
||||
//计算课程时长
|
||||
int duration=ccourseService.sumDurationByCourseId(c.getId());
|
||||
cft.setDuration(duration);
|
||||
@@ -193,7 +212,9 @@ public class CourseFullTextApi extends ApiBaseController{
|
||||
*/
|
||||
@PostMapping("/search")
|
||||
public JsonResponse<PageList<CourseFullText>> search(Pagination pager,CourseQueryDto dto,Integer minDuration,Integer maxDuration){
|
||||
|
||||
//获取例外人员id
|
||||
List<String> userId = thirdApi.getUserId();
|
||||
String userIds = String.join(",", userId);
|
||||
//只是查询已发布的
|
||||
dto.setPublish(true);
|
||||
if(this.fullTextSearch==null) {
|
||||
@@ -214,10 +235,12 @@ public class CourseFullTextApi extends ApiBaseController{
|
||||
paras.setTypes(dto.getTypes());//多个分类的情况
|
||||
//用户的companyId
|
||||
paras.setCompanyId(dto.getCompanyId());
|
||||
//paras.setAudience(dto.getAudiences());
|
||||
if(StringUtils.isNotBlank(dto.getAudiences())) {
|
||||
paras.setAudiences(dto.getAudiences().split(","));
|
||||
}
|
||||
if(StringUtils.isNotBlank(userIds)) {
|
||||
paras.setSysCreateAids(userIds.split(","));
|
||||
}
|
||||
|
||||
paras.setOpenCourse(dto.getOpenCourse());
|
||||
if(StringUtils.isNotBlank(dto.getOrderField())) {
|
||||
|
||||
@@ -305,7 +305,7 @@ public class CoursePortalApi extends ApiBaseController{
|
||||
}
|
||||
|
||||
rs.put("isCrowd",pass);
|
||||
rs.put("contents",cclist);
|
||||
rs.put("contents", cclist);
|
||||
rs.put("sections",sectionlist);
|
||||
rs.put("teachers",teachers);
|
||||
//查询课程
|
||||
|
||||
@@ -114,4 +114,9 @@ public class CourseQueryDto {
|
||||
|
||||
private String refId;
|
||||
private String refType;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private String sysCreateAids;
|
||||
}
|
||||
|
||||
@@ -96,8 +96,9 @@ public class PublishCourseUtil {
|
||||
}else {
|
||||
cft.setIsSetAudience(0);//无受众
|
||||
}
|
||||
|
||||
//String fullTextId="";//全文检索返回的id,用于移除时处理
|
||||
// 添加课程创建人Id
|
||||
cft.setSysCreateAid(c.getSysCreateAid());
|
||||
String fullTextId="";//全文检索返回的id,用于移除时处理
|
||||
String newFullId=fullTextSearch.republish(ICourseFullTextSearch.DEFAULT_INDEX_NAME, cft, c.getFullTextId());
|
||||
if(StringUtils.isNotBlank(c.getFullTextId())) {
|
||||
if(StringUtils.isNotBlank(newFullId) && !c.getFullTextId().equals(newFullId)) {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
spring.profiles.active= @profileActive@
|
||||
|
||||
spring.profiles.active=@profileActive@
|
||||
spring.application.name=boe-server-all
|
||||
server.port=9090
|
||||
server.servlet.session.timeout=30m
|
||||
@@ -66,4 +65,6 @@ audience.usersByAudienceList=${boe.domain}/userbasic/audience/memberList
|
||||
#获取用户学习课程数据
|
||||
statApi.userdynamicList=${boe.domain}/statApi/xboe/m/stat/userdynamic/list
|
||||
#用户中心根据组织id查询用户信息接口(递归子组织)
|
||||
audience.getOrgUsers=${boe.domain}/userbasic/user/getOrgUsers
|
||||
audience.getOrgUsers=${boe.domain}/userbasic/user/getOrgUsers
|
||||
#获取工号
|
||||
infrasApi.dict=${boe.domain}/infrasApi/dict/getCourseException
|
||||
Reference in New Issue
Block a user