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.annotation.Log; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; 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; /** *

* 前端控制器 *

* * @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> pageList(@RequestBody TTicketOrderQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); Page pageInfo = tTicketOrderService.pageList(page, query); return R.ok(pageInfo); } @ApiOperation(value = "订单详情") @GetMapping(value = "/detail/{id}") public R 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 tTourists = tTouristService.listByIds(Arrays.asList(split)); tTicketOrderDetailVo.setTouristList(tTourists); List tTicketCodes = tTicketCodeService.list(new LambdaQueryWrapper().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); } @ApiOperation(value = "门票退款订单分页列表") @PostMapping(value = "/refundPageList") public R> refundPageList(@RequestBody TTicketOrderQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); Page pageInfo = tTicketOrderService.refundPageList(page, query); return R.ok(pageInfo); } @ApiOperation(value = "订单退款审核") @PostMapping(value = "/refundAudit") @Log(title = "订单退款审核", businessType = BusinessType.UPDATE) public R refundAudit(@RequestBody TTicketOrder tTicketOrder) { TTicketOrder ticketOrder = tTicketOrderService.getById(tTicketOrder.getId()); if(ticketOrder.getStatus()!=3){ return R.fail("订单状态异常"); } if(tTicketOrder.getStatus()==null ){ return R.fail("订单状态异常"); } if(tTicketOrder.getStatus()<4 || tTicketOrder.getStatus()>5){ return R.fail("订单状态异常"); } ticketOrder.setStatus(tTicketOrder.getStatus()); ticketOrder.setRefundMoney(tTicketOrder.getRefundMoney()); ticketOrder.setHandlingFee(tTicketOrder.getHandlingFee()); ticketOrder.setAuditContent(tTicketOrder.getAuditContent()); tTicketOrderService.updateById(ticketOrder); return R.ok("操作成功"); } }