feat: 添加交易和周期性交易的HTTP处理器。

This commit is contained in:
2026-01-28 15:54:33 +08:00
parent 57def08201
commit a9ee8856ba
2 changed files with 9 additions and 9 deletions

View File

@@ -5,10 +5,10 @@ import (
"strconv"
"time"
"accounting-app/pkg/api"
"accounting-app/internal/models"
"accounting-app/internal/repository"
"accounting-app/internal/service"
"accounting-app/pkg/api"
"github.com/gin-gonic/gin"
)
@@ -55,7 +55,7 @@ type UpdateRecurringTransactionRequest struct {
// CreateRecurringTransaction handles POST /api/v1/recurring-transactions
// Creates a new recurring transaction with the provided data
// Validates: Requirements 1.2.1 - 鍒涘缓鍛ㄦ湡鎬т氦鏄撳苟淇濆瓨鍛ㄦ湡瑙勫垯
// Validates: Requirements 1.2.1 - 创建周期性交易并保存周期规则
func (h *RecurringTransactionHandler) CreateRecurringTransaction(c *gin.Context) {
var req CreateRecurringTransactionRequest
if err := c.ShouldBindJSON(&req); err != nil {
@@ -171,7 +171,7 @@ func (h *RecurringTransactionHandler) GetRecurringTransaction(c *gin.Context) {
// UpdateRecurringTransaction handles PUT /api/v1/recurring-transactions/:id
// Updates an existing recurring transaction with the provided data
// Validates: Requirements 1.2.3 - 缂栬緫鍛ㄦ湡鎬т氦鏄撴ā鏉?
// Validates: Requirements 1.2.3 - 编辑周期性交易模板
func (h *RecurringTransactionHandler) UpdateRecurringTransaction(c *gin.Context) {
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
if err != nil {
@@ -236,7 +236,7 @@ func (h *RecurringTransactionHandler) UpdateRecurringTransaction(c *gin.Context)
// DeleteRecurringTransaction handles DELETE /api/v1/recurring-transactions/:id
// Deletes a recurring transaction by ID
// Validates: Requirements 1.2.4 - 鍒犻櫎鍛ㄦ湡鎬т氦鏄?
// Validates: Requirements 1.2.4 - 删除周期性交易
func (h *RecurringTransactionHandler) DeleteRecurringTransaction(c *gin.Context) {
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
if err != nil {
@@ -267,7 +267,7 @@ func (h *RecurringTransactionHandler) DeleteRecurringTransaction(c *gin.Context)
// ProcessDueRecurringTransactions handles POST /api/v1/recurring-transactions/process
// Processes all due recurring transactions and generates actual transactions
// For income transactions, it also triggers matching allocation rules
// Validates: Requirements 1.2.2 - 鍒拌揪鍛ㄦ湡瑙﹀彂鏃堕棿鑷姩鐢熸垚浜ゆ槗璁板綍
// Validates: Requirements 1.2.2 - 到达周期触发时间自动生成交易记录
func (h *RecurringTransactionHandler) ProcessDueRecurringTransactions(c *gin.Context) {
// Get current time or use provided time for testing
now := time.Now()

View File

@@ -63,7 +63,7 @@ type UpdateTransactionRequest struct {
// CreateTransaction handles POST /api/v1/transactions
// Creates a new transaction with the provided data
// Validates: Requirements 1.1 - 鍒涘缓浜ゆ槗璁板綍
// Validates: Requirements 1.1 - 创建交易记录
func (h *TransactionHandler) CreateTransaction(c *gin.Context) {
var req CreateTransactionRequest
if err := c.ShouldBindJSON(&req); err != nil {
@@ -118,7 +118,7 @@ func (h *TransactionHandler) CreateTransaction(c *gin.Context) {
// GetTransactions handles GET /api/v1/transactions
// Returns a list of transactions with pagination and filtering
// Validates: Requirements 1.4 - 鏌ョ湅浜ゆ槗鍒楄〃锛堟寜鏃堕棿鍊掑簭锛?
// Validates: Requirements 1.4 - 查看交易列表(按时间倒序)
func (h *TransactionHandler) GetTransactions(c *gin.Context) {
// Parse query parameters
input := service.TransactionListInput{}
@@ -276,7 +276,7 @@ func (h *TransactionHandler) GetTransaction(c *gin.Context) {
// UpdateTransaction handles PUT /api/v1/transactions/:id
// Updates an existing transaction with the provided data
// Validates: Requirements 1.2 - 缂栬緫浜ゆ槗璁板綍
// Validates: Requirements 1.2 - 编辑交易记录
func (h *TransactionHandler) UpdateTransaction(c *gin.Context) {
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
if err != nil {
@@ -329,7 +329,7 @@ func (h *TransactionHandler) UpdateTransaction(c *gin.Context) {
// DeleteTransaction handles DELETE /api/v1/transactions/:id
// Deletes a transaction by ID
// Validates: Requirements 1.3 - 鍒犻櫎浜ゆ槗璁板綍
// Validates: Requirements 1.3 - 删除交易记录
func (h *TransactionHandler) DeleteTransaction(c *gin.Context) {
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
if err != nil {