package plugin

import (
	"enterprise/common/dao"
	"enterprise/common/global"
	"enterprise/common/model"
	"enterprise/common/registry"
	"fmt"
	log "github.com/sirupsen/logrus"
	"strings"
	"time"
)

type Staff1002 struct {
	Staff
	corp *model.Corp
}

func NewStaff1002(corp *model.Corp) registry.Staff {
	return &Staff1002{
		corp: corp,
	}
}

func (s *Staff1002) Monitor(user *model.StaffUser) {
	s.MonitorWorkAge(user)

	nowDate := time.Now()
	entryDate, _ := time.ParseInLocation("2006-01-02", user.EntryDate, time.Local)
	entryDay := (nowDate.Unix() - entryDate.Unix()) / 86400
	if entryDay != 20 && entryDay != 40 {
		return
	}

	// 1.订单
	orders, err := dao.NewExternalCorpOrder().QueryOwnerOrder(user.Username, 0, 0)
	if err != nil {
		log.Errorf("db error:%s", err.Error())
		return
	}

	message := make([]string, 0)
	message = append(message, fmt.Sprintf("【员工试用期提醒】[%s]", user.Realname))
	message = append(message, fmt.Sprintf("入职时间:%s", user.EntryDate))
	message = append(message, fmt.Sprintf("入职天数:%d", entryDay))
	message = append(message, fmt.Sprintf("订单总数:%d", len(orders)))
	message = append(message, fmt.Sprintf("预期订单:%d", entryDay/20*15))

	global.SendCorpMessage(user.CorpId, []string{"jiangyong", "zhangping"}, strings.Join(message, "\n"))
}