From 149f29f8a56716f86df7b79d70fe56ce5a38e79f Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 13 Mar 2021 21:17:37 +0800 Subject: [PATCH] show timezone in transaction list page if the timezone of transaction does not equal with client current timezone --- pkg/api/transactions.go | 15 +++++++------ pkg/models/transaction.go | 3 +++ pkg/services/transactions.go | 1 + src/views/mobile/transactions/List.vue | 31 +++++++++++++++++++++++++- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/pkg/api/transactions.go b/pkg/api/transactions.go index c78be752..608ded93 100644 --- a/pkg/api/transactions.go +++ b/pkg/api/transactions.go @@ -603,13 +603,14 @@ func (a *TransactionsApi) createNewTransactionModel(uid int64, transactionCreate } transaction := &models.Transaction{ - Uid: uid, - Type: transactionDbType, - CategoryId: transactionCreateReq.CategoryId, - TransactionTime: utils.GetMinTransactionTimeFromUnixTime(transactionCreateReq.Time), - AccountId: transactionCreateReq.SourceAccountId, - Amount: transactionCreateReq.SourceAmount, - Comment: transactionCreateReq.Comment, + Uid: uid, + Type: transactionDbType, + CategoryId: transactionCreateReq.CategoryId, + TransactionTime: utils.GetMinTransactionTimeFromUnixTime(transactionCreateReq.Time), + TimezoneUtcOffset: transactionCreateReq.UtcOffset, + AccountId: transactionCreateReq.SourceAccountId, + Amount: transactionCreateReq.SourceAmount, + Comment: transactionCreateReq.Comment, } if transactionCreateReq.Type == models.TRANSACTION_TYPE_TRANSFER { diff --git a/pkg/models/transaction.go b/pkg/models/transaction.go index 870217b2..bc3307b1 100644 --- a/pkg/models/transaction.go +++ b/pkg/models/transaction.go @@ -34,6 +34,7 @@ type Transaction struct { CategoryId int64 `xorm:"INDEX(IDX_transaction_uid_deleted_category_id_time) NOT NULL"` AccountId int64 `xorm:"INDEX(IDX_transaction_uid_deleted_account_id_time) NOT NULL"` TransactionTime int64 `xorm:"UNIQUE(UQE_transaction_uid_time) INDEX(IDX_transaction_uid_deleted_time) INDEX(IDX_transaction_uid_deleted_type_time) INDEX(IDX_transaction_uid_deleted_category_id_time) INDEX(IDX_transaction_uid_deleted_account_id_time) NOT NULL"` + TimezoneUtcOffset int16 `xorm:"NOT NULL"` Amount int64 `xorm:"NOT NULL"` RelatedId int64 `xorm:"NOT NULL"` RelatedAccountId int64 `xorm:"NOT NULL"` @@ -119,6 +120,7 @@ type TransactionInfoResponse struct { Type TransactionType `json:"type"` CategoryId int64 `json:"categoryId,string"` Time int64 `json:"time"` + UtcOffset int16 `json:"utcOffset"` SourceAccountId int64 `json:"sourceAccountId,string"` DestinationAccountId int64 `json:"destinationAccountId,string,omitempty"` SourceAmount int64 `json:"sourceAmount"` @@ -194,6 +196,7 @@ func (t *Transaction) ToTransactionInfoResponse(tagIds []int64, editable bool) * Type: transactionType, CategoryId: t.CategoryId, Time: utils.GetUnixTimeFromTransactionTime(t.TransactionTime), + UtcOffset: t.TimezoneUtcOffset, SourceAccountId: sourceAccountId, DestinationAccountId: destinationAccountId, SourceAmount: sourceAmount, diff --git a/pkg/services/transactions.go b/pkg/services/transactions.go index bafa722f..4c2e66eb 100644 --- a/pkg/services/transactions.go +++ b/pkg/services/transactions.go @@ -1001,6 +1001,7 @@ func (s *TransactionService) GetRelatedTransferTransaction(originalTransaction * Type: relatedType, CategoryId: originalTransaction.CategoryId, TransactionTime: relatedTransactionTime, + TimezoneUtcOffset: originalTransaction.TimezoneUtcOffset, AccountId: originalTransaction.RelatedAccountId, Amount: originalTransaction.RelatedAccountAmount, RelatedId: originalTransaction.TransactionId, diff --git a/src/views/mobile/transactions/List.vue b/src/views/mobile/transactions/List.vue index 1ef0e381..9e12544e 100644 --- a/src/views/mobile/transactions/List.vue +++ b/src/views/mobile/transactions/List.vue @@ -320,7 +320,8 @@ {{ transaction.comment }}