ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/OrderController.java
@@ -4,17 +4,20 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.query.AppletOrderListQuery; import com.ruoyi.system.service.AppletOrderService; import com.ruoyi.system.service.TAppUserService; import com.ruoyi.system.vo.AppletOrderDetailVO; import com.ruoyi.system.service.TTicketOrderService; import com.ruoyi.system.vo.AppletOrderListVO; import com.ruoyi.system.vo.TTicketOrderVo; 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 org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 下单接口 @@ -25,14 +28,14 @@ @Slf4j @RestController @RequestMapping("/order") @Api(tags = "下单模块") @Api(tags = "订单模块") @Validated @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class OrderController { private final TokenService tokenService; private final TAppUserService appUserService; private final AppletOrderService appletOrderService; private final TTicketOrderService tTicketOrderService; /** * 订单列表分页查询 @@ -42,76 +45,13 @@ */ @ApiOperation(value = "订单列表分页查询", response = AppletOrderListVO.class) @PostMapping("/list") public R<Page<AppletOrderListVO>> getOrderList(@RequestBody AppletOrderListQuery query) { public R<Page<TTicketOrderVo>> getOrderList(@RequestBody AppletOrderListQuery query) { Integer userId = tokenService.getLoginUserApplet().getUserId(); Page<AppletOrderListVO> page = appletOrderService.getOrderList(query, userId); Page<TTicketOrderVo> page = tTicketOrderService.getOrderList(query, userId); return R.ok(page); } /** * 实物商品订单详情 * * @param id 订单ID * @return 订单详情 */ @ApiOperation(value = "实物商品订单详情", response = AppletOrderDetailVO.class) @GetMapping("/physical/detail/{id}") public R<AppletOrderDetailVO> getPhysicalOrderDetail(@PathVariable Integer id) { Integer userId = tokenService.getLoginUserApplet().getUserId(); AppletOrderDetailVO detail = appletOrderService.getPhysicalOrderDetail(id, userId); if (detail == null) { return R.fail("订单不存在或无权查看"); } return R.ok(detail); } /** * 大礼包订单详情 * * @param id 订单ID * @return 订单详情 */ @ApiOperation(value = "大礼包订单详情", response = AppletOrderDetailVO.class) @GetMapping("/big-gift/detail/{id}") public R<AppletOrderDetailVO> getBigGiftOrderDetail(@PathVariable Integer id) { Integer userId = tokenService.getLoginUserApplet().getUserId(); AppletOrderDetailVO detail = appletOrderService.getBigGiftOrderDetail(id, userId); if (detail == null) { return R.fail("订单不存在或无权查看"); } return R.ok(detail); } /** * 实物商品确认收货 * * @param id 订单ID * @return 操作结果 */ @ApiOperation(value = "实物商品确认收货") @GetMapping("/physical/confirm/{id}") public R<Void> confirmPhysicalOrder(@PathVariable Integer id) { Integer userId = tokenService.getLoginUserApplet().getUserId(); boolean success = appletOrderService.confirmPhysicalOrder(id, userId); return success ? R.ok() : R.fail("确认收货失败,订单不存在或状态不正确"); } /** * 大礼包确认收货 * * @param id 订单ID * @return 操作结果 */ @ApiOperation(value = "大礼包确认收货") @GetMapping("/big-gift/confirm/{id}") public R<Void> confirmBigGiftOrder(@PathVariable Integer id) { Integer userId = tokenService.getLoginUserApplet().getUserId(); boolean success = appletOrderService.confirmBigGiftOrder(id, userId); return success ? R.ok() : R.fail("确认收货失败,订单不存在或状态不正确"); } } ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TicketController.java
New file @@ -0,0 +1,112 @@ package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.model.TTourist; import com.ruoyi.system.query.AppletOrderListQuery; import com.ruoyi.system.service.TAppUserService; import com.ruoyi.system.service.TTicketOrderService; import com.ruoyi.system.service.TTouristService; import com.ruoyi.system.vo.AppletOrderListVO; import com.ruoyi.system.vo.TTicketOrderVo; 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 TAppUserService appUserService; private final TTouristService tTouristService; @ApiOperation(value = "获取游客信息", response = TTourist.class) @GetMapping("/touristList") public R<List<TTourist>> touristList() { Integer userId = tokenService.getLoginUserApplet().getUserId(); List<TTourist> list = tTouristService.list(new LambdaQueryWrapper<TTourist>().eq(TTourist::getAppUserId, userId)); return R.ok(list); } @ApiOperation(value = "获取游客详情信息", response = TTourist.class) @GetMapping("/touristDetail/{id}") public R<TTourist> touristDetail(@PathVariable Integer id) { TTourist tTourist = tTouristService.getById(id); return R.ok(tTourist); } @ApiOperation(value = "添加游客信息", response = TTourist.class) @PostMapping("/addTourist") public R<TTourist> 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<Void> 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<TTourist> 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<TTourist>().eq(TTourist::getAppUserId, userId).eq(TTourist::getId, id).set(TTourist::getIsDefault, 1)); if (!update) { return R.fail("设置失败"); } boolean update1 = tTouristService.update( new LambdaUpdateWrapper<TTourist>().eq(TTourist::getAppUserId, userId).ne(TTourist::getId, id).set(TTourist::getIsDefault, 0)); if (!update1) { return R.fail("设置失败"); } return R.ok(); } } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTicketOrderMapper.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.system.model.TTicketOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.query.AppletOrderListQuery; import com.ruoyi.system.query.TTicketOrderQuery; import com.ruoyi.system.vo.TTicketOrderVo; import org.apache.ibatis.annotations.Param; @@ -21,4 +22,5 @@ List<TTicketOrderVo> pageList(@Param("page") Page<TTicketOrderVo> page, @Param("query") TTicketOrderQuery query); List<TTicketOrderVo> getOrderList(@Param("page") Page<TTicketOrderVo> page, @Param("query") AppletOrderListQuery query, @Param("userId") Integer userId); } ruoyi-system/src/main/java/com/ruoyi/system/model/TTicketCode.java
@@ -38,6 +38,10 @@ @TableField("code") private String code; @ApiModelProperty(value = "二维码") @TableField("img") private String img; @ApiModelProperty(value = "对应游客id") @TableField("tourist_id") private Integer touristId; ruoyi-system/src/main/java/com/ruoyi/system/query/AppletOrderListQuery.java
@@ -17,6 +17,6 @@ @ApiModel(value = "AppletOrderListQuery", description = "小程序端订单列表查询条件") public class AppletOrderListQuery extends BasePage { @ApiModelProperty(value = "订单状态筛选(null=全部,1=待支付,2=已付定金,3=已支付)") @ApiModelProperty(value = "订单状态筛选(null=全部,0待支付 1已支付(待使用) 2已完成(已使用) 4退款完成)") private Integer status; } ruoyi-system/src/main/java/com/ruoyi/system/service/TTicketOrderService.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.system.model.TTicketOrder; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.query.AppletOrderListQuery; import com.ruoyi.system.query.TTicketOrderQuery; import com.ruoyi.system.vo.TTicketOrderVo; @@ -19,4 +20,6 @@ Page<TTicketOrderVo> pageList(Page<TTicketOrderVo> page, TTicketOrderQuery query); Page<TTicketOrderVo> getOrderList(AppletOrderListQuery query, Integer userId); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTicketOrderServiceImpl.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.system.model.TTicketOrder; import com.ruoyi.system.mapper.TTicketOrderMapper; import com.ruoyi.system.query.AppletOrderListQuery; import com.ruoyi.system.query.TTicketOrderQuery; import com.ruoyi.system.service.TTicketOrderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -28,4 +29,12 @@ page.setRecords( list); return page; } @Override public Page<TTicketOrderVo> getOrderList(AppletOrderListQuery query, Integer userId) { Page<TTicketOrderVo> page = new Page<>(query.getPageNum(), query.getPageSize()); List<TTicketOrderVo> list = this.baseMapper.getOrderList(page,query,userId); page.setRecords(list); return page; } } ruoyi-system/src/main/java/com/ruoyi/system/vo/TTicketOrderVo.java
@@ -43,6 +43,6 @@ @ApiModelProperty("门票信息") private String ticketInfo; @ApiModelProperty("订单状态0待支付 1已支付 2已完成 3退款中 4退款完成 5退款驳回") @ApiModelProperty("订单状态0待支付 1已支付(待使用) 2已完成(已使用) 3退款中 4退款完成(已退款) 5退款驳回") private Integer status; } ruoyi-system/src/main/resources/mapper/system/TTicketOrderMapper.xml
@@ -44,5 +44,14 @@ </if> order by t1.create_time desc </select> <select id="getOrderList" resultType="com.ruoyi.system.vo.TTicketOrderVo"> select t1.id, t1.order_no, t1.create_time, t1.order_price, t1.ticket_info, t1.status from t_ticket_order t1 where t1.disabled = 0 and t1.app_user_id = #{userId} <if test="query.status != null"> and t1.status = #{query.status} </if> order by t1.create_time desc </select> </mapper>