go-common/app/job/main/ugcpay/service/tool.go

63 lines
1.3 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
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
}