package hdl

import (
	"applet/app/e"
	"applet/app/lib/validate"
	"applet/app/md"
	"applet/app/svc"
	"github.com/gin-gonic/gin"
)

// FinanceIndexTotal
// @Summary    	 统计数据
// @Tags         财务首页------嘉俊
// @Description  财务首页-统计数据
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Accept       json
// @Produce      json
// @Success      200   {string}	      "具体看返回内容 这是data里面的数据"
// @Failure      400   {object}   md.Response              "具体错误"
// @Router       /api/financeIndex/total [GET]
func FinanceIndexTotal(c *gin.Context) {
	svc.FinanceIndexTotal(c)
}

// FinanceIndexAppList
// @Summary    	 应用数据
// @Tags         财务首页------嘉俊
// @Description  财务首页-应用数据
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Accept       json
// @Produce      json
// @Param        args 	body      md.IndexAppListReq   true   "请求参数"
// @Success      200   {object}	  md.IndexAppListRes     "具体看返回内容 这是data里面的数据"
// @Failure      400   {object}   md.Response              "具体错误"
// @Router       /api/financeIndex/app/list [POST]
func FinanceIndexAppList(c *gin.Context) {
	var req md.IndexAppListReq
	err := c.ShouldBindJSON(&req)
	if err != nil {
		err = validate.HandleValidateErr(err)
		err1 := err.(e.E)
		e.OutErr(c, err1.Code, err1.Error())
		return
	}
	res := svc.FinanceIndexAppList(c, req)
	e.OutSuc(c, res, nil)
	return
}

// FinanceIndexAppListTable
// @Summary    	 应用数据-每个应用的折线图
// @Tags         财务首页------嘉俊
// @Description  财务首页-应用数据-每个应用的折线图
// @param Authorization header string true "验证参数Bearer和token空格拼接"
// @Accept       json
// @Produce      json
// @Param        args 	body      md.IndexAppListTableReq   true   "请求参数"
// @Success      200   {string}	      "具体看返回内容 "
// @Failure      400   {object}   md.Response              "具体错误"
// @Router       /api/financeIndex/app/list/table [POST]
func FinanceIndexAppListTable(c *gin.Context) {
	var req md.IndexAppListTableReq
	err := c.ShouldBindJSON(&req)
	if err != nil {
		err = validate.HandleValidateErr(err)
		err1 := err.(e.E)
		e.OutErr(c, err1.Code, err1.Error())
		return
	}
	res := svc.FinanceBeforeSevenPoint(c, req)
	e.OutSuc(c, res, nil)
	return
}