From 8fa7509eb537adeb66d9c9a7893d97e6d50e536f Mon Sep 17 00:00:00 2001 From: jiangyong Date: Mon, 10 Mar 2025 00:12:57 +0800 Subject: [PATCH] checkinrule --- qyweixin/app_checkin.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/qyweixin/app_checkin.go b/qyweixin/app_checkin.go index d56820d..03f08fb 100644 --- a/qyweixin/app_checkin.go +++ b/qyweixin/app_checkin.go @@ -163,7 +163,7 @@ func (q *AppCheckin) GetCheckinDataV2(startDay, endDay string, userIds []string) reqData := make(map[string]interface{}) reqData["starttime"] = dayTime.Unix() - reqData["endtime"] = endTime.Unix() + 86400 + reqData["endtime"] = endTime.Unix() + 86400 - 1 reqData["useridlist"] = userIds reqUrl := fmt.Sprintf("https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckin_daydata?access_token=%s", q.GetToken()) rspBody, err := util.HttpPostJson(reqUrl, nil, []byte(goutil.EncodeJSON(reqData))) @@ -178,6 +178,11 @@ func (q *AppCheckin) GetCheckinDataV2(startDay, endDay string, userIds []string) userDatas := make([]*UserCheckIn, 0) for _, dat := range g.Get("datas").Array() { + + ruleCheckinTimes := dat.Get("base_info.rule_info.checkintime").Array() + if len(ruleCheckinTimes) < 2 { + continue + } userData := new(UserCheckIn) dayTimestamp := dat.Get("base_info.date").Int() userId := dat.Get("base_info.acctid").String() @@ -205,13 +210,10 @@ func (q *AppCheckin) GetCheckinDataV2(startDay, endDay string, userIds []string) } if earliestTime == lastestTime { - ruleCheckinTimes := dat.Get("base_info.rule_info.checkintime").Array() - if len(ruleCheckinTimes) > 2 { - if earliestTime < ruleCheckinTimes[1].Get("work_sec").Int() { - userData.Exception = "下班未打卡" - } else { - userData.Exception = "上班未打卡" - } + if earliestTime < ruleCheckinTimes[1].Get("work_sec").Int() { + userData.Exception = "下班未打卡" + } else { + userData.Exception = "上班未打卡" } } else { if dat.Get("summary_info.regular_work_sec").Int() < dat.Get("summary_info.standard_work_sec").Int() {