课程学习报名ES同步的调整

This commit is contained in:
daihh
2023-03-05 17:37:45 +08:00
parent 23c9dfa3eb
commit 7e26c9935f
4 changed files with 60 additions and 74 deletions

View File

@@ -230,10 +230,11 @@ public class StudySignupApi extends ApiBaseController{
}
/**
* 只有未审核通过的才可以删除
* 只有未审核通过的才可以删除,因为当前系统中无未审核的,所以此删除不会发生
* @param signup
* @return
*/
@Deprecated
@PostMapping("/delete")
public JsonResponse<Boolean> delete(String id){
if(StringUtils.isBlank(id)){
@@ -241,8 +242,9 @@ public class StudySignupApi extends ApiBaseController{
}
try {
signupService.setDeleted(id);
return success(true);
//signupService.setDeleted(id);
//return success(true);
return error("已通过的报名不能在这里删除");
}catch(Exception e) {
log.error("删除报名错误",e);
return error("删除报名失败,请与管理员联系",e.getMessage());

View File

@@ -5,6 +5,7 @@ import java.util.List;
import com.xboe.common.OrderCondition;
import com.xboe.common.PageList;
import com.xboe.common.beans.KeyValue;
import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudySignup;
/**
@@ -46,7 +47,7 @@ public interface IStudySignupService {
* 管理员添加报名
* @param signup
*/
void addSignup(StudySignup signup);
StudyCourse addSignup(StudySignup signup);
/**
* 删除报名,只有未审核过的才可以删除

View File

@@ -5,9 +5,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.transaction.Transactional;
@@ -42,6 +40,7 @@ import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.entity.StudySignup;
import com.xboe.school.study.service.IStudyCourseService;
import com.xboe.school.study.service.IStudySignupService;
import lombok.extern.slf4j.Slf4j;
@@ -53,6 +52,9 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Autowired
StudySignupDao signupDao;
@Autowired
IStudySignupService signupService;
@Autowired
StudyCourseDao studyCourseDao;
@@ -77,9 +79,6 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Autowired
StudyScoreDao studyScoreDao;
@Autowired
StudySignupDao studySignupDao;
@Autowired
StudyTimeDao studyTimeDao;
@@ -87,7 +86,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
CourseDao courseDao;
@Autowired(required = false)
ICourseStudySearch search;//对ES的处理
ICourseStudySearch esSearch;//对ES的处理
@Override
public StudyCourse findByCourseIdAndAid(String courseId, String aid) {
@@ -278,13 +277,13 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
//删除课程学习时长记录
studyTimeDao.deleteByFilter(FieldFilters.eq("studyId",id));
//删除课程报名信息
studySignupDao.deleteByFilter(FieldFilters.and(FieldFilters.eq("courseId",courseId),FieldFilters.eq("aid",aid)));
signupDao.deleteByFilter(FieldFilters.and(FieldFilters.eq("courseId",courseId),FieldFilters.eq("aid",aid)));
//修改课程学习人数
courseDao.updateMultiFieldById(courseId, UpdateBuilder.create("studys", "studys-1", FieldUpdateType.EXPRESSION));
//同步删除ES的处理
if(search!=null) {
//search.removeByStudyId(id);
log.info("删除同步操作ES的删除未启用如果确认已配置ES,请启用");
if(esSearch!=null) {
esSearch.removeByStudyId(id);
log.info("删除同步操作ES的课程报名学习记录");
}
}
@@ -641,37 +640,9 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
public StudyCourse autoSignup(StudySignup signup) {
signup.setSignType(StudySignup.SIGNTYPE_SELF);
if(signup.getStatus()==null) {
//如果未指定状态,就设置审核通过
signup.setStatus(StudySignup.STATUS_PASS);
signup.setAuditType(StudySignup.AUDITTYPE_AUTO);
signup.setAuditInfo("系统自动审核");
signup.setAuditUser("");
}
signupDao.save(signup);
//添加到课程学习
LocalDateTime now=LocalDateTime.now();
StudyCourse sc=new StudyCourse();
sc.setAddTime(LocalDateTime.now());
sc.setAid(signup.getAid());
sc.setAname(signup.getName());
sc.setCourseId(signup.getCourseId());
sc.setCourseName(signup.getCourseName());
sc.setCourseType(signup.getCourseType());//课程类型没有带过来
sc.setFinishTime(null);
sc.setLastScore(0f);
sc.setProgress(0f);
sc.setSource(signup.getAuditType());//来源方式,和报名类型一致
sc.setStatus(StudyCourse.STATUS_NOSTUDY);
sc.setStatusTime(now);
sc.setTotalDuration(0);
sc.setLastTime(sc.getAddTime());
studyCourseDao.save(sc);
signup.setStudyId(sc.getId());
StudyCourse sc=signupService.addSignup(signup);
//更新课程学习人数
courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION));
return sc;
}

View File

@@ -1,6 +1,8 @@
package com.xboe.school.study.service.impl;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.List;
import javax.transaction.Transactional;
@@ -17,12 +19,17 @@ import com.xboe.core.orm.FieldUpdateType;
import com.xboe.core.orm.QueryBuilder;
import com.xboe.core.orm.UpdateBuilder;
import com.xboe.module.course.dao.CourseDao;
import com.xboe.module.course.dto.CourseStudyDto;
import com.xboe.module.course.service.ICourseStudySearch;
import com.xboe.school.study.dao.StudyCourseDao;
import com.xboe.school.study.dao.StudySignupDao;
import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudySignup;
import com.xboe.school.study.service.IStudySignupService;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
@Transactional
public class StudySignupServiceImpl implements IStudySignupService{
@@ -33,47 +40,25 @@ public class StudySignupServiceImpl implements IStudySignupService{
@Autowired
StudyCourseDao studyCourseDao;
@Autowired(required = false)
ICourseStudySearch esSearch;
@Autowired
CourseDao courseDao;
@Override
public void selfSignup(StudySignup signup) {
signup.setSignType(StudySignup.SIGNTYPE_SELF);
if(signup.getStatus()==null) {
//如果未指定状态,就设置审核通过
signup.setStatus(StudySignup.STATUS_PASS);
signup.setAuditType(StudySignup.AUDITTYPE_AUTO);
signup.setAuditInfo("系统自动审核");
signup.setAuditUser("");
}
signupDao.save(signup);
//添加到课程学习
LocalDateTime now=LocalDateTime.now();
StudyCourse sc=new StudyCourse();
sc.setAddTime(LocalDateTime.now());
sc.setAid(signup.getAid());
sc.setAname(signup.getName());
sc.setCourseId(signup.getCourseId());
sc.setCourseName(signup.getCourseName());
sc.setCourseType(signup.getCourseType());//课程类型没有带过来
sc.setFinishTime(null);
sc.setLastScore(0f);
sc.setProgress(0f);
sc.setSource(signup.getAuditType());//来源方式,和报名类型一致
sc.setStatus(StudyCourse.STATUS_NOSTUDY);
sc.setStatusTime(now);
sc.setTotalDuration(0);
sc.setLastTime(sc.getAddTime());
studyCourseDao.save(sc);
signup.setStudyId(sc.getId());
this.addSignup(signup);
//更新课程学习人数
courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION));
}
@Override
public void addSignup(StudySignup signup) {
signup.setSignType(StudySignup.SIGNTYPE_ADD);
public StudyCourse addSignup(StudySignup signup) {
if(signup.getSignType()==null) {
signup.setSignType(StudySignup.SIGNTYPE_ADD);
}
if(signup.getStatus()==null) {
//如果未指定状态,就设置审核通过
signup.setStatus(StudySignup.STATUS_PASS);
@@ -101,6 +86,34 @@ public class StudySignupServiceImpl implements IStudySignupService{
sc.setLastTime(sc.getAddTime());
sc.setTotalDuration(0);
studyCourseDao.save(sc);
signup.setStudyId(sc.getId());
//发布到ES
if(esSearch!=null) {
CourseStudyDto dto=new CourseStudyDto();
dto.setId(sc.getId());
dto.setAccountId(sc.getAid());
dto.setCourseId(sc.getCourseId());
dto.setCourseImage(sc.getCourseImage());
dto.setCourseName(sc.getCourseName());
dto.setCourseType(sc.getCourseType());
dto.setProgress(sc.getProgress()==null? 0:sc.getProgress().intValue());
dto.setSource(2);//固定值,新系统
//如果开始时间没有,就使用添加时间
if(sc.getStartTime()!=null) {
dto.setStartTime(sc.getStartTime().toEpochSecond(ZoneOffset.of("+8")));
}else {
dto.setStartTime(sc.getAddTime().toEpochSecond(ZoneOffset.of("+8")));
}
dto.setStatus(sc.getStatus());
try {
esSearch.publishOrUpdate(dto, null);
} catch (IOException e) {
log.error("ES发布报名课程学习【"+sc.getAname()+","+sc.getCourseName()+"】失败",e);
}
}
return sc;
//courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION));
}
@@ -188,7 +201,6 @@ public class StudySignupServiceImpl implements IStudySignupService{
@Override
public void setDeleted(String id) {
signupDao.setDeleted(id);
}