mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-08 02:16:49 +08:00
Compare commits
3 Commits
20251103-1
...
20251029-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55dac06e5f | ||
|
|
a72a042636 | ||
|
|
4110d0632f |
@@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.module.course.dto.CourseParam;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -321,6 +322,7 @@ public class CourseAuditApi extends ApiBaseController{
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/hrbp-submit-audit")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JsonResponse<Boolean> hrbpAudit(String auditId,String courseId,String title,Boolean pass,String remark, HttpServletRequest request){
|
||||
if(StringUtils.isBlank(auditId)){
|
||||
return badRequest("参数错误");
|
||||
@@ -350,24 +352,19 @@ public class CourseAuditApi extends ApiBaseController{
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
CurrentUser cu=getCurrent();
|
||||
service.hrbpSubmitAudit(auditId, courseId,open, pass,cu.getAccountId(),cu.getName(), remark);
|
||||
CurrentUser cu=getCurrent();
|
||||
service.hrbpSubmitAudit(auditId, courseId,open, pass,cu.getAccountId(),cu.getName(), remark);
|
||||
|
||||
if (pass){
|
||||
//修改在线课开课状态=已开课
|
||||
String token = request.getHeader("Xboe-Access-Token");
|
||||
CourseParam param = new CourseParam();
|
||||
param.setId(c.getId());
|
||||
param.setOrgId(c.getOrgId());
|
||||
param.setOrgName(c.getOrgName());
|
||||
thirdApi.updateOrSaveCourse(param,token);
|
||||
}
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("HRBP审核提交处理错误",e);
|
||||
return error("审核处理失败",e.getMessage(),false);
|
||||
}
|
||||
if (pass){
|
||||
//修改在线课开课状态=已开课
|
||||
String token = request.getHeader("Xboe-Access-Token");
|
||||
CourseParam param = new CourseParam();
|
||||
param.setId(courseId);
|
||||
param.setOrgId(c.getOrgId());
|
||||
param.setOrgName(c.getOrgName());
|
||||
thirdApi.updateOrSaveCourse(param,token);
|
||||
}
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/last-audit-list")
|
||||
@@ -392,6 +389,7 @@ public class CourseAuditApi extends ApiBaseController{
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@PostMapping("/submit-publish")
|
||||
@AutoLog(module = "课程",action = "默认管理员提交发布",info = "")
|
||||
public JsonResponse<Boolean> submitAndPublish(@RequestBody CourseFullDto dto, HttpServletRequest request){
|
||||
@@ -425,23 +423,16 @@ public class CourseAuditApi extends ApiBaseController{
|
||||
dto.getCourse().setStatus(Course.STATUS_AUDIT_FINISH);//设置为审核通过状态
|
||||
dto.getCourse().setEnabled(true);//设置启用状态问题
|
||||
dto.getCourse().setPublished(false);//重新提交审核设置为未发布状态
|
||||
try {
|
||||
|
||||
courseService.submitAndPublish(dto,cuser.getAccountId(),cuser.getName());
|
||||
log.info("---------------在线课开始同步到讲师管理 ------- token = " + token);
|
||||
CourseParam param = new CourseParam();
|
||||
param.setId(dto.getCourse().getId());
|
||||
param.setOrgId(dto.getCourse().getOrgId());
|
||||
param.setOrgName(dto.getCourse().getOrgName());
|
||||
thirdApi.updateOrSaveCourse(param,token);
|
||||
log.info("---------------在线课同步到讲师管理完毕 -------");
|
||||
return success(true);
|
||||
} catch (Exception e) {
|
||||
log.error("默认管理员提交直接发布处理失败",e);
|
||||
e.printStackTrace();
|
||||
return error("发布课程失败",e.getMessage());
|
||||
}
|
||||
|
||||
courseService.submitAndPublish(dto,cuser.getAccountId(),cuser.getName());
|
||||
log.info("---------------在线课开始同步到讲师管理 ------- token = " + token);
|
||||
CourseParam param = new CourseParam();
|
||||
param.setId(dto.getCourse().getId());
|
||||
param.setOrgId(dto.getCourse().getOrgId());
|
||||
param.setOrgName(dto.getCourse().getOrgName());
|
||||
thirdApi.updateOrSaveCourse(param,token);
|
||||
log.info("---------------在线课同步到讲师管理完毕 -------");
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,8 +15,6 @@ import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import it.sauronsoftware.jave.Encoder;
|
||||
import it.sauronsoftware.jave.MultimediaInfo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.orm.ObjectOptimisticLockingFailureException;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -48,6 +46,8 @@ import com.xboe.module.scorm.SCORMParser;
|
||||
import com.xboe.standard.BaseConstant;
|
||||
import com.xboe.standard.enums.BoedxCourseFileType;
|
||||
|
||||
import it.sauronsoftware.jave.Encoder;
|
||||
import it.sauronsoftware.jave.MultimediaInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
@@ -256,7 +256,7 @@ public class CourseFileApi extends ApiBaseController {
|
||||
}
|
||||
String fileFullPath = SysConstant.getConfigValue(BaseConstant.CONFIG_UPLOAD_FILES_SAVEPATH) + file.getFilePath();
|
||||
if ("mp3,mp4".indexOf(file.getFileType()) > -1){
|
||||
log.info("上传 "+file.getFileType()+"文件:"+file.getFilePath());
|
||||
log.info("上传 "+file.getFileType()+"文件:"+file.getFilePath());
|
||||
Encoder encoder = new Encoder();
|
||||
try {
|
||||
//System.out.println(fileFullPath);
|
||||
@@ -278,8 +278,8 @@ public class CourseFileApi extends ApiBaseController {
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("读取视频时长错误", e);
|
||||
return error("视频解析失败,尝试重新上传或联系管理员", "视频解析失败,尝试重新上传或联系管理员");
|
||||
log.error("读取视频时长错误");
|
||||
// e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.xboe.api.ThirdApi;
|
||||
import com.xboe.module.course.dto.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@@ -300,6 +301,7 @@ public class CourseManageApi extends ApiBaseController{
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@AutoLog(module = "课程",action = "保存课程基本信息",info = "")
|
||||
public JsonResponse<CourseFullDto> saveCourseFull(@RequestBody CourseFullDto dto, HttpServletRequest request){
|
||||
if(dto.getCourse()==null){
|
||||
@@ -321,30 +323,25 @@ public class CourseManageApi extends ApiBaseController{
|
||||
}
|
||||
|
||||
//填充必要的信息
|
||||
try {
|
||||
if(StringUtils.isBlank(dto.getCourse().getId())) {
|
||||
//只有在第一次添加保存时才会这样
|
||||
fillCourseData(dto.getCourse());
|
||||
courseService.save(dto);
|
||||
}else {
|
||||
//修改后重置,重新提交审核,重新发布
|
||||
dto.getCourse().setPublished(false);
|
||||
dto.getCourse().setStatus(Course.STATUS_NONE);
|
||||
courseService.update(dto);
|
||||
}
|
||||
String token = request.getHeader("Xboe-Access-Token");
|
||||
log.info("---------------在线课开始同步到讲师管理 ------- token = " + token);
|
||||
CourseParam param = new CourseParam();
|
||||
param.setId(dto.getCourse().getId());
|
||||
param.setOrgId(dto.getCourse().getOrgId());
|
||||
param.setOrgName(dto.getCourse().getOrgName());
|
||||
thirdApi.updateOrSaveCourse(param,token);
|
||||
log.info("---------------在线课同步到讲师管理完毕 -------");
|
||||
return success(dto);
|
||||
} catch (Exception e) {
|
||||
log.error("整体保存课程信息错误",e);
|
||||
return error("保存失败",e.getMessage());
|
||||
}
|
||||
if(StringUtils.isBlank(dto.getCourse().getId())) {
|
||||
//只有在第一次添加保存时才会这样
|
||||
fillCourseData(dto.getCourse());
|
||||
courseService.save(dto);
|
||||
}else {
|
||||
//修改后重置,重新提交审核,重新发布
|
||||
dto.getCourse().setPublished(false);
|
||||
dto.getCourse().setStatus(Course.STATUS_NONE);
|
||||
courseService.update(dto);
|
||||
}
|
||||
String token = request.getHeader("Xboe-Access-Token");
|
||||
log.info("---------------在线课开始同步到讲师管理 ------- token = " + token);
|
||||
CourseParam param = new CourseParam();
|
||||
param.setId(dto.getCourse().getId());
|
||||
param.setOrgId(dto.getCourse().getOrgId());
|
||||
param.setOrgName(dto.getCourse().getOrgName());
|
||||
thirdApi.updateOrSaveCourse(param,token);
|
||||
log.info("---------------在线课同步到讲师管理完毕 -------");
|
||||
return success(dto);
|
||||
}
|
||||
|
||||
/***
|
||||
@@ -443,6 +440,7 @@ public class CourseManageApi extends ApiBaseController{
|
||||
|
||||
|
||||
@PostMapping("/submit")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@AutoLog(module = "课程",action = "提交课程",info = "")
|
||||
public JsonResponse<CourseFullDto> submitCourseFull(@RequestBody CourseFullDto dto){
|
||||
if(dto.getCourse()==null){
|
||||
@@ -520,68 +518,63 @@ public class CourseManageApi extends ApiBaseController{
|
||||
//检查课程内容的完整性
|
||||
//填充必要的信息
|
||||
//fillCourseData(dto.getCourse());
|
||||
try {
|
||||
CourseHRBPAudit hrbpAudit = hrbpAuditService.hasAuditing(dto.getCourse().getId());
|
||||
if(hrbpAudit!=null) {
|
||||
return badRequest("此课程中已有审核,不能再提交审核,如修改请先撤回");
|
||||
}
|
||||
if(!isLocalDevelopment()) {
|
||||
if(StringUtils.isBlank(dto.getAuditUser().getAid())) {
|
||||
CourseHRBPAudit hrbpAudit = hrbpAuditService.hasAuditing(dto.getCourse().getId());
|
||||
if(hrbpAudit!=null) {
|
||||
return badRequest("此课程中已有审核,不能再提交审核,如修改请先撤回");
|
||||
}
|
||||
if(!isLocalDevelopment()) {
|
||||
if(StringUtils.isBlank(dto.getAuditUser().getAid())) {
|
||||
// if(StringUtils.isBlank(dto.getAuditUser().getKid())) {
|
||||
// return badRequest("HRBP审核信息人员错误");
|
||||
// }
|
||||
//转化用户id
|
||||
User u = userService.getByUserNo(dto.getAuditUser().getCode());
|
||||
if(u==null) { //本地没有,需要同步、
|
||||
//20230815 直接返回错误,这个时候传的用户,在新系统中没有,需要用户登录一下,或着用户中心推送
|
||||
return badRequest("无关联HRBP审核人员,请先同步用户");
|
||||
//Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid());
|
||||
//转化用户id
|
||||
User u = userService.getByUserNo(dto.getAuditUser().getCode());
|
||||
if(u==null) { //本地没有,需要同步、
|
||||
//20230815 直接返回错误,这个时候传的用户,在新系统中没有,需要用户登录一下,或着用户中心推送
|
||||
return badRequest("无关联HRBP审核人员,请先同步用户");
|
||||
//Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid());
|
||||
// UserVo fwUser = fwUserService.getById(dto.getAuditUser().getKid());
|
||||
// Account a =userService.syncAccountUser(fwUser);
|
||||
// dto.getAuditUser().setAid(a.getId());
|
||||
}else {
|
||||
dto.getAuditUser().setAid(u.getId());
|
||||
}
|
||||
}else {
|
||||
log.info("已获取过hrbp审核人id【"+dto.getAuditUser().getAid()+"】,不需要再转化");
|
||||
}
|
||||
|
||||
}else {
|
||||
//弄成固定值,用于测试
|
||||
dto.getAuditUser().setAid(getCurrent().getAccountId());
|
||||
}
|
||||
if(StringUtils.isBlank(dto.getAuditUser().getAid())) {
|
||||
return badRequest("查询组织HRBP审核人员失败");
|
||||
}
|
||||
|
||||
//设置为提交状态
|
||||
dto.getCourse().setStatus(Course.STATUS_SUBMIT);
|
||||
dto.getCourse().setEnabled(true);//设置启用状态问题
|
||||
dto.getCourse().setPublished(false);//重新提交审核设置为未发布状态
|
||||
courseService.submit(dto);
|
||||
//提交成功发邮件提醒
|
||||
try {
|
||||
String htmlEmail=createEmailHtml(dto.getAuditUser().getName(),dto.getCourse().getOrgId(),
|
||||
dto.getCourse().getOrgName(),
|
||||
dto.getCourse().getSysCreateBy(),dto.getCourse().getName());
|
||||
//邮件发送
|
||||
String email=dto.getAuditUser().getEmail();
|
||||
if(!isLocalDevelopment()) {
|
||||
//只是非开发模式下才可以发送
|
||||
service.sendMail(email,"《"+dto.getCourse().getName()+"》课程审核提醒", htmlEmail,"数字化学习平台");
|
||||
}else {
|
||||
//service.sendMail("daihaixing@bjxask.com","课程审核提醒", htmlEmail,"数字化学习平台");
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error("邮件发送失败",ex);
|
||||
return error("课程已提交,但邮件发送失败",ex.getMessage());
|
||||
}
|
||||
return success(dto);
|
||||
} catch (Exception e) {
|
||||
log.error("提交保存课程信息错误",e);
|
||||
return error("提交课程处理失败",e.getMessage());
|
||||
}
|
||||
}else {
|
||||
dto.getAuditUser().setAid(u.getId());
|
||||
}
|
||||
}else {
|
||||
log.info("已获取过hrbp审核人id【"+dto.getAuditUser().getAid()+"】,不需要再转化");
|
||||
}
|
||||
|
||||
}else {
|
||||
//弄成固定值,用于测试
|
||||
dto.getAuditUser().setAid(getCurrent().getAccountId());
|
||||
}
|
||||
if(StringUtils.isBlank(dto.getAuditUser().getAid())) {
|
||||
return badRequest("查询组织HRBP审核人员失败");
|
||||
}
|
||||
|
||||
//设置为提交状态
|
||||
dto.getCourse().setStatus(Course.STATUS_SUBMIT);
|
||||
dto.getCourse().setEnabled(true);//设置启用状态问题
|
||||
dto.getCourse().setPublished(false);//重新提交审核设置为未发布状态
|
||||
courseService.submit(dto);
|
||||
//提交成功发邮件提醒
|
||||
try {
|
||||
String htmlEmail=createEmailHtml(dto.getAuditUser().getName(),dto.getCourse().getOrgId(),
|
||||
dto.getCourse().getOrgName(),
|
||||
dto.getCourse().getSysCreateBy(),dto.getCourse().getName());
|
||||
//邮件发送
|
||||
String email=dto.getAuditUser().getEmail();
|
||||
if(!isLocalDevelopment()) {
|
||||
//只是非开发模式下才可以发送
|
||||
service.sendMail(email,"《"+dto.getCourse().getName()+"》课程审核提醒", htmlEmail,"数字化学习平台");
|
||||
}else {
|
||||
//service.sendMail("daihaixing@bjxask.com","课程审核提醒", htmlEmail,"数字化学习平台");
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error("邮件发送失败",ex);
|
||||
return error("课程已提交,但邮件发送失败",ex.getMessage());
|
||||
}
|
||||
return success(dto);
|
||||
}
|
||||
|
||||
private String createEmailHtml(String name,String orgId, String orgName,String createBy,String courseName) throws Exception {
|
||||
@@ -615,6 +608,7 @@ public class CourseManageApi extends ApiBaseController{
|
||||
}
|
||||
|
||||
@PostMapping("/sumbits")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JsonResponse<Boolean> sumbitId(HttpServletRequest request,CourseHRBPAudit audit,String ucode,String ukid,String email,String orgName){
|
||||
if(StringUtils.isBlank(audit.getCourseId())){
|
||||
return badRequest("参数错误");
|
||||
@@ -637,24 +631,23 @@ public class CourseManageApi extends ApiBaseController{
|
||||
return badRequest(error);
|
||||
}
|
||||
|
||||
try {
|
||||
CourseHRBPAudit hrbpAudit = hrbpAuditService.hasAuditing(audit.getCourseId());
|
||||
if(hrbpAudit!=null) {
|
||||
return badRequest("此课程中已有审核,不能再提交审核,如修改请先撤回");
|
||||
}
|
||||
|
||||
if(!isLocalDevelopment()) {
|
||||
if(StringUtils.isBlank(audit.getAid())) {
|
||||
|
||||
CourseHRBPAudit hrbpAudit = hrbpAuditService.hasAuditing(audit.getCourseId());
|
||||
if(hrbpAudit!=null) {
|
||||
return badRequest("此课程中已有审核,不能再提交审核,如修改请先撤回");
|
||||
}
|
||||
|
||||
if(!isLocalDevelopment()) {
|
||||
if(StringUtils.isBlank(audit.getAid())) {
|
||||
|
||||
// if(StringUtils.isBlank(ukid)){
|
||||
// return badRequest("未关联HRBP审核人员");
|
||||
// }
|
||||
//转化用户id
|
||||
User u = userService.getByUserNo(ucode);
|
||||
if(u==null) { //本地没有,需要同步
|
||||
return badRequest("无关联HRBP审核人员,请先同步用户");
|
||||
//Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid());
|
||||
//20230815 已经不再使用直接查老系统,采用接口同步的方式
|
||||
//转化用户id
|
||||
User u = userService.getByUserNo(ucode);
|
||||
if(u==null) { //本地没有,需要同步
|
||||
return badRequest("无关联HRBP审核人员,请先同步用户");
|
||||
//Organization org = orgService.getBySysId(dto.getAuditUser().getOrgkid());
|
||||
//20230815 已经不再使用直接查老系统,采用接口同步的方式
|
||||
// UserVo fwUser = fwUserService.getById(ukid);
|
||||
// Account a =userService.syncAccountUser(fwUser);
|
||||
// audit.setAid(a.getId());
|
||||
@@ -670,43 +663,39 @@ public class CourseManageApi extends ApiBaseController{
|
||||
// }catch(Exception exp) {
|
||||
// log.error("登录同步用户错误",exp);
|
||||
// }
|
||||
}else {
|
||||
audit.setAid(u.getId());
|
||||
}
|
||||
}else {
|
||||
log.info("已获取过hrbp审核人id【"+audit.getAid()+"】,不需要再转化");
|
||||
}
|
||||
|
||||
}else {
|
||||
//弄成固定值,用于测试
|
||||
audit.setAid(getCurrent().getAccountId());
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(audit.getAid())) {
|
||||
return badRequest("查询组织HRBP审核人员失败");
|
||||
}
|
||||
|
||||
courseService.submit(audit);
|
||||
|
||||
//提交成功发邮件提醒
|
||||
try {
|
||||
String htmlEmail=createEmailHtml(audit.getAuditUser(),course.getOrgId(), orgName,audit.getCourseUser(),audit.getCourseName());
|
||||
//邮件发送
|
||||
if(!isLocalDevelopment()) {
|
||||
//只是非高度环境上才会发送
|
||||
service.sendMail(email,"《"+course.getName()+"》课程审核提醒",htmlEmail,"数字化学习平台");
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error("邮件发送失败",ex);
|
||||
return error("课程已提交,但邮件发送失败",ex.getMessage());
|
||||
}
|
||||
|
||||
return success(true);
|
||||
}catch(Exception e) {
|
||||
log.error("提交保存课程信息错误",e);
|
||||
return error("提交课程处理失败",e.getMessage());
|
||||
}
|
||||
}else {
|
||||
audit.setAid(u.getId());
|
||||
}
|
||||
}else {
|
||||
log.info("已获取过hrbp审核人id【"+audit.getAid()+"】,不需要再转化");
|
||||
}
|
||||
|
||||
}else {
|
||||
//弄成固定值,用于测试
|
||||
audit.setAid(getCurrent().getAccountId());
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(audit.getAid())) {
|
||||
return badRequest("查询组织HRBP审核人员失败");
|
||||
}
|
||||
|
||||
courseService.submit(audit);
|
||||
|
||||
//提交成功发邮件提醒
|
||||
try {
|
||||
String htmlEmail=createEmailHtml(audit.getAuditUser(),course.getOrgId(), orgName,audit.getCourseUser(),audit.getCourseName());
|
||||
//邮件发送
|
||||
if(!isLocalDevelopment()) {
|
||||
//只是非高度环境上才会发送
|
||||
service.sendMail(email,"《"+course.getName()+"》课程审核提醒",htmlEmail,"数字化学习平台");
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
log.error("邮件发送失败",ex);
|
||||
return error("课程已提交,但邮件发送失败",ex.getMessage());
|
||||
}
|
||||
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@PostMapping("/revoke")
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
package com.xboe.module.course.dao;
|
||||
|
||||
import com.xboe.core.orm.BaseDao;
|
||||
import com.xboe.module.course.entity.CourseTeacherDeletedRecord;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public class CourseTeacherDeletedRecordDao extends BaseDao<CourseTeacherDeletedRecord> {
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package com.xboe.module.course.entity;
|
||||
|
||||
import com.xboe.core.SysConstant;
|
||||
import com.xboe.core.orm.IdBaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
|
||||
/**
|
||||
* 课程任课教师删除记录
|
||||
*/
|
||||
@Data
|
||||
@Entity
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Table(name = SysConstant.TABLE_PRE + "course_teacher_deleted_record")
|
||||
public class CourseTeacherDeletedRecord extends IdBaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 课程id
|
||||
*/
|
||||
@Column(name = "course_id", nullable = false, length = 20)
|
||||
private String courseId;
|
||||
|
||||
/**
|
||||
* 教师id,实际上就是aid
|
||||
*
|
||||
*/
|
||||
@Column(name = "teacher_id", nullable = false, length = 20)
|
||||
private String teacherId;
|
||||
|
||||
/**
|
||||
* 教师姓名
|
||||
*
|
||||
*/
|
||||
@Column(name = "teacher_name", length = 30)
|
||||
private String teacherName;
|
||||
|
||||
}
|
||||
@@ -161,14 +161,14 @@ public interface ICourseService {
|
||||
* 课程信息的整体更新,用于对课程的编辑处理
|
||||
* @param full
|
||||
*/
|
||||
void update(CourseFullDto full)throws Exception;
|
||||
void update(CourseFullDto full);
|
||||
|
||||
/**
|
||||
* 提交课程,提交进入课程审核,独立的方法处理
|
||||
* @param full
|
||||
* @throws Exception
|
||||
*/
|
||||
void submit(CourseFullDto full)throws Exception;
|
||||
void submit(CourseFullDto full);
|
||||
|
||||
/**
|
||||
* 用于默认管理员,直接提交发布,不走审核流程
|
||||
@@ -177,14 +177,14 @@ public interface ICourseService {
|
||||
* @param aname 姓名
|
||||
* @throws Exception
|
||||
*/
|
||||
void submitAndPublish(CourseFullDto full,String aid,String aname)throws Exception;
|
||||
void submitAndPublish(CourseFullDto full,String aid,String aname);
|
||||
|
||||
/**
|
||||
* 提交一个课程
|
||||
* @param audit
|
||||
* @throws Exception
|
||||
*/
|
||||
void submit(CourseHRBPAudit audit) throws Exception;
|
||||
void submit(CourseHRBPAudit audit);
|
||||
|
||||
/**
|
||||
* update 传一个id直接改值
|
||||
|
||||
@@ -15,12 +15,9 @@ import java.util.stream.Stream;
|
||||
import javax.annotation.Resource;
|
||||
import javax.management.Query;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.xboe.api.ThirdApi;
|
||||
import com.xboe.core.orm.*;
|
||||
import com.xboe.module.course.dao.*;
|
||||
import com.xboe.module.course.entity.*;
|
||||
import com.xboe.school.study.dao.StudyCourseDao;
|
||||
import com.xboe.school.study.entity.StudyCourse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -44,9 +41,24 @@ import com.xboe.common.beans.KeyValue;
|
||||
import com.xboe.common.utils.IDGenerator;
|
||||
import com.xboe.common.utils.StringUtil;
|
||||
import com.xboe.core.event.IEventDataSender;
|
||||
import com.xboe.module.course.dao.CourseContentDao;
|
||||
import com.xboe.module.course.dao.CourseCrowdDao;
|
||||
import com.xboe.module.course.dao.CourseDao;
|
||||
import com.xboe.module.course.dao.CourseExamDao;
|
||||
import com.xboe.module.course.dao.CourseHRBPAuditDao;
|
||||
import com.xboe.module.course.dao.CourseHomeWorkDao;
|
||||
import com.xboe.module.course.dao.CourseSectionDao;
|
||||
import com.xboe.module.course.dao.CourseTeacherDao;
|
||||
import com.xboe.module.course.dao.CourseUpdateLogDao;
|
||||
import com.xboe.module.course.dto.CourseFullDto;
|
||||
import com.xboe.module.course.dto.CourseQueryDto;
|
||||
import com.xboe.module.course.dto.RankingDto;
|
||||
import com.xboe.module.course.entity.Course;
|
||||
import com.xboe.module.course.entity.CourseCrowd;
|
||||
import com.xboe.module.course.entity.CourseHRBPAudit;
|
||||
import com.xboe.module.course.entity.CourseSection;
|
||||
import com.xboe.module.course.entity.CourseTeacher;
|
||||
import com.xboe.module.course.entity.CourseUpdateLog;
|
||||
import com.xboe.module.course.service.ICourseFullTextSearch;
|
||||
import com.xboe.module.course.service.ICourseService;
|
||||
import com.xboe.module.interaction.service.ICourseGradeService;
|
||||
@@ -113,9 +125,8 @@ public class CourseServiceImpl implements ICourseService {
|
||||
@Resource
|
||||
RestHighLevelClient restHighLevelClient;
|
||||
|
||||
@Resource
|
||||
private CourseTeacherDeletedRecordDao courseTeacherDeletedRecordDao;
|
||||
|
||||
|
||||
/**
|
||||
* 生成过滤条件
|
||||
*
|
||||
@@ -172,7 +183,7 @@ public class CourseServiceImpl implements ICourseService {
|
||||
filters.add(FieldFilters.in("device", Course.DEVICE_MOBILE, Course.DEVICE_ALL));
|
||||
} else if (dto.getDevice() == Course.DEVICE_ALL) {
|
||||
filters.add(FieldFilters.eq("device", Course.DEVICE_ALL));
|
||||
} else if (dto.getDevice() == Course.DEVICE_INTERNAL) {
|
||||
}else if (dto.getDevice() == Course.DEVICE_INTERNAL) {
|
||||
filters.add(FieldFilters.eq("device", Course.DEVICE_INTERNAL));
|
||||
}
|
||||
|
||||
@@ -270,13 +281,13 @@ public class CourseServiceImpl implements ICourseService {
|
||||
//// Set<String>list=new HashSet<>();
|
||||
//// if(s!=null&&!s.isEmpty()){
|
||||
//// list=Arrays.stream(s.split(",")).collect(Collectors.toSet());
|
||||
//// }else {
|
||||
//// }else {
|
||||
//// Set<String> ss = getSeache(dto);
|
||||
//// String courseSearch=String.join(",",ss);
|
||||
//// redisTemplate.opsForValue().set("course_search",courseSearch);
|
||||
//// //设置过期时间为1分钟
|
||||
//// redisTemplate.expire("course_search", 1, TimeUnit.MINUTES);
|
||||
//// }
|
||||
//// }
|
||||
// Set<String> list = getSeache(dto);
|
||||
// //有权限的查询,也同时查询出创建人的数据,在权限上
|
||||
// if(TempFilterConfig.Manager_CourseFile_ByOrgIds) {
|
||||
@@ -356,9 +367,8 @@ public class CourseServiceImpl implements ICourseService {
|
||||
// // 使用distinct()配合自定义的去重条件
|
||||
// .filter(distinctByKey(c -> c.getId()))
|
||||
// .collect(Collectors.toList());
|
||||
|
||||
/// / PageList<Course> rs=courseDao.findPage(pageIndex, pageSize, filters, oc);
|
||||
/// / long endTime = System.nanoTime();
|
||||
//// PageList<Course> rs=courseDao.findPage(pageIndex, pageSize, filters, oc);
|
||||
//// long endTime = System.nanoTime();
|
||||
// //log.info("查询出的条数:"+rs.getCount());
|
||||
// if(!mergedList.isEmpty()){
|
||||
// //去掉未发布的课程
|
||||
@@ -415,30 +425,30 @@ public class CourseServiceImpl implements ICourseService {
|
||||
if (TempFilterConfig.Manager_CourseFile_ByOrgIds) {
|
||||
if (dto.getIsSystemAdmin() == null || !dto.getIsSystemAdmin()) {
|
||||
List<String> finalStrings = strings;
|
||||
log.info("dto为" + dto);
|
||||
if (dto.getIsCreateCourse() != null && dto.getIsCreateCourse()) {
|
||||
log.info("dto为"+dto);
|
||||
if(dto.getIsCreateCourse()!=null&&dto.getIsCreateCourse()){
|
||||
listByFilters2.removeIf(e -> {
|
||||
//去掉未发布的课程
|
||||
if (!e.getPublished() && seache.contains(e.getId()) && !finalStrings.contains(e.getOrgId()) && !dto.getOrgAid().equals(e.getSysCreateAid())) {
|
||||
return true;
|
||||
}
|
||||
//去掉所有条件都不符合的课程
|
||||
if (!seache.contains(e.getId()) && !dto.getReadIds().contains(e.getId()) && !finalStrings.contains(e.getOrgId()) && !dto.getOrgAid().equals(e.getSysCreateAid())) {
|
||||
if(!seache.contains(e.getId())&&!dto.getReadIds().contains(e.getId())&& !finalStrings.contains(e.getOrgId()) && !dto.getOrgAid().equals(e.getSysCreateAid())){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//将需要隐藏的做标记
|
||||
listByFilters2.forEach(e -> {
|
||||
if ((seache.contains(e.getId()) || dto.getReadIds().contains(e.getOrgId())) && !finalStrings.contains(e.getOrgId()) && !dto.getOrgAid().equals(e.getSysCreateAid())) {
|
||||
if ((seache.contains(e.getId())||dto.getReadIds().contains(e.getOrgId())) && !finalStrings.contains(e.getOrgId()) && !dto.getOrgAid().equals(e.getSysCreateAid())) {
|
||||
e.setIsPermission(false);
|
||||
} else {
|
||||
e.setIsPermission(true);
|
||||
}
|
||||
});
|
||||
listByFilters2.sort(Comparator.comparing(Course::getIsPermission).reversed());
|
||||
} else {
|
||||
List<Course> collect = listByFilters2.stream().filter(e -> dto.getReadIds().contains(e.getOrgId()) || dto.getOrgAid().equals(e.getSysCreateAid()) || finalStrings.contains(e.getOrgId())).collect(Collectors.toList());
|
||||
}else{
|
||||
List<Course> collect = listByFilters2.stream().filter(e ->dto.getReadIds().contains(e.getOrgId())||dto.getOrgAid().equals(e.getSysCreateAid())||finalStrings.contains(e.getOrgId())).collect(Collectors.toList());
|
||||
List<Course> paginate = paginate(collect, pageIndex, pageSize);
|
||||
PageList<Course> rs = new PageList<>();
|
||||
rs.setCount(collect.size());
|
||||
@@ -858,7 +868,7 @@ public class CourseServiceImpl implements ICourseService {
|
||||
}
|
||||
|
||||
// 删除ES数据
|
||||
deletedStudyResourceBatchByCourseIdAndType(id, c.getType());
|
||||
deletedStudyResourceBatchByCourseIdAndType(id,c.getType());
|
||||
} else {
|
||||
//彻底删除,课件设置为无课程状态
|
||||
courseDao.setDeleted(id);
|
||||
@@ -966,7 +976,7 @@ public class CourseServiceImpl implements ICourseService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(CourseFullDto full) throws Exception {
|
||||
public void update(CourseFullDto full) {
|
||||
|
||||
Course c = full.getCourse();//当前的课程信息
|
||||
Course nowCourse = courseDao.get(c.getId());//修改之前的课程信息
|
||||
@@ -992,8 +1002,6 @@ public class CourseServiceImpl implements ICourseService {
|
||||
c.setSysVersion(courseDao.getVersion(c.getId()));
|
||||
full.getCourse().setSysVersion(c.getSysVersion());
|
||||
|
||||
// 兼容处理,记录下删除的关联数据
|
||||
createCourseTeacherDeletedRecord(c.getId());
|
||||
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
||||
courseTeacherDao.deleteByField("courseId", c.getId());
|
||||
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
||||
@@ -1020,7 +1028,7 @@ public class CourseServiceImpl implements ICourseService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submit(CourseFullDto full) throws Exception {
|
||||
public void submit(CourseFullDto full) {
|
||||
|
||||
Course c = full.getCourse();//当前的课程信息
|
||||
if (c.getVisible() == null) {
|
||||
@@ -1048,8 +1056,6 @@ public class CourseServiceImpl implements ICourseService {
|
||||
c.setSysVersion(courseDao.getVersion(c.getId()));
|
||||
full.getCourse().setSysVersion(c.getSysVersion());
|
||||
|
||||
// 兼容处理,记录下删除的关联数据
|
||||
createCourseTeacherDeletedRecord(c.getId());
|
||||
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
||||
courseTeacherDao.deleteByField("courseId", c.getId());
|
||||
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
||||
@@ -1078,15 +1084,13 @@ public class CourseServiceImpl implements ICourseService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submitAndPublish(CourseFullDto full, String aid, String aname) throws Exception {
|
||||
public void submitAndPublish(CourseFullDto full, String aid, String aname) {
|
||||
|
||||
Course c = full.getCourse();//当前的课程信息
|
||||
c.setPublished(true);
|
||||
c.setPublishTime(LocalDateTime.now());
|
||||
courseDao.update(c);
|
||||
|
||||
// 兼容处理,记录下删除的关联数据
|
||||
createCourseTeacherDeletedRecord(c.getId());
|
||||
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
||||
courseTeacherDao.deleteByField("courseId", c.getId());
|
||||
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
||||
@@ -1127,7 +1131,7 @@ public class CourseServiceImpl implements ICourseService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submit(CourseHRBPAudit hrbpAudit) throws Exception {
|
||||
public void submit(CourseHRBPAudit hrbpAudit) {
|
||||
|
||||
courseDao.updateMultiFieldById(hrbpAudit.getCourseId(), UpdateBuilder.create("status", Course.STATUS_SUBMIT),
|
||||
UpdateBuilder.create("published", false), UpdateBuilder.create("publishTime", LocalDateTime.now()));
|
||||
@@ -2009,25 +2013,4 @@ public class CourseServiceImpl implements ICourseService {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除boe_course_teacher数据时把删除的数据储存到boe_course_teacher_deleted_record表
|
||||
* boe_course_teacher表没有deleted字段,兼容处理
|
||||
*
|
||||
* @param courseId 课程ID
|
||||
*/
|
||||
private void createCourseTeacherDeletedRecord(String courseId) {
|
||||
List<CourseTeacherDeletedRecord> courseTeacherList = courseTeacherDao.findList(FieldFilters.eq("courseId", courseId)).stream().map(ct -> {
|
||||
CourseTeacherDeletedRecord courseTeacherDeletedRecord = new CourseTeacherDeletedRecord();
|
||||
courseTeacherDeletedRecord.setCourseId(ct.getCourseId());
|
||||
courseTeacherDeletedRecord.setTeacherId(ct.getTeacherId());
|
||||
courseTeacherDeletedRecord.setTeacherName(ct.getTeacherName());
|
||||
return courseTeacherDeletedRecord;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if (CollUtil.isNotEmpty(courseTeacherList)) {
|
||||
courseTeacherDeletedRecordDao.saveList(courseTeacherList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user