package com.tcm.training.admin.app.member.controller; import com.tcm.training.admin.app.member.dto.AppMemberPurchaseRequest; import com.tcm.training.admin.app.member.service.AppMemberPurchaseService; import com.tcm.training.admin.app.member.service.AppMemberOpenPageService; import com.tcm.training.admin.app.member.vo.AppMemberPurchaseOrderItemVO; import com.tcm.training.admin.app.member.vo.AppMemberOpenPageVO; import com.tcm.training.admin.app.member.vo.AppMemberPurchaseResultVO; import com.tcm.training.admin.common.ApiResponse; import com.tcm.training.admin.common.PageResponse; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; /** * APP 会员开通页接口。 */ @Validated @RestController @RequestMapping({"/api/app/member", "/api/v1/app/member"}) public class AppMemberOpenPageController { private final AppMemberOpenPageService appMemberOpenPageService; private final AppMemberPurchaseService appMemberPurchaseService; private final com.tcm.training.admin.member.service.MemberPurchaseOrderAppService memberPurchaseOrderAppService; /** * 注入 APP 会员开通页服务。 */ public AppMemberOpenPageController(AppMemberOpenPageService appMemberOpenPageService, AppMemberPurchaseService appMemberPurchaseService, com.tcm.training.admin.member.service.MemberPurchaseOrderAppService memberPurchaseOrderAppService) { this.appMemberOpenPageService = appMemberOpenPageService; this.appMemberPurchaseService = appMemberPurchaseService; this.memberPurchaseOrderAppService = memberPurchaseOrderAppService; } /** * 获取 APP 会员开通页聚合数据。 */ @GetMapping("/open-page") public ApiResponse getOpenPage() { return ApiResponse.ok(appMemberOpenPageService.getOpenPage()); } /** * 提交 APP 会员购买。 */ @PostMapping("/purchase") public ApiResponse purchase(@Valid @RequestBody AppMemberPurchaseRequest request) { return ApiResponse.ok(appMemberPurchaseService.purchase(request)); } /** * 获取当前登录用户的会员购买记录。 */ @GetMapping("/purchase-orders") public ApiResponse> purchaseOrders( @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "20") int pageSize) { return ApiResponse.ok(memberPurchaseOrderAppService.appUserPage(page, pageSize)); } }