Compare commits

...

3 Commits

Author SHA1 Message Date
670788339
5836b147c4 在线删除同步授课记录 2025-04-29 15:58:37 +08:00
joshen
4fff780970 Merge branch '250408-bugfix-shl' into release-20250328-master
# Conflicts:
#	servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java
2025-04-09 18:16:07 +08:00
sunhonglai
47813ea565 增加面授课删除 2025-04-08 17:43:37 +08:00
5 changed files with 44 additions and 5 deletions

View File

@@ -98,7 +98,8 @@ public class ThirdApi {
private String syncOnLineScore; private String syncOnLineScore;
@Value("${coursesuilt.updateOnLineStatua}") @Value("${coursesuilt.updateOnLineStatua}")
private String updateOnLineStatua; private String updateOnLineStatua;
@Value("${coursesuilt.delOnLineById}")
private String delOnLineById;
//获取例外人员的id //获取例外人员的id
public List<String> getUserId() { public List<String> getUserId() {
@@ -398,4 +399,12 @@ public class ThirdApi {
public void syncExamStudyRecord(ExamStudyRecordParam param) { public void syncExamStudyRecord(ExamStudyRecordParam param) {
externalRemoteClient.syncExamStudyRecord(param); externalRemoteClient.syncExamStudyRecord(param);
} }
public void delOnLineById(CourseParam param, String token) {
log.info("---------------同步在线课删除 ------- param " + param);
String resp = Optional.ofNullable(
HttpRequest.post(delOnLineById).body(JSONUtil.toJsonStr(param)).header("token", token).execute()
.body()).orElseThrow(() -> new RuntimeException("token校验失败"));
log.info("-------delOnLineById = " + resp);
}
} }

View File

@@ -886,7 +886,7 @@ public class CourseManageApi extends ApiBaseController{
* @return * @return
*/ */
@PostMapping("/delete") @PostMapping("/delete")
public JsonResponse<Boolean> delete(String id,Boolean erasable,String title,String remark){ public JsonResponse<Boolean> delete(String id,Boolean erasable,String title,String remark, HttpServletRequest request){
if(StringUtils.isBlank(id)){ if(StringUtils.isBlank(id)){
return badRequest("参数错误"); return badRequest("参数错误");
} }
@@ -901,6 +901,11 @@ public class CourseManageApi extends ApiBaseController{
try { try {
CurrentUser cu=getCurrent(); CurrentUser cu=getCurrent();
courseService.delete(id, erasable,cu.getAccountId(), cu.getName(), remark); courseService.delete(id, erasable,cu.getAccountId(), cu.getName(), remark);
String token = request.getHeader("Xboe-Access-Token");
CourseParam param = new CourseParam();
param.setId(id);
thirdApi.delOnLineById(param,token);
return success(true); return success(true);
} catch (Exception e) { } catch (Exception e) {
log.error("管理员删除课程错误",e); log.error("管理员删除课程错误",e);

View File

@@ -342,4 +342,5 @@ public interface ICourseService {
List<Course> findByIds(List<String> courseIds); List<Course> findByIds(List<String> courseIds);
void deletedStudyResourceBatchByCourseIdAndType(String courseId,Integer courseType);
} }

View File

@@ -1,5 +1,6 @@
package com.xboe.module.course.service.impl; package com.xboe.module.course.service.impl;
import java.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -20,6 +21,11 @@ import com.xboe.core.orm.*;
import com.xboe.school.study.dao.StudyCourseDao; import com.xboe.school.study.dao.StudyCourseDao;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.hibernate.mapping.IdGenerator; import org.hibernate.mapping.IdGenerator;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
@@ -116,6 +122,9 @@ public class CourseServiceImpl implements ICourseService {
@Autowired(required = false) @Autowired(required = false)
private IEventDataSender eventSender; private IEventDataSender eventSender;
@Resource
RestHighLevelClient restHighLevelClient;
/** /**
@@ -855,12 +864,14 @@ public class CourseServiceImpl implements ICourseService {
log.error("未配置事件消息发送的实现"); log.error("未配置事件消息发送的实现");
} }
} }
// 删除ES数据
deletedStudyResourceBatchByCourseIdAndType(id,c.getType());
} else { } else {
//彻底删除,课件设置为无课程状态 //彻底删除,课件设置为无课程状态
courseDao.setDeleted(id); courseDao.setDeleted(id);
} }
//记录删除日志信息 //记录删除日志信息
} }
@Override @Override
@@ -1987,5 +1998,17 @@ public class CourseServiceImpl implements ICourseService {
return courseDao.findListByHql("Select new Course(id,studys,score) from Course where id in(?1)", ids); return courseDao.findListByHql("Select new Course(id,studys,score) from Course where id in(?1)", ids);
} }
@Override
public void deletedStudyResourceBatchByCourseIdAndType(String courseId, Integer courseType) {
DeleteByQueryRequest request = new DeleteByQueryRequest("new_study_resource");
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
boolQueryBuilder.must(QueryBuilders.matchQuery("courseId", courseId));
boolQueryBuilder.must(QueryBuilders.matchQuery("courseType", courseType));
request.setQuery(boolQueryBuilder);
try {
restHighLevelClient.deleteByQuery(request, RequestOptions.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
}
}
} }

View File

@@ -73,4 +73,5 @@ coursesuilt:
updateOrSaveCourse: ${boe.domain}/manageApi/admin/teacherRecord/updateOrSaveCourse updateOrSaveCourse: ${boe.domain}/manageApi/admin/teacherRecord/updateOrSaveCourse
syncCourseStudent: ${boe.domain}/manageApi/admin/teacherRecord/syncCourseStudent syncCourseStudent: ${boe.domain}/manageApi/admin/teacherRecord/syncCourseStudent
syncOnLineScore: ${boe.domain}/manageApi/admin/teacherRecord/syncOnLineScore syncOnLineScore: ${boe.domain}/manageApi/admin/teacherRecord/syncOnLineScore
updateOnLineStatua: ${boe.domain}/manageApi/admin/teacherRecord/updateOnLineStatua updateOnLineStatua: ${boe.domain}/manageApi/admin/teacherRecord/updateOnLineStatua
delOnLineById: ${boe.domain}/manageApi/admin/teacherRecord/delOnLineById