|
|
@@ -38,72 +38,13 @@ public class TicketServiceImpl implements TicketService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public ResponseVO addTicket(TicketForm ticketForm) {
|
|
|
- List<SeatForm> seats = ticketForm.getSeats();
|
|
|
- List<Ticket> tickets=new ArrayList<>();
|
|
|
- for (SeatForm seat : seats) {
|
|
|
- Ticket ticket = new Ticket();
|
|
|
- ticket.setUserId(ticketForm.getUserId());
|
|
|
- ticket.setScheduleId(ticketForm.getScheduleId());
|
|
|
- ticket.setColumnIndex(seat.getColumnIndex());
|
|
|
- ticket.setRowIndex(seat.getRowIndex());
|
|
|
- ticket.setState(0);
|
|
|
- if (ticketMapper.selectTicketByScheduleIdAndSeat(ticketForm.getScheduleId(), seat.getColumnIndex(), seat.getRowIndex()) != null) {
|
|
|
- return ResponseVO.buildFailure("该位置已被占");
|
|
|
- }
|
|
|
- tickets.add(ticket);
|
|
|
- }
|
|
|
- try {
|
|
|
- ticketMapper.insertTickets(tickets);
|
|
|
- TicketWithCouponVO vo=new TicketWithCouponVO();
|
|
|
- vo.setTicketVOList(tickets.stream().map(ticket -> ticket.getVO()).collect(Collectors.toList()));
|
|
|
- ScheduleItem scheduleItem = scheduleMapper.selectScheduleById(tickets.get(0).getScheduleId());
|
|
|
- double total=scheduleItem.getFare()*tickets.size();
|
|
|
- vo.setTotal(total);
|
|
|
- vo.setCoupons(couponMapper.selectCouponByUserAndAmount(tickets.get(0).getUserId(),total));
|
|
|
- // 按电影优惠
|
|
|
- List<ActivityVO> activityVOS=activityMapper.selectActivitiesByMovie(scheduleItem.getMovieId());
|
|
|
- // 按时间优惠
|
|
|
- List<ActivityVO> timeActivityVOS=activityMapper.selectActivitiesWithoutMovie();
|
|
|
- activityVOS.addAll(timeActivityVOS);
|
|
|
- vo.setActivities(activityVOS);
|
|
|
- return ResponseVO.buildSuccess(vo);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return ResponseVO.buildFailure("失败");
|
|
|
- }
|
|
|
-
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public ResponseVO completeTicket(List<Integer> id, int couponId) {
|
|
|
- try {
|
|
|
- List<Ticket> tickets=updateState(id,1);
|
|
|
- int userId=tickets.get(0).getUserId();
|
|
|
- if (couponId != 0) {
|
|
|
- couponMapper.deleteCouponUser(couponId, userId);
|
|
|
- }
|
|
|
- ScheduleItem schedule=scheduleMapper.selectScheduleById(tickets.get(0).getScheduleId());
|
|
|
- // 按电影优惠
|
|
|
- List<ActivityVO> activityVOS=activityMapper.selectActivitiesByMovie(schedule.getMovieId());
|
|
|
- List<Integer> coupons=new ArrayList<>();
|
|
|
- for (ActivityVO vo:activityVOS ) {
|
|
|
- coupons.add(vo.getCoupon().getId());
|
|
|
- }
|
|
|
- // 按时间优惠
|
|
|
- List<ActivityVO> timeActivityVOS=activityMapper.selectActivitiesWithoutMovie();
|
|
|
- for (ActivityVO vo:timeActivityVOS ) {
|
|
|
- coupons.add(vo.getCoupon().getId());
|
|
|
- }
|
|
|
- coupons=coupons.stream().distinct().collect(Collectors.toList());
|
|
|
- for (Integer coupon : coupons) {
|
|
|
- couponMapper.insertCouponUser(coupon,userId);
|
|
|
- }
|
|
|
- return ResponseVO.buildSuccess(tickets.stream().map(ticket -> ticket.getVO()).collect(Collectors.toList()));
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return ResponseVO.buildFailure("失败");
|
|
|
- }
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -128,69 +69,20 @@ public class TicketServiceImpl implements TicketService {
|
|
|
|
|
|
@Override
|
|
|
public ResponseVO getTicketByUser(int userId) {
|
|
|
- try {
|
|
|
- List<TicketWithScheduleVO> vos = ticketMapper.selectTicketByUser(userId).stream().map(ticket -> {
|
|
|
- TicketWithScheduleVO vo=ticket.getWithScheduleVO();
|
|
|
- ScheduleItem scheduleItem=scheduleMapper.selectScheduleById(ticket.getScheduleId());
|
|
|
- vo.setSchedule(scheduleItem);
|
|
|
- return vo;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- return ResponseVO.buildSuccess(vos);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return ResponseVO.buildFailure("失败");
|
|
|
- }
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public ResponseVO completeByVIPCard(List<Integer> id, int couponId) {
|
|
|
- try {
|
|
|
- Ticket ticket = ticketMapper.selectTicketById(id.get(0));
|
|
|
- VIPCard vipCard = vipCardMapper.selectCardByUserId(ticket.getUserId());
|
|
|
- ScheduleItem scheduleItem = scheduleMapper.selectScheduleById(ticket.getScheduleId());
|
|
|
- double balance = vipCard.getBalance() - scheduleItem.getFare()*id.size();
|
|
|
- if (couponId != 0) {
|
|
|
- Coupon coupon = couponMapper.selectById(couponId);
|
|
|
- if(scheduleItem.getFare()*id.size()<coupon.getTargetAmount()){
|
|
|
- return ResponseVO.buildFailure("未达到优惠券使用标准");
|
|
|
- }
|
|
|
-
|
|
|
- balance += coupon.getDiscountAmount();
|
|
|
- }
|
|
|
- if (balance < 0) {
|
|
|
- return ResponseVO.buildFailure("会员卡余额不足");
|
|
|
- }
|
|
|
- vipCardMapper.updateCardBalance(vipCard.getId(), balance);
|
|
|
- return completeTicket(id, couponId);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return ResponseVO.buildFailure("失败");
|
|
|
- }
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public ResponseVO cancelTicket(List<Integer> id) {
|
|
|
- try {
|
|
|
- List<Ticket> tickets=updateState(id,2);
|
|
|
-
|
|
|
- return ResponseVO.buildSuccess(tickets.stream().map(ticket -> ticket.getVO()).collect(Collectors.toList()));
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- return ResponseVO.buildFailure("失败");
|
|
|
- }
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
- private List<Ticket> updateState(List<Integer> id,int state){
|
|
|
- List<Ticket> tickets=new ArrayList<>();
|
|
|
- for (Integer i:id) {
|
|
|
- ticketMapper.updateTicketState(i, state);
|
|
|
- Ticket ticket = ticketMapper.selectTicketById(id.get(0));
|
|
|
- tickets.add(ticket);
|
|
|
- }
|
|
|
- return tickets;
|
|
|
-
|
|
|
- }
|
|
|
|
|
|
|
|
|
}
|