mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 11:56:50 +08:00
Merge remote-tracking branch 'boe/dev0731' into dev0731
This commit is contained in:
@@ -31,29 +31,38 @@ public class ThirdApi {
|
||||
@Value("${userBasic.searchUserList}")
|
||||
private String searchUserListUrl;
|
||||
|
||||
@Value("${statApi.userdynamicList}")
|
||||
private String userdynamicListUrl;
|
||||
|
||||
public List<UserInfoList> getAllUserList(UserListParam userListParam, String token) {
|
||||
|
||||
public List<UserInfoListVo> getAllUserList(UserListParam userListParam, String token) {
|
||||
log.info("获取用户");
|
||||
String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
log.info("获取用户返回值 {}",resp);
|
||||
UserInfoListRootBean userInfoListRootBean1 = JSONUtil.toBean(resp, UserInfoListRootBean.class);
|
||||
log.info("userInfoListRootBean1 = " + userInfoListRootBean1);
|
||||
List<UserInfoListVo> list = userInfoListRootBean1.getResult().getList();
|
||||
log.info("list = " + list);
|
||||
|
||||
|
||||
log.info("获取用户返回值1 {}",resp);
|
||||
return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, UserInfoListRootBean.class).success())
|
||||
.map(UserInfoListRootBean::getResult)
|
||||
.map(result -> Opt.ofEmptyAble(result.getUserInfoList()).peek(t -> nextPage(userListParam, token, t, result)).orElse(ListUtil.toList()))
|
||||
.map(result -> Opt.ofEmptyAble(result.getList()).peek(t -> nextPage(userListParam, token, t, result)).orElse(ListUtil.toList()))
|
||||
.orElse(ListUtil.toList());
|
||||
}
|
||||
|
||||
private void getAllUserList(UserListParam userListParam, String token, List<UserInfoList> userInfoLists) {
|
||||
private void getAllUserList(UserListParam userListParam, String token, List<UserInfoListVo> userInfoLists) {
|
||||
log.info("获取用户2");
|
||||
String resp = Optional.ofNullable(HttpRequest.post(searchUserListUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
log.info("获取用户返回值 {}",resp);
|
||||
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, UserInfoListRootBean.class).success()).map(UserInfoListRootBean::getResult).map(UserInfoListRootBean.ResultData::getUserInfoList).stream().flatMap(Collection::stream).forEach(userInfoLists::add);
|
||||
log.info("获取用户返回值2 {}",resp);
|
||||
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, UserInfoListRootBean.class).success()).map(UserInfoListRootBean::getResult).map(UserInfoListRootBean.ResultData::getList).stream().flatMap(Collection::stream).forEach(userInfoLists::add);
|
||||
}
|
||||
|
||||
|
||||
private void nextPage(UserListParam userListParam, String token, List<UserInfoList> userInfoLists, UserInfoListRootBean.ResultData t) {
|
||||
log.info("获取用户--" + userListParam.getPage());
|
||||
if (t.getTotalPage() > userListParam.getPage()) {
|
||||
REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPage(), t.getTotalPage()).parallel().forEach(i -> getAllUserList(userListParam.withPage(i + 1), token, userInfoLists))).join();
|
||||
private void nextPage(UserListParam userListParam, String token, List<UserInfoListVo> userInfoLists, UserInfoListRootBean.ResultData t) {
|
||||
log.info("获取用户--" + userListParam.getPageNo());
|
||||
if (t.getTotalPage() > userListParam.getPageNo()) {
|
||||
REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPageNo(), t.getTotalPage()).parallel().forEach(i -> getAllUserList(userListParam.withPageNo(i + 1), token, userInfoLists))).join();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,8 +82,8 @@ public class ThirdApi {
|
||||
}
|
||||
|
||||
private void nextPage(AuditListParam userListParam, List<AuditList> t, Result result, String token) {
|
||||
if (result.getTotalPage() > userListParam.getPage()) {
|
||||
REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPage(), result.getTotalPage()).parallel().forEach(i -> getAllAudienceList(userListParam.withPage(i + 1), t, token))).join();
|
||||
if (result.getTotalPage() > userListParam.getPageNo()) {
|
||||
REQUEST_TASK.submit(() -> IntStream.range(userListParam.getPageNo(), result.getTotalPage()).parallel().forEach(i -> getAllAudienceList(userListParam.withPageNo(i + 1), t, token))).join();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,4 +92,40 @@ public class ThirdApi {
|
||||
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, AuditRootBean.class).success()).map(AuditRootBean::getResult).map(Result::getList).stream().flatMap(Collection::stream).forEach(list::add);
|
||||
}
|
||||
|
||||
public List<UserDynamic> getAllUserdynamicList(UserdynamicParam userdynamicParam, String token) {
|
||||
String resp = Optional.ofNullable(HttpRequest.post(userdynamicListUrl).body(JSONUtil.toJsonStr(userdynamicParam)).header("XBOE-Access-Token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
log.error("=1----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + resp );
|
||||
return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, DynamicBean.class).success())
|
||||
.map(DynamicBean::getResult)
|
||||
.map(result -> Opt.ofEmptyAble(result.getList()).peek(t -> nextPage(userdynamicParam, t, result, token)).orElse(ListUtil.toList()))
|
||||
.orElse(ListUtil.toList());
|
||||
}
|
||||
private void nextPage(UserdynamicParam userdynamicParam, List<UserDynamic> t, UserDynamicResult result, String token) {
|
||||
log.error("=2----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + userdynamicParam );
|
||||
if (result.getTotalPages() > userdynamicParam.getPageIndex()) {
|
||||
REQUEST_TASK.submit(() -> IntStream.range(userdynamicParam.getPageIndex(), result.getTotalPages()).parallel().forEach(i -> getAllUserdynamicList(userdynamicParam.withPageIndex(i + 1), t, token))).join();
|
||||
}
|
||||
}
|
||||
|
||||
private void getAllUserdynamicList(UserdynamicParam userdynamicParam, List<UserDynamic> list, String token) {
|
||||
log.error("=3----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + userdynamicParam );
|
||||
String resp = Optional.ofNullable(HttpRequest.post(usersByAudienceList).body(JSONUtil.toJsonStr(userdynamicParam.builder().pageSize(1000).build())).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success()).map(DynamicBean::getResult).map(UserDynamicResult::getList).stream().flatMap(Collection::stream).forEach(list::add);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJjb21wYW55Q29kZSI6IkMwMDEiLCJ1SWQiOiI5NjUzNDIwMjc0OTc2MDcxNjgiLCJjb21wYW55SWQiOiIxMDQxNjczOTc3Mzc5OTQ2NDk2IiwibG9naW5JZCI6IjE2ODg0NDg5MjIwNzY0OTE3NzgiLCJpc3MiOiJodHRwOi8vdS5ib2UuY29tIiwiR2l2ZW5OYW1lIjoiYm9ldSIsImV4cCI6MTY5MTM5OTc2NzU1OCwidXNlck5hbWUiOiLmnY7njonlhrAiLCJ1c2VySWQiOiI2QjA0OUZBRi1DMzE0LTdDQ0YtMEQyOC0wRDIzRjRDNDI1MzEifQ==.8b52dcf4d48a790ed258b9ca2b279bb269f5301722095382fbd352705b51c893";
|
||||
String resp = Optional.ofNullable(HttpRequest.post("https://u-pre.boe.com/statApi/xboe/m/stat/userdynamic/list").body(JSONUtil.toJsonStr(UserdynamicParam.builder().
|
||||
aid(Long.parseLong("965342027497607168")).pageSize(1000).pageIndex(1).build())).header("XBOE-Access-Token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
System.out.println(" resp = " +resp);
|
||||
DynamicBean a = JSONUtil.toBean(resp, DynamicBean.class);
|
||||
System.out.println(" a = " +a);
|
||||
System.out.println(" a = " + a.getResult().getCount());
|
||||
List<UserDynamic> list = a.getResult().getList();
|
||||
System.out.println(" list = " +list.size());
|
||||
System.out.println(" list = " +list);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,6 @@ import lombok.*;
|
||||
@AllArgsConstructor
|
||||
public class AuditListParam implements Cloneable {
|
||||
private String audienceId;
|
||||
private Integer page;
|
||||
private Integer pageNo;
|
||||
private Integer pageSize;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.xboe.api.vo;
|
||||
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Slf4j
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DynamicBean {
|
||||
|
||||
private String error;
|
||||
private String message;
|
||||
private String permissions;
|
||||
private UserDynamicResult result;
|
||||
private int status;
|
||||
private Date timestamp;
|
||||
|
||||
public DynamicBean success() {
|
||||
if (this.status != 200) {
|
||||
log.error("获取受众列表失败----{}", JSONUtil.toJsonPrettyStr(this));
|
||||
return null;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.xboe.api.vo;
|
||||
|
||||
import com.xboe.core.orm.IdEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class UserDynamic extends IdEntity {
|
||||
|
||||
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.xboe.api.vo;
|
||||
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class UserDynamicResult {
|
||||
|
||||
private int count;
|
||||
private int pageSize;
|
||||
private int totalPages;
|
||||
private List<UserDynamic> list;
|
||||
|
||||
}
|
||||
@@ -31,7 +31,7 @@ public class UserInfoListRootBean {
|
||||
|
||||
private int totalElement;
|
||||
private int totalPage;
|
||||
private List<UserInfoList> userInfoList;
|
||||
private List<UserInfoListVo> list;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.xboe.api.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UserInfoListVo {
|
||||
|
||||
private long id;
|
||||
private String bandCode;
|
||||
private String bandDesc;
|
||||
private Boolean deleted;
|
||||
private String departId;
|
||||
private String description;
|
||||
private String domainId;
|
||||
private String departName;
|
||||
private String duty;
|
||||
private int employeeStatus;
|
||||
private String companyId;
|
||||
private String orgName;
|
||||
private Integer gender;
|
||||
private String jobName;
|
||||
private String kid;
|
||||
private int learningDuration;
|
||||
private String mobile;
|
||||
private String realName;
|
||||
private String oldDepartId;
|
||||
private String orgNamePath;
|
||||
private String orgTreeType;
|
||||
private String payrollPlaceId;
|
||||
private String payrollPlaceName;
|
||||
private long personId;
|
||||
private String positionMgrLevel;
|
||||
private String rank;
|
||||
private long sassId;
|
||||
private int status;
|
||||
private String telephoneNo;
|
||||
private String userNo;
|
||||
private String email;
|
||||
private String avatar;
|
||||
private String positionList;
|
||||
|
||||
}
|
||||
@@ -12,8 +12,10 @@ public class UserListParam {
|
||||
private String departId;
|
||||
private String userNo;
|
||||
private String realName;
|
||||
// @Builder.Default
|
||||
// private int page = 1;
|
||||
@Builder.Default
|
||||
private int page = 1;
|
||||
private int pageNo = 1;
|
||||
@Builder.Default
|
||||
private int pageSize = 10;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.xboe.api.vo;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@With
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class UserdynamicParam {
|
||||
private Integer pageIndex;
|
||||
private Integer pageSize = 1000;
|
||||
private Integer contentType;
|
||||
private Long aid;
|
||||
private String hidden;
|
||||
}
|
||||
@@ -15,6 +15,8 @@ import com.xboe.module.boecase.vo.CaseExportVo;
|
||||
import com.xboe.module.dict.entity.DictItem;
|
||||
import com.xboe.module.excel.ExportsExcelSenderUtil;
|
||||
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import com.xboe.system.user.entity.User;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@@ -58,6 +60,8 @@ public class CasesApi extends ApiBaseController {
|
||||
@Resource
|
||||
private CasesMajorTypeDao casesMajorTypeDao;
|
||||
|
||||
@Resource
|
||||
private UserDao userDao;
|
||||
|
||||
/**
|
||||
* 用于后台管理
|
||||
@@ -150,10 +154,20 @@ public class CasesApi extends ApiBaseController {
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
views = new PageList();
|
||||
views.setList(Collections.emptyList());
|
||||
views.setPageSize(req.getPageSize());
|
||||
views.setCount(0);
|
||||
}
|
||||
return success(views);
|
||||
}
|
||||
|
||||
@PostMapping("/caseYears")
|
||||
public JsonResponse<List<String>> caseYears() {
|
||||
List<String> result = casesService.getCaseYears();
|
||||
return success(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 案例分页搜索 是否置顶
|
||||
@@ -242,13 +256,27 @@ public class CasesApi extends ApiBaseController {
|
||||
try {
|
||||
outputStream = response.getOutputStream();
|
||||
LinkedHashMap<String,String> map = new LinkedHashMap<>();
|
||||
// 标题,摘要,案主姓名,案主工号,案主所在组织全路径,同步时间,查看次数。
|
||||
map.put("标题","title");
|
||||
map.put("摘要","summary");
|
||||
map.put("案主姓名","authorName");
|
||||
map.put("案主工号","userNo");
|
||||
map.put("案主所在组织全路径","department");
|
||||
map.put("同步时间","exportDate");
|
||||
map.put("查看次数","views");
|
||||
List<Cases> list = casesService.managerCaseTitleList(caseVo);
|
||||
List<CaseExportVo> exportVos = new ArrayList<>();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
for (Cases c:list){
|
||||
CaseExportVo caseExportVo = new CaseExportVo();
|
||||
caseExportVo.setTitle(c.getTitle());
|
||||
caseExportVo.setSummary(c.getSummary()==null?"":c.getSummary());
|
||||
caseExportVo.setAuthorName(c.getAuthorName()==null?"":c.getAuthorName());
|
||||
User user = userDao.findOne(FieldFilters.eq("id", c.getAuthorId()));
|
||||
caseExportVo.setUserNo(user.getUserNo()==null?"":user.getUserNo());
|
||||
caseExportVo.setDepartment(c.getDepartment()==null?"":c.getDepartment());
|
||||
caseExportVo.setExportDate(now);
|
||||
caseExportVo.setViews(c.getViews()==null? 0 :c.getViews());
|
||||
exportVos.add(caseExportVo);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.poi.excel.BigExcelWriter;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
@@ -25,9 +26,9 @@ import com.xboe.module.boecase.vo.BrowseDurationVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendLaunchVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
|
||||
import com.xboe.module.boecase.vo.CasesRecommendVo;
|
||||
import com.xboe.module.excel.ExportsExcelSenderUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.xssf.streaming.SXSSFSheet;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@@ -35,9 +36,7 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -138,6 +137,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
// 通过工具类创建writer,默认创建xls格式
|
||||
ExcelWriter writer = ExcelUtil.getWriter();
|
||||
writer.writeHeadRow(ListUtil.toList("标题"));
|
||||
writer.autoSizeColumnAll();
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
@@ -166,6 +166,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
if (CollectionUtil.isNotEmpty(dataList)) {
|
||||
writer.write(dataList);
|
||||
}
|
||||
writer.autoSizeColumnAll();
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=failData.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
@@ -207,7 +208,6 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
if (StringUtils.isEmpty(token)) {
|
||||
token = request.getHeader("token");
|
||||
}
|
||||
|
||||
return success(iCasesRecommendPushRecordService.launchPush(casesRecommendLaunch, getCurrent(), token));
|
||||
}
|
||||
|
||||
@@ -218,50 +218,43 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
* @throws Exception
|
||||
*/
|
||||
@PostMapping("/info_download")
|
||||
public void infoDownload(@RequestBody CasesRecommendVo vo, HttpServletResponse response) {
|
||||
public void infoDownload(@RequestBody CasesRecommendVo vo, HttpServletResponse response) throws Exception {
|
||||
if (StringUtils.isEmpty(vo.getCasesRecommendId())) {
|
||||
throw new RuntimeException("缺少必要参数");
|
||||
}
|
||||
|
||||
try (OutputStream outputStream = response.getOutputStream()) {
|
||||
// 用个List<Map>装表格的所有内容
|
||||
// 拼接上列明。我这里用的最土的方法,很不优雅别学我
|
||||
LinkedHashMap<String, String> map = new LinkedHashMap<>();
|
||||
map.put("案例名称", "caseTitle");
|
||||
map.put("推送用户", "pushUserName");
|
||||
map.put("所属组织", "recommendOrgName");
|
||||
map.put("推送时间", "pushTime");
|
||||
map.put("是否查看", "readFlag");
|
||||
map.put("首次查看时间", "readStartTime");
|
||||
map.put("总查看时间", "totalReadTime");
|
||||
CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId());
|
||||
|
||||
CasesRecommend casesRecommend = iCasesRecommendService.findById(vo.getCasesRecommendId());
|
||||
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId());
|
||||
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
exportVos = recordList.stream().map(record -> {
|
||||
CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo();
|
||||
exportVo.setCaseTitle(record.getCaseTitle());
|
||||
exportVo.setPushUserName(record.getPushUserName());
|
||||
exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
||||
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
||||
exportVo.setTotalReadTime(browseDuration.toString());
|
||||
return exportVo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-disposition", "attachment;filename=casesRecommend.xls");
|
||||
ExportsExcelSenderUtil.export(map, exportVos, outputStream, "yyyy-MM-dd HH:mm:ss");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("导出失败", e.getMessage());
|
||||
// 拿取表格里需要的数据
|
||||
List<CasesRecommendPushRecord> recordList = iCasesRecommendPushRecordService.findAllByRecommendId(vo.getCasesRecommendId());
|
||||
List<CasesRecommendPushRecordExportVo> exportVos = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(recordList)) {
|
||||
exportVos = recordList.stream().map(record -> {
|
||||
CasesRecommendPushRecordExportVo exportVo = new CasesRecommendPushRecordExportVo();
|
||||
exportVo.setCaseTitle(record.getCaseTitle());
|
||||
exportVo.setPushUserName(record.getPushUserName());
|
||||
exportVo.setRecommendOrgName(casesRecommend.getRecommendOrgName());
|
||||
exportVo.setPushTime(DateUtil.formatDateTime(record.getPushTime()));
|
||||
exportVo.setReadFlag(record.getReadFlag() == 1 ? "是" : "否");
|
||||
exportVo.setReadStartTime(DateUtil.formatDateTime(record.getReadStartTime()));
|
||||
Long browseDuration = casesBrowseService.getBrowseDuration(record.getCaseId(), getCurrent().getAccountId());
|
||||
exportVo.setTotalReadTime(browseDuration.toString());
|
||||
return exportVo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
// 通过工具类创建writer,默认创建xls格式
|
||||
BigExcelWriter writer = ExcelUtil.getBigWriter();
|
||||
// 设置所有列为自动宽度,不考虑合并单元格
|
||||
writer.write(exportVos, true);
|
||||
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
|
||||
sheet.trackAllColumnsForAutoSizing();
|
||||
writer.autoSizeColumnAll();
|
||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=casesRecommend.xls");
|
||||
ServletOutputStream out = response.getOutputStream();
|
||||
writer.flush(out, true);
|
||||
writer.close();
|
||||
IoUtil.close(out);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -33,38 +33,35 @@ public interface CasesRecordDao extends JpaRepository<Cases, String>, JpaSpecifi
|
||||
" or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" +
|
||||
" and if(:#{#condition.yearsEmpty},1=1, YEAR(b.sys_create_time) in (:#{#condition.years}))" +
|
||||
" and if(IFNULL(:#{#condition.majorType},'') !='',b.major_type = :#{#condition.majorType},1=1) " +
|
||||
" and if(:#{#condition.org1Empty}, 1=1, b.org_domain_parent in (:#{#condition.org1}))" +
|
||||
" and if(:#{#condition.org2Empty}, 1=1, b.org_domain_parent2 in (:#{#condition.org2}))" +
|
||||
" and if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" +
|
||||
" and if(:#{#condition.caseIdsEmpty}, 1=1, b.id in (:#{#condition.caseIds}))" +
|
||||
" and ("+
|
||||
" if(:#{#condition.allOrgEmpty}, 1=1, 1=2)" +
|
||||
" or if(:#{#condition.org1Empty}, 1=2, b.org_domain_parent in (:#{#condition.org1}))" +
|
||||
" or if(:#{#condition.org2Empty}, 1=2, b.org_domain_parent2 in (:#{#condition.org2}))" +
|
||||
" or if(:#{#condition.org3Empty}, 1=2, b.org_domain_parent3 in (:#{#condition.org3}))" +
|
||||
")" +
|
||||
" order by a.sys_create_time DESC, a.read_flag ASC) as c group by c.id",
|
||||
countQuery = "select count(*) FROM (select c.* from ( select b.*" +
|
||||
" from boe_cases_recommend_push_record a INNER JOIN boe_cases b on a.case_id = b.id " +
|
||||
" where b.deleted=0 and a.push_status = 3 and a.deleted=0 and a.push_user_id= :#{#condition.userId}" +
|
||||
" and if(IFNULL(:#{#condition.keyWord},'')!='',b.title like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.author_name like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword1 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword2 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword3 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" +
|
||||
" and if(:#{#condition.yearsEmpty},1=1, YEAR(b.sys_create_time) in (:#{#condition.years}))" +
|
||||
" and if(IFNULL(:#{#condition.majorType},'') !='' ,b.major_type = :#{#condition.majorType},1=1) " +
|
||||
" and if(:#{#condition.org1Empty}, 1=1, b.org_domain_parent in (:#{#condition.org1}))" +
|
||||
" and if(:#{#condition.org2Empty}, 1=1, b.org_domain_parent2 in (:#{#condition.org2}))" +
|
||||
" and if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" +
|
||||
" order by a.sys_create_time DESC, a.read_flag ASC ) as c group by c.id) as d")
|
||||
" from boe_cases_recommend_push_record a INNER JOIN boe_cases b on a.case_id = b.id " +
|
||||
" where b.deleted=0 and a.push_status = 3 and a.deleted=0 and a.push_user_id= :#{#condition.userId}" +
|
||||
" and if(IFNULL(:#{#condition.keyWord},'')!='',b.title like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.author_name like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword1 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword2 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword3 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword4 like CONCAT('%',:#{#condition.keyWord},'%')" +
|
||||
" or b.keyword5 like CONCAT('%',:#{#condition.keyWord},'%'),1=1)" +
|
||||
" and if(:#{#condition.yearsEmpty},1=1, YEAR(b.sys_create_time) in (:#{#condition.years}))" +
|
||||
" and if(:#{#condition.caseIdsEmpty}, 1=1, b.id in (:#{#condition.caseIds}))" +
|
||||
" and ("+
|
||||
" if(:#{#condition.allOrgEmpty}, 1=1, 1=2)" +
|
||||
" or if(:#{#condition.org1Empty}, 1=1, b.org_domain_parent in (:#{#condition.org1}))" +
|
||||
" or if(:#{#condition.org2Empty}, 1=1, b.org_domain_parent2 in (:#{#condition.org2}))" +
|
||||
" or if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" +
|
||||
")" +
|
||||
" order by a.sys_create_time DESC, a.read_flag ASC ) as c group by c.id) as d")
|
||||
Page<Cases> queryList(Pageable pageable, @Param("condition") CasePageVo casePage);
|
||||
|
||||
// @Query(nativeQuery = true, value = "SELECT bc.*, COUNT(bcrpr.case_id) AS recommends1 FROM boe_cases bc LEFT JOIN boe_cases_recommend_push_record bcrpr ON bc.id = bcrpr.case_id" +
|
||||
// " where bc.deleted = 0" +
|
||||
// " and if(IFNULL(:#{#caseVo.keyWord},'')!='',bc.title like CONCAT('%',:#{#caseVo.keyWord},'%'),1=1)" +
|
||||
// " and if(IFNULL(:#{#caseVo.authorName},'')!='',bc.author_name like CONCAT('%',:#{#caseVo.authorName},'%'),1=1)" +
|
||||
// " and if(IFNULL(:#{#caseVo.orgDomain},'') !='' ,bc.org_domain_parent = :#{#caseVo.orgDomain},1=1) " +
|
||||
// " and if(IFNULL(:#{#caseVo.excellent},'') !='' ,bc.excellent = :#{#caseVo.excellent},1=1) " +
|
||||
// " and if(IFNULL(:#{#caseVo.isTop},'') !='' ,bc.is_top = :#{#caseVo.isTop},1=1) " +
|
||||
// " GROUP BY bc.id ORDER BY bc.sys_create_time desc")
|
||||
// List<Cases> exportCase(@Param("caseVo")CaseVo caseVo);
|
||||
|
||||
@Query("SELECT new Cases(bc.title, bc.authorName, bc.comments, bc.views, bc.praises, bc.shares, bc.favorites, COUNT(bcrpr.caseId), bc.cites, bc.confidentialityLevel) FROM Cases bc LEFT JOIN CasesRecommendPushRecord bcrpr ON bc.id = bcrpr.caseId" +
|
||||
" where bc.deleted = false" +
|
||||
@@ -75,4 +72,8 @@ public interface CasesRecordDao extends JpaRepository<Cases, String>, JpaSpecifi
|
||||
" and (:isTop IS NULL or bc.isTop = :isTop)" +
|
||||
" GROUP BY bc.id ORDER BY bc.sysCreateTime desc")
|
||||
List<Cases> exportCase(String keyWord, String authorName,String orgDomain,Boolean excellent,Boolean isTop);
|
||||
|
||||
|
||||
@Query(nativeQuery = true, value ="SELECT DATE_FORMAT(sys_create_time,'%Y') FROM `boe_cases` where deleted = FALSE GROUP BY DATE_FORMAT(sys_create_time,'%Y')")
|
||||
List<String> caseYears();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.xboe.module.scorm.rte.model.datatype.Int;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Data
|
||||
public class CasePageVo extends PageDto {
|
||||
@@ -63,22 +59,29 @@ public class CasePageVo extends PageDto {
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 案例ids
|
||||
*/
|
||||
private List<String> caseIds;
|
||||
|
||||
|
||||
public boolean isCaseIdsEmpty() {
|
||||
return CollUtil.isEmpty(this.caseIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 推荐id
|
||||
*/
|
||||
private Long refId;
|
||||
|
||||
private List<String> org1;
|
||||
private List<String> org2;
|
||||
private List<String> org3;
|
||||
|
||||
public boolean isYearsEmpty() {
|
||||
return CollUtil.isEmpty(this.years);
|
||||
}
|
||||
|
||||
public List<String> getOrg1() {
|
||||
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
||||
return orgDomainDtos.stream().map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOrg1Empty() {
|
||||
return CollUtil.isEmpty(this.getOrg1());
|
||||
}
|
||||
@@ -91,18 +94,8 @@ public class CasePageVo extends PageDto {
|
||||
return CollUtil.isEmpty(this.getOrg3());
|
||||
}
|
||||
|
||||
public List<String> getOrg2() {
|
||||
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
||||
return orgDomainDtos.stream().flatMap(it->it.getChildren().stream()).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<String> getOrg3() {
|
||||
if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) {
|
||||
return orgDomainDtos.stream().flatMap(it->it.getChildren().stream().flatMap(i->i.getChildren().stream())).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList());
|
||||
}
|
||||
return null;
|
||||
public boolean isAllOrgEmpty() {
|
||||
return this.isOrg1Empty() && this.isOrg2Empty() && this.isOrg3Empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import cn.hutool.core.annotation.Alias;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class CasesRecommendPushRecordExportVo {
|
||||
@@ -11,23 +10,29 @@ public class CasesRecommendPushRecordExportVo {
|
||||
/**
|
||||
* 案例标题
|
||||
*/
|
||||
@Alias(value = "案例名称")
|
||||
private String caseTitle;
|
||||
/**
|
||||
* 推送用户名称
|
||||
*/
|
||||
@Alias(value = "目标用户")
|
||||
private String pushUserName;
|
||||
/**推荐组织名称*/
|
||||
@Alias(value = "所属组织")
|
||||
private String recommendOrgName;
|
||||
|
||||
@Alias(value = "推送时间")
|
||||
private String pushTime;
|
||||
|
||||
@Alias(value = "是否查看")
|
||||
private String readFlag;
|
||||
|
||||
/**
|
||||
* 首次查看时间
|
||||
*/
|
||||
@Alias(value = "首次查看时间")
|
||||
private String readStartTime;
|
||||
|
||||
@Alias(value = "总查看时间(分)")
|
||||
private String totalReadTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -108,5 +108,7 @@ public interface ICasesService{
|
||||
|
||||
List<CasesVo> caseIndexV2(CurrentUser current);
|
||||
|
||||
List<String> getCaseYears();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -85,9 +85,11 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
long tt = System.currentTimeMillis();
|
||||
for (String orgId : casesRecommendLaunch.getDeptIds()) {
|
||||
UserListParam build = UserListParam.builder().departId(orgId).pageSize(100).build();
|
||||
List<UserInfoList> allUserList = thirdApi.getAllUserList(build, token);
|
||||
List<UserInfoListVo> allUserList = thirdApi.getAllUserList(build, token);
|
||||
log.info("---------组织查询 {}", allUserList);
|
||||
if (CollectionUtil.isNotEmpty(allUserList)) {
|
||||
for (UserInfoList userInfo : allUserList) {
|
||||
for (UserInfoListVo userInfo : allUserList) {
|
||||
log.info("---------userInfo.getId() {}", userInfo.getId());
|
||||
userIds.add(String.valueOf(userInfo.getId()));
|
||||
}
|
||||
}
|
||||
@@ -98,13 +100,14 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
if (CollectionUtil.isNotEmpty(casesRecommendLaunch.getGroupIds())) {
|
||||
long t2 = System.currentTimeMillis();
|
||||
for (String groupId : casesRecommendLaunch.getGroupIds()) {
|
||||
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(groupId).pageSize(100).page(1).build(), token);
|
||||
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(groupId).pageSize(100).pageNo(1).build(), token);
|
||||
if (CollectionUtil.isNotEmpty(allAudienceList)) {
|
||||
allAudienceList.forEach(auditList -> userIds.add(String.valueOf(auditList.getUserId())));
|
||||
}
|
||||
}
|
||||
log.info("耗时受众查询 {}", (System.currentTimeMillis() - t2) / 1000);
|
||||
}
|
||||
log.info("---------userIds {}", userIds);
|
||||
if (CollectionUtil.isEmpty(userIds)) {
|
||||
throw new RuntimeException("推荐人不能为空");
|
||||
}
|
||||
@@ -134,6 +137,10 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
casesRecommendPushRecord.setCaseTitle(cases.getTitle());
|
||||
casesRecommendPushRecord.setPushUserId(userId);
|
||||
casesRecommendPushRecord.setPushUserName(userMap.get(userId) != null ? userMap.get(userId).toString() : null);
|
||||
if (userMap.get(userId) == null){
|
||||
log.info("---------PushUserName=null {}", userMap.get(userId));
|
||||
continue;
|
||||
}
|
||||
casesRecommendPushRecord.setPushStatus(CasesPushStatusEnum.WAIT_PUSH.getStatus());
|
||||
//默认未查看
|
||||
casesRecommendPushRecord.setReadFlag(0);
|
||||
|
||||
@@ -45,8 +45,8 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
|
||||
query.addFilter(FieldFilters.like("recommend_by", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName()));
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())) {
|
||||
query.addFilter(FieldFilters.ge("recommend_time", casesRecommendVo.getRecommendTimeList().get(0)));
|
||||
query.addFilter(FieldFilters.le("recommend_time", casesRecommendVo.getRecommendTimeList().get(1)));
|
||||
query.addFilter(FieldFilters.ge("recommend_time", casesRecommendVo.getRecommendTimeList().get(0)+" 00:00:00"));
|
||||
query.addFilter(FieldFilters.le("recommend_time", casesRecommendVo.getRecommendTimeList().get(1)+" 23:59:59"));
|
||||
}
|
||||
|
||||
query.addOrder(OrderCondition.desc("sys_create_time"));
|
||||
|
||||
@@ -34,16 +34,6 @@ import javax.transaction.Transactional;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import com.xboe.module.boecase.dao.CasesMajorTypeDao;
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.core.orm.FieldUpdateType;
|
||||
import com.xboe.core.orm.IFieldFilter;
|
||||
import com.xboe.core.orm.LikeMatchMode;
|
||||
import com.xboe.core.orm.QueryBuilder;
|
||||
import com.xboe.core.orm.UpdateBuilder;
|
||||
import com.xboe.module.boecase.dao.CasesDao;
|
||||
import com.xboe.module.boecase.entity.Cases;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@@ -73,14 +63,14 @@ public class CasesServiceImpl implements ICasesService {
|
||||
|
||||
/**
|
||||
* 案例分页查询,用于门户的查询
|
||||
* */
|
||||
*/
|
||||
@Override
|
||||
public PageList<Cases> queryPageCases(int pageIndex, int pageSize, CaseVo caseVo) {
|
||||
QueryBuilder query=QueryBuilder.from(Cases.class);
|
||||
PageList<Cases> page=null;
|
||||
QueryBuilder query = QueryBuilder.from(Cases.class);
|
||||
PageList<Cases> page = null;
|
||||
List<IFieldFilter> filters = new ArrayList<>();
|
||||
filters.add(FieldFilters.eq("deleted",false));
|
||||
List<IFieldFilter> likes=new ArrayList<IFieldFilter>();
|
||||
filters.add(FieldFilters.eq("deleted", false));
|
||||
List<IFieldFilter> likes = new ArrayList<IFieldFilter>();
|
||||
likes.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
likes.add(FieldFilters.like("keyword1", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
@@ -90,23 +80,22 @@ public class CasesServiceImpl implements ICasesService {
|
||||
likes.add(FieldFilters.like("keyword5", LikeMatchMode.ANYWHERE, caseVo.getKeyWord()));
|
||||
|
||||
|
||||
if(StringUtil.isNotBlank(caseVo.getKeyWord())) {
|
||||
if (StringUtil.isNotBlank(caseVo.getKeyWord())) {
|
||||
filters.add(FieldFilters.or(likes));
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(caseVo.getOrgDomain())){
|
||||
if(caseVo.getOrgDomain().contains(",")){
|
||||
if (StringUtils.isNotBlank(caseVo.getOrgDomain())) {
|
||||
if (caseVo.getOrgDomain().contains(",")) {
|
||||
String[] split = caseVo.getOrgDomain().split(",");
|
||||
List<String> strings = Arrays.asList(split);
|
||||
filters.add(FieldFilters.in("orgDomainParent",strings));
|
||||
}else{
|
||||
filters.add(FieldFilters.eq("orgDomainParent",caseVo.getOrgDomain()));
|
||||
filters.add(FieldFilters.in("orgDomainParent", strings));
|
||||
} else {
|
||||
filters.add(FieldFilters.eq("orgDomainParent", caseVo.getOrgDomain()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//增加只是查询有附件的
|
||||
filters.add(FieldFilters.isNotNull("filePath"));
|
||||
filters.add(FieldFilters.ne("filePath", ""));
|
||||
@@ -144,8 +133,8 @@ public class CasesServiceImpl implements ICasesService {
|
||||
}
|
||||
}
|
||||
|
||||
if(StringUtils.isNotBlank(caseVo.getCaseType())){
|
||||
filters.add(FieldFilters.eq("caseType",caseVo.getCaseType()));
|
||||
if (StringUtils.isNotBlank(caseVo.getCaseType())) {
|
||||
filters.add(FieldFilters.eq("caseType", caseVo.getCaseType()));
|
||||
}
|
||||
if (caseVo.getBreCommend() != null) {
|
||||
if (!caseVo.getBreCommend()) {
|
||||
@@ -172,7 +161,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
} else {
|
||||
order = OrderCondition.desc("sysCreateTime");
|
||||
}
|
||||
|
||||
|
||||
|
||||
query.addFilters(filters);
|
||||
query.addOrder(order);
|
||||
@@ -189,6 +178,12 @@ public class CasesServiceImpl implements ICasesService {
|
||||
@Override
|
||||
public PageList<Cases> queryPageCasesV2(CasePageVo caseVo) {
|
||||
|
||||
String type = caseVo.getType();
|
||||
if (!StrUtil.equals(type,"excellent")) {
|
||||
caseVo.setOrderField("");
|
||||
caseVo.setOrderAsc(null);
|
||||
}
|
||||
|
||||
String keyword = caseVo.getKeyWord();
|
||||
QueryBuilder query = QueryBuilder.from(Cases.class);
|
||||
PageList<Cases> page = null;
|
||||
@@ -232,38 +227,52 @@ public class CasesServiceImpl implements ICasesService {
|
||||
}
|
||||
}
|
||||
List<OrgDomainDto> orgDomainDtos = caseVo.getOrgDomainDtos();
|
||||
IFieldFilter orgDomain = null;
|
||||
List<String> level1 = new ArrayList<>();
|
||||
List<String> level2 = new ArrayList<>();
|
||||
List<String> level3 = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(orgDomainDtos)) {
|
||||
for (int i = 0; i < orgDomainDtos.size(); i++) {
|
||||
OrgDomainDto domainDto = orgDomainDtos.get(i);
|
||||
String orgDomainParent = domainDto.getParent();
|
||||
IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent", orgDomainParent);
|
||||
List<OrgDomainDto> orgDomainParent2 = domainDto.getChildren();
|
||||
if (CollUtil.isNotEmpty(orgDomainParent2)) {
|
||||
List<String> seconds = orgDomainParent2.stream().map(OrgDomainDto::getParent).collect(Collectors.toList());
|
||||
IFieldFilter orgDomainParentFilter = FieldFilters.in("orgDomainParent2", seconds);
|
||||
itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter);
|
||||
}
|
||||
for (OrgDomainDto orgDomainDto : orgDomainParent2) {
|
||||
List<OrgDomainDto> orgDomainParent3 = orgDomainDto.getChildren();
|
||||
if (CollUtil.isNotEmpty(orgDomainParent3)) {
|
||||
List<String> thirds = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList());
|
||||
IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", thirds);
|
||||
itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter);
|
||||
for (OrgDomainDto orgDomainDto : orgDomainParent2) {
|
||||
List<OrgDomainDto> orgDomainParent3 = orgDomainDto.getChildren();
|
||||
if (CollUtil.isNotEmpty(orgDomainParent3)) {
|
||||
List<String> parent = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList());
|
||||
level3.addAll(parent);
|
||||
} else {
|
||||
String parent = orgDomainDto.getParent();
|
||||
level2.add(parent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (i == 0) {
|
||||
orgDomain = itemFilter;
|
||||
} else {
|
||||
orgDomain = FieldFilters.or(orgDomain, itemFilter);
|
||||
} else {
|
||||
String orgDomainParent = domainDto.getParent();
|
||||
level1.add(orgDomainParent);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(orgDomain)) {
|
||||
filters.add(orgDomain);
|
||||
List<IFieldFilter> subFilter = new ArrayList();
|
||||
if (CollUtil.isNotEmpty(level1)) {
|
||||
IFieldFilter filter1 = FieldFilters.in("orgDomainParent", level1);
|
||||
subFilter.add(filter1);
|
||||
}
|
||||
if (CollUtil.isNotEmpty(level2)) {
|
||||
IFieldFilter filter2 = FieldFilters.in("orgDomainParent2", level2);
|
||||
subFilter.add(filter2);
|
||||
}
|
||||
if (CollUtil.isNotEmpty(level3)) {
|
||||
IFieldFilter filter3 = FieldFilters.in("orgDomainParent3", level3);
|
||||
subFilter.add(filter3);
|
||||
}
|
||||
if (CollUtil.isNotEmpty(subFilter)) {
|
||||
if (subFilter.size() == 1) {
|
||||
filters.add(subFilter.get(0));
|
||||
} else if(subFilter.size() == 2) {
|
||||
filters.add(FieldFilters.or(subFilter.get(0), subFilter.get(1)));
|
||||
} else {
|
||||
filters.add(FieldFilters.or(subFilter));
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(caseVo.getCaseType())) {
|
||||
filters.add(FieldFilters.eq("caseType", caseVo.getCaseType()));
|
||||
}
|
||||
@@ -282,13 +291,16 @@ public class CasesServiceImpl implements ICasesService {
|
||||
} else {
|
||||
order = OrderCondition.desc(caseVo.getOrderField());
|
||||
}
|
||||
} else {
|
||||
order = OrderCondition.desc("sysCreateTime");
|
||||
}
|
||||
|
||||
if (StrUtil.equals(type,"new")) {
|
||||
order = OrderCondition.desc("sysCreateTime");
|
||||
} else if (StrUtil.equals(type,"hot")) {
|
||||
order = OrderCondition.desc("views");
|
||||
}
|
||||
if(Objects.nonNull(order)) {
|
||||
query.addOrder(order);
|
||||
}
|
||||
query.addFilters(filters);
|
||||
query.addOrder(order);
|
||||
query.addOrder(OrderCondition.rand());
|
||||
query.setPageIndex(caseVo.getPageIndex());
|
||||
query.setPageSize(caseVo.getPageSize());
|
||||
page = casesDao.findPage(query.builder());
|
||||
@@ -343,6 +355,48 @@ public class CasesServiceImpl implements ICasesService {
|
||||
public PageList<Cases> queryRecommendPageCasesV2(CasePageVo caseVo) {
|
||||
|
||||
PageRequest pageRequest = PageRequest.of(caseVo.getPageIndex() - 1, caseVo.getPageSize());
|
||||
|
||||
|
||||
String majorType = caseVo.getMajorType();
|
||||
if (StringUtil.isNotBlank(majorType)) {
|
||||
List<CasesMajorType> casesTypes = casesMajorTypeRepoDao.findCasesBy(StrUtil.split(majorType, ","));
|
||||
if (CollUtil.isNotEmpty(casesTypes)) {
|
||||
List<String> caseIds = casesTypes.stream().map(CasesMajorType::getCaseId).collect(Collectors.toList());
|
||||
caseVo.setCaseIds(caseIds);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
List<OrgDomainDto> orgDomainDtos = caseVo.getOrgDomainDtos();
|
||||
List<String> level1 = new ArrayList<>();
|
||||
List<String> level2 = new ArrayList<>();
|
||||
List<String> level3 = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(orgDomainDtos)) {
|
||||
for (int i = 0; i < orgDomainDtos.size(); i++) {
|
||||
OrgDomainDto domainDto = orgDomainDtos.get(i);
|
||||
List<OrgDomainDto> orgDomainParent2 = domainDto.getChildren();
|
||||
if (CollUtil.isNotEmpty(orgDomainParent2)) {
|
||||
for (OrgDomainDto orgDomainDto : orgDomainParent2) {
|
||||
List<OrgDomainDto> orgDomainParent3 = orgDomainDto.getChildren();
|
||||
if (CollUtil.isNotEmpty(orgDomainParent3)) {
|
||||
List<String> parent = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList());
|
||||
level3.addAll(parent);
|
||||
} else {
|
||||
String parent = orgDomainDto.getParent();
|
||||
level2.add(parent);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
String orgDomainParent = domainDto.getParent();
|
||||
level1.add(orgDomainParent);
|
||||
}
|
||||
}
|
||||
}
|
||||
caseVo.setOrg1(level1);
|
||||
caseVo.setOrg2(level2);
|
||||
caseVo.setOrg3(level3);
|
||||
|
||||
Page<Cases> cases = casesRecordDao.queryList(pageRequest,caseVo);
|
||||
PageList<Cases> pageList = new PageList<>();
|
||||
pageList.setCount((int) cases.getTotalElements());
|
||||
@@ -477,7 +531,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
order = OrderCondition.desc("sysCreateTime");
|
||||
}
|
||||
query.addOrder(order);
|
||||
query.addField("new Cases(title)");
|
||||
// query.addField("new Cases(title)");
|
||||
List<Cases> result = casesDao.findList(query.builder());
|
||||
return result;
|
||||
}
|
||||
@@ -684,7 +738,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
|
||||
/**
|
||||
* 首页案例
|
||||
* */
|
||||
*/
|
||||
@Override
|
||||
public List<CaseDto> caseRandom(Integer pageSize, String orderField, Boolean orderAsc) {
|
||||
|
||||
@@ -845,7 +899,23 @@ public class CasesServiceImpl implements ICasesService {
|
||||
@Override
|
||||
public List<DictItem> majorTypes() {
|
||||
List<DictItem> major_type = sysDictionaryDao.findByKey("major_type");
|
||||
String hql = "select cm.majorId,count(cm.id) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null or c.filePath!='') group by cm.majorId";
|
||||
/* String hql1 = "select majorType from Cases c where c.deleted=false and (c.filePath is not null and c.filePath != '')";
|
||||
List<String> listByHql = casesDao.findListByHql(hql1);
|
||||
List<DictItem> dictItems = new ArrayList<>();
|
||||
for (DictItem d : major_type) {
|
||||
d.setExplanation("0");
|
||||
boolean flag = false;
|
||||
for (String str : listByHql) {
|
||||
if (str.contains(d.getCode()) && !d.getCode().equals("")) {
|
||||
d.setExplanation(String.valueOf(Integer.parseInt(d.getExplanation()) + 1));
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if (flag){
|
||||
dictItems.add(d);
|
||||
}
|
||||
}*/
|
||||
String hql = "select cm.majorId,count(cm.caseId) from CasesMajorType cm,Cases c where cm.caseId=c.id and c.deleted=false and (c.filePath is not null and c.filePath != '') group by cm.majorId";
|
||||
List<Object[]> listByHql = casesDao.findListByHql(hql);
|
||||
List<DictItem> dictItems = new ArrayList<>();
|
||||
for (DictItem d : major_type) {
|
||||
@@ -937,7 +1007,7 @@ public class CasesServiceImpl implements ICasesService {
|
||||
String accountId = current.getAccountId();
|
||||
List<Cases> result = new ArrayList<>();
|
||||
try {
|
||||
String hql = "select a.caseId FROM CasesRecommendPushRecord a left join Cases b ON a.caseId = b.id WHERE a.pushUserId=?1 and a.pushStatus=3 and a.deleted = false and b.deleted = false group by a.caseId ORDER By a.pushTime DESC";
|
||||
String hql = "select a.caseId FROM CasesRecommendPushRecord a left join Cases b ON a.caseId = b.id WHERE a.pushUserId=?1 and a.pushStatus=3 and a.deleted = false and b.deleted = false group by a.caseId ORDER By a.pushTime DESC";
|
||||
List<String> listFields = casesRecommendDao.findListFields(hql, CASE_LEN, ListUtil.toList(accountId));
|
||||
// List<String> listFields = new ArrayList<>();
|
||||
List<String> caseIds = new ArrayList<>();
|
||||
@@ -988,6 +1058,12 @@ public class CasesServiceImpl implements ICasesService {
|
||||
return casesVos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getCaseYears() {
|
||||
List<String> years = this.casesRecordDao.caseYears();
|
||||
return years;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void excellent(String id, Boolean excellent) {
|
||||
//取消时,把时间清空
|
||||
|
||||
@@ -36,4 +36,8 @@ public class CaseExportVo {
|
||||
private LocalDateTime endTime;
|
||||
|
||||
private String confidentialityLevel;
|
||||
|
||||
private String summary;
|
||||
private String userNo;
|
||||
private String department;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package com.xboe.module.course.api;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.api.vo.AuditList;
|
||||
import com.xboe.api.vo.AuditListParam;
|
||||
import com.xboe.api.vo.UserDynamic;
|
||||
import com.xboe.api.vo.UserdynamicParam;
|
||||
import com.xboe.common.OrderCondition;
|
||||
import com.xboe.core.JsonResponseStatus;
|
||||
import com.xboe.module.usergroup.entity.UserGroupItem;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -78,6 +83,9 @@ public class CoursePortalApi extends ApiBaseController{
|
||||
@Autowired
|
||||
private IStudyCourseService studyCourseService;
|
||||
|
||||
@Resource
|
||||
private ThirdApi thirdApi;
|
||||
|
||||
/**
|
||||
* 根据多个课程id返回对应的课程的图片.返回结果如下,
|
||||
* {
|
||||
@@ -226,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){
|
||||
public JsonResponse<Map<String,Object>> detail(String id,Boolean addView,Boolean crowd,Boolean preview, HttpServletRequest request){
|
||||
if(StringUtils.isBlank(id)) {
|
||||
return badRequest("参数错误,未指定课程");
|
||||
}
|
||||
@@ -253,13 +261,35 @@ public class CoursePortalApi extends ApiBaseController{
|
||||
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);
|
||||
StudyCourse studyCourse = studyCourseService.findByCourseIdAndAid(course.getId(), aid);
|
||||
log.debug("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse);
|
||||
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);
|
||||
if (hasItem != null && !hasItem.isEmpty()) {
|
||||
// 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)) {
|
||||
pass = true;
|
||||
break;
|
||||
}
|
||||
@@ -269,10 +299,12 @@ public class CoursePortalApi extends ApiBaseController{
|
||||
// return wrap(JsonResponseStatus.NO_CONTENT, "您无学习此课程的权限,请与管理员联系",rs);
|
||||
// }
|
||||
|
||||
}else {
|
||||
pass = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
log.debug("=--------- 是否有权限查看此课程: " +pass);
|
||||
List<CourseContent> cclist=contentService.getByCourseId(id);
|
||||
List<CourseSection> sectionlist=sectionService.getByCourseId(id);
|
||||
List<CourseTeacher> teachers=courseService.findTeachersByCourseId(id);
|
||||
@@ -296,6 +328,7 @@ public class CoursePortalApi extends ApiBaseController{
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/detail-study")
|
||||
public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){
|
||||
if(StringUtil.isBlank(courseId)){
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.xboe.constants.CacheName;
|
||||
import com.xboe.core.SysConstant;
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.core.utils.OkHttpUtil;
|
||||
import com.xboe.module.boecase.dao.CasesDao;
|
||||
import com.xboe.module.course.entity.Course;
|
||||
import com.xboe.module.dict.dao.SysDictionaryDao;
|
||||
import com.xboe.module.dict.entity.DictItem;
|
||||
@@ -33,6 +34,9 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{
|
||||
@Resource
|
||||
SysDictionaryDao dao;
|
||||
|
||||
@Resource
|
||||
CasesDao casesDao;
|
||||
|
||||
@Resource
|
||||
RedisTemplate redisTemplate;
|
||||
|
||||
@@ -199,7 +203,7 @@ public class SysDictionaryServiceImpl implements ISysDictionaryService{
|
||||
|
||||
@Override
|
||||
public PageList<DictItem> queryPage(String key,String code,String name,String filter,Integer pageIndex, Integer pageSize) {
|
||||
//
|
||||
|
||||
PageList<DictItem> dictItemPageList = dao.queryPage(key,code,name,filter,pageIndex, pageSize);
|
||||
return dictItemPageList;
|
||||
}
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.xboe.school.study.api;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.api.vo.AuditList;
|
||||
import com.xboe.api.vo.AuditListParam;
|
||||
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.StringUtils;
|
||||
@@ -50,6 +53,9 @@ import com.xboe.school.study.service.IStudySignupService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* 课程学习的内容
|
||||
*/
|
||||
@@ -82,7 +88,10 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
|
||||
@Autowired
|
||||
private IUserGroupService userGroupService;
|
||||
|
||||
|
||||
@Resource
|
||||
private ThirdApi thirdApi;
|
||||
|
||||
/**
|
||||
* 用于查询课程的学习记录
|
||||
* @param pager
|
||||
@@ -115,8 +124,6 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
|
||||
/**
|
||||
* 导出课程学习记录
|
||||
* @param courseId
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/export",method = {RequestMethod.GET,RequestMethod.POST})
|
||||
@@ -136,11 +143,10 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
|
||||
/**
|
||||
* 学习页面,加载课程的信息,用于替换portal中的detail方法
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST})
|
||||
public JsonResponse<Map<String,Object>> loadDetail(String cid,Boolean addView,Boolean crowd){
|
||||
public JsonResponse<Map<String,Object>> loadDetail(String cid,Boolean addView,Boolean crowd, HttpServletRequest request){
|
||||
if(StringUtils.isBlank(cid)){
|
||||
return error("无课程信息");
|
||||
}
|
||||
@@ -159,16 +165,31 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
rs.put("crowds",courseCrowdList);
|
||||
}
|
||||
|
||||
StudyCourse studyCourse = service.findByCourseIdAndAid(course.getId(), aid);
|
||||
log.error("=--------- 开始查询是否学习过此课程 ---------------------------------course.getId()= "+ course.getId() + ",aid = " + aid +",studyCourse = " + studyCourse);
|
||||
boolean pass = false;
|
||||
if (!courseCrowdList.isEmpty()) {
|
||||
log.debug("=---studyIndex------ 开始查询受众信息 ---------------------------------");
|
||||
String token = request.getHeader("XBOE-Access-Token");
|
||||
for (CourseCrowd c : courseCrowdList) {
|
||||
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
|
||||
List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
|
||||
if (hasItem != null && !hasItem.isEmpty()) {
|
||||
// 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;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else {
|
||||
pass = true;
|
||||
}
|
||||
|
||||
List<CourseContent> cclist=contentService.getByCourseId(cid);
|
||||
@@ -251,7 +272,7 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
|
||||
/**
|
||||
* 记录学习信息,在学习每个资源时都要记录.前端用户打开课程资源按规则调用带着课程及学习信息调用此接口。
|
||||
* @param studyId
|
||||
* @param
|
||||
* @return 返回学习条目的id
|
||||
*/
|
||||
@PostMapping("/study")
|
||||
@@ -382,8 +403,8 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
* 音视频学习保存,初始化保存学习记录.
|
||||
* 如果已经保存,就不要再保存第二次了,前端注意控制
|
||||
* {studyId,contentId,courseId,progress,contentType,studyDuration}
|
||||
* @param itemId
|
||||
* @param videoTime
|
||||
* @param
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/study-video-save")
|
||||
@@ -438,8 +459,8 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
}
|
||||
/**
|
||||
* 视频学习完
|
||||
* @param itemId
|
||||
* @param studyId
|
||||
* @param
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/study-video-finish")
|
||||
@@ -465,7 +486,7 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
/**
|
||||
* 记录视频的学习时间点,前端可以每10秒记录一次,时长是秒
|
||||
* @param itemId 学习内容条目id
|
||||
* @param videoTime
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/study-video-time")
|
||||
@@ -491,11 +512,6 @@ public class StudyCourseApi extends ApiBaseController{
|
||||
/**
|
||||
* 追加学习时长,如果有id了,后台就会增加学习时长,如果不是就会减少.
|
||||
* 已经不再使用,二期移到独立的数据统计中了
|
||||
* @param stid 记录时间id,非必填项
|
||||
* @param scid 学习id,
|
||||
* @param cid 课程id
|
||||
* @param ccid 内容id
|
||||
* @param info 学习信息
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
|
||||
@@ -55,9 +55,12 @@ logging.config=classpath:log/logback-@profileActive@.xml
|
||||
# config.id.generator.server.num=1
|
||||
# config.id.generator.datacenter.num=1
|
||||
|
||||
boe.domain=https://pretest.zcwytd.com
|
||||
#boe.domain=https://pretest.zcwytd.com
|
||||
boe.domain=https://u-pre.boe.com
|
||||
orgTree.orgTreeList=${boe.domain}/userbasic/org/list
|
||||
# ????id????????????
|
||||
orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs
|
||||
userBasic.searchUserList=${boe.domain}/userbasic/user/list
|
||||
audience.usersByAudienceList=${boe.domain}/userbasic/audience/memberList
|
||||
#获取用户学习课程数据
|
||||
statApi.userdynamicList=${boe.domain}/statApi/xboe/m/stat/userdynamic/list
|
||||
Binary file not shown.
Reference in New Issue
Block a user