package com.tcm.training.admin.app.points.controller; import com.tcm.training.admin.app.points.service.AppPointsExchangeOrderService; import com.tcm.training.admin.app.points.vo.AppPointsExchangeOrderDetailVO; import com.tcm.training.admin.app.points.vo.AppPointsExchangeOrderItemVO; import com.tcm.training.admin.common.ApiResponse; import com.tcm.training.admin.common.PageResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * APP 兑换订单接口。 */ @Validated @RestController @RequestMapping({"/api/app/points", "/api/v1/app/points"}) public class AppPointsExchangeOrderController { private final AppPointsExchangeOrderService appPointsExchangeOrderService; /** * 注入 APP 兑换订单服务。 */ public AppPointsExchangeOrderController(AppPointsExchangeOrderService appPointsExchangeOrderService) { this.appPointsExchangeOrderService = appPointsExchangeOrderService; } /** * 分页获取当前登录用户的兑换订单列表。 */ @GetMapping("/exchange-orders") public ApiResponse> page( @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "10") int pageSize, @RequestParam(required = false) Integer status) { return ApiResponse.ok(appPointsExchangeOrderService.page(page, pageSize, status)); } /** * 获取当前登录用户的兑换订单详情。 */ @GetMapping("/exchange-orders/{id}") public ApiResponse detail(@PathVariable("id") Long id) { return ApiResponse.ok(appPointsExchangeOrderService.detail(id)); } /** * 确认当前兑换订单已取货。 */ @PostMapping("/exchange-orders/{id}/confirm-received") public ApiResponse confirmReceived(@PathVariable("id") Long id) { appPointsExchangeOrderService.confirmReceived(id); return ApiResponse.ok(null); } /** * 删除当前登录用户的已完成兑换订单。 */ @DeleteMapping("/exchange-orders/{id}") public ApiResponse delete(@PathVariable("id") Long id) { appPointsExchangeOrderService.delete(id); return ApiResponse.ok(null); } }