package oa_logic import ( "dubbo.apache.org/dubbo-go/v3/common/logger" "errors" "fmt" "github.com/fonchain_enterprise/fonchain-main/pkg/e" "github.com/fonchain_enterprise/fonchain-main/pkg/service/oa_new/common" "github.com/fonchain_enterprise/fonchain-main/pkg/utils/holiday" "strconv" ) func HolidayList(dates []string) (holidaysMap map[string]*holiday.RespData, err error) { holidays := make([]*holiday.RespData, 0) var cacheHolidayErr error fmt.Println("================ StaffCollectionDetail HolidayList WorkDayMonth enter =======================") delDashDates := common.DelTimeDash(dates) holidays, cacheHolidayErr = holiday.GetCacheHolidayInfo(delDashDates) if cacheHolidayErr != nil { logger.Errorf("查询节假日失败:%s", cacheHolidayErr.Error()) fmt.Printf("查询节假日失败:%s\n", cacheHolidayErr.Error()) beginDate := holiday.ConvertTime(dates[0]) endDate := holiday.ConvertTime(dates[len(dates)-1]) // 获取日历 var multiDataErr error fmt.Printf("beginDate: %s, endDate: %s \n", beginDate, endDate) holidays, multiDataErr = holiday.GetMultiData(beginDate, endDate, true) if multiDataErr != nil { logger.Errorf("查询节假日失败:%s", multiDataErr.Error()) return nil, errors.New(e.ErrorQueryHoliday) } fmt.Printf("holidays: %v\n", holidays) } holidaysMap = make(map[string]*holiday.RespData) for i := 0; i < len(holidays); i++ { var ( yearStr string dayStr string monthStr string ) yearStr = strconv.Itoa(int(holidays[i].Year)) if holidays[i].Day < 10 { dayStr = "0" + strconv.Itoa(int(holidays[i].Day)) } else { dayStr = strconv.Itoa(int(holidays[i].Day)) } if holidays[i].Month < 10 { monthStr = "0" + strconv.Itoa(int(holidays[i].Month)) } else { monthStr = strconv.Itoa(int(holidays[i].Month)) } holidaysMap[yearStr+"-"+monthStr+"-"+dayStr] = holidays[i] } fmt.Printf("holidaysMap: %v\n", holidaysMap) fmt.Println("================ StaffCollectionDetail HolidayList WorkDayMonth out =======================") return }