package com.nanxiislet.admin.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nanxiislet.admin.common.base.BasePageQuery; import com.nanxiislet.admin.common.exception.BusinessException; import com.nanxiislet.admin.common.result.PageResult; import com.nanxiislet.admin.common.result.R; import com.nanxiislet.admin.common.result.ResultCode; import com.nanxiislet.admin.entity.FinanceExpense; import com.nanxiislet.admin.service.FinanceExpenseService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.web.bind.annotation.*; /** * 支出管理控制器 */ @RestController @RequestMapping("/finance/expense") @Tag(name = "支出管理", description = "支出记录的增删改查") public class FinanceExpenseController { @Resource private FinanceExpenseService expenseService; @GetMapping("/list") @Operation(summary = "支出列表") public R> list(BasePageQuery query) { Page page = expenseService.listPage(query); return R.ok(PageResult.of(page.getRecords(), page.getTotal(), page.getCurrent(), page.getSize())); } @GetMapping("/{id}") @Operation(summary = "支出详情") public R getById(@PathVariable Long id) { FinanceExpense expense = expenseService.getById(id); if (expense == null) { throw new BusinessException(ResultCode.DATA_NOT_EXIST); } return R.ok(expense); } @PostMapping @Operation(summary = "新增支出") public R create(@Valid @RequestBody FinanceExpense expense) { expense.setExpenseNo(expenseService.generateExpenseNo()); expenseService.save(expense); return R.ok(expense); } @PutMapping("/{id}") @Operation(summary = "更新支出") public R update(@PathVariable Long id, @Valid @RequestBody FinanceExpense expense) { expense.setId(id); expenseService.updateById(expense); return R.ok(); } @DeleteMapping("/{id}") @Operation(summary = "删除支出") public R delete(@PathVariable Long id) { expenseService.removeById(id); return R.ok(); } }