package api

import (
	"gadmin/internal/admin/forms"
	"gadmin/internal/admin/service"
	"gadmin/utility"
	"github.com/gin-gonic/gin"
	"time"
)

// GemStat 宝石综合统计
func GemStat(ctx *gin.Context) {
	var params forms.GemStatReq
	err := ctx.ShouldBindQuery(&params)
	if err != nil {
		ctx.JSON(200, gin.H{"code": 1, "msg": err.Error()})
		return
	}
	resp, err := service.Gem.Stat(ctx, params)
	if err != nil {
		ctx.JSON(200, gin.H{"code": 1, "msg": err.Error()})
		return
	}
	ctx.JSON(200, gin.H{"data": resp, "code": 0})
}

// PartStat 宝石部位统计
func PartStat(ctx *gin.Context) {
	var params forms.GemPartStatReq
	err := ctx.ShouldBindQuery(&params)
	if err != nil {
		ctx.JSON(200, gin.H{"code": 1, "msg": err.Error()})
		return
	}

	if params.ServerId <= 0 {
		ctx.JSON(200, gin.H{"code": 1, "msg": "请选择一个有效的服务器"})
		return
	}
	ctx.JSON(200, service.Gem.PartStat(ctx, params))
}

// GemLog 宝石报表
func GemLog(ctx *gin.Context) {
	var params forms.GemReportReq
	err := ctx.ShouldBindQuery(&params)
	if err != nil {
		ctx.JSON(200, gin.H{"code": 1, "msg": err.Error()})
		return
	}
	if params.Day == "" {
		params.Day = utility.Format(time.Now().AddDate(0, 0, -1))
	}
	if params.EndDay == "" {
		params.EndDay = utility.Format(time.Now().AddDate(0, 0, 0))
	}
	resp, err := service.Gem.QueryGemLog(params)
	if err != nil {
		ctx.JSON(200, gin.H{"code": 1, "msg": err.Error()})
		return
	}
	ctx.JSON(200, gin.H{"data": resp, "code": 0})
}
