2024-04 足球场开门逻辑
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package com.sv.api.controller;
|
||||
|
||||
import com.sv.netty.netty.service.MessageService;
|
||||
import com.ydd.framework.core.common.dto.ResponseDTO;
|
||||
import com.ydd.framework.core.controller.BaseApiController;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Controller - 用户预约的场馆课程票号
|
||||
*
|
||||
* @author lihong
|
||||
* @since 2018-08-06
|
||||
*/
|
||||
@RestController
|
||||
public class FootballTicketController extends BaseApiController {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(FootballTicketController.class);
|
||||
|
||||
@Resource
|
||||
private MessageService messageService;
|
||||
/**
|
||||
* 订单详情开门链接
|
||||
*/
|
||||
@RequestMapping(value = "/member/lesson/tickets/opendoor", method = RequestMethod.POST)
|
||||
public ResponseDTO memberTicketInvite(@RequestParam("ticketId") Integer ticketId){
|
||||
messageService.footballOpenDoor(ticketId,getLoginMemberId());
|
||||
return ResponseDTO.ok().addAttribute("enterFlag","OK");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -46,6 +46,13 @@ public interface MessageService {
|
||||
*/
|
||||
void enterVenue(String barcode);
|
||||
|
||||
/**
|
||||
* 足球场开门逻辑
|
||||
* @param ticketId
|
||||
* @param memberId
|
||||
*/
|
||||
void footballOpenDoor(Integer ticketId,Integer memberId);
|
||||
|
||||
public void adminEnter(String deviceName, Integer venueId);
|
||||
|
||||
public void adminOut(String deviceName, Integer venueId);
|
||||
|
||||
@@ -4,10 +4,7 @@ import com.enums.BarCodeStatusEnum;
|
||||
import com.enums.EnterEnum;
|
||||
import com.enums.EnterVenuePayTypeEnum;
|
||||
import com.sv.entity.*;
|
||||
import com.sv.mapper.BarcodeEnterLogMapper;
|
||||
import com.sv.mapper.BarcodeMapper;
|
||||
import com.sv.mapper.BarcodeOfflineMapper;
|
||||
import com.sv.mapper.BarcodeOrderTimeMapper;
|
||||
import com.sv.mapper.*;
|
||||
import com.sv.netty.config.*;
|
||||
import com.sv.netty.netty.service.MessageService;
|
||||
import com.sv.netty.utils.JsonUtils;
|
||||
@@ -73,6 +70,9 @@ public class ServerMessageHandlerAdapter implements MessageService {
|
||||
private BarcodeEnterLogMapper barcodeEnterLogMapper;
|
||||
@Resource
|
||||
private BarcodeOrderTimeMapper barcodeOrderTimeMapper;
|
||||
|
||||
@Resource
|
||||
private MemberLessonTicketMapper memberLessonTicketMapper;
|
||||
/**
|
||||
* 处理心跳信息,存储心跳信息
|
||||
* @param clientId
|
||||
@@ -110,6 +110,43 @@ public class ServerMessageHandlerAdapter implements MessageService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 足球场开门逻辑
|
||||
* @param ticketId
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void footballOpenDoor(Integer ticketId,Integer memberId) {
|
||||
MemberLessonTicket memberLessonTicket = memberLessonTicketMapper.findById(ticketId);
|
||||
if (memberLessonTicket == null) {
|
||||
logger.error("足球开门失败,未找到对应的订单!");
|
||||
throw new ServiceException("足球开门失败,未找到对应的订单!");
|
||||
}
|
||||
Device device = deviceService.findByDevice(memberLessonTicket.getVenueId());
|
||||
String doorSn = device.getName();
|
||||
boolean lockStat = doorLockUtil.checkDoorLock(doorSn);
|
||||
if (lockStat) {
|
||||
logger.error("有人正在操作,请稍后再出场!!!");
|
||||
throw new ServiceException("有人正在操作,请稍后再试");
|
||||
}
|
||||
Channel channel = getCurrentChannel(device.getName(), memberLessonTicket.getVenueId());
|
||||
Member member = memberService.findByMember(memberId);
|
||||
if (member != null) {
|
||||
MemberEnterVenueLog memberEnterVenueLog = new MemberEnterVenueLog();
|
||||
memberEnterVenueLog.setOrderSn(memberLessonTicket.getOrderSn());
|
||||
memberEnterVenueLog.setType(EnterEnum.ENTER.getValue());
|
||||
memberEnterVenueLog.setMemberId(member.getId());
|
||||
memberEnterVenueLog.setPlatformId(member.getPlatformId() == null ? 1 : member.getPlatformId());
|
||||
memberEnterVenueLog.setVenueId(memberLessonTicket.getVenueId());
|
||||
memberEnterVenueLog.setPayType(EnterVenuePayTypeEnum.WEI_XIN.getValue());
|
||||
memberEnterVenueLogService.save(memberEnterVenueLog);
|
||||
doorLockUtil.lockDoor(doorSn);
|
||||
// writeOffCode(barcode); 足球不需要二维码
|
||||
logger.info("用户" + member.getId() + "&" + member.getNickname() + "足球入场");
|
||||
ServerMessageUtils.INSTANCE.sendMsg(channel,new VenueMessage(MessageType.ENTER_DOOR,"OK"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 核销扫码出场逻辑
|
||||
* @param barcode
|
||||
|
||||
Reference in New Issue
Block a user