mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-07 09:56:47 +08:00
案例萃取,案例浏览记录
This commit is contained in:
@@ -4,7 +4,8 @@ import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.lang.Opt;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.*;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||
import com.alibaba.nacos.shaded.com.google.gson.GsonBuilder;
|
||||
import com.xboe.api.vo.*;
|
||||
import com.xboe.module.course.vo.StudyCourseVo;
|
||||
import com.xboe.module.course.vo.TeacherInfoVo;
|
||||
@@ -14,19 +15,24 @@ import com.xboe.module.exam.entity.AloneExam;
|
||||
import com.xboe.module.exam.entity.ExamTest;
|
||||
import com.xboe.school.study.entity.StudyCourse;
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import com.xboe.system.user.entity.User;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ForkJoinPool;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ThirdApi {
|
||||
@@ -274,4 +280,35 @@ public class ThirdApi {
|
||||
}
|
||||
JSONUtil.toBean(resp, SyncExamScoreBean.class).success();
|
||||
}
|
||||
|
||||
public UserDynamicResult getAllUserdynamicList2(UserdynamicParam userdynamicParam, String token) {
|
||||
String s = buildFormData(userdynamicParam);
|
||||
String resp = Optional.ofNullable(HttpRequest
|
||||
.post(userdynamicListUrl)
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.body(s)
|
||||
.header("XBOE-Access-Token", token)
|
||||
.execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
|
||||
DynamicBean dynamicBean = JSONUtil.toBean(resp, DynamicBean.class);
|
||||
UserDynamicResult userdynamicResult = dynamicBean.getResult();
|
||||
return userdynamicResult;
|
||||
}
|
||||
|
||||
private String buildFormData(UserdynamicParam param) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
try {
|
||||
builder.append("pageIndex=").append(URLEncoder.encode(param.getPageIndex().toString(), "UTF-8"));
|
||||
|
||||
builder.append("&pageSize=").append(URLEncoder.encode(param.getPageSize().toString(), "UTF-8"));
|
||||
builder.append("&contentType=").append(URLEncoder.encode(param.getContentType().toString(), "UTF-8"));
|
||||
builder.append("&aid=").append(URLEncoder.encode(param.getAid().toString(), "UTF-8"));
|
||||
if (param.getHidden() != null) {
|
||||
builder.append("&hidden=").append(URLEncoder.encode(param.getHidden(), "UTF-8"));
|
||||
}
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,14 +11,10 @@ import com.xboe.module.boecase.dao.CasesMajorTypeDao;
|
||||
import com.xboe.module.boecase.dto.*;
|
||||
import com.xboe.module.boecase.entity.CasesMajorType;
|
||||
import com.xboe.module.boecase.service.ICasesRecommendPushRecordService;
|
||||
import com.xboe.module.boecase.vo.CaseExportVo;
|
||||
import com.xboe.module.boecase.vo.CaseRankingVo;
|
||||
import com.xboe.module.boecase.vo.CasesQueryRecommendRankVo;
|
||||
import com.xboe.module.boecase.vo.FavoriteCaseOfIndexVo;
|
||||
import com.xboe.module.boecase.vo.*;
|
||||
import com.xboe.module.dict.entity.DictItem;
|
||||
import com.xboe.module.excel.ExportsExcelSenderUtil;
|
||||
|
||||
import com.xboe.module.interaction.dto.FavoriteCaseDto;
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import com.xboe.system.user.entity.User;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -39,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -752,5 +749,14 @@ public class CasesApi extends ApiBaseController {
|
||||
return success(casesList);
|
||||
}
|
||||
|
||||
@GetMapping("/browsingHistory")
|
||||
public JsonResponse<PageList<CasesBrowsingHistoryVo>> browsingHistory(@RequestParam(required = false,defaultValue = "1") Integer pageIndex,
|
||||
@RequestParam(required = false,defaultValue = "5") Integer pageSize,
|
||||
HttpServletRequest request) {
|
||||
String accountId = this.getCurrent().getAccountId();
|
||||
PageList<CasesBrowsingHistoryVo> casesList = casesService.browsingHistory(pageIndex,pageSize,accountId,request);
|
||||
return success(casesList);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,12 +4,14 @@ import com.xboe.common.PageList;
|
||||
import com.xboe.core.CurrentUser;
|
||||
import com.xboe.module.boecase.dto.*;
|
||||
import com.xboe.module.boecase.entity.Cases;
|
||||
import com.xboe.module.boecase.vo.CasesBrowsingHistoryVo;
|
||||
import com.xboe.module.boecase.vo.CaseRankingVo;
|
||||
import com.xboe.module.boecase.vo.CasesQueryRecommendRankVo;
|
||||
import com.xboe.module.boecase.vo.FavoriteCaseOfIndexVo;
|
||||
import com.xboe.module.dict.entity.DictItem;
|
||||
import com.xboe.school.vo.CasesVo;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.transaction.Transactional;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
@@ -133,5 +135,7 @@ public interface ICasesService{
|
||||
List<Cases> queryPopularityOfMajor(Integer pageSize, Long majorId, LocalDateTime month, String accountId);
|
||||
|
||||
PageList<FavoriteCaseOfIndexVo> queryFavoriteCaseOfIndex(Integer pageIndex, Integer pageSize, String accountId);
|
||||
|
||||
PageList<CasesBrowsingHistoryVo> browsingHistory(Integer pageIndex, Integer pageSize, String accountId, HttpServletRequest request);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,10 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.api.vo.UserDynamic;
|
||||
import com.xboe.api.vo.UserDynamicResult;
|
||||
import com.xboe.api.vo.UserdynamicParam;
|
||||
import com.xboe.common.OrderCondition;
|
||||
import com.xboe.common.OrderDirection;
|
||||
import com.xboe.common.PageList;
|
||||
@@ -18,10 +22,7 @@ import com.xboe.module.boecase.dao.*;
|
||||
import com.xboe.module.boecase.dto.*;
|
||||
import com.xboe.module.boecase.entity.*;
|
||||
import com.xboe.module.boecase.service.ICasesService;
|
||||
import com.xboe.module.boecase.vo.CaseRankingVo;
|
||||
import com.xboe.module.boecase.vo.CaseViewRankingItemVo;
|
||||
import com.xboe.module.boecase.vo.CasesQueryRecommendRankVo;
|
||||
import com.xboe.module.boecase.vo.FavoriteCaseOfIndexVo;
|
||||
import com.xboe.module.boecase.vo.*;
|
||||
import com.xboe.module.dict.dao.SysDictionaryDao;
|
||||
import com.xboe.module.dict.entity.DictItem;
|
||||
import com.xboe.module.interaction.entity.Favorites;
|
||||
@@ -40,6 +41,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.lang.reflect.Array;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
@@ -80,6 +82,9 @@ public class CasesServiceImpl implements ICasesService {
|
||||
@Resource
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
|
||||
@Resource
|
||||
private ThirdApi thirdApi;
|
||||
|
||||
/**
|
||||
* 案例分页查询,用于门户的查询
|
||||
*/
|
||||
@@ -1416,4 +1421,39 @@ public class CasesServiceImpl implements ICasesService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageList<CasesBrowsingHistoryVo> browsingHistory(Integer pageIndex, Integer pageSize, String accountId, HttpServletRequest request) {
|
||||
UserdynamicParam userdynamicParam = new UserdynamicParam();
|
||||
userdynamicParam.setPageIndex(pageIndex);
|
||||
userdynamicParam.setPageSize(pageSize);
|
||||
userdynamicParam.setContentType(3);
|
||||
userdynamicParam.setAid(Long.valueOf(accountId));
|
||||
userdynamicParam.setHidden("");
|
||||
|
||||
String token = request.getHeader("Xboe-Access-Token");
|
||||
if (StringUtils.isEmpty(token)) {
|
||||
token = request.getHeader("token");
|
||||
}
|
||||
UserDynamicResult userDynamicResult = thirdApi.getAllUserdynamicList2(userdynamicParam, token);
|
||||
|
||||
List<UserDynamic> allUserdynamicList = userDynamicResult.getList();
|
||||
List<String> collect = allUserdynamicList.stream().map(UserDynamic::getContentId).distinct().collect(Collectors.toList());
|
||||
List<Cases> caseList = this.ids(collect, accountId);
|
||||
Map<String, Cases> map = caseList.stream().collect(Collectors.toMap(Cases::getId, cases -> cases));
|
||||
|
||||
List<CasesBrowsingHistoryVo> batchHistoryVoList = allUserdynamicList.stream().map(userDynamic -> {
|
||||
CasesBrowsingHistoryVo browsingHistoryVo = new CasesBrowsingHistoryVo();
|
||||
BeanUtils.copyProperties(userDynamic, browsingHistoryVo);
|
||||
BeanUtils.copyProperties(map.get(userDynamic.getContentId()), browsingHistoryVo);
|
||||
return browsingHistoryVo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
PageList<CasesBrowsingHistoryVo> pageList = new PageList<>();
|
||||
pageList.setList(batchHistoryVoList);
|
||||
pageList.setCount(userDynamicResult.getCount());
|
||||
pageList.setPageSize(userDynamicResult.getPageSize());
|
||||
|
||||
return pageList;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.xboe.module.boecase.vo;
|
||||
|
||||
import com.xboe.module.boecase.entity.Cases;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class CasesBrowsingHistoryVo extends Cases{
|
||||
|
||||
|
||||
|
||||
private static final long serialVersionUID = -2536708166103273425L;
|
||||
|
||||
/**
|
||||
* 事件动态
|
||||
*/
|
||||
public final static int TYPE_EVENT=1;
|
||||
|
||||
/**
|
||||
* 其它动态
|
||||
*/
|
||||
public final static int TYPE_OTHER=9;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
* 1表事件动态 2表非事件动态
|
||||
* */
|
||||
// private Integer type;
|
||||
|
||||
/**
|
||||
* 动态的标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 事件的key
|
||||
* */
|
||||
private String eventKey;
|
||||
|
||||
/**
|
||||
* 事件id
|
||||
* */
|
||||
private String eventId;
|
||||
|
||||
/**
|
||||
* 动态月份
|
||||
* yyyyMM
|
||||
* */
|
||||
private Integer month;
|
||||
|
||||
/**
|
||||
* 内容类型
|
||||
* */
|
||||
private String contentType;
|
||||
|
||||
/**
|
||||
* 内容id
|
||||
* */
|
||||
private String contentId;
|
||||
|
||||
/**
|
||||
* 动态内容
|
||||
* */
|
||||
private String contentInfo;
|
||||
|
||||
/**
|
||||
* 用户自定义信息
|
||||
*/
|
||||
private String cusInfo;
|
||||
|
||||
/**
|
||||
* 动态人id
|
||||
* */
|
||||
private String aid;
|
||||
|
||||
/**
|
||||
* 用户的名称
|
||||
*/
|
||||
private String aname;
|
||||
/**
|
||||
* 是否隐藏
|
||||
* */
|
||||
private Boolean hidden;
|
||||
private LocalDateTime eventTime;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user