fuliqi
2024-07-04 257b9a1d149333678b05196909517a4daa2b12ee
src/main/java/com/ycl/jxkg/service/impl/MeetServiceImpl.java
@@ -8,12 +8,16 @@
import com.ycl.jxkg.base.SystemCode;
import com.ycl.jxkg.context.WebContext;
import com.ycl.jxkg.domain.entity.Meet;
import com.ycl.jxkg.domain.entity.MeetStudent;
import com.ycl.jxkg.domain.entity.StudyRecord;
import com.ycl.jxkg.domain.form.MeetForm;
import com.ycl.jxkg.domain.query.MeetQuery;
import com.ycl.jxkg.domain.vo.MeetVO;
import com.ycl.jxkg.enums.MeetStatusEnum;
import com.ycl.jxkg.mapper.ClassesUserMapper;
import com.ycl.jxkg.mapper.MeetMapper;
import com.ycl.jxkg.mapper.MeetStudentMapper;
import com.ycl.jxkg.mapper.StudyRecordMapper;
import com.ycl.jxkg.rabbitmq.msg.MeetStatusMsg;
import com.ycl.jxkg.rabbitmq.product.Producer;
import com.ycl.jxkg.service.MeetService;
@@ -46,6 +50,8 @@
    @Autowired
    private ClassesUserMapper classesUserMapper;
    private final Producer producer;
    private final MeetStudentMapper meetStudentMapper;
    private final StudyRecordMapper studyRecordMapper;
    /**
     * 添加
     * @param form
@@ -161,9 +167,31 @@
     */
    @Override
    public Result detail(Integer id) {
        MeetVO vo = baseMapper.getById(id);
        Meet vo = baseMapper.getById(id);
        Assert.notNull(vo, "记录不存在");
        if(vo.getStatus().equals(MeetStatusEnum.Starting.getCode())){
            //增加学生上课记录
            Integer userId = webContext.getCurrentUser().getId();
            MeetStudent meetStudent = new MeetStudent();
            meetStudent.setMeetId(id);
            meetStudent.setStudentId(userId);
            meetStudent.setCreateTime(new Date());
            meetStudent.setStartTime(vo.getStartTime());
            //TODO:暂时处理,后期考虑jitsiApi
            meetStudent.setDuringTime((vo.getEndTime().getTime()-new Date().getTime())/1000);
            meetStudentMapper.insert(meetStudent);
            //学生学习档案更新
            StudyRecord studyRecord = studyRecordMapper.getByStudentId(userId);
            if(studyRecord ==null){
                StudyRecord record = new StudyRecord();
                record.setMeetCount(0);
                record.setStudyTime(0L);
                record.setStudentId(userId);
                studyRecordMapper.insert(record);
            }else {
                studyRecord.setMeetCount(studyRecord.getMeetCount()+1);
                studyRecordMapper.updateById(studyRecord);
            }
            return Result.ok();
        }else {
            return Result.fail(SystemCode.InnerError.getCode(),"房间尚未开始或已结束");