fix - 篮球入场出场逻辑优化、丢弃二维码的逻辑
This commit is contained in:
@@ -1,78 +0,0 @@
|
||||
package com.sv.service.common;
|
||||
|
||||
import com.enums.BarCodeStatusEnum;
|
||||
import com.enums.EnterEnum;
|
||||
import com.sv.dto.api.BarcodeDTO;
|
||||
import com.sv.entity.Barcode;
|
||||
import com.sv.entity.BarcodeOrderTime;
|
||||
import com.sv.mapper.BarcodeMapper;
|
||||
import com.sv.mapper.BarcodeOrderTimeMapper;
|
||||
import com.sv.netty.utils.MakeCode;
|
||||
import com.ydd.framework.core.exception.ServiceException;
|
||||
import com.ydd.framework.core.service.impl.BaseServiceImpl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Service - 短信
|
||||
*
|
||||
* @author lh
|
||||
* @since 2018-08-01
|
||||
*/
|
||||
@Service
|
||||
@Transactional
|
||||
public class BarcodeService extends BaseServiceImpl {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(BarcodeService.class);
|
||||
|
||||
@Resource
|
||||
BarcodeMapper barcodeMapper;
|
||||
@Resource
|
||||
BarcodeOrderTimeMapper barcodeOrderTimeMapper;
|
||||
|
||||
public String newBarcode (String deviceName, String orderSn, EnterEnum enterEnum, Integer venueId, Integer memberId){
|
||||
String barcode = "";
|
||||
Barcode res = barcodeMapper.findBarcode(venueId, memberId);
|
||||
if (res == null) {
|
||||
barcode = MakeCode.makeCode(venueId, memberId, deviceName, enterEnum.getValue() + "");
|
||||
Barcode b = new Barcode();
|
||||
logger.info("[生成二维码] memberId={}, venueId={}, orderSn={}, enterEnum={}, deviceName={}, barcode={}",
|
||||
memberId, venueId, orderSn, enterEnum.getValue(), deviceName, barcode);
|
||||
b.setBarcode(barcode);
|
||||
b.setStatus(BarCodeStatusEnum.INIT.getValue());
|
||||
b.setMemberId(memberId);
|
||||
b.setVenueId(venueId);
|
||||
b.setOrderSn(orderSn);
|
||||
b.setEnter(enterEnum.getValue());
|
||||
barcodeMapper.insert(b);
|
||||
}else {
|
||||
barcode = res.getBarcode();
|
||||
logger.info("[生成二维码] 复用已有二维码 memberId={}, venueId={}, barcode={}, enter={}",
|
||||
memberId, venueId, barcode, res.getEnter());
|
||||
}
|
||||
return barcode;
|
||||
}
|
||||
|
||||
public BarcodeDTO isUsed(String barcode){
|
||||
BarcodeDTO barcodeDTO = new BarcodeDTO();
|
||||
barcodeDTO.setUsed(false);
|
||||
Barcode code = barcodeMapper.checkIsUsed(barcode);
|
||||
if (code == null) {
|
||||
logger.error("[二维码校验] 二维码不存在 barcode={}", barcode);
|
||||
throw new ServiceException("二维码不存在!");
|
||||
}
|
||||
if (BarCodeStatusEnum.USED.value == code.getStatus()){
|
||||
barcodeDTO.setUsed(true);
|
||||
BarcodeOrderTime lastEnterOrder = barcodeOrderTimeMapper.findLastOrder(code.getMemberId(), code.getVenueId());
|
||||
barcodeDTO.setEnterId(lastEnterOrder.getId());
|
||||
logger.info("[二维码校验] 已使用 memberId={}, venueId={}, enterId={}", code.getMemberId(), code.getVenueId(), lastEnterOrder.getId());
|
||||
} else {
|
||||
logger.info("[二维码校验] 未使用 memberId={}, venueId={}", code.getMemberId(), code.getVenueId());
|
||||
}
|
||||
return barcodeDTO;
|
||||
}
|
||||
}
|
||||
@@ -9,14 +9,13 @@ import java.util.concurrent.TimeUnit;
|
||||
public class DoorLockUtil {
|
||||
|
||||
private final static String DOOR_LOCK = "DOOR_LOCK_";
|
||||
private final static String DOOR_BARCODE_LOCK = "DOOR_BARCODE_LOCK_";
|
||||
private final static Integer LOCK_TIMEOUT = 15;
|
||||
private final static Integer LOCK_TIMEOUT = 20;
|
||||
|
||||
@Resource
|
||||
RedisCache redisCache;
|
||||
|
||||
/**
|
||||
* 门禁有人扫码之后,需要锁定门禁30s
|
||||
* 门禁有人扫码之后,需要锁定门禁20s
|
||||
* @return
|
||||
*/
|
||||
public boolean checkDoorLock(String doorSn){
|
||||
@@ -28,7 +27,7 @@ public class DoorLockUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 门禁有人扫码之后,需要锁定门禁30s
|
||||
* 门禁有人扫码之后,需要锁定门禁20s
|
||||
* @param doorSn
|
||||
*/
|
||||
public void lockDoor(String doorSn){
|
||||
@@ -36,25 +35,4 @@ public class DoorLockUtil {
|
||||
redisCache.setCacheObject(doorKey,true,LOCK_TIMEOUT, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 门禁有人扫码之后,需要锁定门禁30s
|
||||
* @return
|
||||
*/
|
||||
public boolean checkBarcode(String doorSn){
|
||||
String doorKey = DOOR_BARCODE_LOCK + doorSn;
|
||||
if (redisCache.getCacheObject(doorKey) == null){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 门禁有人扫码之后,需要锁定门禁30s
|
||||
* @param doorSn
|
||||
*/
|
||||
public void lockBarcode(String doorSn){
|
||||
String doorKey = DOOR_BARCODE_LOCK + doorSn;
|
||||
redisCache.setCacheObject(doorKey,true,LOCK_TIMEOUT, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -238,17 +238,5 @@ public class DeviceService extends BaseServiceImpl {
|
||||
return deviceMapper.findByDevice(venueId);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void makeDeviceBarcode(String deviceName, Integer venueId, String barcode) {
|
||||
BarcodeOffline barcodeOffline = new BarcodeOffline();
|
||||
Date startTime = new Date();
|
||||
barcodeOffline.setStartTime(startTime);
|
||||
barcodeOffline.setEndTime(DateUtils.addHours(startTime,2));
|
||||
barcodeOffline.setVenueId(venueId);
|
||||
barcodeOffline.setDeviceName(deviceName);
|
||||
barcodeOffline.setBarcode(barcode);
|
||||
barcodeOfflineMapper.insert(barcodeOffline);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user