fix - 篮球入场出场逻辑优化、丢弃二维码的逻辑

This commit is contained in:
2026-06-13 17:30:00 +08:00
parent 81bf02794c
commit 8cfe0ef7d8
17 changed files with 111 additions and 738 deletions

View File

@@ -3,7 +3,6 @@ package com.sv.barcode;
import com.sv.barcode.button.EnterClick;
import com.sv.barcode.button.OutClick;
import com.sv.barcode.button.PlayerClick;
import com.sv.barcode.button.TestCodeClick;
import javax.swing.*;
import java.awt.*;
@@ -26,15 +25,9 @@ public class ListenKeyFrame {
buttonIn.addActionListener(new EnterClick());
JButton buttonOut = new JButton("出场开门");
buttonOut.addActionListener(new OutClick());
JTextField jTextField = new JTextField(33);
//设置输入框大小
JButton buttonSubmit = new JButton("验证二维码(测试专用)");
buttonSubmit.addActionListener(new TestCodeClick(jTextField));
JButton buttonPlay = new JButton("播放声音");
buttonPlay.addActionListener(new PlayerClick());
frame.addKeyListener(new ScanBarCode());
frame.add(label);
frame.add(buttonIn);
frame.add(buttonOut);

View File

@@ -1,44 +0,0 @@
package com.sv.barcode;
import com.sv.netty.ClientHandler;
import com.sv.netty.ClientThread;
import com.sv.netty.config.NettyConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.LinkedList;
import java.util.List;
public class ScanBarCode extends KeyAdapter {
private final Logger logger = LoggerFactory.getLogger(ClientHandler.class);
private List<Character> barcode = new LinkedList<>();
@Override
public void keyTyped(KeyEvent e) {
if (barcode.size() > 200) {
barcode.clear();
}
char keyChar = e.getKeyChar();
logger.info("each time didi key【" + keyChar + "");
if (NettyConstant.BARCODE_END == keyChar) {
String barStr = "";
if (barcode.size() > 0 && barcode != null) {
for (Character character : barcode) {
barStr = barStr + character;
}
}
logger.info(barStr);
ClientThread.getInstance().checkBarcode(barStr);
barcode.clear();
}
barcode.add(keyChar);
if (NettyConstant.BARCODE_BEGIN == keyChar) {
barcode.clear();
}
}
}

View File

@@ -1,29 +0,0 @@
package com.sv.barcode.button;
import com.sv.netty.ClientHandler;
import com.sv.netty.ClientThread;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestCodeClick implements ActionListener {
private final Logger logger = LoggerFactory.getLogger(TestCodeClick.class);
private JTextField barcode;
public TestCodeClick(JTextField barcode) {
this.barcode = barcode;
}
@Override
public void actionPerformed(ActionEvent e) {
String text = barcode.getText();
text = text.substring(1,text.length() -1);
logger.error("sending barcode msg to api =========" + text);
ClientThread.getInstance().checkBarcode(text);
}
}

View File

@@ -71,23 +71,6 @@ public class ClientThread extends Thread{
doConnect();
}
public void checkBarcode(String barcode) {
try {
if (future != null) {
Channel channel = future.channel();
if (channel != null) {
String sendCode = MessageHandler.checkBarcode(barcode);
if (StringUtil.isNullOrEmpty(sendCode)){
return;
}
channel.writeAndFlush(sendCode);
}
}
}catch (Exception e) {
logger.error("link netty server fail ,send barcode fail",e);
}
}
public void clearFuture(){
future = null;
}

View File

@@ -1,10 +1,11 @@
package com.sv.netty;
import com.sv.netty.config.*;
import com.sv.netty.utils.AesUtil;
import com.sv.netty.config.HeartBeat;
import com.sv.netty.config.MessageType;
import com.sv.netty.config.NettyConstant;
import com.sv.netty.config.VenueMessage;
import com.sv.netty.utils.EncodeMsg;
import com.sv.netty.utils.JsonUtils;
import com.sv.netty.utils.MakeCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -23,29 +24,4 @@ public class MessageHandler {
return EncodeMsg.INSTANCE.encode(venueMessage);
}
/**
* 核销二维码
* @return
*/
public static String checkBarcode(String barcode) {
String decrypt = AesUtil.decrypt(barcode);
if (decrypt == null) {
logger.error("barcode unable to decrypt" + barcode);
return null;
}
// 这个二维码是线下的二维码
if (!decrypt.startsWith("venue-")){
VenueBarCode venueBarCode = MakeCode.decodeCode(barcode);
if (venueBarCode == null) {
logger.error("user barcode can't not decodeCode" + barcode);
return null;
}
}
VenueMessage venueMessage = new VenueMessage();
venueMessage.setMessageType(MessageType.SCAN_CODE);
venueMessage.setMessage(barcode);
logger.info("use barcode to api ===" + barcode);
return EncodeMsg.INSTANCE.encode(venueMessage);
}
}