mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-13 04:46:50 +08:00
课程受众-例外
This commit is contained in:
@@ -31,6 +31,9 @@ public class ThirdApi {
|
|||||||
@Value("${userBasic.searchUserList}")
|
@Value("${userBasic.searchUserList}")
|
||||||
private String searchUserListUrl;
|
private String searchUserListUrl;
|
||||||
|
|
||||||
|
@Value("${statApi.userdynamicList}")
|
||||||
|
private String userdynamicListUrl;
|
||||||
|
|
||||||
|
|
||||||
public List<UserInfoListVo> getAllUserList(UserListParam userListParam, String token) {
|
public List<UserInfoListVo> getAllUserList(UserListParam userListParam, String token) {
|
||||||
log.info("获取用户");
|
log.info("获取用户");
|
||||||
@@ -89,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);
|
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)).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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -12,6 +12,8 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import com.xboe.api.ThirdApi;
|
import com.xboe.api.ThirdApi;
|
||||||
import com.xboe.api.vo.AuditList;
|
import com.xboe.api.vo.AuditList;
|
||||||
import com.xboe.api.vo.AuditListParam;
|
import com.xboe.api.vo.AuditListParam;
|
||||||
|
import com.xboe.api.vo.UserDynamic;
|
||||||
|
import com.xboe.api.vo.UserdynamicParam;
|
||||||
import com.xboe.core.JsonResponseStatus;
|
import com.xboe.core.JsonResponseStatus;
|
||||||
import com.xboe.module.usergroup.entity.UserGroupItem;
|
import com.xboe.module.usergroup.entity.UserGroupItem;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -263,22 +265,22 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
|
|
||||||
boolean pass = false;
|
boolean pass = false;
|
||||||
if(!preview) {
|
if(!preview) {
|
||||||
log.debug("=--------- 开始查询受众信息 ---------------------------------");
|
log.error("=--------- 开始查询受众信息 ---------------------------------aid = " + aid);
|
||||||
log.error("=--------- 开始查询受众信息 ---------------------------------");
|
|
||||||
String token = request.getHeader("XBOE-Access-Token");
|
String token = request.getHeader("XBOE-Access-Token");
|
||||||
log.debug("=--------- 获取token token = " + token);
|
|
||||||
log.error("=--------- 获取token token = " + token);
|
log.error("=--------- 获取token token = " + token);
|
||||||
if (!courseCrowdList.isEmpty()) {
|
if (!courseCrowdList.isEmpty()) {
|
||||||
for (CourseCrowd c : courseCrowdList) {
|
for (CourseCrowd c : courseCrowdList) {
|
||||||
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
|
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
|
||||||
// List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
|
// List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
|
||||||
log.debug("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId());
|
|
||||||
log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId());
|
log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId());
|
||||||
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token);
|
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token);
|
||||||
log.debug("=--------- allAudienceList: " +allAudienceList);
|
|
||||||
log.error("=--------- allAudienceList: " +allAudienceList);
|
|
||||||
List<Long> userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList());
|
List<Long> userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList());
|
||||||
if (userIdList.contains(aid)) {
|
log.error("=--------- 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)) || dynamicList.contains(id)) {
|
||||||
pass = true;
|
pass = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -318,6 +320,7 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/detail-study")
|
@GetMapping("/detail-study")
|
||||||
public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){
|
public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){
|
||||||
if(StringUtil.isBlank(courseId)){
|
if(StringUtil.isBlank(courseId)){
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import java.util.stream.Collectors;
|
|||||||
import com.xboe.api.ThirdApi;
|
import com.xboe.api.ThirdApi;
|
||||||
import com.xboe.api.vo.AuditList;
|
import com.xboe.api.vo.AuditList;
|
||||||
import com.xboe.api.vo.AuditListParam;
|
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.entity.UserGroupItem;
|
||||||
import com.xboe.module.usergroup.service.IUserGroupService;
|
import com.xboe.module.usergroup.service.IUserGroupService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -125,8 +127,6 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出课程学习记录
|
* 导出课程学习记录
|
||||||
* @param courseId
|
|
||||||
* @param type
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value="/export",method = {RequestMethod.GET,RequestMethod.POST})
|
@RequestMapping(value="/export",method = {RequestMethod.GET,RequestMethod.POST})
|
||||||
@@ -146,7 +146,6 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 学习页面,加载课程的信息,用于替换portal中的detail方法
|
* 学习页面,加载课程的信息,用于替换portal中的detail方法
|
||||||
* @param id
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST})
|
@RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST})
|
||||||
@@ -177,9 +176,15 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
for (CourseCrowd c : courseCrowdList) {
|
for (CourseCrowd c : courseCrowdList) {
|
||||||
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
|
//同一个受众,同一个只会有一条记录,所以这里就直接查询了
|
||||||
// List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
|
// List<UserGroupItem> hasItem = userGroupService.findByGroupIdAndAid(c.getGroupId(),aid);
|
||||||
|
log.error("=--------- 开始调研用户中心受众接口 groupId = " + c.getGroupId());
|
||||||
List<AuditList> allAudienceList = thirdApi.getAllAudienceList(AuditListParam.builder().audienceId(c.getGroupId()).pageSize(1000).pageNo(1).build(), token);
|
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());
|
List<Long> userIdList = allAudienceList.stream().map(AuditList::getUserId).collect(Collectors.toList());
|
||||||
if (userIdList.contains(aid)) {
|
log.error("=--------- 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)) || dynamicList.contains(cid)) {
|
||||||
pass = true;
|
pass = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -268,7 +273,7 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录学习信息,在学习每个资源时都要记录.前端用户打开课程资源按规则调用带着课程及学习信息调用此接口。
|
* 记录学习信息,在学习每个资源时都要记录.前端用户打开课程资源按规则调用带着课程及学习信息调用此接口。
|
||||||
* @param studyId
|
* @param
|
||||||
* @return 返回学习条目的id
|
* @return 返回学习条目的id
|
||||||
*/
|
*/
|
||||||
@PostMapping("/study")
|
@PostMapping("/study")
|
||||||
@@ -399,8 +404,8 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
* 音视频学习保存,初始化保存学习记录.
|
* 音视频学习保存,初始化保存学习记录.
|
||||||
* 如果已经保存,就不要再保存第二次了,前端注意控制
|
* 如果已经保存,就不要再保存第二次了,前端注意控制
|
||||||
* {studyId,contentId,courseId,progress,contentType,studyDuration}
|
* {studyId,contentId,courseId,progress,contentType,studyDuration}
|
||||||
* @param itemId
|
* @param
|
||||||
* @param videoTime
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/study-video-save")
|
@PostMapping("/study-video-save")
|
||||||
@@ -455,8 +460,8 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 视频学习完
|
* 视频学习完
|
||||||
* @param itemId
|
* @param
|
||||||
* @param studyId
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/study-video-finish")
|
@PostMapping("/study-video-finish")
|
||||||
@@ -482,7 +487,7 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
/**
|
/**
|
||||||
* 记录视频的学习时间点,前端可以每10秒记录一次,时长是秒
|
* 记录视频的学习时间点,前端可以每10秒记录一次,时长是秒
|
||||||
* @param itemId 学习内容条目id
|
* @param itemId 学习内容条目id
|
||||||
* @param videoTime
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/study-video-time")
|
@PostMapping("/study-video-time")
|
||||||
@@ -508,11 +513,6 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
/**
|
/**
|
||||||
* 追加学习时长,如果有id了,后台就会增加学习时长,如果不是就会减少.
|
* 追加学习时长,如果有id了,后台就会增加学习时长,如果不是就会减少.
|
||||||
* 已经不再使用,二期移到独立的数据统计中了
|
* 已经不再使用,二期移到独立的数据统计中了
|
||||||
* @param stid 记录时间id,非必填项
|
|
||||||
* @param scid 学习id,
|
|
||||||
* @param cid 课程id
|
|
||||||
* @param ccid 内容id
|
|
||||||
* @param info 学习信息
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
|
|||||||
@@ -62,3 +62,5 @@ orgTree.orgTreeList=${boe.domain}/userbasic/org/list
|
|||||||
orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs
|
orgTree.orgChildTreeList=${boe.domain}/userbasic/org/childOrgs
|
||||||
userBasic.searchUserList=${boe.domain}/userbasic/user/list
|
userBasic.searchUserList=${boe.domain}/userbasic/user/list
|
||||||
audience.usersByAudienceList=${boe.domain}/userbasic/audience/memberList
|
audience.usersByAudienceList=${boe.domain}/userbasic/audience/memberList
|
||||||
|
#获取用户学习课程数据
|
||||||
|
statApi.userdynamicList=${boe.domain}/statApi/xboe/m/stat/userdynamic/list
|
||||||
Reference in New Issue
Block a user