code refactor
This commit is contained in:
@@ -111,18 +111,12 @@ func (s *TransactionService) GetTransactionsInMonthByPage(c *core.Context, uid i
|
||||
return nil, errs.ErrUserIdInvalid
|
||||
}
|
||||
|
||||
startMinUnixTime, err := utils.ParseFromLongDateTimeToMinUnixTime(fmt.Sprintf("%d-%02d-01 00:00:00", year, month))
|
||||
startMaxUnixTime, err := utils.ParseFromLongDateTimeToMaxUnixTime(fmt.Sprintf("%d-%02d-01 00:00:00", year, month))
|
||||
minTransactionTime, maxTransactionTime, err := utils.GetTransactionTimeRangeByYearMonth(year, month)
|
||||
|
||||
if err != nil {
|
||||
return nil, errs.ErrSystemError
|
||||
}
|
||||
|
||||
endMaxUnixTime := startMaxUnixTime.AddDate(0, 1, 0)
|
||||
|
||||
minTransactionTime := utils.GetMinTransactionTimeFromUnixTime(startMinUnixTime.Unix())
|
||||
maxTransactionTime := utils.GetMinTransactionTimeFromUnixTime(endMaxUnixTime.Unix()) - 1
|
||||
|
||||
var transactions []*models.Transaction
|
||||
|
||||
condition, conditionParams := s.getTransactionQueryCondition(uid, maxTransactionTime, minTransactionTime, transactionType, categoryIds, accountIds, keyword, true)
|
||||
|
||||
@@ -177,6 +177,23 @@ func GetUnixTimeFromTransactionTime(transactionTime int64) int64 {
|
||||
return transactionTime / 1000
|
||||
}
|
||||
|
||||
// GetTransactionTimeRangeByYearMonth returns the transaction time range by specified year and month
|
||||
func GetTransactionTimeRangeByYearMonth(year int32, month int32) (int64, int64, error) {
|
||||
startMinUnixTime, err := ParseFromLongDateTimeToMinUnixTime(fmt.Sprintf("%d-%02d-01 00:00:00", year, month))
|
||||
startMaxUnixTime, err := ParseFromLongDateTimeToMaxUnixTime(fmt.Sprintf("%d-%02d-01 00:00:00", year, month))
|
||||
|
||||
if err != nil {
|
||||
return 0, 0, err
|
||||
}
|
||||
|
||||
endMaxUnixTime := startMaxUnixTime.AddDate(0, 1, 0)
|
||||
|
||||
minTransactionTime := GetMinTransactionTimeFromUnixTime(startMinUnixTime.Unix())
|
||||
maxTransactionTime := GetMinTransactionTimeFromUnixTime(endMaxUnixTime.Unix()) - 1
|
||||
|
||||
return minTransactionTime, maxTransactionTime, nil
|
||||
}
|
||||
|
||||
// parseFromUnixTime parses a unix time and returns a golang time struct
|
||||
func parseFromUnixTime(unixTime int64) time.Time {
|
||||
return time.Unix(unixTime, 0)
|
||||
|
||||
@@ -216,6 +216,15 @@ func TestGetUnixTimeFromTransactionTime(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetTransactionTimeRangeByYearMonth(t *testing.T) {
|
||||
expectedMinValue := int64(1704016800000)
|
||||
expectedMaxValue := int64(1706788799999)
|
||||
actualMinValue, actualMaxValue, err := GetTransactionTimeRangeByYearMonth(2024, 1)
|
||||
assert.Equal(t, nil, err)
|
||||
assert.Equal(t, expectedMinValue, actualMinValue)
|
||||
assert.Equal(t, expectedMaxValue, actualMaxValue)
|
||||
}
|
||||
|
||||
func TestParseFromUnixTime(t *testing.T) {
|
||||
expectedValue := int64(1617228083)
|
||||
actualTime := parseFromUnixTime(expectedValue)
|
||||
|
||||
Reference in New Issue
Block a user