code refactor

This commit is contained in:
MaysWind
2024-04-04 20:42:40 +08:00
parent 46caf46ef7
commit 28f113d992
3 changed files with 27 additions and 7 deletions
+1 -7
View File
@@ -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)
+17
View File
@@ -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)
+9
View File
@@ -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)