123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- package http
- import (
- "net/http"
- "time"
- "go-common/app/admin/main/aegis/model"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- )
- func commonPre(c *bm.Context) (res map[string][]*model.ReportFlowItem, form map[string][24]*model.ReportFlowItem, err error) {
- opt := new(model.OptReport)
- if err = c.Bind(opt); err != nil {
- return
- }
- if opt.UName == "debug" {
- opt.Type = model.TypeTotal
- opt.UName = "total"
- }
- return srv.ReportTaskflow(c, opt)
- }
- func taskflow(c *bm.Context) {
- res, form, err := commonPre(c)
- c.JSONMap(map[string]interface{}{
- "data": res,
- "form": form,
- }, err)
- }
- func taskflowCSV(c *bm.Context) {
- opt := new(model.OptReport)
- if err := c.Bind(opt); err != nil {
- return
- }
- res, _, err := commonPre(c)
- if err != nil || len(res) == 0 {
- c.JSON(nil, err)
- }
- csv, err := formatReport(res)
- if err != nil {
- log.Error("formatReport error(%v)", err)
- c.JSON(nil, err)
- return
- }
- c.Render(http.StatusOK, CSV{
- Content: FormatCSV(csv),
- Title: "任务吞吐量报表",
- })
- }
- func tasksubmitpre(c *bm.Context, pager bool) (res *model.ReportSubmitRes, p *model.DayPager, err error) {
- pm := new(model.OptReportSubmit)
- if err = c.Bind(pm); err != nil {
- return
- }
- if pm.FlowID <= 0 || pm.Bt > pm.Et || (pager && (pm.Pn > pm.Et || pm.Pn < pm.Bt)) {
- err = ecode.RequestErr
- return
- }
- //默认展示近期7天内的数据
- yesterday := time.Now().Add(-24 * time.Hour).Format("2006-01-02")
- if pm.Bt == "" && pm.Et == "" {
- pm.Bt = time.Now().Add(-8 * 24 * time.Hour).Format("2006-01-02")
- pm.Et = yesterday
- } else if pm.Et == "" { //最近日期
- pm.Et = yesterday
- } else if pm.Bt == "" { //最远日期
- pm.Bt = "2019-01-01"
- }
- //分页的话,默认获取第一页内容(按照日期降序排列,则为最后一日的内容)
- bt := pm.Bt
- et := pm.Et
- if pager {
- if pm.Pn == "" {
- pm.Pn = et
- }
- pm.Et = pm.Pn
- pm.Bt = pm.Pn
- }
- if res, err = srv.ReportTaskSubmit(c, pm); err != nil || res == nil {
- return
- }
- //按照日期降序排列
- if pager {
- p = &model.DayPager{
- Pn: pm.Pn,
- IsLast: bt == pm.Pn,
- IsFirst: et == pm.Pn,
- }
- }
- return
- }
- func taskSubmit(c *bm.Context) {
- res, pager, err := tasksubmitpre(c, true)
- c.JSONMap(map[string]interface{}{
- "data": res,
- "pager": pager,
- }, err)
- }
- func taskSubmitCSV(c *bm.Context) {
- res, _, err := tasksubmitpre(c, false)
- if err != nil {
- c.JSON(nil, err)
- return
- }
- csv, err := formatReportTaskSubmit(res)
- if err != nil {
- c.JSON(nil, err)
- return
- }
- c.Render(http.StatusOK, CSV{
- Content: FormatCSV(csv),
- Title: "任务操作报表",
- })
- }
|