package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.model.TTourist; import com.ruoyi.system.service.TTouristService; import com.ruoyi.system.vo.TicketListVo; import com.ruoyi.system.utils.ticketUtil.TicketUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 下单接口 * * @author mitao * @since 2025-12-16 */ @Slf4j @RestController @RequestMapping("/ticket") @Api(tags = "票务模块") @Validated @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class TicketController { private final TokenService tokenService; private final TTouristService tTouristService; private final TicketUtil ticketUtil; @ApiOperation(value = "获取游客信息", response = TTourist.class) @GetMapping("/touristList") public R> touristList() { Integer userId = tokenService.getLoginUserApplet().getUserId(); List list = tTouristService.list(new LambdaQueryWrapper().eq(TTourist::getAppUserId, userId)); return R.ok(list); } @ApiOperation(value = "获取游客详情信息", response = TTourist.class) @GetMapping("/touristDetail/{id}") public R touristDetail(@PathVariable Integer id) { TTourist tTourist = tTouristService.getById(id); return R.ok(tTourist); } @ApiOperation(value = "添加游客信息", response = TTourist.class) @PostMapping("/addTourist") public R addTourist(@RequestBody TTourist tTourist) { Integer userId = tokenService.getLoginUserApplet().getUserId(); tTourist.setAppUserId(userId); boolean save = tTouristService.save(tTourist); if (!save) { return R.fail("添加失败"); } return R.ok(tTourist); } @ApiOperation(value = "删除游客信息", response = TTourist.class) @DeleteMapping("/deleteTourist/{id}") public R deleteTourist(@PathVariable Integer id) { boolean remove = tTouristService.removeById(id); if (!remove) { return R.fail("删除失败"); } return R.ok(); } @ApiOperation(value = "修改游客信息", response = TTourist.class) @PostMapping("/updateTourist") public R updateTourist(@RequestBody TTourist tTourist) { boolean update = tTouristService.updateById(tTourist); if (!update) { return R.fail("修改失败"); } return R.ok(tTourist); } @ApiOperation(value = "游客设置默认") @GetMapping("/setDefaultTourist/{id}") public R setDefaultTourist(@PathVariable Integer id) { Integer userId = tokenService.getLoginUserApplet().getUserId(); boolean update = tTouristService.update(new LambdaUpdateWrapper().eq(TTourist::getAppUserId, userId).eq(TTourist::getId, id).set(TTourist::getIsDefault, 1)); if (!update) { return R.fail("设置失败"); } boolean update1 = tTouristService.update( new LambdaUpdateWrapper().eq(TTourist::getAppUserId, userId).ne(TTourist::getId, id).set(TTourist::getIsDefault, 0)); if (!update1) { return R.fail("设置失败"); } return R.ok(); } @ApiOperation(value = "获取门票信息", response = TicketListVo.class) @GetMapping("/ticketList") public R> ticketList() throws Exception { List list = ticketUtil.getTicketList(); return R.ok(list); } }