liujie
2026-09-11 4f6f15b818704079ff2e4e4719b798f48d68a335
backend/src/main/java/com/tourguide/api/admin/AdminFinanceController.java
@@ -2,12 +2,15 @@
import com.tourguide.common.api.ApiResponse;
import com.tourguide.common.api.PageResponse;
import com.tourguide.common.exception.BusinessException;
import com.tourguide.modules.finance.dto.FinanceLedgerPageResponse;
import com.tourguide.modules.finance.dto.WithdrawalProcessRequest;
import com.tourguide.modules.finance.dto.WithdrawalResponse;
import com.tourguide.modules.finance.service.AdminFinanceService;
import com.tourguide.security.AppUserPrincipal;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
@@ -50,7 +53,14 @@
                                                         @RequestParam(required = false) String keyword,
                                                         @RequestParam(required = false) String paymentMethod,
                                                         @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate startDate,
                                                         @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate endDate) {
                                                         @RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate endDate,
                                                         Authentication authentication) {
        String requiredAuthority = "REFUND".equalsIgnoreCase(direction)
                ? "PERM_FINANCE_REFUND_VIEW" : "PERM_FINANCE_DETAIL_VIEW";
        if (authentication.getAuthorities().stream()
                .noneMatch(authority -> requiredAuthority.equals(authority.getAuthority()))) {
            throw new BusinessException(403, "无权访问该财务流水");
        }
        return ApiResponse.success(financeService.ledger(page, size, direction, keyword, paymentMethod, startDate, endDate));
    }
@@ -87,7 +97,7 @@
    @PutMapping("/withdrawals/{id}/process")
    public ApiResponse<WithdrawalResponse> processWithdrawal(@PathVariable Long id,
                                                              @Valid @RequestBody WithdrawalProcessRequest request,
                                                              Authentication authentication) {
        return ApiResponse.success(financeService.processWithdrawal(id, request, authentication.getName()));
                                                              @AuthenticationPrincipal AppUserPrincipal principal) {
        return ApiResponse.success(financeService.processWithdrawal(id, request, principal.getUsername()));
    }
}