enterprise/worker/checkin.go

57 lines
1.2 KiB
Go

package worker
import (
"enterprise/common/config"
"enterprise/common/dao"
"enterprise/common/model"
"enterprise/common/qyweixin"
log "github.com/sirupsen/logrus"
)
func SyncCheckin(day string) error {
cfg := config.GetConfig()
qyw := qyweixin.NewQyWeixin(cfg.QyWeixin.Corpid, cfg.QyWeixin.CheckinSecret)
users, err := qyw.GetCheckinEmployee([]string{"1"})
if err != nil {
return err
}
checkinDao := dao.NewCheckinDao()
for _, user := range users {
isNew := false
checkin, err := checkinDao.GetByDay(user, day)
if err != nil {
log.Errorf("db error :%s", err.Error())
continue
}
if checkin == nil {
checkin = new(model.Checkin)
checkin.Day = day
checkin.UserId = user
isNew = true
}
realCheckin, err := qyw.GetCheckinData(day, user)
if err != nil {
log.Errorf("qyweixin get checkin error :%s", err.Error())
continue
}
if realCheckin.StartTime != 0 {
checkin.StartTime = realCheckin.StartTime
}
if realCheckin.EndTime != 0 {
checkin.EndTime = realCheckin.EndTime
}
if isNew {
_, err = checkinDao.Create(checkin)
} else {
err = checkinDao.Update(checkin)
}
if err != nil {
log.Errorf("db error :%s", err.Error())
}
}
return nil
}