Files
FrameTour-BE/src/main/java/com/ycwl/basic/pricing/controller/VoucherManagementController.java
Jerry Yan b323450708 refactor(paging): 重构分页查询使用 PageHelper
-将 MyBatis-Plus 的分页插件替换为 PageHelper
- 更新了相关控制器、服务接口和实现类中的分页查询方法
- 优化了分页查询的逻辑,提高了代码的可读性和维护性
2025-09-17 12:53:32 +08:00

103 lines
4.3 KiB
Java

package com.ycwl.basic.pricing.controller;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReq;
import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReqV2;
import com.ycwl.basic.pricing.dto.req.VoucherBatchQueryReq;
import com.ycwl.basic.pricing.dto.req.VoucherClaimReq;
import com.ycwl.basic.pricing.dto.req.VoucherCodeQueryReq;
import com.ycwl.basic.pricing.dto.resp.VoucherBatchResp;
import com.ycwl.basic.pricing.dto.resp.VoucherBatchStatsResp;
import com.ycwl.basic.pricing.dto.resp.VoucherCodeResp;
import com.ycwl.basic.pricing.service.VoucherBatchService;
import com.ycwl.basic.pricing.service.VoucherCodeService;
import com.ycwl.basic.utils.ApiResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/pricing/voucher")
public class VoucherManagementController {
@Autowired
@Lazy
private VoucherBatchService voucherBatchService;
@Autowired
@Lazy
private VoucherCodeService voucherCodeService;
@PostMapping("/batch/create")
public ApiResponse<Long> createBatch(@RequestBody VoucherBatchCreateReq req) {
Long batchId = voucherBatchService.createBatch(req);
return ApiResponse.success(batchId);
}
@PostMapping("/batch/create/v2")
public ApiResponse<Long> createBatchV2(@RequestBody VoucherBatchCreateReqV2 req) {
Long batchId = voucherBatchService.createBatchV2(req);
return ApiResponse.success(batchId);
}
@PostMapping("/batch/list")
public ApiResponse<PageInfo<VoucherBatchResp>> getBatchList(@RequestBody VoucherBatchQueryReq req) {
PageInfo<VoucherBatchResp> page = voucherBatchService.queryBatchList(req);
return ApiResponse.success(page);
}
@GetMapping("/batch/{id}")
public ApiResponse<VoucherBatchResp> getBatchDetail(@PathVariable Long id) {
VoucherBatchResp batch = voucherBatchService.getBatchDetail(id);
return ApiResponse.success(batch);
}
@GetMapping("/batch/{id}/stats")
public ApiResponse<VoucherBatchStatsResp> getBatchStats(@PathVariable Long id) {
VoucherBatchStatsResp stats = voucherBatchService.getBatchStats(id);
return ApiResponse.success(stats);
}
@PutMapping("/batch/{id}/status")
public ApiResponse<Void> updateBatchStatus(@PathVariable Long id, @RequestParam Integer status) {
voucherBatchService.updateBatchStatus(id, status);
return ApiResponse.success(null);
}
@PostMapping("/codes")
public ApiResponse<PageInfo<VoucherCodeResp>> getCodeList(@RequestBody VoucherCodeQueryReq req) {
PageInfo<VoucherCodeResp> page = voucherCodeService.queryCodeList(req);
return ApiResponse.success(page);
}
@PutMapping("/code/{id}/use")
public ApiResponse<Void> markCodeAsUsed(@PathVariable Long id, @RequestParam(required = false) String remark) {
voucherCodeService.markCodeAsUsed(id, remark);
return ApiResponse.success(null);
}
@GetMapping("/scenic/{scenicId}/users")
public ApiResponse<PageInfo<VoucherCodeResp>> getUsersInScenic(@PathVariable Long scenicId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
VoucherCodeQueryReq req = new VoucherCodeQueryReq();
req.setScenicId(scenicId);
req.setPageNum(pageNum);
req.setPageSize(pageSize);
PageInfo<VoucherCodeResp> page = voucherCodeService.queryCodeList(req);
return ApiResponse.success(page);
}
@PostMapping("/mobile/claim")
public ApiResponse<VoucherCodeResp> claimVoucher(@RequestBody VoucherClaimReq req) {
VoucherCodeResp result = voucherCodeService.claimVoucher(req);
return ApiResponse.success(result);
}
@GetMapping("/mobile/my-codes")
public ApiResponse<List<VoucherCodeResp>> getMyVoucherCodes(@RequestParam Long faceId) {
List<VoucherCodeResp> codes = voucherCodeService.getMyVoucherCodes(faceId);
return ApiResponse.success(codes);
}
}