From 78057753fc8905b160e8773a0d3b5b9aa5f8d032 Mon Sep 17 00:00:00 2001 From: limqhz Date: Thu, 28 Dec 2023 18:10:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AF=AE=E7=90=83=E5=85=A5?= =?UTF-8?q?=E5=9C=BA=E6=94=AF=E4=BB=98=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sv/api/controller/VenueController.java | 50 +++++++++++++------ .../test/java/com/sv/wx/VenueJoinTest.java | 12 ++--- ...CodeResult.java => BasketEnterResult.java} | 13 +---- .../src/main/java/com/sv/entity/Barcode.java | 16 +++++- other/sql/202312.sql | 7 ++- .../java/com/sv/service/api/VenueService.java | 20 ++++---- .../com/sv/service/common/BarcodeService.java | 3 +- .../mybatis/mapper/sv/BarcodeMapper.xml | 17 +++++-- 8 files changed, 87 insertions(+), 51 deletions(-) rename entity/src/main/java/com/sv/dto/{BarCodeResult.java => BasketEnterResult.java} (64%) diff --git a/api/src/main/java/com/sv/api/controller/VenueController.java b/api/src/main/java/com/sv/api/controller/VenueController.java index 4fa0b1b..9dab40f 100644 --- a/api/src/main/java/com/sv/api/controller/VenueController.java +++ b/api/src/main/java/com/sv/api/controller/VenueController.java @@ -1,11 +1,10 @@ package com.sv.api.controller; import com.enums.EnterEnum; -import com.sv.dto.BarCodeResult; +import com.sv.dto.BasketEnterResult; import com.sv.entity.Device; import com.sv.entity.Order; import com.sv.entity.Venue; -import com.sv.mapper.BarcodeMapper; import com.sv.service.api.OrderService; import com.sv.service.api.VenueService; import com.sv.service.common.BarcodeService; @@ -39,6 +38,8 @@ public class VenueController extends BaseApiController { private BarcodeService barcodeService; @Resource private DoorLockUtil doorLockUtil; + @Resource + DeviceService deviceService; /** * 分页查询场馆列表 @@ -119,8 +120,6 @@ public class VenueController extends BaseApiController { return ResponseDTO.ok().addAttribute("isPayed", isPayed); } - @Resource - DeviceService deviceService; /** * 我要进场 * @@ -130,7 +129,7 @@ public class VenueController extends BaseApiController { @RequestMapping(value = "/venue/join", method = RequestMethod.GET) public ResponseDTO join(@RequestParam("venueId") Integer venueId) { Device byDevice = deviceService.findByDevice(venueId); - BarCodeResult join = new BarCodeResult(); + BasketEnterResult join = new BasketEnterResult(); if (byDevice == null) { join.setFlg(999); join.setMsg("通讯异常,门禁设备离线中"); @@ -143,11 +142,6 @@ public class VenueController extends BaseApiController { } Integer memberId = getMemberIdByAccessToken(); join = venueService.join(memberId, venueId); - if (join.getFlg() == 0) { - String barcode = barcodeService.newBarcode(doorSn, EnterEnum.ENTER, venueId, memberId); - join.setBarcode(barcode); -// doorLockUtil.lockDoor(doorSn); - } return ResponseDTO.ok().addAttribute("join", join); } @@ -160,7 +154,7 @@ public class VenueController extends BaseApiController { @RequestMapping(value = "/venue/out", method = RequestMethod.GET) public ResponseDTO out(@RequestParam("venueId") Integer venueId) { Device byDevice = deviceService.findByDevice(venueId); - BarCodeResult out = new BarCodeResult(); + BasketEnterResult out = new BasketEnterResult(); if (byDevice == null) { out.setFlg(999); out.setMsg("通讯异常,门禁设备离线中"); @@ -173,12 +167,36 @@ public class VenueController extends BaseApiController { } Integer memberId = getMemberIdByAccessToken(); out = venueService.out(memberId, venueId); - if (out.getFlg() == 0) { - String barcode = barcodeService.newBarcode(doorSn,EnterEnum.OUT,venueId,memberId); - out.setBarcode(barcode); -// doorLockUtil.lockDoor(doorSn); - } return ResponseDTO.ok().addAttribute("out", out); } + + /** + * 生产二维码 + * + * @return + */ + @RequestMapping(value = "/venue/generate/barcode", method = RequestMethod.POST) + public ResponseDTO generateBarcode(@RequestParam("orderSn") String orderSn,@RequestParam("venueId") Integer venueId,Integer enterFlag) { + Device byDevice = deviceService.findByDevice(venueId); + BasketEnterResult join = new BasketEnterResult(); + if (byDevice == null) { + join.setFlg(999); + join.setMsg("通讯异常,门禁设备离线中"); + return ResponseDTO.ok().addAttribute("join", join); + } + String doorSn = byDevice.getName(); + boolean lockStat = doorLockUtil.checkDoorLock(doorSn); + if (lockStat) { + throw new ServiceException("有人正在使用门禁,请稍后再试"); + } + Integer memberId = getMemberIdByAccessToken(); + EnterEnum enterEnum = EnterEnum.OUT; + if (enterFlag != null) { + enterEnum = EnterEnum.getByValue(enterFlag); + } + String barcode = barcodeService.newBarcode(doorSn,orderSn,enterEnum,venueId,memberId); + return ResponseDTO.ok().addAttribute("barcode", barcode); + } + } diff --git a/api/src/test/java/com/sv/wx/VenueJoinTest.java b/api/src/test/java/com/sv/wx/VenueJoinTest.java index 2e020f2..56ff2aa 100644 --- a/api/src/test/java/com/sv/wx/VenueJoinTest.java +++ b/api/src/test/java/com/sv/wx/VenueJoinTest.java @@ -2,7 +2,7 @@ package com.sv.wx; import com.WeiXinApplication; import com.enums.EnterEnum; -import com.sv.dto.BarCodeResult; +import com.sv.dto.BasketEnterResult; import com.sv.netty.netty.service.MessageService; import com.sv.netty.utils.JsonUtils; import com.sv.service.api.VenueService; @@ -30,12 +30,11 @@ public class VenueJoinTest { @Test public void testJoin(){ - BarCodeResult join = venueService.join(535, 32); + BasketEnterResult join = venueService.join(535, 32); System.out.println(JsonUtils.encode(join)); if (join.getFlg() == 0) { - String barcode = barcodeService.newBarcode("doorSn", EnterEnum.ENTER, 32, 535); + String barcode = barcodeService.newBarcode("doorSn", "",EnterEnum.ENTER, 32, 535); System.err.println("入场的二维码为:" + barcode); - join.setBarcode(barcode); doorLockUtil.lockDoor("doorSn"); } } @@ -47,12 +46,11 @@ public class VenueJoinTest { @Test public void testOut(){ - BarCodeResult out = venueService.out(535, 32); + BasketEnterResult out = venueService.out(535, 32); System.out.println(JsonUtils.encode(out)); if (out.getFlg() == 0) { - String barcode = barcodeService.newBarcode("doorSn", EnterEnum.OUT, 32, 535); + String barcode = barcodeService.newBarcode("doorSn","", EnterEnum.OUT, 32, 535); System.err.println("出场的二维码为:" + barcode); - out.setBarcode(barcode); doorLockUtil.lockDoor("doorSn"); } } diff --git a/entity/src/main/java/com/sv/dto/BarCodeResult.java b/entity/src/main/java/com/sv/dto/BasketEnterResult.java similarity index 64% rename from entity/src/main/java/com/sv/dto/BarCodeResult.java rename to entity/src/main/java/com/sv/dto/BasketEnterResult.java index cdd3068..0c6f13c 100644 --- a/entity/src/main/java/com/sv/dto/BarCodeResult.java +++ b/entity/src/main/java/com/sv/dto/BasketEnterResult.java @@ -2,10 +2,7 @@ package com.sv.dto; import java.io.Serializable; -public class BarCodeResult implements Serializable { - - private String barcode; - +public class BasketEnterResult implements Serializable { /** * 返回的字符串,根据结果显示 */ @@ -13,14 +10,6 @@ public class BarCodeResult implements Serializable { private String msg; - public String getBarcode() { - return barcode; - } - - public void setBarcode(String barcode) { - this.barcode = barcode; - } - public Integer getFlg() { return flg; } diff --git a/entity/src/main/java/com/sv/entity/Barcode.java b/entity/src/main/java/com/sv/entity/Barcode.java index bc32d8b..2ebf70d 100644 --- a/entity/src/main/java/com/sv/entity/Barcode.java +++ b/entity/src/main/java/com/sv/entity/Barcode.java @@ -7,6 +7,11 @@ public class Barcode { private String barcode; + /** + * 订单号 + */ + private String orderSn; + private Integer status; private Integer memberId; @@ -23,9 +28,10 @@ public class Barcode { private Date modifiedTime; - public Barcode(Integer id, String barcode, Integer status, Integer memberId, Integer venueId, Integer enter, Integer createdId, Integer modifiedId, Date createdTime, Date modifiedTime) { + public Barcode(Integer id, String barcode, String orderSn, Integer status, Integer memberId, Integer venueId, Integer enter, Integer createdId, Integer modifiedId, Date createdTime, Date modifiedTime) { this.id = id; this.barcode = barcode; + this.orderSn = orderSn; this.status = status; this.memberId = memberId; this.venueId = venueId; @@ -56,6 +62,14 @@ public class Barcode { this.barcode = barcode == null ? null : barcode.trim(); } + public String getOrderSn() { + return orderSn; + } + + public void setOrderSn(String orderSn) { + this.orderSn = orderSn; + } + public Integer getMemberId() { return memberId; } diff --git a/other/sql/202312.sql b/other/sql/202312.sql index f21f796..df572b7 100644 --- a/other/sql/202312.sql +++ b/other/sql/202312.sql @@ -20,4 +20,9 @@ CREATE TABLE `sv_member_enter_status` ( `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modified_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1231 DEFAULT CHARSET=utf8mb4 COMMENT='用户在场馆的状态'; \ No newline at end of file +) ENGINE=InnoDB AUTO_INCREMENT=1231 DEFAULT CHARSET=utf8mb4 COMMENT='用户在场馆的状态'; + + +-- 20231228 待执行 +ALTER TABLE sv_barcode +ADD COLUMN order_sn varchar(200) NOT NULL AFTER barcode; \ No newline at end of file diff --git a/service/src/main/java/com/sv/service/api/VenueService.java b/service/src/main/java/com/sv/service/api/VenueService.java index 8dfa43a..3ae453a 100644 --- a/service/src/main/java/com/sv/service/api/VenueService.java +++ b/service/src/main/java/com/sv/service/api/VenueService.java @@ -215,9 +215,9 @@ public class VenueService extends BaseServiceImpl { * 我要进场 */ @Transactional(rollbackFor = Exception.class) - public BarCodeResult join(Integer memberId, Integer venueId) { - BarCodeResult barCodeResult = new BarCodeResult(); - barCodeResult.setFlg(0); + public BasketEnterResult join(Integer memberId, Integer venueId) { + BasketEnterResult basketEnterResult = new BasketEnterResult(); + basketEnterResult.setFlg(0); // 判断用户是否登录 if (memberId == null) { throw new ServiceException(com.ydd.framework.core.exception.ExceptionCodeTemplate.NEED_LOGIN); @@ -245,15 +245,15 @@ public class VenueService extends BaseServiceImpl { if (memberCards.size() == 0) { Member member = memberService.findById(memberId); if (member.getMoney().compareTo(price) == -1) { - barCodeResult.setFlg(2); + basketEnterResult.setFlg(2); // if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()){ // // 按时入场余额需要包含两个小时的场地费 // barCodeResult.setMsg("请保证账户至少有两个小时余额:" + price + "元,余额不足,请先充值"); // }else { // barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); // } - barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); - return barCodeResult; + basketEnterResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); + return basketEnterResult; } Integer timePayHour = 1; if(PayStyleEnum.TIME.getValue() == venue.getPayStyle()){ @@ -276,7 +276,7 @@ public class VenueService extends BaseServiceImpl { } else { //余额不足 logger.error("用户" + memberId + "余额不足核销失败"); - barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); + basketEnterResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); } } } @@ -287,7 +287,7 @@ public class VenueService extends BaseServiceImpl { // flag = 1; // return flag; // } - return barCodeResult; + return basketEnterResult; } /** @@ -297,8 +297,8 @@ public class VenueService extends BaseServiceImpl { * @return */ @Transactional(rollbackFor = Exception.class) - public BarCodeResult out(Integer memberId, Integer venueId) { - BarCodeResult result = new BarCodeResult(); + public BasketEnterResult out(Integer memberId, Integer venueId) { + BasketEnterResult result = new BasketEnterResult(); result.setFlg(0); // 判断用户是否登录 if (memberId == null) { diff --git a/service/src/main/java/com/sv/service/common/BarcodeService.java b/service/src/main/java/com/sv/service/common/BarcodeService.java index c7b63a9..84845a0 100644 --- a/service/src/main/java/com/sv/service/common/BarcodeService.java +++ b/service/src/main/java/com/sv/service/common/BarcodeService.java @@ -28,7 +28,7 @@ public class BarcodeService extends BaseServiceImpl { @Resource BarcodeMapper barcodeMapper; - public String newBarcode (String deviceName, EnterEnum enterEnum, Integer venueId, Integer memberId){ + public String newBarcode (String deviceName, String orderSn, EnterEnum enterEnum, Integer venueId, Integer memberId){ String barcode = ""; Barcode res = barcodeMapper.findBarcode(venueId, memberId); if (res == null) { @@ -39,6 +39,7 @@ public class BarcodeService extends BaseServiceImpl { b.setStatus(BarCodeStatusEnum.INIT.getValue()); b.setMemberId(memberId); b.setVenueId(venueId); + b.setOrderSn(orderSn); b.setEnter(enterEnum.getValue()); barcodeMapper.insert(b); }else { diff --git a/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml b/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml index 8bb1ac1..e2db3b0 100644 --- a/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml +++ b/service/src/main/resources/mybatis/mapper/sv/BarcodeMapper.xml @@ -5,6 +5,7 @@ + @@ -16,7 +17,7 @@ - id, barcode, status, member_id, venue_id, enter, created_id, modified_id, created_time, + id, barcode, order_sn, status, member_id, venue_id, enter, created_id, modified_id, created_time, modified_time