You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.3 KiB
62 lines
1.3 KiB
package service |
|
|
|
import ( |
|
"context" |
|
"time" |
|
|
|
"go-common/app/job/main/ugcpay/conf" |
|
"go-common/library/log" |
|
) |
|
|
|
func dayRange(offset int) (from, to time.Time) { |
|
tmp := time.Now().AddDate(0, 0, offset) |
|
from = time.Date(tmp.Year(), tmp.Month(), tmp.Day(), 0, 0, 0, 0, time.Local) |
|
to = from.Add(24*time.Hour - 1) |
|
return |
|
} |
|
|
|
func monthRange(offset int) (from, to time.Time) { |
|
tmp := time.Now().AddDate(0, offset, 0) |
|
from = time.Date(tmp.Year(), tmp.Month(), 1, 0, 0, 0, 0, time.Local) |
|
to = from.AddDate(0, 1, 0).Add(-1) |
|
return |
|
} |
|
|
|
func dailyBillVer(t time.Time) int64 { |
|
// 2006-01-02 15:04:05 |
|
return int64(t.Year()*10000 + int(t.Month())*100 + t.Day()) |
|
} |
|
|
|
func monthlyBillVer(t time.Time) int64 { |
|
return int64(t.Year()*100 + int(t.Month())) |
|
} |
|
|
|
func runCAS(ctx context.Context, fn func(ctx context.Context) (effected bool, err error)) (err error) { |
|
times := conf.Conf.Biz.RunCASTimes |
|
if times <= 0 { |
|
times = 2 |
|
} |
|
effected := false |
|
for times > 0 { |
|
times-- |
|
if effected, err = fn(ctx); err != nil { |
|
return |
|
} |
|
if effected { |
|
return |
|
} |
|
} |
|
if times <= 0 { |
|
log.Error("runCAS failed!!!") |
|
} |
|
return |
|
} |
|
|
|
func calcAssetIncome(fee int64) (userIncome int64, bizIncome int64) { |
|
if fee <= 0 { |
|
return 0, 0 |
|
} |
|
userIncome = int64((1.0 - conf.Conf.Biz.Tax.AssetRate) * float64(fee)) |
|
bizIncome = fee - userIncome |
|
return |
|
}
|
|
|