Przeglądaj źródła

考试语音放开

wangliang 2 lat temu
rodzic
commit
e129d89bb2

+ 1 - 1
themis-admin/src/main/java/com/qmth/themis/admin/api/TEExamActivityController.java

@@ -214,7 +214,7 @@ public class TEExamActivityController {
             teAudio.setEnable(!enable ? null : enable);
             teAudio.updateInfo(tbUser.getId());
             teAudioService.updateById(teAudio);
-//            cacheService.updateExamAudioCache(teAudio.getId());
+            cacheService.updateExamAudioCache(teAudio.getId());
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);
             if (e instanceof DuplicateKeyException) {

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java

@@ -110,7 +110,7 @@ public class SystemConstant {
     public static final Integer BEFORE_AUDIO_SECOND = 300;
     public static final Integer AFTER_AUDIO_SECOND = 600;
     public static final String AUTH_INFO_CACHE = "auth:info:cache";
-//    public static final String EXAM_AUDIO_CACHE = "exam:audio:cache";
+    public static final String EXAM_AUDIO_CACHE = "exam:audio:cache";
     public static final String ATTACHMENT_CACHE = "attachment:cache";
     public volatile static Searcher SEARCHER = null;
     public static final String SYS_CONFIG_KEY_CHARSETS = "sys.txt.charset";

+ 22 - 22
themis-business/src/main/java/com/qmth/themis/business/service/CacheService.java

@@ -192,28 +192,28 @@ public interface CacheService {
      */
     public void removeAuthInfoCache(String code);
 
-//    /**
-//     * 添加考试语音缓存
-//     *
-//     * @param id
-//     * @return
-//     */
-//    public TEAudio examAudioCache(Long id);
-//
-//    /**
-//     * 修改考试语音缓存
-//     *
-//     * @param id
-//     * @return
-//     */
-//    public TEAudio updateExamAudioCache(Long id);
-//
-//    /**
-//     * 删除考试语音缓存
-//     *
-//     * @param id
-//     */
-//    public void removeExamAudioCache(Long id);
+    /**
+     * 添加考试语音缓存
+     *
+     * @param id
+     * @return
+     */
+    public TEAudio examAudioCache(Long id);
+
+    /**
+     * 修改考试语音缓存
+     *
+     * @param id
+     * @return
+     */
+    public TEAudio updateExamAudioCache(Long id);
+
+    /**
+     * 删除考试语音缓存
+     *
+     * @param id
+     */
+    public void removeExamAudioCache(Long id);
 
     /**
      * 添加附件缓存

+ 34 - 34
themis-business/src/main/java/com/qmth/themis/business/service/impl/CacheServiceImpl.java

@@ -404,40 +404,40 @@ public class CacheServiceImpl implements CacheService {
 
     }
 
-//    /**
-//     * 添加考试语音缓存
-//     *
-//     * @param id
-//     * @return
-//     */
-//    @Override
-//    @Cacheable(value = SystemConstant.EXAM_AUDIO_CACHE, key = "#p0", unless = "#result == null")
-//    public TEAudio examAudioCache(Long id) {
-//        return teAudioService.getById(id);
-//    }
-//
-//    /**
-//     * 修改考试语音缓存
-//     *
-//     * @param id
-//     * @return
-//     */
-//    @Override
-//    @CachePut(value = SystemConstant.EXAM_AUDIO_CACHE, key = "#p0", condition = "#result != null")
-//    public TEAudio updateExamAudioCache(Long id) {
-//        return teAudioService.getById(id);
-//    }
-//
-//    /**
-//     * 删除考试语音缓存
-//     *
-//     * @param id
-//     */
-//    @Override
-//    @CacheEvict(value = SystemConstant.EXAM_AUDIO_CACHE, key = "#p0")
-//    public void removeExamAudioCache(Long id) {
-//
-//    }
+    /**
+     * 添加考试语音缓存
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    @Cacheable(value = SystemConstant.EXAM_AUDIO_CACHE, key = "#p0", unless = "#result == null")
+    public TEAudio examAudioCache(Long id) {
+        return teAudioService.getById(id);
+    }
+
+    /**
+     * 修改考试语音缓存
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    @CachePut(value = SystemConstant.EXAM_AUDIO_CACHE, key = "#p0", condition = "#result != null")
+    public TEAudio updateExamAudioCache(Long id) {
+        return teAudioService.getById(id);
+    }
+
+    /**
+     * 删除考试语音缓存
+     *
+     * @param id
+     */
+    @Override
+    @CacheEvict(value = SystemConstant.EXAM_AUDIO_CACHE, key = "#p0")
+    public void removeExamAudioCache(Long id) {
+
+    }
 
     /**
      * 添加附件缓存

+ 30 - 32
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamActivityServiceImpl.java

@@ -1,5 +1,6 @@
 package com.qmth.themis.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.themis.business.cache.bean.ExamActivityCacheBean;
@@ -14,10 +15,7 @@ import com.qmth.themis.business.dto.response.MonitorStreamDto;
 import com.qmth.themis.business.dto.response.TEExamActivityDto;
 import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
 import com.qmth.themis.business.dto.response.TEExamActivityWaitDto;
-import com.qmth.themis.business.entity.TBUser;
-import com.qmth.themis.business.entity.TEExam;
-import com.qmth.themis.business.entity.TEExamActivity;
-import com.qmth.themis.business.entity.TSLog;
+import com.qmth.themis.business.entity.*;
 import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.*;
@@ -76,8 +74,8 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
     @Resource
     private MqUtil mqUtil;
 
-//    @Resource
-//    TEAudioService teAudioService;
+    @Resource
+    TEAudioService teAudioService;
 
     @Resource
     TSLogService tsLogService;
@@ -348,27 +346,27 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
                     .equals(teExam.getMonitorStatus(), InvigilateMonitorStatusEnum.FINISHED)) {
                 throw new BusinessException("监考结束的考试场次不可以修改");
             }
-//            List<TEAudio> teAudioList = new ArrayList<>();
+            List<TEAudio> teAudioList = new ArrayList<>();
             teExamActivityList.forEach(s -> {
                 if (Objects.nonNull(s.getId())) {
                     s.setUpdateId(tbUser.getId());
-//                    QueryWrapper<TEAudio> teAudioQueryWrapper = new QueryWrapper<>();
-//                    teAudioQueryWrapper.lambda().eq(TEAudio::getActivityId, s.getId())
-//                            .eq(TEAudio::getType, AudioTypeEnum.BEFORE.name())
-//                            .eq(TEAudio::getAudioDefault, AudioDefaultEnum.SYS.name());
-//                    int count = teAudioService.count(teAudioQueryWrapper);
-//                    if (count == 0) {
-//                        teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.BEFORE_AUDIO_ATTACHMENT_Id, AudioTypeEnum.BEFORE.getTitle(), AudioTypeEnum.BEFORE, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.BEFORE_AUDIO_SECOND, teExam, s));//开考前语音
-//                    }
-
-//                    teAudioQueryWrapper = new QueryWrapper<>();
-//                    teAudioQueryWrapper.lambda().eq(TEAudio::getActivityId, s.getId())
-//                            .eq(TEAudio::getType, AudioTypeEnum.AFTER.name())
-//                            .eq(TEAudio::getAudioDefault, AudioDefaultEnum.SYS.name());
-//                    count = teAudioService.count(teAudioQueryWrapper);
-//                    if (count == 0) {
-//                        teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.AFTER_AUDIO_ATTACHMENT_Id, AudioTypeEnum.AFTER.getTitle(), AudioTypeEnum.AFTER, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.AFTER_AUDIO_SECOND, teExam, s));//考试结束前语音
-//                    }
+                    QueryWrapper<TEAudio> teAudioQueryWrapper = new QueryWrapper<>();
+                    teAudioQueryWrapper.lambda().eq(TEAudio::getActivityId, s.getId())
+                            .eq(TEAudio::getType, AudioTypeEnum.BEFORE.name())
+                            .eq(TEAudio::getAudioDefault, AudioDefaultEnum.SYS.name());
+                    int count = teAudioService.count(teAudioQueryWrapper);
+                    if (count == 0) {
+                        teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.BEFORE_AUDIO_ATTACHMENT_Id, AudioTypeEnum.BEFORE.getTitle(), AudioTypeEnum.BEFORE, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.BEFORE_AUDIO_SECOND, teExam, s));//开考前语音
+                    }
+
+                    teAudioQueryWrapper = new QueryWrapper<>();
+                    teAudioQueryWrapper.lambda().eq(TEAudio::getActivityId, s.getId())
+                            .eq(TEAudio::getType, AudioTypeEnum.AFTER.name())
+                            .eq(TEAudio::getAudioDefault, AudioDefaultEnum.SYS.name());
+                    count = teAudioService.count(teAudioQueryWrapper);
+                    if (count == 0) {
+                        teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.AFTER_AUDIO_ATTACHMENT_Id, AudioTypeEnum.AFTER.getTitle(), AudioTypeEnum.AFTER, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.AFTER_AUDIO_SECOND, teExam, s));//考试结束前语音
+                    }
                     if (Objects.nonNull(s.getEnable()) && s.getEnable().intValue() == 0) {
                         Integer examCount = tOeExamRecordService.findByExamIdOrExamActivityIdCount(teExam.getId(), s.getId());
                         if (Objects.nonNull(examCount) && examCount.intValue() > 0) {
@@ -408,8 +406,8 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
                     s.setId(uidUtil.getId());
                     s.setCreateId(tbUser.getId());
                     s.setCode(String.valueOf(redisUtil.getRedisActivityCodeSequence(s.getExamId())));
-//                    teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.BEFORE_AUDIO_ATTACHMENT_Id, AudioTypeEnum.BEFORE.getTitle(), AudioTypeEnum.BEFORE, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.BEFORE_AUDIO_SECOND, teExam, s));//开考前语音
-//                    teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.AFTER_AUDIO_ATTACHMENT_Id, AudioTypeEnum.AFTER.getTitle(), AudioTypeEnum.AFTER, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.AFTER_AUDIO_SECOND, teExam, s));//考试结束前语音
+                    teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.BEFORE_AUDIO_ATTACHMENT_Id, AudioTypeEnum.BEFORE.getTitle(), AudioTypeEnum.BEFORE, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.BEFORE_AUDIO_SECOND, teExam, s));//开考前语音
+                    teAudioList.add(new TEAudio(tbUser.getOrgId(), s.getId(), SystemConstant.AFTER_AUDIO_ATTACHMENT_Id, AudioTypeEnum.AFTER.getTitle(), AudioTypeEnum.AFTER, AudioDefaultEnum.SYS, tbUser.getId(), SystemConstant.AFTER_AUDIO_SECOND, teExam, s));//考试结束前语音
                 }
             });
             teExamActivityService.saveOrUpdateBatch(teExamActivityList);
@@ -420,12 +418,12 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
                 }
             }
 
-//            if (!CollectionUtils.isEmpty(teAudioList)) {
-//                teAudioService.saveOrUpdateBatch(teAudioList);
-////                for (TEAudio t : teAudioList) {
-////                    teAudioService.sendAudioMessage(t);
-////                }
-//            }
+            if (!CollectionUtils.isEmpty(teAudioList)) {
+                teAudioService.saveOrUpdateBatch(teAudioList);
+//                for (TEAudio t : teAudioList) {
+//                    teAudioService.sendAudioMessage(t);
+//                }
+            }
             if (size.get() > 0 && (Objects.nonNull(teExam.getForceFinish()) && teExam.getForceFinish().intValue() == 1)) {
                 //新增quartz任务,发送mq消息start
                 Map<String, Object> prop = new HashMap<>();