2024-04 足球场开门逻辑,预订信息判断是否登录
This commit is contained in:
@@ -28,7 +28,7 @@ public class FootballTicketController extends BaseApiController {
|
|||||||
/**
|
/**
|
||||||
* 订单详情开门链接
|
* 订单详情开门链接
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/member/lesson/tickets/opendoor", method = RequestMethod.POST)
|
@RequestMapping(value = "/member/lesson/tickets/open/door", method = RequestMethod.POST)
|
||||||
public ResponseDTO memberTicketInvite(@RequestParam("ticketId") Integer ticketId){
|
public ResponseDTO memberTicketInvite(@RequestParam("ticketId") Integer ticketId){
|
||||||
messageService.footballOpenDoor(ticketId,getLoginMemberId());
|
messageService.footballOpenDoor(ticketId,getLoginMemberId());
|
||||||
return ResponseDTO.ok().addAttribute("enterFlag","OK");
|
return ResponseDTO.ok().addAttribute("enterFlag","OK");
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentMap;
|
import java.util.concurrent.ConcurrentMap;
|
||||||
/**
|
/**
|
||||||
@@ -73,6 +75,8 @@ public class ServerMessageHandlerAdapter implements MessageService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MemberLessonTicketMapper memberLessonTicketMapper;
|
private MemberLessonTicketMapper memberLessonTicketMapper;
|
||||||
|
@Resource
|
||||||
|
private VenueLessonMapper venueLessonMapper;
|
||||||
/**
|
/**
|
||||||
* 处理心跳信息,存储心跳信息
|
* 处理心跳信息,存储心跳信息
|
||||||
* @param clientId
|
* @param clientId
|
||||||
@@ -122,6 +126,17 @@ public class ServerMessageHandlerAdapter implements MessageService {
|
|||||||
logger.error("足球开门失败,未找到对应的订单!");
|
logger.error("足球开门失败,未找到对应的订单!");
|
||||||
throw new ServiceException("足球开门失败,未找到对应的订单!");
|
throw new ServiceException("足球开门失败,未找到对应的订单!");
|
||||||
}
|
}
|
||||||
|
VenueLesson venueLesson = venueLessonMapper.findById(memberLessonTicket.getLessonId());
|
||||||
|
LocalTime endTime = venueLesson.getEndTime();
|
||||||
|
LocalTime startTime = venueLesson.getStartTime();
|
||||||
|
if (!startTime.isBefore(LocalTime.now())) {
|
||||||
|
logger.error("足球开门失败,订单尚未开始!");
|
||||||
|
throw new ServiceException("开门失败,订单尚未开始!");
|
||||||
|
}
|
||||||
|
if (!endTime.isAfter(LocalTime.now().plus(15, ChronoUnit.MINUTES))) {
|
||||||
|
logger.error("足球开门失败,订单已结束!");
|
||||||
|
throw new ServiceException("足球开门失败,订单已结束!");
|
||||||
|
}
|
||||||
Device device = deviceService.findByDevice(memberLessonTicket.getVenueId());
|
Device device = deviceService.findByDevice(memberLessonTicket.getVenueId());
|
||||||
String doorSn = device.getName();
|
String doorSn = device.getName();
|
||||||
boolean lockStat = doorLockUtil.checkDoorLock(doorSn);
|
boolean lockStat = doorLockUtil.checkDoorLock(doorSn);
|
||||||
@@ -142,7 +157,7 @@ public class ServerMessageHandlerAdapter implements MessageService {
|
|||||||
memberEnterVenueLogService.save(memberEnterVenueLog);
|
memberEnterVenueLogService.save(memberEnterVenueLog);
|
||||||
doorLockUtil.lockDoor(doorSn);
|
doorLockUtil.lockDoor(doorSn);
|
||||||
// writeOffCode(barcode); 足球不需要二维码
|
// writeOffCode(barcode); 足球不需要二维码
|
||||||
logger.info("用户" + member.getId() + "&" + member.getNickname() + "足球入场");
|
logger.info("用户" + member.getId() + "&" + member.getNickname() + "足球开门");
|
||||||
ServerMessageUtils.INSTANCE.sendMsg(channel,new VenueMessage(MessageType.ENTER_DOOR,"OK"));
|
ServerMessageUtils.INSTANCE.sendMsg(channel,new VenueMessage(MessageType.ENTER_DOOR,"OK"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ public class MemberTicketEnterDTO extends MemberLessonTicket {
|
|||||||
private boolean order = false;
|
private boolean order = false;
|
||||||
private String errCode;
|
private String errCode;
|
||||||
private String msg;
|
private String msg;
|
||||||
private boolean openFlag = false;
|
|
||||||
|
|
||||||
private List<MemberTicketInviteDTO> memberTicketInviteList;
|
private List<MemberTicketInviteDTO> memberTicketInviteList;
|
||||||
|
|
||||||
@@ -132,11 +131,4 @@ public class MemberTicketEnterDTO extends MemberLessonTicket {
|
|||||||
this.msg = msg;
|
this.msg = msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOpenFlag() {
|
|
||||||
return openFlag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOpenFlag(boolean openFlag) {
|
|
||||||
this.openFlag = openFlag;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.sv.mapper.MemberLessonTicketMapper;
|
|||||||
import com.sv.mapper.MemberTicketInviteMapper;
|
import com.sv.mapper.MemberTicketInviteMapper;
|
||||||
import com.sv.mapper.VenueLessonMapper;
|
import com.sv.mapper.VenueLessonMapper;
|
||||||
import com.sv.mapper.VenueMapper;
|
import com.sv.mapper.VenueMapper;
|
||||||
|
import com.ydd.framework.core.exception.ServiceException;
|
||||||
import com.ydd.framework.core.service.impl.BaseServiceImpl;
|
import com.ydd.framework.core.service.impl.BaseServiceImpl;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -38,18 +39,26 @@ public class MemberTicketEnterService extends BaseServiceImpl {
|
|||||||
private VenueLessonMapper venueLessonMapper;
|
private VenueLessonMapper venueLessonMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private VenueMapper venueMapper;
|
private VenueMapper venueMapper;
|
||||||
|
@Resource
|
||||||
|
private MemberService memberService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* api 足球预约详情
|
* api 足球预约详情
|
||||||
*/
|
*/
|
||||||
public MemberTicketEnterDTO memberTicketEnterDetail(Integer memberId, Integer ticketId) {
|
public MemberTicketEnterDTO memberTicketEnterDetail(Integer memberId, Integer ticketId) {
|
||||||
|
// 判断用户是否登录
|
||||||
|
if (memberId == null){
|
||||||
|
throw new ServiceException(com.ydd.framework.core.exception.ExceptionCodeTemplate.NEED_LOGIN);
|
||||||
|
}
|
||||||
|
Member member = memberService.findById(memberId);
|
||||||
|
memberService.verify(member);
|
||||||
MemberTicketEnterDTO res = new MemberTicketEnterDTO();
|
MemberTicketEnterDTO res = new MemberTicketEnterDTO();
|
||||||
res.setOpenFlag(false);
|
|
||||||
res.setErrCode("0");
|
res.setErrCode("0");
|
||||||
MemberLessonTicket memberLessonTicket = memberLessonTicketMapper.findById(ticketId);
|
MemberLessonTicket memberLessonTicket = memberLessonTicketMapper.findById(ticketId);
|
||||||
if (memberLessonTicket == null) {
|
if (memberLessonTicket == null) {
|
||||||
res.setErrCode("2");
|
res.setErrCode("2");
|
||||||
res.setMsg("未找到对应的预订信息");
|
res.setMsg("未找到预订信息");
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
BeanUtils.copyProperties(memberLessonTicket,res);
|
BeanUtils.copyProperties(memberLessonTicket,res);
|
||||||
// 判断场馆是否已经超时
|
// 判断场馆是否已经超时
|
||||||
@@ -60,9 +69,16 @@ public class MemberTicketEnterService extends BaseServiceImpl {
|
|||||||
res.setEndTime(venueLesson.getEndTime());
|
res.setEndTime(venueLesson.getEndTime());
|
||||||
LocalTime endTime = venueLesson.getEndTime();
|
LocalTime endTime = venueLesson.getEndTime();
|
||||||
LocalTime startTime = venueLesson.getStartTime();
|
LocalTime startTime = venueLesson.getStartTime();
|
||||||
if (endTime.isAfter(LocalTime.now().plus(15, ChronoUnit.MINUTES)) && startTime.isBefore(LocalTime.now())){
|
// if (!startTime.isBefore(LocalTime.now())){
|
||||||
|
// // 十五分钟之内都可以开门
|
||||||
|
// res.setErrCode("3");
|
||||||
|
// res.setMsg("订单还未开始");
|
||||||
|
// }
|
||||||
|
if (!endTime.isAfter(LocalTime.now().plus(15, ChronoUnit.MINUTES))){
|
||||||
// 十五分钟之内都可以开门
|
// 十五分钟之内都可以开门
|
||||||
res.setOpenFlag(true);
|
res.setErrCode("4");
|
||||||
|
res.setMsg("预约订单已经结束");
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Venue venue = venueMapper.findById(memberLessonTicket.getVenueId());
|
Venue venue = venueMapper.findById(memberLessonTicket.getVenueId());
|
||||||
|
|||||||
Reference in New Issue
Block a user