diff --git a/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java b/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java index 4f9c379..848e485 100644 --- a/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java +++ b/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java @@ -1,10 +1,8 @@ package com.sv.netty.netty.service.impl; +import com.enums.BarCodeStatusEnum; import com.enums.EnterEnum; -import com.sv.entity.Member; -import com.sv.entity.MemberEnterVenueLog; -import com.sv.entity.MemberMoneyLog; -import com.sv.entity.Venue; +import com.sv.entity.*; import com.sv.mapper.BarcodeMapper; import com.sv.netty.config.*; import com.sv.netty.netty.service.MessageService; @@ -110,6 +108,9 @@ public class ServerMessageHandlerAdapter implements MessageService { public void outVenue(String barcode) { VenueBarCode venueBarCode = MakeCode.decodeCode(barcode); barcode = MakeCode.reWriteBarcode(barcode); + if (!checkBarcode(barcode)){ + throw new ServiceException("二维码已经使用"); + } Channel channel = getCurrentChannel(venueBarCode.getDeviceName(),venueBarCode.getVenueId()); Member member = memberService.findByMember(venueBarCode.getMemberId()); if (member != null) { @@ -139,6 +140,9 @@ public class ServerMessageHandlerAdapter implements MessageService { public void enterVenue(String barcode) { VenueBarCode venueBarCode = MakeCode.decodeCode(barcode); barcode = MakeCode.reWriteBarcode(barcode); + if (!checkBarcode(barcode)){ + throw new ServiceException("二维码已经使用"); + } Channel channel = getCurrentChannel(venueBarCode.getDeviceName(), venueBarCode.getVenueId()); Member member = memberService.findByMember(venueBarCode.getMemberId()); if (member != null) { @@ -155,6 +159,22 @@ public class ServerMessageHandlerAdapter implements MessageService { } } + /** + * 校验二维码是否已被使用 + * @param barcode + * @return + */ + private boolean checkBarcode(String barcode) { + Barcode code = barcodeMapper.checkCodeStatus(barcode); + if (code == null) { + throw new ServiceException("二维码不存在或者已经被使用"); + } + if (BarCodeStatusEnum.INIT.getValue()==code.getStatus()){ + return true; + } + return false; + } + private void writeOffCode(String barcode) { barcodeMapper.writeOffCode(barcode); } diff --git a/netty-client/src/main/java/com/sv/barcode/ListenKeyFrame.java b/netty-client/src/main/java/com/sv/barcode/ListenKeyFrame.java index ce77a61..f141d3e 100644 --- a/netty-client/src/main/java/com/sv/barcode/ListenKeyFrame.java +++ b/netty-client/src/main/java/com/sv/barcode/ListenKeyFrame.java @@ -1,5 +1,9 @@ package com.sv.barcode; +import com.sv.barcode.button.EnterClick; +import com.sv.barcode.button.OutClick; +import com.sv.barcode.button.TestCodeClick; + import javax.swing.*; import java.awt.*; @@ -7,13 +11,25 @@ public class ListenKeyFrame extends Thread{ Frame frame; - public void newFrame (int i) { - frame = new Frame("智慧云馆门禁" + i); + public void newFrame (String title) { + frame = new Frame("智慧云馆门禁" + title); frame.setBounds(300,100,600,500); - frame.setLayout(new FlowLayout(FlowLayout.CENTER,5,200));//设计布局 + frame.setLayout(new FlowLayout(FlowLayout.CENTER,20,50));//设计布局 JLabel label = new JLabel("请保持该界面被选中,否则将无法监听二维码扫描!"); + JButton buttonIn = new JButton("入场开门"); + 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)); frame.addKeyListener(new ScanBarCode()); frame.add(label); + frame.add(buttonIn); + frame.add(buttonOut); +// frame.add(jTextField); // 注释 +// frame.add(buttonSubmit); // 注释 frame.setVisible(true); frame.setFocusable(true); } @@ -24,4 +40,10 @@ public class ListenKeyFrame extends Thread{ } } + public void focus() { + if (frame != null) { + frame.setFocusable(true); + } + } + } diff --git a/netty-client/src/main/java/com/sv/barcode/button/EnterClick.java b/netty-client/src/main/java/com/sv/barcode/button/EnterClick.java new file mode 100644 index 0000000..ef1f18c --- /dev/null +++ b/netty-client/src/main/java/com/sv/barcode/button/EnterClick.java @@ -0,0 +1,20 @@ +package com.sv.barcode.button; + +import com.sv.netty.ClientHandler; +import com.sv.netty.ClientThread; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class EnterClick implements ActionListener { + + private final Logger logger = LoggerFactory.getLogger(ClientHandler.class); + + @Override + public void actionPerformed(ActionEvent e) { + // 开门 + logger.error("开门成功!!!!!!!"); + } +} diff --git a/netty-client/src/main/java/com/sv/barcode/button/OutClick.java b/netty-client/src/main/java/com/sv/barcode/button/OutClick.java new file mode 100644 index 0000000..e729258 --- /dev/null +++ b/netty-client/src/main/java/com/sv/barcode/button/OutClick.java @@ -0,0 +1,19 @@ +package com.sv.barcode.button; + +import com.sv.netty.ClientHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class OutClick implements ActionListener { + + private final Logger logger = LoggerFactory.getLogger(ClientHandler.class); + + @Override + public void actionPerformed(ActionEvent e) { + // 开门 + logger.error("开门成功!!!!!!!"); + } +} diff --git a/netty-client/src/main/java/com/sv/barcode/button/TestCodeClick.java b/netty-client/src/main/java/com/sv/barcode/button/TestCodeClick.java new file mode 100644 index 0000000..a16254f --- /dev/null +++ b/netty-client/src/main/java/com/sv/barcode/button/TestCodeClick.java @@ -0,0 +1,27 @@ +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(ClientHandler.class); + + private JTextField barcode; + + public TestCodeClick(JTextField barcode) { + this.barcode = barcode; + } + + @Override + public void actionPerformed(ActionEvent e) { + logger.error("发送验证二维码消息!!!=========" + barcode.getText()); + ClientThread.getInstance().checkBarcode(barcode.getText()); + } +} diff --git a/netty-client/src/main/java/com/sv/service/ClientService.java b/netty-client/src/main/java/com/sv/service/ClientService.java index 5bfc9f1..ff00a80 100644 --- a/netty-client/src/main/java/com/sv/service/ClientService.java +++ b/netty-client/src/main/java/com/sv/service/ClientService.java @@ -40,19 +40,19 @@ public class ClientService { Thread.sleep(3000); ListenKeyFrame listenKeyFrame = new ListenKeyFrame(); - listenKeyFrame.newFrame(1); + listenKeyFrame.newFrame("-加载中12%"); Thread.sleep(3000); listenKeyFrame.close(); ListenKeyFrame listenKeyFrame1 = new ListenKeyFrame(); - listenKeyFrame1.newFrame(2); + listenKeyFrame1.newFrame("-加载中53%"); Thread.sleep(3000); listenKeyFrame1.close(); ListenKeyFrame listenKeyFrame2 = new ListenKeyFrame(); - listenKeyFrame2.newFrame(3); + listenKeyFrame2.newFrame("-加载中53%"); Thread.sleep(3000); listenKeyFrame2.close(); ListenKeyFrame listenKeyFrame3 = new ListenKeyFrame(); - listenKeyFrame3.newFrame(4); + listenKeyFrame3.newFrame(""); } diff --git a/service/src/main/java/com/sv/mapper/BarcodeMapper.java b/service/src/main/java/com/sv/mapper/BarcodeMapper.java index bc5d6d7..5f57719 100644 --- a/service/src/main/java/com/sv/mapper/BarcodeMapper.java +++ b/service/src/main/java/com/sv/mapper/BarcodeMapper.java @@ -23,4 +23,7 @@ public interface BarcodeMapper { @NoPlatform Barcode findBarcode(@Param("venueId") Integer venueId,@Param("memberId") Integer memberId); + + @NoPlatform + Barcode checkCodeStatus(@Param("barcode") String barcode); } diff --git a/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml b/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml index 2f55fbc..8bb1ac1 100644 --- a/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml +++ b/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml @@ -168,4 +168,12 @@ and status = 0 + +