package com.ruoyi.web.controller.api;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.system.model.*;
|
import com.ruoyi.system.query.TTicketOrderQuery;
|
import com.ruoyi.system.service.*;
|
import com.ruoyi.system.vo.TTicketOrderDetailVo;
|
import com.ruoyi.system.vo.TTicketOrderVo;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* 前端控制器
|
* </p>
|
*
|
* @author L
|
* @since 2025-12-30
|
*/
|
@RestController
|
@RequestMapping("/t-ticket-order")
|
@Api(tags = "(青都)门票订单管理")
|
public class TTicketOrderController {
|
|
private final TTicketOrderService tTicketOrderService;
|
private final TAppUserService tAppUserService;
|
private final TTouristService tTouristService;
|
private final TTicketCodeService tTicketCodeService;
|
|
public TTicketOrderController(TTicketOrderService tTicketOrderService, TAppUserService tAppUserService, TTouristService tTouristService, TTicketCodeService tTicketCodeService) {
|
this.tTicketOrderService = tTicketOrderService;
|
this.tAppUserService = tAppUserService;
|
this.tTouristService = tTouristService;
|
this.tTicketCodeService = tTicketCodeService;
|
}
|
|
@ApiOperation(value = "门票订单分页列表")
|
@PostMapping(value = "/pageList")
|
public R<Page<TTicketOrderVo>> pageList(@RequestBody TTicketOrderQuery query) {
|
Page<TTicketOrderVo> page = new Page<>(query.getPageNum(), query.getPageSize());
|
Page<TTicketOrderVo> pageInfo = tTicketOrderService.pageList(page, query);
|
return R.ok(pageInfo);
|
}
|
|
|
|
@ApiOperation(value = "订单详情")
|
@GetMapping(value = "/detail/{id}")
|
public R<TTicketOrderDetailVo> detail(@PathVariable Integer id ) {
|
TTicketOrder order = tTicketOrderService.getById(id);
|
TTicketOrderDetailVo tTicketOrderDetailVo = new TTicketOrderDetailVo();
|
BeanUtils.copyProperties(order, tTicketOrderDetailVo);
|
TAppUser appUser = tAppUserService.getById(order.getAppUserId());
|
tTicketOrderDetailVo.setUserName(appUser.getName());
|
tTicketOrderDetailVo.setPhone(appUser.getPhone());
|
|
|
String tourist = order.getTourist();
|
if (Objects.nonNull(tourist)) {
|
String[] split = tourist.split(",");
|
List<TTourist> tTourists = tTouristService.listByIds(Arrays.asList(split));
|
tTicketOrderDetailVo.setTouristList(tTourists);
|
|
List<TTicketCode> tTicketCodes = tTicketCodeService.list(new LambdaQueryWrapper<TTicketCode>().eq(TTicketCode::getOrderId, id));
|
for (TTicketCode tTicketCode : tTicketCodes) {
|
tTourists.stream().filter(tTourist -> tTourist.getId().equals(tTicketCode.getTouristId())).findFirst().ifPresent(tTourist ->
|
{
|
tTicketCode.setName(tTourist.getName());
|
tTicketCode.setIdCard(tTourist.getIdCard());
|
}
|
|
);
|
}
|
tTicketOrderDetailVo.setTicketInfoVo(tTicketCodes);
|
}
|
|
return R.ok(tTicketOrderDetailVo);
|
}
|
|
}
|