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