54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"go-common/app/job/main/vip/model"
|
|
"go-common/library/log"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
//ScanSalaryLog scan salary log.
|
|
func (s *Service) ScanSalaryLog(c context.Context) (err error) {
|
|
var (
|
|
dv = time.Now().Format("2006_01")
|
|
olds []*model.OldSalaryLog
|
|
size = 1000
|
|
endID = 0
|
|
)
|
|
if endID, err = s.dao.SalaryLogMaxID(context.TODO(), dv); err != nil {
|
|
err = errors.WithStack(err)
|
|
return
|
|
}
|
|
page := endID / size
|
|
if endID%size != 0 {
|
|
page++
|
|
}
|
|
for i := 0; i < page; {
|
|
startID := i * size
|
|
eID := (i + 1) * size
|
|
if olds, err = s.dao.SelOldSalaryList(context.TODO(), startID, eID, dv); err != nil {
|
|
err = errors.WithStack(err)
|
|
return
|
|
}
|
|
i++
|
|
for _, v := range olds {
|
|
l := &model.VideoCouponSalaryLog{
|
|
Mid: v.Mid,
|
|
CouponCount: v.CouponCount,
|
|
State: v.State,
|
|
Type: v.Type,
|
|
CouponType: model.SalaryCouponType,
|
|
}
|
|
if err = s.dao.AddSalaryLog(context.TODO(), l, dv); err != nil {
|
|
err = errors.WithStack(err)
|
|
log.Error("+%v", err)
|
|
continue
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|