| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.utils.OrderNos; |
| | | import com.ruoyi.system.dto.CreateOrderDto; |
| | | import com.ruoyi.system.dto.CreateOrderRequest; |
| | | import com.ruoyi.system.dto.VisitPerson; |
| | | import com.ruoyi.system.model.TTicketOrder; |
| | | import com.ruoyi.system.mapper.TTicketOrderMapper; |
| | | import com.ruoyi.system.model.TTourist; |
| | | import com.ruoyi.system.query.AppletOrderListQuery; |
| | | import com.ruoyi.system.query.TTicketOrderQuery; |
| | | import com.ruoyi.system.service.TAppUserService; |
| | | import com.ruoyi.system.service.TTicketOrderService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.service.TTouristService; |
| | | import com.ruoyi.system.utils.ticketUtil.TicketUtil; |
| | | import com.ruoyi.system.vo.CreateOrderVo; |
| | | import com.ruoyi.system.vo.TTicketOrderVo; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | @Service |
| | | public class TTicketOrderServiceImpl extends ServiceImpl<TTicketOrderMapper, TTicketOrder> implements TTicketOrderService { |
| | | |
| | | |
| | | private final TicketUtil ticketUtil; |
| | | private final TTouristService tTouristService; |
| | | |
| | | |
| | | |
| | | |
| | | public TTicketOrderServiceImpl(TicketUtil ticketUtil, TTouristService tTouristService) { |
| | | this.ticketUtil = ticketUtil; |
| | | this.tTouristService = tTouristService; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Page<TTicketOrderVo> pageList(Page<TTicketOrderVo> page, TTicketOrderQuery query) { |
| | |
| | | page.setRecords( list); |
| | | return page; |
| | | } |
| | | |
| | | @Override |
| | | public boolean addOrder(CreateOrderDto dto, Integer userId) throws Exception { |
| | | |
| | | CreateOrderRequest request = new CreateOrderRequest(); |
| | | String did = OrderNos.getDid(); |
| | | request.setOrderId(did); |
| | | request.setTravelDate(dto.getTravelDate()); |
| | | request.setQuantity(dto.getQuantity()); |
| | | request.setProductId(dto.getProductId()); |
| | | |
| | | if (dto.getQuantity()!=dto.getVisitPersons().size()) { |
| | | throw new RuntimeException("人数不匹配"); |
| | | } |
| | | |
| | | List<TTourist> tTourists = tTouristService.listByIds(dto.getVisitPersons()); |
| | | ArrayList<VisitPerson> visitPeople = new ArrayList<>(); |
| | | for (TTourist tTourist : tTourists) { |
| | | VisitPerson visitPerson = new VisitPerson(); |
| | | visitPerson.setName(tTourist.getName()); |
| | | visitPerson.setMobile(tTourist.getPhone()); |
| | | visitPerson.setIdCard(tTourist.getIdCard()); |
| | | visitPeople.add(visitPerson); |
| | | } |
| | | request.setVisitPersons(visitPeople); |
| | | CreateOrderVo createOrderVo = ticketUtil.saveOrder(request); |
| | | |
| | | TTicketOrder order = new TTicketOrder(); |
| | | order.setAppUserId(userId); |
| | | order.setOrderNo(did); |
| | | order.setPartnerOrderId(createOrderVo.getPartnerOrderId()); |
| | | order.setOrderPrice(new BigDecimal(createOrderVo.getOrderAmount()).setScale(2, BigDecimal.ROUND_HALF_UP)); |
| | | |
| | | |
| | | String result = dto.getVisitPersons().stream() |
| | | .map(String::valueOf) // Integer 转 String |
| | | .collect(Collectors.joining(",")); |
| | | order.setTourist(result); |
| | | order.setTicketNum(dto.getQuantity()); |
| | | order.setStatus(0); |
| | | |
| | | order.setTicketInfo(dto.getProductName()); |
| | | boolean save = this.save(order); |
| | | return save; |
| | | } |
| | | } |