feat: 添加交易和周期性交易的HTTP处理器。
This commit is contained in:
@@ -5,10 +5,10 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"accounting-app/pkg/api"
|
|
||||||
"accounting-app/internal/models"
|
"accounting-app/internal/models"
|
||||||
"accounting-app/internal/repository"
|
"accounting-app/internal/repository"
|
||||||
"accounting-app/internal/service"
|
"accounting-app/internal/service"
|
||||||
|
"accounting-app/pkg/api"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
@@ -55,7 +55,7 @@ type UpdateRecurringTransactionRequest struct {
|
|||||||
|
|
||||||
// CreateRecurringTransaction handles POST /api/v1/recurring-transactions
|
// CreateRecurringTransaction handles POST /api/v1/recurring-transactions
|
||||||
// Creates a new recurring transaction with the provided data
|
// 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) {
|
func (h *RecurringTransactionHandler) CreateRecurringTransaction(c *gin.Context) {
|
||||||
var req CreateRecurringTransactionRequest
|
var req CreateRecurringTransactionRequest
|
||||||
if err := c.ShouldBindJSON(&req); err != nil {
|
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
|
// UpdateRecurringTransaction handles PUT /api/v1/recurring-transactions/:id
|
||||||
// Updates an existing recurring transaction with the provided data
|
// 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) {
|
func (h *RecurringTransactionHandler) UpdateRecurringTransaction(c *gin.Context) {
|
||||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -236,7 +236,7 @@ func (h *RecurringTransactionHandler) UpdateRecurringTransaction(c *gin.Context)
|
|||||||
|
|
||||||
// DeleteRecurringTransaction handles DELETE /api/v1/recurring-transactions/:id
|
// DeleteRecurringTransaction handles DELETE /api/v1/recurring-transactions/:id
|
||||||
// Deletes a recurring transaction by ID
|
// Deletes a recurring transaction by ID
|
||||||
// Validates: Requirements 1.2.4 - 鍒犻櫎鍛ㄦ湡鎬т氦鏄?
|
// Validates: Requirements 1.2.4 - 删除周期性交易
|
||||||
func (h *RecurringTransactionHandler) DeleteRecurringTransaction(c *gin.Context) {
|
func (h *RecurringTransactionHandler) DeleteRecurringTransaction(c *gin.Context) {
|
||||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -267,7 +267,7 @@ func (h *RecurringTransactionHandler) DeleteRecurringTransaction(c *gin.Context)
|
|||||||
// ProcessDueRecurringTransactions handles POST /api/v1/recurring-transactions/process
|
// ProcessDueRecurringTransactions handles POST /api/v1/recurring-transactions/process
|
||||||
// Processes all due recurring transactions and generates actual transactions
|
// Processes all due recurring transactions and generates actual transactions
|
||||||
// For income transactions, it also triggers matching allocation rules
|
// 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) {
|
func (h *RecurringTransactionHandler) ProcessDueRecurringTransactions(c *gin.Context) {
|
||||||
// Get current time or use provided time for testing
|
// Get current time or use provided time for testing
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ type UpdateTransactionRequest struct {
|
|||||||
|
|
||||||
// CreateTransaction handles POST /api/v1/transactions
|
// CreateTransaction handles POST /api/v1/transactions
|
||||||
// Creates a new transaction with the provided data
|
// Creates a new transaction with the provided data
|
||||||
// Validates: Requirements 1.1 - 鍒涘缓浜ゆ槗璁板綍
|
// Validates: Requirements 1.1 - 创建交易记录
|
||||||
func (h *TransactionHandler) CreateTransaction(c *gin.Context) {
|
func (h *TransactionHandler) CreateTransaction(c *gin.Context) {
|
||||||
var req CreateTransactionRequest
|
var req CreateTransactionRequest
|
||||||
if err := c.ShouldBindJSON(&req); err != nil {
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
@@ -118,7 +118,7 @@ func (h *TransactionHandler) CreateTransaction(c *gin.Context) {
|
|||||||
|
|
||||||
// GetTransactions handles GET /api/v1/transactions
|
// GetTransactions handles GET /api/v1/transactions
|
||||||
// Returns a list of transactions with pagination and filtering
|
// Returns a list of transactions with pagination and filtering
|
||||||
// Validates: Requirements 1.4 - 鏌ョ湅浜ゆ槗鍒楄〃锛堟寜鏃堕棿鍊掑簭锛?
|
// Validates: Requirements 1.4 - 查看交易列表(按时间倒序)
|
||||||
func (h *TransactionHandler) GetTransactions(c *gin.Context) {
|
func (h *TransactionHandler) GetTransactions(c *gin.Context) {
|
||||||
// Parse query parameters
|
// Parse query parameters
|
||||||
input := service.TransactionListInput{}
|
input := service.TransactionListInput{}
|
||||||
@@ -276,7 +276,7 @@ func (h *TransactionHandler) GetTransaction(c *gin.Context) {
|
|||||||
|
|
||||||
// UpdateTransaction handles PUT /api/v1/transactions/:id
|
// UpdateTransaction handles PUT /api/v1/transactions/:id
|
||||||
// Updates an existing transaction with the provided data
|
// Updates an existing transaction with the provided data
|
||||||
// Validates: Requirements 1.2 - 缂栬緫浜ゆ槗璁板綍
|
// Validates: Requirements 1.2 - 编辑交易记录
|
||||||
func (h *TransactionHandler) UpdateTransaction(c *gin.Context) {
|
func (h *TransactionHandler) UpdateTransaction(c *gin.Context) {
|
||||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -329,7 +329,7 @@ func (h *TransactionHandler) UpdateTransaction(c *gin.Context) {
|
|||||||
|
|
||||||
// DeleteTransaction handles DELETE /api/v1/transactions/:id
|
// DeleteTransaction handles DELETE /api/v1/transactions/:id
|
||||||
// Deletes a transaction by ID
|
// Deletes a transaction by ID
|
||||||
// Validates: Requirements 1.3 - 鍒犻櫎浜ゆ槗璁板綍
|
// Validates: Requirements 1.3 - 删除交易记录
|
||||||
func (h *TransactionHandler) DeleteTransaction(c *gin.Context) {
|
func (h *TransactionHandler) DeleteTransaction(c *gin.Context) {
|
||||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user