mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-09 19:06:49 +08:00
Merge remote-tracking branch 'origin/20241118-upframework' into prod-250107-from104-master-teacher-1202
# Conflicts: # servers/boe-server-all/pom.xml # servers/boe-server-all/src/main/java/com/xboe/api/ThirdApi.java # servers/boe-server-all/src/main/resources/application-pro.properties # servers/boe-server-all/src/main/resources/application-test.properties # servers/boe-server-all/src/main/resources/application.properties
This commit is contained in:
@@ -1,39 +1,41 @@
|
||||
package com.xboe;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
import org.springframework.retry.annotation.EnableRetry;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.system.ApplicationPid;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.retry.annotation.EnableRetry;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
@Configuration
|
||||
@SpringBootApplication
|
||||
@EnableCaching
|
||||
@EnableAsync
|
||||
@EnableRetry
|
||||
@EnableScheduling
|
||||
@EnableDiscoveryClient
|
||||
@EnableFeignClients(basePackages = {"com.boe.feign.api.*.remote", "com.xboe.api"})
|
||||
public class BoeServerAllApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.setProperty("jasypt.encryptor.password","jasypt");
|
||||
SpringApplication.run(BoeServerAllApplication.class, args);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
private void handlePid() throws IOException {
|
||||
File file = new File("application.pid");
|
||||
new ApplicationPid().write(file);
|
||||
file.deleteOnExit();
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
System.setProperty("jasypt.encryptor.password", "jasypt");
|
||||
SpringApplication.run(BoeServerAllApplication.class, args);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
private void handlePid() throws IOException {
|
||||
File file = new File("application.pid");
|
||||
new ApplicationPid().write(file);
|
||||
file.deleteOnExit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,14 +1,33 @@
|
||||
package com.xboe.api;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
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.fastjson.JSON;
|
||||
import com.boe.feign.api.courseweb.entity.ExamTestDto;
|
||||
import com.boe.feign.api.courseweb.entity.ProjectStudyDto;
|
||||
import com.boe.feign.api.courseweb.remote.OffCourseRemoteClient;
|
||||
import com.boe.feign.api.courseweb.remote.ProjectAdminRemoteClient;
|
||||
import com.boe.feign.api.courseweb.remote.ProjectRemoteClient;
|
||||
import com.boe.feign.api.infrastructure.entity.CommonSearchVo;
|
||||
import com.boe.feign.api.infrastructure.entity.Dict;
|
||||
import com.boe.feign.api.infrastructure.remote.DictRemoteClient;
|
||||
import com.boe.feign.api.stat.remote.UserDynamicApiRemoteClient;
|
||||
import com.boe.feign.api.usercenter.entity.*;
|
||||
import com.boe.feign.api.usercenter.remote.AudienceRemoteClient;
|
||||
import com.boe.feign.api.usercenter.remote.UserRemoteClient;
|
||||
import com.boe.feign.api.usercenter.reps.AudienceMemberVo;
|
||||
import com.boe.feign.api.usercenter.reps.Response;
|
||||
import com.xboe.api.infrastructure.res.InfraResult;
|
||||
import com.xboe.api.vo.*;
|
||||
import com.xboe.module.course.dto.CourseParam;
|
||||
import com.xboe.module.course.dto.ScoreParam;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.common.Pagination;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.module.course.vo.StudyCourseVo;
|
||||
import com.xboe.module.course.vo.TeacherInfoVo;
|
||||
import com.xboe.module.course.vo.TeacherVo;
|
||||
import com.xboe.module.dict.entity.DictDto;
|
||||
import com.xboe.module.exam.entity.ExamTest;
|
||||
@@ -20,9 +39,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -36,43 +57,34 @@ public class ThirdApi {
|
||||
|
||||
public static final ForkJoinPool REQUEST_TASK = new ForkJoinPool(100);
|
||||
|
||||
//没有找到
|
||||
@Value("${orgTree.orgChildTreeList}")
|
||||
private String orgChildTreeListUrl;
|
||||
|
||||
|
||||
@Value("${audience.usersByAudienceList}")
|
||||
private String usersByAudienceList;
|
||||
|
||||
@Value("${userBasic.searchUserList}")
|
||||
private String searchUserListUrl;
|
||||
|
||||
@Value("${statApi.userdynamicList}")
|
||||
private String userdynamicListUrl;
|
||||
|
||||
@Autowired
|
||||
UserDao userDao;
|
||||
|
||||
@Value("${infrasApi.dict}")
|
||||
private String infarasApiUrl;
|
||||
|
||||
@Value("${manageApi.stu.offcourse}")
|
||||
private String manageApiStu;
|
||||
@Resource
|
||||
private ProjectAdminRemoteClient projectAdminRemoteClient;
|
||||
|
||||
@Value("${audience.getOrgUsers}")
|
||||
private String searchOrgUsersUrl;
|
||||
@Resource
|
||||
private OffCourseRemoteClient offCourseRemoteClient;
|
||||
|
||||
@Value("${userBasic.getTeacherIds}")
|
||||
private String getTeacherIds;
|
||||
@Resource
|
||||
private ProjectRemoteClient projectRemoteClient;
|
||||
|
||||
@Resource
|
||||
private DictRemoteClient dictRemoteClient;
|
||||
|
||||
@Value("${coursesuilt.getStudyStatus}")
|
||||
private String getStudyStatus;
|
||||
@Resource
|
||||
private UserRemoteClient userRemoteClient;
|
||||
|
||||
@Value("${manageApi.editExam}")
|
||||
private String editExam;
|
||||
@Resource
|
||||
private AudienceRemoteClient audienceRemoteClient;
|
||||
|
||||
@Value("${userBasic.getUserBasicInfo}")
|
||||
private String getUserBasicInfo;
|
||||
@Resource
|
||||
private UserDynamicApiRemoteClient userDynamicApiRemoteClient;
|
||||
|
||||
@Value("${coursesuilt.updateOrSaveCourse}")
|
||||
private String updateOrSaveCourse;
|
||||
@@ -85,9 +97,12 @@ public class ThirdApi {
|
||||
|
||||
|
||||
//获取例外人员的id
|
||||
public List<String> getUserId(){
|
||||
String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316
|
||||
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
public List<String> getUserId() {
|
||||
CommonSearchVo searcher = new CommonSearchVo();
|
||||
searcher.setPid(316L);
|
||||
searcher.setType(1);
|
||||
List<Dict> dictList = dictRemoteClient.getList(searcher);
|
||||
String responseBody = JSON.toJSONString(InfraResult.suc(dictList));
|
||||
log.info("正在获取例外人员工号 responseBody = " + responseBody);
|
||||
try {
|
||||
Optional<DictResult> dictResultOptional = Optional.of(responseBody)
|
||||
@@ -100,54 +115,56 @@ public class ThirdApi {
|
||||
throw new RuntimeException("DictResult中的data字段为空。");
|
||||
}
|
||||
return dictDtos.stream().map(DictDto::getValue).collect(Collectors.toList());
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("解析过程发生异常:" + e.getMessage(), e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//获取面授课id
|
||||
public List<String>getOffCourseId(String userId,String token){
|
||||
public List<String> getOffCourseId(String userId, String token) {
|
||||
log.info("正在获取面授课id");
|
||||
String s = Optional.ofNullable(HttpRequest.get(manageApiStu+"?userId="+userId).header("token", token).execute()
|
||||
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
return Opt.ofBlankAble(s).map(t -> JSONUtil.toBean(t, StringResult.class)).map(StringResult::getData).orElseThrow();
|
||||
return offCourseRemoteClient.getOffCourseId(userId);
|
||||
}
|
||||
|
||||
//获取离职教师信息
|
||||
public List<TeacherVo>getTeacherInfo(List<String> teacherIds, String token){
|
||||
TeacherInfoVo teacherInfoVo=new TeacherInfoVo();
|
||||
teacherInfoVo.setTeacherIds(teacherIds);
|
||||
public List<TeacherVo> getTeacherInfo(List<String> teacherIds, String token) {
|
||||
log.info("获取离职教师信息");
|
||||
log.info(JSONUtil.toJsonStr(teacherInfoVo));
|
||||
String resp = Optional.ofNullable(
|
||||
HttpRequest.post(getTeacherIds).body(JSONUtil.toJsonStr(teacherInfoVo)).header("token", token).execute()
|
||||
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
com.boe.feign.api.usercenter.entity.TeacherInfoVo teacherInfoFeignVo = new com.boe.feign.api.usercenter.entity.TeacherInfoVo();
|
||||
teacherInfoFeignVo.setTeacherIds(teacherIds);
|
||||
Response<List<com.boe.feign.api.usercenter.entity.TeacherVo>> response = userRemoteClient.getTeacherInfo(teacherInfoFeignVo);
|
||||
String resp = JSON.toJSONString(response);
|
||||
GetTeacherIdsResult getTeacherIdsResult = JSONUtil.toBean(resp, GetTeacherIdsResult.class);
|
||||
log.info("getTeacherIdsResult = " + getTeacherIdsResult.getResult());
|
||||
return getTeacherIdsResult.getResult();
|
||||
}
|
||||
public List<TeacherVo>getTeacherInfoByCode(List<String> teacherCode,String token){
|
||||
TeacherInfoVo teacherInfoVo=new TeacherInfoVo();
|
||||
teacherInfoVo.setTeacherCode(teacherCode);
|
||||
|
||||
public List<TeacherVo> getTeacherInfoByCode(List<String> teacherCode, String token) {
|
||||
log.info("获取离职教师信息");
|
||||
log.info("参数为"+JSONUtil.toJsonStr(teacherCode));
|
||||
String resp = Optional.ofNullable(
|
||||
HttpRequest.post(getTeacherIds).body(JSONUtil.toJsonStr(teacherInfoVo)).header("token", token).execute()
|
||||
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
com.boe.feign.api.usercenter.entity.TeacherInfoVo teacherInfoFeignVo = new com.boe.feign.api.usercenter.entity.TeacherInfoVo();
|
||||
teacherInfoFeignVo.setTeacherCode(teacherCode);
|
||||
Response<List<com.boe.feign.api.usercenter.entity.TeacherVo>> response = userRemoteClient.getTeacherInfo(teacherInfoFeignVo);
|
||||
String resp = JSON.toJSONString(response);
|
||||
GetTeacherIdsResult getTeacherIdsResult = JSONUtil.toBean(resp, GetTeacherIdsResult.class);
|
||||
log.info("getTeacherIdsResult = " + getTeacherIdsResult);
|
||||
return getTeacherIdsResult.getResult();
|
||||
}
|
||||
|
||||
public List<UserInfoListVo> getAllUserList(UserListParam userListParam, String token) {
|
||||
log.info("获取用户:url:{}", searchOrgUsersUrl);
|
||||
log.info("获取用户:params:{}", JSONUtil.toJsonStr(userListParam));
|
||||
String resp = Optional.ofNullable(HttpRequest.post(searchOrgUsersUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
UserQueryDto userQueryDto = new UserQueryDto();
|
||||
userQueryDto.setOrganizationId(userListParam.getOrganizationId());
|
||||
userQueryDto.setPageNo(userListParam.getPageNo());
|
||||
userQueryDto.setPageSize(userListParam.getPageSize());
|
||||
Response<PageResult<UserOrgSearchVo>> response = userRemoteClient.getOrgUserForRpc(userQueryDto);
|
||||
String resp = JSON.toJSONString(response);
|
||||
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);
|
||||
log.info("获取用户返回值1 {}", resp);
|
||||
return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, UserInfoListRootBean.class).success())
|
||||
.map(UserInfoListRootBean::getResult)
|
||||
.map(result -> Opt.ofEmptyAble(result.getList()).peek(t -> nextPage(userListParam, token, t, result)).orElse(ListUtil.toList()))
|
||||
@@ -156,8 +173,13 @@ public class ThirdApi {
|
||||
|
||||
private void getAllUserList(UserListParam userListParam, String token, List<UserInfoListVo> userInfoLists) {
|
||||
log.info("获取用户2");
|
||||
String resp = Optional.ofNullable(HttpRequest.post(searchOrgUsersUrl).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
log.info("获取用户返回值2 {}",resp);
|
||||
UserQueryDto userQueryDto = new UserQueryDto();
|
||||
userQueryDto.setOrganizationId(userListParam.getOrganizationId());
|
||||
userQueryDto.setPageNo(userListParam.getPageNo());
|
||||
userQueryDto.setPageSize(userListParam.getPageSize());
|
||||
Response<PageResult<UserOrgSearchVo>> response = userRemoteClient.getOrgUserForRpc(userQueryDto);
|
||||
String resp = JSON.toJSONString(response);
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -177,7 +199,12 @@ public class ThirdApi {
|
||||
}
|
||||
|
||||
public List<AuditList> getAllAudienceList(AuditListParam userListParam, String token) {
|
||||
String resp = Optional.ofNullable(HttpRequest.post(usersByAudienceList).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
AudienceDto userMemberVo = new AudienceDto();
|
||||
userMemberVo.setPageSize(userListParam.getPageSize());
|
||||
userMemberVo.setPageNo(userListParam.getPageNo());
|
||||
userMemberVo.setAudienceId(userListParam.getAudienceId());
|
||||
PageList<AudienceMemberVo> pageList = audienceRemoteClient.memberList(userMemberVo);
|
||||
String resp = JSON.toJSONString(pageList);
|
||||
return Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(resp, AuditRootBean.class).success())
|
||||
.map(AuditRootBean::getResult)
|
||||
.map(result -> Opt.ofEmptyAble(result.getList()).peek(t -> nextPage(userListParam, t, result, token)).orElse(ListUtil.toList()))
|
||||
@@ -191,65 +218,82 @@ public class ThirdApi {
|
||||
}
|
||||
|
||||
private void getAllAudienceList(AuditListParam userListParam, List<AuditList> list, String token) {
|
||||
String resp = Optional.ofNullable(HttpRequest.post(usersByAudienceList).body(JSONUtil.toJsonStr(userListParam)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
AudienceDto userMemberVo = new AudienceDto();
|
||||
userMemberVo.setPageSize(userListParam.getPageSize());
|
||||
userMemberVo.setPageNo(userListParam.getPageNo());
|
||||
userMemberVo.setAudienceId(userListParam.getAudienceId());
|
||||
PageList<AudienceMemberVo> pageList = audienceRemoteClient.memberList(userMemberVo);
|
||||
String resp = JSON.toJSONString(pageList);
|
||||
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 );
|
||||
Pagination pagination = new Pagination();
|
||||
pagination.setPageSize(userdynamicParam.getPageSize());
|
||||
pagination.setPageIndex(userdynamicParam.getPageIndex());
|
||||
com.boe.feign.api.stat.entity.UserDynamic udd = new com.boe.feign.api.stat.entity.UserDynamic();
|
||||
udd.setAid(userdynamicParam.getAid() == null ? null : userdynamicParam.getAid().toString());
|
||||
udd.setHidden("true".equals(userdynamicParam.getHidden()));
|
||||
udd.setContentType(userdynamicParam.getContentType() == null ? null : userdynamicParam.getContentType().toString());
|
||||
JsonResponse<PageList<com.boe.feign.api.stat.entity.UserDynamic>> jsonResponse = userDynamicApiRemoteClient.pageList(pagination, udd, null);
|
||||
String resp = JSON.toJSONString(jsonResponse);
|
||||
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 );
|
||||
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校验失败"));
|
||||
log.error("=3----getAllUserdynamicList----- 开始课程信息 ---------------------------------resp = " + userdynamicParam);
|
||||
AudienceDto userMemberVo = new AudienceDto();
|
||||
userMemberVo.setPageSize(1000);
|
||||
userMemberVo.setPageNo(userdynamicParam.getPageIndex());
|
||||
PageList<AudienceMemberVo> pageList = audienceRemoteClient.memberList(userMemberVo);
|
||||
String resp = JSON.toJSONString(pageList);
|
||||
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 List<StudyCourse>getStudyCourseList(String studyId,String courseId, String token){
|
||||
public List<StudyCourse> getStudyCourseList(String studyId, String courseId, String token) {
|
||||
StudyCourseVo studyCourseVo = new StudyCourseVo();
|
||||
studyCourseVo.setStudyId(studyId);
|
||||
studyCourseVo.setCourseId(courseId);
|
||||
String resp = Optional.ofNullable(
|
||||
HttpRequest.post(getStudyStatus).body(JSONUtil.toJsonStr(studyCourseVo)).header("token", token).execute()
|
||||
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
StudyCourseResult studyCourseResult = JSONUtil.toBean(resp, StudyCourseResult.class);
|
||||
log.info("getTeacherIdsResult = " + studyCourseResult);
|
||||
return studyCourseResult.getResult();
|
||||
ProjectStudyDto projectStudyDto = new ProjectStudyDto();
|
||||
BeanUtil.copyProperties(studyCourseVo, studyCourseVo);
|
||||
projectRemoteClient.updateStudyStatus(projectStudyDto);
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
public void sqlUpdate(ExamTest examTest, String token) {
|
||||
examTest.setSysUpdateTime(null);
|
||||
examTest.setSysCreateTime(null);
|
||||
examTest.setPublishTime(null);
|
||||
String resp = Optional.ofNullable(HttpRequest.post(editExam).body(JSONUtil.toJsonStr(examTest)).header("token", token).execute().body()).orElseThrow(() -> new RuntimeException("token校验失败"));
|
||||
Opt.ofBlankAble(resp).map(t -> JSONUtil.toBean(t, DynamicBean.class).success());
|
||||
ExamTestDto examTestDto = new ExamTestDto();
|
||||
|
||||
BeanUtil.copyProperties(examTest, examTestDto);
|
||||
examTestDto.setShowAnswer(examTest.getShowAnswer() ? "true" : "false");
|
||||
|
||||
projectAdminRemoteClient.editExam(examTestDto);
|
||||
}
|
||||
|
||||
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);
|
||||
System.out.println(" resp = " + resp);
|
||||
DynamicBean a = JSONUtil.toBean(resp, DynamicBean.class);
|
||||
System.out.println(" a = " +a);
|
||||
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);
|
||||
|
||||
|
||||
|
||||
System.out.println(" list = " + list.size());
|
||||
System.out.println(" list = " + list);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -257,13 +301,16 @@ public class ThirdApi {
|
||||
*/
|
||||
public UserDynamicResult getAllUserdynamicListOfCaseRead(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校验失败"));
|
||||
|
||||
Pagination pagination = new Pagination();
|
||||
pagination.setPageSize(userdynamicParam.getPageSize());
|
||||
pagination.setPageIndex(userdynamicParam.getPageIndex());
|
||||
com.boe.feign.api.stat.entity.UserDynamic udd = new com.boe.feign.api.stat.entity.UserDynamic();
|
||||
udd.setAid(userdynamicParam.getAid() == null ? null : userdynamicParam.getAid().toString());
|
||||
udd.setHidden("true".equals(userdynamicParam.getHidden()));
|
||||
udd.setContentType(userdynamicParam.getContentType() == null ? null : userdynamicParam.getContentType().toString());
|
||||
udd.setEventKey("ReadCase");
|
||||
JsonResponse<PageList<com.boe.feign.api.stat.entity.UserDynamic>> jsonResponse = userDynamicApiRemoteClient.pageList(pagination, udd, udd.getAid());
|
||||
String resp = JSON.toJSONString(jsonResponse);
|
||||
DynamicBean dynamicBean = JSONUtil.toBean(resp, DynamicBean.class);
|
||||
UserDynamicResult userdynamicResult = dynamicBean.getResult();
|
||||
return userdynamicResult;
|
||||
@@ -273,7 +320,6 @@ public class ThirdApi {
|
||||
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"));
|
||||
@@ -299,15 +345,10 @@ public class ThirdApi {
|
||||
token = request.getHeader("x-access-token");
|
||||
}
|
||||
|
||||
// 将userIds列表转换为逗号分隔的字符串
|
||||
String userIdsStr = userIds.stream()
|
||||
.collect(Collectors.joining(","));
|
||||
String url = getUserBasicInfo +"?userIds=" + userIdsStr;
|
||||
|
||||
String respStr = Optional.ofNullable(HttpRequest
|
||||
.get(url)
|
||||
.header("token", token)
|
||||
.execute().body()).orElseThrow(() -> new RuntimeException("用户中心用户数据获取失败"));
|
||||
UserBasicInfoDto userBasicInfoDto = new UserBasicInfoDto();
|
||||
userBasicInfoDto.setUserIds(userIds);
|
||||
Response<List<UserAccount>> response = userRemoteClient.getUserBasicInfo(userBasicInfoDto);
|
||||
String respStr = JSON.toJSONString(response);
|
||||
|
||||
UserBasicInfoResult userBasicInfoResult = JSONUtil.parseObj(respStr).toBean(UserBasicInfoResult.class);
|
||||
List<UserBasicInfo> basicInfos = userBasicInfoResult.getResult();
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
package com.xboe.api.infrastructure.res;
|
||||
|
||||
import com.boe.feign.api.courseweb.reps.MessageEnum;
|
||||
import com.boe.feign.api.courseweb.reps.ResultStatus;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class InfraResult<T> implements Serializable {
|
||||
|
||||
private boolean isSuccess = true;
|
||||
private boolean show = false;
|
||||
private String version = "1.1.0";
|
||||
private int code;
|
||||
private String msg;
|
||||
private T data;
|
||||
|
||||
public InfraResult() {
|
||||
}
|
||||
|
||||
public InfraResult(boolean isSuccess, int code, String msg) {
|
||||
this.isSuccess = isSuccess;
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
public InfraResult(boolean isSuccess, int code, String msg, T data) {
|
||||
this.isSuccess = isSuccess;
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public InfraResult(MessageEnum messageEnum) {
|
||||
this.code = messageEnum.getCode();
|
||||
this.msg = messageEnum.getMessage();
|
||||
this.show = messageEnum.isShow();
|
||||
}
|
||||
|
||||
public InfraResult(MessageEnum messageEnum, T data) {
|
||||
this.code = messageEnum.getCode();
|
||||
this.msg = messageEnum.getMessage();
|
||||
this.show = messageEnum.isShow();
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public InfraResult(boolean isSuccess, MessageEnum messageEnum) {
|
||||
this.isSuccess = isSuccess;
|
||||
this.code = messageEnum.getCode();
|
||||
this.msg = messageEnum.getMessage();
|
||||
this.show = messageEnum.isShow();
|
||||
}
|
||||
|
||||
public InfraResult(boolean isSuccess, MessageEnum messageEnum, T data) {
|
||||
this.isSuccess = isSuccess;
|
||||
this.code = messageEnum.getCode();
|
||||
this.msg = messageEnum.getMessage();
|
||||
this.show = messageEnum.isShow();
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public void setMessageEnum(MessageEnum messageEnum) {
|
||||
this.code = messageEnum.getCode();
|
||||
this.msg = messageEnum.getMessage();
|
||||
}
|
||||
|
||||
public InfraResult(ResultStatus status, T data) {
|
||||
this.code = status.getCode();
|
||||
this.msg = status.getMessage();
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public static InfraResult error(String message) {
|
||||
return new InfraResult(true, -1, message);
|
||||
}
|
||||
|
||||
public static InfraResult error(MessageEnum messageEnum) {
|
||||
return new InfraResult(messageEnum);
|
||||
}
|
||||
|
||||
public static InfraResult error(MessageEnum messageEnum, String errMsg) {
|
||||
return new InfraResult(messageEnum,errMsg);
|
||||
}
|
||||
|
||||
public static InfraResult error(ResultStatus error) {
|
||||
return new InfraResult(error, new HashMap<>(20));
|
||||
}
|
||||
|
||||
|
||||
public static InfraResult suc(Object data) {
|
||||
return new InfraResult(ResultStatus.SUCCESS, data);
|
||||
}
|
||||
|
||||
public static InfraResult ok() {
|
||||
return new InfraResult(ResultStatus.SUCCESS, new HashMap<>(20));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.xboe.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.HttpOutputMessage;
|
||||
import org.springframework.http.converter.HttpMessageNotWritableException;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
public class LoggingMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(LoggingMappingJackson2HttpMessageConverter.class);
|
||||
|
||||
private final ObjectMapper objectMapper;
|
||||
|
||||
public LoggingMappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
|
||||
this.objectMapper = objectMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeInternal(@NonNull Object object, @NonNull HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
|
||||
// 记录转换前的数据
|
||||
String jsonBefore = objectMapper.writeValueAsString(object);
|
||||
logger.info("===========Response JSON Before Conversion: {}", jsonBefore);
|
||||
|
||||
// 调用父类方法进行实际的转换
|
||||
super.writeInternal(object, outputMessage);
|
||||
|
||||
// 记录转换后的数据
|
||||
// 注意:由于输出流已经写入,这里无法直接获取转换后的数据
|
||||
// 可以考虑使用类似拦截器的方法来捕获响应体
|
||||
}
|
||||
|
||||
/*
|
||||
* 重写父类的writeInternal方法,在响应体写入前记录原始数据
|
||||
*/
|
||||
@Override
|
||||
public void writeInternal(@NonNull Object object, @Nullable Type type, @NonNull HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
|
||||
// 记录转换前的数据
|
||||
String jsonBefore = objectMapper.writeValueAsString(object);
|
||||
logger.info("===========Response JSON type Before Conversion: {}", jsonBefore);
|
||||
|
||||
// 调用父类方法进行实际的转换
|
||||
super.writeInternal(object, type, outputMessage);
|
||||
|
||||
// 记录转换后的数据
|
||||
// 注意:由于输出流已经写入,这里无法直接获取转换后的数据
|
||||
// 可以考虑使用类似拦截器的方法来捕获响应体
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.xboe.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.cbor.MappingJackson2CborHttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Configuration
|
||||
public class WebConfig implements WebMvcConfigurer {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(WebConfig.class);
|
||||
|
||||
//结果处理器
|
||||
@Bean
|
||||
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
|
||||
return new LoggingMappingJackson2HttpMessageConverter(objectMapper);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ObjectMapper objectMapper() {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.registerModule(new JavaTimeModule());
|
||||
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY,true);
|
||||
return mapper;
|
||||
}
|
||||
/**
|
||||
* 在默认的消息转换器基础上添加或移除某些转换器
|
||||
* 保证StringHttpMessageConverter在FastJsonHttpMessageConverter前被调用
|
||||
*
|
||||
* @param converters the list of configured converters to be extended
|
||||
*/
|
||||
@Override
|
||||
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
converters.removeIf(t -> t instanceof MappingJackson2HttpMessageConverter || t instanceof MappingJackson2CborHttpMessageConverter);
|
||||
converters.add(mappingJackson2HttpMessageConverter(objectMapper()));
|
||||
for (HttpMessageConverter<?> converterLoop : converters) {
|
||||
logger.info("==######### Registered e message converter: {}", converterLoop.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
// converters.add(mappingJackson2HttpMessageConverter(new ObjectMapper()));
|
||||
// for (HttpMessageConverter<?> converter : converters) {
|
||||
// logger.info("==#########Registered message converter: {}", converter.getClass().getName());
|
||||
// }
|
||||
// }
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.xboe.data.api;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@@ -12,7 +13,6 @@ import com.xboe.account.entity.Account;
|
||||
import com.xboe.account.service.IAccountService;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.service.IDataUserSyncService;
|
||||
import com.xboe.system.organization.service.IOrganizationService;
|
||||
import com.xboe.system.user.service.IUserService;
|
||||
@@ -40,6 +40,11 @@ public class UserDataSyncApi extends ApiBaseController {
|
||||
@Autowired
|
||||
IDataUserSyncService service;
|
||||
|
||||
/**
|
||||
* 同步用户数据
|
||||
* @param user 用户信息
|
||||
* @return JsonResponse<Boolean>
|
||||
*/
|
||||
@PostMapping("/user")
|
||||
public JsonResponse<Boolean> syncUser(@RequestBody UserData user) {
|
||||
|
||||
@@ -56,7 +61,12 @@ public class UserDataSyncApi extends ApiBaseController {
|
||||
return error("同步处理用户失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除用户信息
|
||||
* @param id 用户id
|
||||
* @return JsonResponse<Boolean>
|
||||
*/
|
||||
@PostMapping("/deluser")
|
||||
public JsonResponse<Boolean> deleteUser(String id) {
|
||||
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
package com.xboe.data.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 用于同步的用户数据
|
||||
* @author seastar
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class UserData {
|
||||
|
||||
/**用户的id*/
|
||||
private String id;
|
||||
|
||||
/**主要是为了兼容之前的使用,新用户可以为空*/
|
||||
private String kid;
|
||||
|
||||
/**用户工号,用于登录名*/
|
||||
private String code;
|
||||
|
||||
private String mobile;
|
||||
|
||||
/**band的级别*/
|
||||
private Integer bandLevel;
|
||||
|
||||
/**姓名,对应realName*/
|
||||
private String name;
|
||||
|
||||
/**用户的头像*/
|
||||
private String avatar;
|
||||
|
||||
/**性别 1:男 2:女*/
|
||||
private Integer gender;
|
||||
|
||||
/**学习时长,秒*/
|
||||
private Integer learningDuration;
|
||||
|
||||
/**部门id*/
|
||||
private String departId;
|
||||
|
||||
/**部门名称*/
|
||||
private String departName;
|
||||
|
||||
/**此字段主要是为了人员的显示*/
|
||||
private String orgNamePath;
|
||||
|
||||
/**
|
||||
* 用户类型,1表学员 此在这只默认只表学员
|
||||
*/
|
||||
private Integer userType;
|
||||
|
||||
/**
|
||||
* 表教师 是为1
|
||||
* */
|
||||
private Boolean teacher;
|
||||
|
||||
/**
|
||||
* 表系统管理员 是为1
|
||||
* */
|
||||
private Boolean sysAdmin;
|
||||
|
||||
/**
|
||||
* 管理员类型,1表默认管理员,2表非默认管理员,0表不是管理员
|
||||
* */
|
||||
private Integer adminType;
|
||||
|
||||
/**
|
||||
* 是否删除的,如果是删除的,上面所有的字段可以不提供,只提供id就可以了
|
||||
*/
|
||||
private Boolean deleted;
|
||||
}
|
||||
@@ -2,8 +2,8 @@ package com.xboe.data.outside;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import com.xboe.data.dto.AudienceUser;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.dto.UserOrgIds;
|
||||
import com.xboe.system.user.vo.UserSimpleVo;
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -14,7 +15,6 @@ import com.xboe.core.SysConstant;
|
||||
import com.xboe.core.api.TokenProxy;
|
||||
import com.xboe.core.utils.OkHttpUtil;
|
||||
import com.xboe.data.dto.AudienceUser;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.dto.UserOrgIds;
|
||||
import com.xboe.system.user.vo.UserSimpleVo;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.xboe.data.service;
|
||||
|
||||
import com.xboe.data.dto.UserData;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
|
||||
/**
|
||||
* 用户数据的更橷
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.time.LocalDateTime;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.retry.annotation.Recover;
|
||||
@@ -12,7 +13,6 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import com.xboe.account.dao.AccountDao;
|
||||
import com.xboe.account.entity.Account;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.service.IDataUserSyncService;
|
||||
import com.xboe.module.teacher.dao.TeacherDao;
|
||||
import com.xboe.module.teacher.entity.Teacher;
|
||||
|
||||
@@ -6,6 +6,9 @@ import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.CaseVo;
|
||||
import com.boe.feign.api.serverall.entity.CasesFiledVo;
|
||||
import com.boe.feign.api.serverall.reps.CasesReps;
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.module.boecase.dao.CasesMajorTypeDao;
|
||||
import com.xboe.module.boecase.dto.*;
|
||||
@@ -17,6 +20,7 @@ import com.xboe.module.excel.ExportsExcelSenderUtil;
|
||||
|
||||
import com.xboe.system.user.dao.UserDao;
|
||||
import com.xboe.system.user.entity.User;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -177,12 +181,11 @@ public class CasesApi extends ApiBaseController {
|
||||
/**
|
||||
* 案例分页
|
||||
*/
|
||||
@PostMapping("/pagelist")
|
||||
@PostMapping(value = "/pagelist" , produces = "application/json")
|
||||
public JsonResponse<PageList<CasesFiledVo>> pageList(Pagination pager, CaseVo caseVo) {
|
||||
PageList<CasesFiledVo> pageList = casesService.queryList(pager.getPageIndex(), pager.getPageSize(), caseVo);
|
||||
return success(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的案例
|
||||
*/
|
||||
@@ -372,11 +375,15 @@ public class CasesApi extends ApiBaseController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 案例详情
|
||||
* @param id id
|
||||
* @param addView 是否记录查看次数
|
||||
* @return JsonResponse<CasesReps>
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public JsonResponse<Cases> selectById(String id, Boolean addView) {
|
||||
public JsonResponse<CasesReps> selectById(String id, Boolean addView) {
|
||||
if (StringUtil.isBlank(id)) {
|
||||
return badRequest("参数错误");
|
||||
}
|
||||
@@ -386,11 +393,15 @@ public class CasesApi extends ApiBaseController {
|
||||
}
|
||||
try {
|
||||
Cases cases = casesService.selectById(id, addView);
|
||||
|
||||
if (cases == null){
|
||||
return badRequest("当前案例不存在");
|
||||
}
|
||||
if (cases.getDeleted()) {
|
||||
return badRequest("当前案例已被删除");
|
||||
}
|
||||
return success(cases);
|
||||
CasesReps reps=new CasesReps();
|
||||
BeanUtils.copyProperties(cases,reps);
|
||||
return success(reps);
|
||||
} catch (Exception e) {
|
||||
log.error("查看案例失败", e);
|
||||
return error("查看失败", e.getMessage());
|
||||
|
||||
@@ -66,7 +66,7 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
* @param casesRecommendVo
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/page")
|
||||
@PostMapping(value = "/page",produces = "application/json")
|
||||
public JsonResponse<PageList<CasesRecommend>> page(@RequestBody CasesRecommendVo casesRecommendVo) {
|
||||
PageList<CasesRecommend> page = iCasesRecommendService.page(casesRecommendVo.getPageIndex(), casesRecommendVo.getPageSize(), casesRecommendVo);
|
||||
// 组装查看率
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.xboe.module.boecase.dao;
|
||||
|
||||
import com.xboe.module.boecase.dto.CasePageVo;
|
||||
import com.xboe.module.boecase.dto.CaseVo;
|
||||
import com.xboe.module.boecase.entity.Cases;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CaseVo {
|
||||
|
||||
|
||||
private String keyWord;
|
||||
|
||||
private Boolean breCommend;
|
||||
|
||||
private String orderField;
|
||||
|
||||
private Boolean orderAsc;
|
||||
|
||||
private String orgDomain;//后台查询一级
|
||||
|
||||
private String majorType;
|
||||
|
||||
private Boolean isTop;
|
||||
|
||||
private String caseType;
|
||||
|
||||
private Boolean excellent;
|
||||
|
||||
|
||||
private String authorName;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.xboe.module.boecase.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CasesFiledVo {
|
||||
|
||||
private String id;
|
||||
|
||||
private String companyId;
|
||||
|
||||
private String coverUrl;
|
||||
|
||||
private String title;
|
||||
|
||||
private String authorId;
|
||||
|
||||
private String authorName;
|
||||
|
||||
private Boolean excellent;
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.xboe.module.boecase.service;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.CaseVo;
|
||||
import com.boe.feign.api.serverall.entity.CasesFiledVo;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.core.CurrentUser;
|
||||
import com.xboe.module.boecase.dto.*;
|
||||
@@ -28,7 +30,7 @@ public interface ICasesService{
|
||||
/**
|
||||
* 案例管理列表搜索
|
||||
* */
|
||||
PageList<Cases> managerList(int pageIndex,int pageSize,CaseVo caseVo);
|
||||
PageList<Cases> managerList(int pageIndex, int pageSize, CaseVo caseVo);
|
||||
|
||||
List<Cases> exportCase(CaseVo caseVo);
|
||||
|
||||
@@ -37,7 +39,7 @@ public interface ICasesService{
|
||||
/**
|
||||
* 案例分页
|
||||
* */
|
||||
PageList<CasesFiledVo> queryList(int pageIndex,int pageSize,CaseVo caseVo);
|
||||
PageList<CasesFiledVo> queryList(int pageIndex, int pageSize, CaseVo caseVo);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,6 +6,8 @@ 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.boe.feign.api.serverall.entity.CaseVo;
|
||||
import com.boe.feign.api.serverall.entity.CasesFiledVo;
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.api.vo.UserDynamic;
|
||||
import com.xboe.api.vo.UserDynamicResult;
|
||||
|
||||
@@ -7,10 +7,10 @@ import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Opt;
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.outside.IOutSideDataService;
|
||||
import com.xboe.module.course.vo.TeacherVo;
|
||||
import com.xboe.school.study.entity.StudyCourse;
|
||||
|
||||
@@ -16,7 +16,6 @@ import javax.management.Query;
|
||||
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.core.orm.*;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.school.study.dao.StudyCourseDao;
|
||||
import com.xboe.school.study.entity.StudyCourse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
@@ -16,7 +17,6 @@ import com.xboe.core.CurrentUser;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.core.api.TokenProxy;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.outside.IOutSideDataService;
|
||||
import com.xboe.module.teacher.service.ITeacherService;
|
||||
import com.xboe.system.organization.service.IOrganizationService;
|
||||
|
||||
@@ -10,6 +10,7 @@ import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.boe.feign.api.serverall.entity.UserData;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -29,7 +30,6 @@ import com.xboe.core.IAuthorizationToken;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.JsonResponseStatus;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.data.dto.UserData;
|
||||
import com.xboe.data.outside.IOutSideDataService;
|
||||
import com.xboe.data.service.IDataUserSyncService;
|
||||
import com.xboe.externalinterface.system.service.IFwUserService;
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.xboe.school.study.api;
|
||||
|
||||
import com.xboe.common.beans.IdName;
|
||||
import com.xboe.common.beans.KeyValue;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.school.study.dto.BatchSignup;
|
||||
import com.xboe.school.study.entity.StudySignup;
|
||||
import com.xboe.school.study.service.IStudySignupService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 课程报名, 本控制器只有一个报名处理,没有其它的处理
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping(value = "/remote/xboe/school/study/signup")
|
||||
public class StudySignupRpcController extends ApiBaseController {
|
||||
|
||||
@Resource
|
||||
IStudySignupService signupService;
|
||||
|
||||
/**
|
||||
* 批量添加学员
|
||||
*
|
||||
* @param batch 包含课程ID、课程名称、用户列表等信息的批量报名对象
|
||||
* @return 返回操作结果,包括成功添加的学员数量
|
||||
*/
|
||||
@PostMapping("/batch-add")
|
||||
public JsonResponse<Integer> BatchAdd(@RequestBody BatchSignup batch) {
|
||||
if (isBlank(batch.getCourseId())) {
|
||||
return error("无课程信息");
|
||||
}
|
||||
|
||||
if (isBlank(batch.getCourseName())) {
|
||||
return error("无课程名称信息");
|
||||
}
|
||||
|
||||
if (batch.getUsers() == null) {
|
||||
return error("无报名人员信息");
|
||||
}
|
||||
|
||||
if (batch.getUsers().isEmpty()) {
|
||||
return error("无报名人员信息");
|
||||
}
|
||||
|
||||
//如果没有,就直接设置为录播课
|
||||
if (batch.getCourseType() == null) {
|
||||
batch.setCourseType(20);
|
||||
}
|
||||
|
||||
try {
|
||||
List<IdName> idNameList = batch.getUsers();
|
||||
List<String> aids = idNameList.stream()
|
||||
.map(IdName::getId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<KeyValue> hasList = signupService.findByCourseAndUsers(batch.getCourseId(), aids);
|
||||
Map<String, String> hasMap = new HashMap<>();
|
||||
|
||||
for (KeyValue has : hasList) {
|
||||
hasMap.put((String) has.getValue(), has.getKey());
|
||||
}
|
||||
|
||||
List<StudySignup> list = new ArrayList<>();
|
||||
int n = 0;
|
||||
for (IdName u : idNameList) {
|
||||
//如果报名已经存在,就不再添加
|
||||
if (hasMap.containsKey(u.getId())) {
|
||||
continue;
|
||||
}
|
||||
StudySignup signup = new StudySignup();
|
||||
signup.setAid(u.getId());
|
||||
signup.setCourseId(batch.getCourseId());
|
||||
signup.setCourseName(batch.getCourseName());
|
||||
signup.setCourseType(batch.getCourseType());
|
||||
signup.setName(u.getName());
|
||||
signup.setSignTime(LocalDateTime.now());
|
||||
signup.setSignType(StudySignup.SIGNTYPE_ADD);
|
||||
signup.setSignInfo("");
|
||||
list.add(signup);
|
||||
n++;
|
||||
}
|
||||
signupService.addList(list);
|
||||
return success(n);
|
||||
} catch (Exception e) {
|
||||
log.error("报名处理失败", e);
|
||||
return error("报名失败,请与管理员联系", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isBlank(String string) {
|
||||
return StringUtils.isBlank(string);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -62,7 +62,7 @@ public class SysUploaderApi extends ApiBaseController{
|
||||
fileTypeSet.add("zip");
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/file/upload", method = RequestMethod.POST)
|
||||
@RequestMapping(value = "/file/upload", method = RequestMethod.POST, produces = "application/json")
|
||||
public JsonResponse<XUploadResult> save(HttpServletRequest request, String name,String dir) throws IOException {
|
||||
//以下三项用于回调
|
||||
String table = request.getParameter("t");//更新的表
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
package com.xboe.system.user.api;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Resource;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.common.Pagination;
|
||||
import com.xboe.common.constant.CharacterConstant;
|
||||
import com.xboe.common.utils.IDGenerator;
|
||||
import com.xboe.common.utils.StringUtil;
|
||||
import com.xboe.core.JsonResponse;
|
||||
@@ -17,8 +13,14 @@ import com.xboe.system.user.service.IMessageService;
|
||||
import com.xboe.system.user.service.MessageSender;
|
||||
import com.xboe.system.user.vo.BatchMessage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@@ -31,62 +33,69 @@ public class MessageApi extends ApiBaseController {
|
||||
|
||||
/**
|
||||
* 查看当前账户消息列表 分页
|
||||
* @param pager pageIndex 页数 pageSize 每页展示条数
|
||||
* @param isRead true已读 false 未读
|
||||
* */
|
||||
*
|
||||
* @param pager pageIndex 页数 pageSize 每页展示条数
|
||||
* @param isRead true已读 false 未读
|
||||
*/
|
||||
@PostMapping("/list")
|
||||
public JsonResponse<PageList<Message>> list(Pagination pager,Boolean isRead){
|
||||
public JsonResponse<PageList<Message>> list(Pagination pager, Boolean isRead) {
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
PageList<Message> list = service.query(pager.getPageIndex(), pager.getPageSize(), aid, isRead);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
@PostMapping("/mobilelist")
|
||||
public JsonResponse<PageList<Message>> mobileList(Pagination pager,Boolean isRead){
|
||||
public JsonResponse<PageList<Message>> mobileList(Pagination pager, Boolean isRead) {
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
PageList<Message> list = service.queryMobile(pager.getPageIndex(), pager.getPageSize(), aid, isRead);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除消息
|
||||
*
|
||||
* @param ids 所勾选的id集合
|
||||
* 物理删除
|
||||
* */
|
||||
* 物理删除
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
@AutoLog(module = "消息",action = "删除消息")
|
||||
public JsonResponse<Boolean> delete(@RequestBody List<String> ids){
|
||||
if(ids.isEmpty()){
|
||||
@AutoLog(module = "消息", action = "删除消息")
|
||||
public JsonResponse<Boolean> delete(@RequestBody List<String> ids) {
|
||||
if (ids.isEmpty()) {
|
||||
return badRequest("参数异常");
|
||||
}
|
||||
try {
|
||||
service.delete(ids);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("删除失败",e);
|
||||
return error("删除失败",e.getMessage());
|
||||
log.error("删除失败", e);
|
||||
return error("删除失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看当前消息并且设置已读
|
||||
* */
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public JsonResponse<Message> detail(String id){
|
||||
if(StringUtil.isBlank(id)){
|
||||
public JsonResponse<Message> detail(String id) {
|
||||
if (StringUtil.isBlank(id)) {
|
||||
return badRequest("参数异常");
|
||||
}
|
||||
Message message = service.detail(id);
|
||||
return success(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 发布消息
|
||||
* */
|
||||
*/
|
||||
@Deprecated
|
||||
@PostMapping("/save")
|
||||
@AutoLog(module = "消息",action = "发布消息")
|
||||
public JsonResponse<Boolean> save(@RequestBody Message message){
|
||||
if(StringUtil.isBlank(message.getTitle())){
|
||||
@AutoLog(module = "消息", action = "发布消息")
|
||||
public JsonResponse<Boolean> save(@RequestBody Message message) {
|
||||
log.info(CharacterConstant.DEPRECATED_METHOD + "=MessageApi.save /xboe/sys/message/save");
|
||||
if (StringUtil.isBlank(message.getTitle())) {
|
||||
return badRequest("标题不能为空");
|
||||
}
|
||||
if(StringUtil.isBlank(message.getContent())){
|
||||
if (StringUtil.isBlank(message.getContent())) {
|
||||
return badRequest("内容不能为空");
|
||||
}
|
||||
try {
|
||||
@@ -96,143 +105,144 @@ public class MessageApi extends ApiBaseController {
|
||||
MessageSender.send(message);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("发布消息失败",e);
|
||||
return error("发布消息失败",e.getMessage());
|
||||
log.error("发布消息失败", e);
|
||||
return error("发布消息失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/batch-send")
|
||||
@AutoLog(module = "消息",action = "批量发送消息")
|
||||
public JsonResponse<Boolean> batchSave(@RequestBody BatchMessage message){
|
||||
|
||||
if(message.getAcceptIds()==null || message.getAcceptIds().isEmpty()) {
|
||||
return badRequest("无发送人信息");
|
||||
}
|
||||
|
||||
if(message.getAcceptNames()==null || message.getAcceptNames().isEmpty()) {
|
||||
return badRequest("无发送人姓名信息");
|
||||
}
|
||||
|
||||
if(message.getAcceptIds().size()!=message.getAcceptNames().size()) {
|
||||
return badRequest("发送人姓名信息不相符");
|
||||
@AutoLog(module = "消息", action = "批量发送消息")
|
||||
public JsonResponse<Boolean> batchSave(@RequestBody BatchMessage message) {
|
||||
|
||||
if (message.getAcceptIds() == null || message.getAcceptIds().isEmpty()) {
|
||||
return badRequest("无发送人信息");
|
||||
}
|
||||
|
||||
if(StringUtil.isBlank(message.getTitle())){
|
||||
|
||||
if (message.getAcceptNames() == null || message.getAcceptNames().isEmpty()) {
|
||||
return badRequest("无发送人姓名信息");
|
||||
}
|
||||
|
||||
if (message.getAcceptIds().size() != message.getAcceptNames().size()) {
|
||||
return badRequest("发送人姓名信息不相符");
|
||||
}
|
||||
|
||||
if (StringUtil.isBlank(message.getTitle())) {
|
||||
return badRequest("标题不能为空");
|
||||
}
|
||||
|
||||
if(StringUtil.isBlank(message.getTitle())){
|
||||
|
||||
if (StringUtil.isBlank(message.getTitle())) {
|
||||
return badRequest("标题不能为空");
|
||||
}
|
||||
if(StringUtil.isBlank(message.getContent())){
|
||||
if (StringUtil.isBlank(message.getContent())) {
|
||||
return badRequest("内容不能为空");
|
||||
}
|
||||
try {
|
||||
Message msg=new Message();
|
||||
msg.setId(IDGenerator.generate());
|
||||
Message msg = new Message();
|
||||
msg.setId(IDGenerator.generate());
|
||||
// msg.setAcceptId(aid);
|
||||
// msg.setAcceptName(aname);
|
||||
msg.setContent(message.getContent());
|
||||
msg.setConType("0");
|
||||
msg.setIsRead(false);
|
||||
msg.setMsgType(1);
|
||||
msg.setPageParams(message.getPageParams());
|
||||
msg.setPageType(message.getPageType());
|
||||
msg.setRefId(message.getRefId());
|
||||
msg.setRefType(message.getRefType());
|
||||
msg.setSendAid(message.getSendAid());
|
||||
msg.setSendName(message.getSendName());
|
||||
msg.setSendType(1);
|
||||
msg.setSource(message.getSource());
|
||||
msg.setTitle(message.getTitle());
|
||||
MessageSender.batchSend(message.getAcceptIds(),message.getAcceptNames(),msg);
|
||||
msg.setContent(message.getContent());
|
||||
msg.setConType("0");
|
||||
msg.setIsRead(false);
|
||||
msg.setMsgType(1);
|
||||
msg.setPageParams(message.getPageParams());
|
||||
msg.setPageType(message.getPageType());
|
||||
msg.setRefId(message.getRefId());
|
||||
msg.setRefType(message.getRefType());
|
||||
msg.setSendAid(message.getSendAid());
|
||||
msg.setSendName(message.getSendName());
|
||||
msg.setSendType(1);
|
||||
msg.setSource(message.getSource());
|
||||
msg.setTitle(message.getTitle());
|
||||
MessageSender.batchSend(message.getAcceptIds(), message.getAcceptNames(), msg);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("发布消息失败",e);
|
||||
return error("发布消息失败",e.getMessage());
|
||||
log.error("发布消息失败", e);
|
||||
return error("发布消息失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 当前登陆人未读消息条数
|
||||
* */
|
||||
*/
|
||||
@GetMapping("/isRead")
|
||||
public JsonResponse<Integer> isRead(){
|
||||
public JsonResponse<Integer> isRead() {
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
Integer count = service.isRead(aid);
|
||||
return success(count);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置已读
|
||||
* */
|
||||
*/
|
||||
@PostMapping("/updateIsRead")
|
||||
@AutoLog(module = "消息",action = "设置消息已读")
|
||||
public JsonResponse<Boolean> updateIsRead(@RequestBody List<String> ids){
|
||||
if(ids.isEmpty()){
|
||||
@AutoLog(module = "消息", action = "设置消息已读")
|
||||
public JsonResponse<Boolean> updateIsRead(@RequestBody List<String> ids) {
|
||||
if (ids.isEmpty()) {
|
||||
return badRequest("参数异常");
|
||||
}
|
||||
try {
|
||||
service.updateIsRead(ids);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("设置已读失败",e);
|
||||
return error("设置已读失败",e.getMessage());
|
||||
log.error("设置已读失败", e);
|
||||
return error("设置已读失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 设置已读
|
||||
* */
|
||||
|
||||
*/
|
||||
|
||||
//@AutoLog(module = "消息",action = "未的全部设置为已读")
|
||||
@GetMapping("/readall")
|
||||
public JsonResponse<Boolean> readAll(){
|
||||
|
||||
String aid=getCurrent().getAccountId();
|
||||
if(StringUtils.isBlank(aid)) {
|
||||
return badRequest("获取用户信息异常");
|
||||
public JsonResponse<Boolean> readAll() {
|
||||
|
||||
String aid = getCurrent().getAccountId();
|
||||
if (StringUtils.isBlank(aid)) {
|
||||
return badRequest("获取用户信息异常");
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
service.setReadByAcceptId(aid);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("设置已读失败",e);
|
||||
return error("设置已读失败",e.getMessage());
|
||||
log.error("设置已读失败", e);
|
||||
return error("设置已读失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/clearall")
|
||||
public JsonResponse<Boolean> clearAll(){
|
||||
|
||||
String aid=getCurrent().getAccountId();
|
||||
if(StringUtils.isBlank(aid)) {
|
||||
return badRequest("获取用户信息异常");
|
||||
public JsonResponse<Boolean> clearAll() {
|
||||
|
||||
String aid = getCurrent().getAccountId();
|
||||
if (StringUtils.isBlank(aid)) {
|
||||
return badRequest("获取用户信息异常");
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
service.cleanByAcceptId(aid);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("清空消息错误",e);
|
||||
return error("清空消息失败",e.getMessage());
|
||||
log.error("清空消息错误", e);
|
||||
return error("清空消息失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/clearMessageNotCase")
|
||||
public JsonResponse<Integer> clearMessageNotCase(){
|
||||
public JsonResponse<Integer> clearMessageNotCase() {
|
||||
|
||||
String aid=getCurrent().getAccountId();
|
||||
if(StringUtils.isBlank(aid)) {
|
||||
String aid = getCurrent().getAccountId();
|
||||
if (StringUtils.isBlank(aid)) {
|
||||
return badRequest("获取用户信息异常");
|
||||
}
|
||||
try {
|
||||
Integer type = service.clearMessageNotCase(aid);
|
||||
return success(type);
|
||||
} catch (Exception e) {
|
||||
log.error("清空消息错误",e);
|
||||
return error("清空消息失败",e.getMessage());
|
||||
log.error("清空消息错误", e);
|
||||
return error("清空消息失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,12 +250,11 @@ public class MessageApi extends ApiBaseController {
|
||||
/**
|
||||
* 移动端
|
||||
* 消息页面,按用户分组返回 暂时不用
|
||||
*
|
||||
* */
|
||||
*/
|
||||
@GetMapping("/mess-group")
|
||||
public JsonResponse<Map<String,Object>> messGroup(){
|
||||
public JsonResponse<Map<String, Object>> messGroup() {
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
if(StringUtil.isBlank(aid)){
|
||||
if (StringUtil.isBlank(aid)) {
|
||||
return badRequest("参数异常");
|
||||
}
|
||||
Map<String, Object> map = service.messGroup(aid);
|
||||
@@ -255,27 +264,27 @@ public class MessageApi extends ApiBaseController {
|
||||
/**
|
||||
* 移动端
|
||||
* 按用户删除消息 暂时不用
|
||||
* */
|
||||
*/
|
||||
@GetMapping("/remove")
|
||||
public JsonResponse<Boolean> remove(String aid){
|
||||
if(StringUtil.isBlank(aid)){
|
||||
public JsonResponse<Boolean> remove(String aid) {
|
||||
if (StringUtil.isBlank(aid)) {
|
||||
return badRequest("参数异常");
|
||||
}
|
||||
try {
|
||||
service.remove(aid);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
return error("参数异常",e.getMessage());
|
||||
return error("参数异常", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户消息 查最新的一条
|
||||
* */
|
||||
*/
|
||||
@GetMapping
|
||||
public JsonResponse<List<Message>> userMess(){
|
||||
public JsonResponse<List<Message>> userMess() {
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
if(StringUtil.isBlank(aid)){
|
||||
if (StringUtil.isBlank(aid)) {
|
||||
return badRequest("参数异常");
|
||||
}
|
||||
List<Message> messages = service.userMess(aid);
|
||||
@@ -287,5 +296,4 @@ public class MessageApi extends ApiBaseController {
|
||||
* */
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.xboe.system.user.api;
|
||||
|
||||
import com.xboe.common.utils.IDGenerator;
|
||||
import com.xboe.common.utils.StringUtil;
|
||||
import com.xboe.core.JsonResponse;
|
||||
import com.xboe.core.api.ApiBaseController;
|
||||
import com.xboe.core.log.AutoLog;
|
||||
import com.xboe.system.user.entity.Message;
|
||||
import com.xboe.system.user.service.MessageSender;
|
||||
import com.xboe.system.user.vo.BatchMessage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/remote/xboe/sys/message")
|
||||
public class MessageRpcController extends ApiBaseController {
|
||||
/**
|
||||
* 发布消息
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
@AutoLog(module = "消息", action = "发布消息")
|
||||
public JsonResponse<Boolean> save(@RequestBody Message message) {
|
||||
if (StringUtil.isBlank(message.getTitle())) {
|
||||
return badRequest("标题不能为空");
|
||||
}
|
||||
if (StringUtil.isBlank(message.getContent())) {
|
||||
return badRequest("内容不能为空");
|
||||
}
|
||||
try {
|
||||
message.setIsRead(false);
|
||||
message.setMsgType(1);
|
||||
message.setMsgTime(LocalDateTime.now());
|
||||
MessageSender.send(message);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("发布消息失败", e);
|
||||
return error("发布消息失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/batch-send")
|
||||
@AutoLog(module = "消息", action = "批量发送消息")
|
||||
public JsonResponse<Boolean> batchSave(@RequestBody BatchMessage message) {
|
||||
|
||||
if (message.getAcceptIds() == null || message.getAcceptIds().isEmpty()) {
|
||||
return badRequest("无发送人信息");
|
||||
}
|
||||
|
||||
if (message.getAcceptNames() == null || message.getAcceptNames().isEmpty()) {
|
||||
return badRequest("无发送人姓名信息");
|
||||
}
|
||||
|
||||
if (message.getAcceptIds().size() != message.getAcceptNames().size()) {
|
||||
return badRequest("发送人姓名信息不相符");
|
||||
}
|
||||
|
||||
if (StringUtil.isBlank(message.getTitle())) {
|
||||
return badRequest("标题不能为空");
|
||||
}
|
||||
|
||||
if (StringUtil.isBlank(message.getTitle())) {
|
||||
return badRequest("标题不能为空");
|
||||
}
|
||||
if (StringUtil.isBlank(message.getContent())) {
|
||||
return badRequest("内容不能为空");
|
||||
}
|
||||
try {
|
||||
Message msg = new Message();
|
||||
msg.setId(IDGenerator.generate());
|
||||
msg.setContent(message.getContent());
|
||||
msg.setConType("0");
|
||||
msg.setIsRead(false);
|
||||
msg.setMsgType(1);
|
||||
msg.setPageParams(message.getPageParams());
|
||||
msg.setPageType(message.getPageType());
|
||||
msg.setRefId(message.getRefId());
|
||||
msg.setRefType(message.getRefType());
|
||||
msg.setSendAid(message.getSendAid());
|
||||
msg.setSendName(message.getSendName());
|
||||
msg.setSendType(1);
|
||||
msg.setSource(message.getSource());
|
||||
msg.setTitle(message.getTitle());
|
||||
MessageSender.batchSend(message.getAcceptIds(), message.getAcceptNames(), msg);
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("发布消息失败", e);
|
||||
return error("发布消息失败", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
## redis
|
||||
spring.redis.database=1
|
||||
#spring.redis.host=127.0.0.1
|
||||
#spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+)
|
||||
#spring.redis.port=6379
|
||||
spring.redis.host=124.70.92.162
|
||||
spring.redis.password=qwert!W577
|
||||
spring.redis.port=6379
|
||||
|
||||
# cloud nacos config
|
||||
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
|
||||
|
||||
## datasource config
|
||||
spring.jpa.show-sql = true
|
||||
spring.jpa.hibernate.ddl-auto=update
|
||||
spring.datasource.driverClassName=com.mysql.jdbc.Driver
|
||||
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||
#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
#spring.datasource.username=root
|
||||
#spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==)
|
||||
spring.datasource.url=jdbc:mysql://10.251.160.40:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
spring.datasource.username=admin
|
||||
spring.datasource.password=boeRds01
|
||||
|
||||
logging.level.org.hibernate.SQL=DEBUG
|
||||
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||||
|
||||
# 设置logback.xml位置
|
||||
logging.config=classpath:log/logback-@profileActive@.xml
|
||||
|
||||
## 静态文件目录,默认是在static下面,以后独立到nginx下面配置
|
||||
spring.web.resources.static-locations=file:E:/Projects/BOE/10/static
|
||||
|
||||
## s秒 ,m分钟 ,h小时,d天
|
||||
xcaching.specs.favorites.timeout=10s
|
||||
xcaching.specs.praises.timeout=10s
|
||||
xcaching.specs.shares.timeout=10s
|
||||
|
||||
## xboe config
|
||||
xboe.api.cross_filter=true
|
||||
## 是否是本地开发模式
|
||||
xboe.local.dev=true
|
||||
|
||||
## 上传相磁的路径配置
|
||||
xboe.upload.file.temp_path=E:/Projects/BOE/10/static/temp
|
||||
xboe.upload.file.save_path=E:/Projects/BOE/10/static/upload
|
||||
xboe.upload.file.http_path=http://127.0.0.1:9090/cdn/upload
|
||||
|
||||
## 外部接口调用地址 旧系统机构及用户数据接口
|
||||
xboe.externalinterface.url.system=http://localhost:9091
|
||||
|
||||
## 新增加的教师的内部调用接口
|
||||
xboe.old.base.url=https://u-pre.boe.com
|
||||
#xboe.old.base.url=https://pretest.zcwytd.com
|
||||
|
||||
# 用户中心的接口配置
|
||||
xboe.server.userbasic.url=https://u-pre.boe.com/userbasic
|
||||
|
||||
## 用户统计接口的api地址
|
||||
xboe.stat.base.url=http://127.0.0.1:9080
|
||||
|
||||
#加密盐
|
||||
#jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD}
|
||||
jasypt.encryptor.algorithm=PBEWithMD5AndDES
|
||||
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
||||
|
||||
# elasticsearch config
|
||||
xboe.elasticsearch.server.ip=127.0.0.1
|
||||
xboe.elasticsearch.server.port=9200
|
||||
xboe.elasticsearch.server.user=
|
||||
xboe.elasticsearch.server.password=
|
||||
#xboe.elasticsearch.server.user=elastic
|
||||
#xboe.elasticsearch.server.password=Boe@es123
|
||||
# 默认搜索的索引
|
||||
xboe.elasticsearch.index.name=new_resource_list
|
||||
|
||||
## 邮件的配置
|
||||
xboe.email.url=https://u-pre.boe.com/api/b1/email/send
|
||||
#xboe.email.url=https://pretest.zcwytd.com/api/b1/email/send
|
||||
xboe.email.from=boeu_learning@boe.com.cn
|
||||
xboe.email.user=
|
||||
xboe.email.security=
|
||||
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
## redis
|
||||
spring.redis.database=1
|
||||
spring.redis.host=10.251.160.38
|
||||
spring.redis.password=qwert!W577
|
||||
spring.redis.port=6379
|
||||
#spring.redis.database=3
|
||||
#spring.redis.host=10.251.129.122
|
||||
#spring.redis.password=qwert!W588
|
||||
#spring.redis.port=6379
|
||||
|
||||
# cloud nacos config
|
||||
spring.cloud.nacos.discovery.server-addr=10.251.181.11:8848
|
||||
|
||||
## datasource config
|
||||
spring.jpa.hibernate.ddl-auto=none
|
||||
spring.datasource.driverClassName=com.mysql.jdbc.Driver
|
||||
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
spring.datasource.username=admin
|
||||
spring.datasource.password=boeRds01
|
||||
|
||||
logging.level.org.hibernate.SQL=ERROR
|
||||
#logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||||
|
||||
# 设置logback.xml位置
|
||||
logging.config=classpath:log/logback-@profileActive@.xml
|
||||
|
||||
## 静态文件目录,默认是在static下面,以后独立到nginx下面配置
|
||||
spring.web.resources.static-locations=file:E:/Projects/BOE/java/static
|
||||
|
||||
## xboe config
|
||||
xboe.api.cross_filter=true
|
||||
|
||||
## 上传相磁的路径配置
|
||||
xboe.upload.file.temp_path=/tmp
|
||||
xboe.upload.file.save_path=/home/www/elearning/upload
|
||||
xboe.upload.file.http_path=https://u.boe.com/upload
|
||||
|
||||
## 外部接口调用地址 旧系统机构及用户数据接口
|
||||
xboe.externalinterface.url.system=http://127.0.0.1:9091
|
||||
|
||||
## 新增加的教师的内部调用接口
|
||||
xboe.old.base.url=https://u.boe.com
|
||||
|
||||
## 用户统计接口的api地址
|
||||
xboe.stat.base.url=http://127.0.0.1:9080
|
||||
xboe.server.userbasic.url=https://u.boe.com/userbasic
|
||||
|
||||
#加密盐
|
||||
#jasypt.encryptor.password=jasypt
|
||||
jasypt.encryptor.algorithm=PBEWithMD5AndDES
|
||||
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
||||
|
||||
# elasticsearch config
|
||||
xboe.elasticsearch.server.ip=10.251.129.21
|
||||
xboe.elasticsearch.server.port=9200
|
||||
xboe.elasticsearch.server.user=
|
||||
xboe.elasticsearch.server.password=
|
||||
|
||||
## 邮件的配置
|
||||
xboe.email.url=https://u.boe.com/api/b1/email/send
|
||||
xboe.email.from=boeu_learning@boe.com.cn
|
||||
xboe.email.user=
|
||||
xboe.email.security=
|
||||
@@ -1,85 +0,0 @@
|
||||
# cloud nacos config
|
||||
spring.cloud.nacos.discovery.server-addr=10.251.113.100:8848
|
||||
|
||||
## redis
|
||||
spring.redis.database=1
|
||||
spring.redis.host=10.251.88.213
|
||||
spring.redis.password=qwert!W588
|
||||
spring.redis.port=6379
|
||||
|
||||
|
||||
## datasource config
|
||||
spring.jpa.hibernate.ddl-auto=none
|
||||
spring.datasource.driverClassName=com.mysql.jdbc.Driver
|
||||
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||
|
||||
#spring.datasource.url=jdbc:mysql://10.251.129.129:8066/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
#spring.datasource.username=admin
|
||||
#spring.datasource.password=ocYMC>!{8G
|
||||
spring.datasource.url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
spring.datasource.username=admin
|
||||
spring.datasource.password=boeRds01
|
||||
|
||||
## 使用 hikari 连接池
|
||||
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
|
||||
spring.datasource.hikari.auto-commit: true
|
||||
spring.datasource.hikari.minimum-idle=5
|
||||
spring.datasource.hikari.idle-timeout=60000
|
||||
spring.datasource.hikari.connection-timeout=30000
|
||||
spring.datasource.hikari.max-lifetime=1800000
|
||||
spring.datasource.hikari.maximum-pool-size=20
|
||||
|
||||
|
||||
logging.level.org.hibernate.SQL=ERROR
|
||||
# logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||||
|
||||
# 设置logback.xml位置
|
||||
logging.config=classpath:log/logback-@profileActive@.xml
|
||||
|
||||
## ???????????static????????nginx????
|
||||
spring.web.resources.static-locations=file:E:/Projects/BOE/java/static
|
||||
|
||||
## xboe config
|
||||
xboe.api.cross_filter=true
|
||||
|
||||
## 上传相磁的路径配置
|
||||
xboe.upload.file.temp_path=/tmp
|
||||
xboe.upload.file.save_path=/home/www/elearning/upload
|
||||
xboe.upload.file.http_path=https://u.boe.com/upload
|
||||
|
||||
## 外部接口调用地址 旧系统机构及用户数据接口
|
||||
xboe.externalinterface.url.system=http://127.0.0.1:9091
|
||||
|
||||
## ?????????????
|
||||
xboe.old.base.url=https://u.boe.com
|
||||
|
||||
|
||||
## ???????api??
|
||||
xboe.stat.base.url=http://127.0.0.1:9080
|
||||
xboe.server.userbasic.url=https://u.boe.com/userbasic
|
||||
|
||||
#???
|
||||
#jasypt.encryptor.password=jasypt
|
||||
jasypt.encryptor.algorithm=PBEWithMD5AndDES
|
||||
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
||||
|
||||
# elasticsearch config
|
||||
xboe.elasticsearch.server.ip=10.251.88.218
|
||||
xboe.elasticsearch.server.port=9200
|
||||
xboe.elasticsearch.server.user=
|
||||
xboe.elasticsearch.server.password=
|
||||
|
||||
## ?????
|
||||
xboe.email.url=https://u.boe.com/api/b1/email/send
|
||||
xboe.email.from=boeu_learning@boe.com.cn
|
||||
xboe.email.user=
|
||||
xboe.email.security=
|
||||
|
||||
xxl.job.admin.addresses=http://u.boe.com/jobAdmin
|
||||
xxl.job.accessToken=65ddc683-22f5-83b4-de3a-3c97a0a29af0
|
||||
xxl.job.executor.appname=java-servers-job-api
|
||||
xxl.job.executor.port=9995
|
||||
xxl.job.executor.address=
|
||||
xxl.job.executor.ip=
|
||||
xxl.job.executor.logpath=/var/log/xxl-job/dw/
|
||||
xxl.job.executor.logretentiondays=30
|
||||
@@ -1,92 +0,0 @@
|
||||
## redis
|
||||
spring.redis.database=1
|
||||
spring.redis.host=10.251.160.38
|
||||
spring.redis.password=qwert!W577
|
||||
spring.redis.port=6379
|
||||
|
||||
# cloud nacos config
|
||||
spring.cloud.nacos.discovery.server-addr=10.251.186.27:8848
|
||||
|
||||
## datasource config
|
||||
spring.jpa.hibernate.ddl-auto=none
|
||||
spring.datasource.driverClassName=com.mysql.jdbc.Driver
|
||||
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.url=jdbc:mysql://10.251.160.40:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
spring.datasource.username=admin
|
||||
spring.datasource.password=boeRds01
|
||||
|
||||
## 使用 hikari 连接池
|
||||
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
|
||||
spring.datasource.hikari.auto-commit: true
|
||||
spring.datasource.hikari.minimum-idle=5
|
||||
spring.datasource.hikari.idle-timeout=60000
|
||||
spring.datasource.hikari.connection-timeout=30000
|
||||
spring.datasource.hikari.max-lifetime=1800000
|
||||
spring.datasource.hikari.maximum-pool-size=20
|
||||
|
||||
logging.level.org.hibernate.SQL=DEBUG
|
||||
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||||
|
||||
# 设置logback.xml位置
|
||||
logging.config=classpath:log/logback-test.xml
|
||||
|
||||
server.tomcat.accept-count=1000
|
||||
|
||||
# 最大可被连接数,默认10000
|
||||
server.tomcat.max-connections=10000
|
||||
|
||||
# 最大工作线程数,默认200,
|
||||
server.tomcat.threads.max=500
|
||||
|
||||
# 最小工作线程数,初始化分配线程数,默认10
|
||||
server.tomcat.threads.min-spare=100
|
||||
# 定制KeepAliveTimeout,设置30秒内没有请求则服务器自动断开keepalive连接
|
||||
server.tomcat.keep-alive-timeout=3000
|
||||
## 当客户端发送超过10000个请求则自动断开keepalive连接
|
||||
server.tomcat.max-keep-alive-requests=10000
|
||||
|
||||
## xboe config
|
||||
xboe.api.cross_filter=true
|
||||
|
||||
## 上传存储的路径配置
|
||||
xboe.upload.file.temp_path=/tmp
|
||||
xboe.upload.file.save_path=/home/www/elearning/upload
|
||||
xboe.upload.file.http_path=http://u-pre.boe.com/upload
|
||||
|
||||
## 外部接口调用地址 旧系统机构及用户数据接口
|
||||
xboe.externalinterface.url.system=http://127.0.0.1:9091
|
||||
|
||||
## 新增加的教师的内部调用接口
|
||||
xboe.old.base.url=https://u-pre.boe.com
|
||||
|
||||
## 用户统计接口的api地址
|
||||
xboe.stat.base.url=http://127.0.0.1:9080
|
||||
xboe.server.userbasic.url=https://u-pre.boe.com/userbasic
|
||||
|
||||
#加密盐
|
||||
#jasypt.encryptor.password=jasypt
|
||||
jasypt.encryptor.algorithm=PBEWithMD5AndDES
|
||||
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
||||
|
||||
# elasticsearch config
|
||||
xboe.elasticsearch.server.ip=10.251.129.25
|
||||
xboe.elasticsearch.server.port=9200
|
||||
xboe.elasticsearch.server.user=elastic
|
||||
xboe.elasticsearch.server.password=Boe@es123
|
||||
|
||||
## 邮件的配置
|
||||
xboe.email.url=https://u-pre.boe.com/api/b1/email/send
|
||||
xboe.email.from=boeu_learning@boe.com.cn
|
||||
xboe.email.user=
|
||||
xboe.email.security=
|
||||
|
||||
boe.domain=https://u-pre.boe.com
|
||||
|
||||
xxl.job.admin.addresses=http://u-pre.boe.com/jobAdmin
|
||||
xxl.job.accessToken=65ddc683-22f5-83b4-de3a-3c97a0a29af0
|
||||
xxl.job.executor.appname=java-servers-job-api
|
||||
xxl.job.executor.port=9995
|
||||
xxl.job.executor.address=
|
||||
xxl.job.executor.ip=
|
||||
xxl.job.executor.logpath=/var/log/xxl-job/dw/
|
||||
xxl.job.executor.logretentiondays=30
|
||||
@@ -1,69 +0,0 @@
|
||||
## redis
|
||||
spring.redis.database=2
|
||||
spring.redis.host=10.251.160.38
|
||||
spring.redis.password=qwert!W577
|
||||
spring.redis.port=6379
|
||||
|
||||
## datasource config
|
||||
spring.jpa.hibernate.ddl-auto=none
|
||||
spring.datasource.driverClassName=com.mysql.jdbc.Driver
|
||||
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||
spring.datasource.url=jdbc:mysql://10.251.160.40:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
|
||||
spring.datasource.username=admin
|
||||
spring.datasource.password=boeRds01
|
||||
|
||||
logging.level.org.hibernate.SQL=DEBUG
|
||||
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
|
||||
|
||||
# 设置logback.xml位置
|
||||
logging.config=classpath:log/logback-test.xml
|
||||
|
||||
server.tomcat.accept-count=1000
|
||||
|
||||
# 最大可被连接数,默认10000
|
||||
server.tomcat.max-connections=10000
|
||||
|
||||
# 最大工作线程数,默认200,
|
||||
server.tomcat.threads.max=500
|
||||
|
||||
# 最小工作线程数,初始化分配线程数,默认10
|
||||
server.tomcat.threads.min-spare=100
|
||||
# 定制KeepAliveTimeout,设置30秒内没有请求则服务器自动断开keepalive连接
|
||||
server.tomcat.keep-alive-timeout=3000
|
||||
## 当客户端发送超过10000个请求则自动断开keepalive连接
|
||||
server.tomcat.max-keep-alive-requests=10000
|
||||
|
||||
## xboe config
|
||||
xboe.api.cross_filter=true
|
||||
|
||||
## 上传存储的路径配置
|
||||
xboe.upload.file.temp_path=/tmp
|
||||
xboe.upload.file.save_path=/home/www/elearning/upload
|
||||
xboe.upload.file.http_path=http://10.251.160.135/upload
|
||||
|
||||
## 外部接口调用地址 旧系统机构及用户数据接口
|
||||
xboe.externalinterface.url.system=http://127.0.0.1:9091
|
||||
|
||||
## 新增加的教师的内部调用接口
|
||||
xboe.old.base.url=https://10.251.160.135
|
||||
|
||||
## 用户统计接口的api地址
|
||||
xboe.stat.base.url=http://127.0.0.1:9080
|
||||
xboe.server.userbasic.url=https://10.251.160.135/userbasic
|
||||
|
||||
#加密盐
|
||||
#jasypt.encryptor.password=jasypt
|
||||
jasypt.encryptor.algorithm=PBEWithMD5AndDES
|
||||
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
||||
|
||||
# elasticsearch config
|
||||
xboe.elasticsearch.server.ip=10.251.129.25
|
||||
xboe.elasticsearch.server.port=9200
|
||||
xboe.elasticsearch.server.user=elastic
|
||||
xboe.elasticsearch.server.password=Boe@es123
|
||||
|
||||
## 邮件的配置
|
||||
xboe.email.url=https://10.251.160.135/api/b1/email/send
|
||||
xboe.email.from=boeu_learning@boe.com.cn
|
||||
xboe.email.user=
|
||||
xboe.email.security=
|
||||
@@ -1,83 +0,0 @@
|
||||
spring.profiles.active=@profileActive@
|
||||
spring.application.name=boe-server-all
|
||||
server.port=9090
|
||||
server.servlet.session.timeout=30m
|
||||
server.servlet.encoding.charset=UTF-8
|
||||
server.servlet.encoding.enabled=true
|
||||
server.servlet.encoding.force=true
|
||||
server.tomcat.uri-encoding=UTF-8
|
||||
ok.http.connect-timeout=30
|
||||
ok.http.read-timeout=30
|
||||
ok.http.write-timeout=30
|
||||
# 连接池中整体的空闲连接的最大数量
|
||||
ok.http.max-idle-connections=200
|
||||
# 连接空闲时间最多为 300 秒
|
||||
ok.http.keep-alive-duration=300
|
||||
#spring.jackson.locale=
|
||||
#spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
|
||||
# spring.jackson.default-property-inclusion=NON_NULL
|
||||
spring.jackson.time-zone=GMT+8
|
||||
|
||||
spring.servlet.multipart.max-file-size=1024MB
|
||||
spring.servlet.multipart.max-request-size=1024MB
|
||||
## 静态文件目录,默认是在static下面,以后独立到nginx下面配置
|
||||
spring.mvc.static-path-pattern=/cdn/**
|
||||
|
||||
|
||||
spring.redis.lettuce.pool.max-active=8
|
||||
spring.redis.lettuce.pool.min-idle=0
|
||||
spring.redis.lettuce.pool.max-idle=30
|
||||
spring.redis.lettuce.pool.max-wait=10000ms
|
||||
spring.redis.lettuce.shutdown-timeout=100ms
|
||||
|
||||
# 上传的临时目录,部署到服务器必须指定
|
||||
# spring.servlet.multipart.location=
|
||||
|
||||
# 上传的临时目录,部署到服务器必须指定
|
||||
# spring.servlet.multipart.location=
|
||||
# jpa config
|
||||
spring.jpa.database = MYSQL
|
||||
spring.jpa.show-sql = false
|
||||
# spring.jpa.properties.hibernate.cache.use_second_level_cache=true
|
||||
# spring.jpa.properties.hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
|
||||
spring.jpa.properties.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
|
||||
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
|
||||
#spring.transaction
|
||||
# spring.jpa.properties.hibernate.allow_update_outside_transaction=true
|
||||
# spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
|
||||
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
|
||||
|
||||
|
||||
# 设置logback.xml位置
|
||||
logging.config=classpath:log/logback-@profileActive@.xml
|
||||
# 用于分布式id生成不重复的处理 配置,0-31 的数值
|
||||
# config.id.generator.server.num=1
|
||||
# config.id.generator.datacenter.num=1
|
||||
|
||||
#boe.domain=https://pretest.zcwytd.com
|
||||
boe.domain=http://127.0.0.1
|
||||
#boe.domain=http://localhost:30001
|
||||
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
|
||||
#用户中心根据组织id查询用户信息接口(递归子组织)
|
||||
audience.getOrgUsers=${boe.domain}/userbasic/user/getOrgUsers
|
||||
#获取工号
|
||||
infrasApi.dict=${boe.domain}/infrasApi/dict/list
|
||||
#获取非报名课id
|
||||
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
|
||||
manageApi.editExam=${boe.domain}/manageApi/admin/project/editExam
|
||||
#获取离职教师id
|
||||
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
|
||||
coursesuilt.getStudyStatus=${boe.domain}/manageApi/stu/project/completeStatus
|
||||
userBasic.getUserBasicInfo=${boe.domain}/userbasic/user/getUserBasicInfo
|
||||
#讲师管理创建或修改在线课授课记录
|
||||
coursesuilt.updateOrSaveCourse=${boe.domain}/manageApi/admin/teacherRecord/updateOrSaveCourse
|
||||
coursesuilt.syncCourseStudent=${boe.domain}/manageApi/admin/teacherRecord/syncCourseStudent
|
||||
coursesuilt.syncOnLineScore=${boe.domain}/manageApi/admin/teacherRecord/syncOnLineScore
|
||||
coursesuilt.updateOnLineStatua=${boe.domain}/manageApi/admin/teacherRecord/updateOnLineStatua
|
||||
24
servers/boe-server-all/src/main/resources/bootstrap.yml
Normal file
24
servers/boe-server-all/src/main/resources/bootstrap.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
spring:
|
||||
application:
|
||||
name: boe-server-all
|
||||
profiles:
|
||||
active: dev
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
server-addr: 192.168.0.101:8848
|
||||
config:
|
||||
server-addr: 192.168.0.101:8848
|
||||
file-extension: yaml
|
||||
namespace: fd5741ee-c2aa-4002-a9b0-43a11436d35c
|
||||
name: boe-server-all
|
||||
group: SERVER_GROUP
|
||||
extension-configs:
|
||||
- data-id: redis0.yaml
|
||||
group: COMMON_GROUP
|
||||
refresh: true
|
||||
|
||||
# shared-configs:
|
||||
# - data-id: redis0.yaml
|
||||
# group: COMMON_GROUP
|
||||
# refresh: true
|
||||
Reference in New Issue
Block a user