package service import ( "cu-helper/high-opt-loss/model" "github.com/go-resty/resty/v2" "github.com/mizuki1412/go-core-kit/class/exception" "github.com/tidwall/gjson" "time" ) //获取光衰数据列表 type HighOptLoss struct { Count int CountFlag int //1绿色,2黄色,3红色 DurationOverSeven int DurationOverSevenFlag int //1绿色,2黄色,3红色 DurationOverFifteen int DurationOverFifteenFlag int //1绿色,2黄色,3红色 Book int BookFlag int //1绿色,2黄色,3红色 } func ReqGetHighOptLossList(receiveFlag string) map[string]*HighOptLoss { h := model.NewHeader() header := h.GenReqParam() f := model.NewGetHighOptLossList(receiveFlag) form := f.GenReqParam() client := resty.New().SetRetryCount(5).SetRetryWaitTime(10 * time.Second) resp, err := client.R(). SetHeaders(header).SetFormData(form).Post("http://132.151.160.87:10010/wms-zj/gShuaiReply/gshuaiOrderReplyListAjax.do") if err != nil { panic(exception.New(err.Error())) } //handle光衰数据 data := gjson.Get(resp.String(), "list").Array() m := make(map[string]*HighOptLoss) for _, v := range data { if m[v.Get("DEAL_MAN").String()] == nil { m[v.Get("DEAL_MAN").String()] = &HighOptLoss{} } m[v.Get("DEAL_MAN").String()].Count++ duration := v.Get("TIMELONGS").Int() if duration >= 604800 { m[v.Get("DEAL_MAN").String()].DurationOverSeven++ } if duration >= 1296000 { m[v.Get("DEAL_MAN").String()].DurationOverFifteen++ } if v.Get("BOOK_TIME").String() != "" { m[v.Get("DEAL_MAN").String()].Book++ } } return m }