From cca510913d4661aa781d5fadb41fc541b2571bf9 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Wed, 26 Jan 2022 16:26:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=BA=8F=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/yanyuan/service/TalkingPenService.java | 11 +++++++++-- .../java/com/ccsens/yanyuan/util/YanYuanConstant.java | 2 +- .../resources/mapper_dao/ToolFindDifferenceDao.xml | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ccsens/yanyuan/service/TalkingPenService.java b/src/main/java/com/ccsens/yanyuan/service/TalkingPenService.java index 1be71b9..ae2b7d5 100644 --- a/src/main/java/com/ccsens/yanyuan/service/TalkingPenService.java +++ b/src/main/java/com/ccsens/yanyuan/service/TalkingPenService.java @@ -82,6 +82,11 @@ public class TalkingPenService implements ITalkingPenService { */ @Override public void dealIndex(TalkingPenDto talkingPen) throws Exception { + if (talkingPen.getValue() == 128847481L) { + log.info("当前的序号是:{},是特殊码,发送8", talkingPen.getValue()); + sendAudio(8, talkingPen.getAuthId()); + return; + } YanYuanConstant.Card card = YanYuanConstant.Card.getByCardIndex(talkingPen.getValue()); byte type = card == null ? YanYuanConstant.CardType.INDEX : card.getType(); long value = card == null ? talkingPen.getValue() : card.getRealIndex(); @@ -472,7 +477,7 @@ public class TalkingPenService implements ITalkingPenService { log.info("{}缓存:{}", key, o); if (currents.size() >= max) { log.info("{}正确数量已经大等于最大正确数:{}", trainCardId, max); - if (o == null) { + if (o == null || (Integer)o < max) { sendAudio(YanYuanConstant.Equipment.AUDIO_DIFFERENCE_COMPLETE, authId); } return; @@ -486,7 +491,7 @@ public class TalkingPenService implements ITalkingPenService { trainCorrectDao.insertSelective(correct); currents.add(curPointPlace); } - if (o == null) { + if (o == null || (Integer)o < currents.size()) { int audioIndex = currents.size() >= max ? YanYuanConstant.Equipment.AUDIO_DIFFERENCE_COMPLETE : YanYuanConstant.Equipment.AUDIO_DIFFERENCE_CURRENT; sendAudio(audioIndex, authId); @@ -684,6 +689,7 @@ public class TalkingPenService implements ITalkingPenService { //记录一下点读笔发送的语音,时长1分钟,若1分钟内发送过相同的内容,则不再发送(时长待定,该判断待讨论) String key = StrUtil.format(YanYuanConstant.Equipment.TALKING_PEN_AUDIO_KEY, talkingPenSerial); Object o = redisUtil.get(key); + log.info("发送语音:key:{}, value:{},即将发送的语音:{},笔的序号:{}", key, o, value, talkingPenSerial); if (o != null) { int oldValue = (Integer) o; if (oldValue == YanYuanConstant.Equipment.AUDIO_NO_TRAINEE) { @@ -724,6 +730,7 @@ public class TalkingPenService implements ITalkingPenService { log.info("给点读笔发送消息:{}", inMessage); //发送消息 messageService.sendTo(inMessage); + redisUtil.set(key, value, YanYuanConstant.Equipment.TALKING_PEN_JUDGE_AUDIO_TIME); } diff --git a/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java b/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java index 91f43cb..f0924d2 100644 --- a/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java +++ b/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java @@ -155,7 +155,7 @@ public class YanYuanConstant { * 点读笔判断找不同是否正确 */ public final static String TALKING_PEN_JUDGE_AUDIO_KEY = "talking_pen_judge_{}_audio"; - public final static long TALKING_PEN_JUDGE_AUDIO_TIME = 60; + public final static long TALKING_PEN_JUDGE_AUDIO_TIME = 10; /** * 点读笔试题查询,下一个 */ diff --git a/src/main/resources/mapper_dao/ToolFindDifferenceDao.xml b/src/main/resources/mapper_dao/ToolFindDifferenceDao.xml index 9db20ab..ce8ffa6 100644 --- a/src/main/resources/mapper_dao/ToolFindDifferenceDao.xml +++ b/src/main/resources/mapper_dao/ToolFindDifferenceDao.xml @@ -2,6 +2,6 @@ \ No newline at end of file