package yuyue

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"strconv"
	"zhenyihuibao/business/formValidate"
	"zhenyihuibao/business/services"
	"zhenyihuibao/common/constData"
)

type Yuyue struct {
}

func(this *Yuyue) List(c *gin.Context) {

	var yueVali formValidate.YueList
	err := c.ShouldBind(&yueVali)
	err = formValidate.CommonValidate1(yueVali)
	if err != nil {
		fmt.Println(err)
		constData.ReturnHandle.Error(c, 10005, err.Error())
		return
	}
	userId := c.GetInt("user_id")
	yueData, err := services.GetYueList(userId, &yueVali)
	if err != nil {
		constData.ReturnHandle.Error(c,  50000, err.Error())
		return
	}
	constData.ReturnHandle.Success(c, "获取数据成功", yueData)
}

func(this *Yuyue) DoYue(c *gin.Context) {
	var doYueVli formValidate.DoYue
	var userId int
	err := c.ShouldBind(&doYueVli)
	err = formValidate.CommonValidate1(doYueVli)
	if err != nil {
		fmt.Println(err)
		constData.ReturnHandle.Error(c, 10005, err.Error())
		return
	}
	userId = c.GetInt("user_id")
	err = services.DoYue(userId, doYueVli.YueId)
	if err != nil {
		constData.ReturnHandle.Error(c,  50000, err.Error())
		return
	}
	constData.ReturnHandle.Success(c, "预约成功", "")
	return
}

func(this *Yuyue) CancelYue(c *gin.Context) {
	var cancelYueVli formValidate.CancelYue
	var userId int
	err := c.ShouldBind(&cancelYueVli)
	err = formValidate.CommonValidate1(cancelYueVli)
	if err != nil {
		fmt.Println(err)
		constData.ReturnHandle.Error(c, 10005, err.Error())
		return
	}
	userId = c.GetInt("user_id")
	err = services.CancelYue(userId, cancelYueVli.YueId)
	if err != nil {
		constData.ReturnHandle.Error(c,  50000, err.Error())
		return
	}
	constData.ReturnHandle.Success(c, "取消成功", "")
	return
}

func(this *Yuyue) Log(c *gin.Context) {
	userId := c.GetInt("user_id")
	pStr := c.DefaultPostForm("p", "0")
	p, err := strconv.Atoi(pStr)
	if err != nil {
		constData.ReturnHandle.Error(c,  10005, err.Error())
		return
	}
	resData, err := services.GetLog(userId, p)
	if err != nil {
		constData.ReturnHandle.Error(c,  50000, err.Error())
		return
	}
	constData.ReturnHandle.Success(c, "获取成功", resData)
	return
}

//上课打卡
func (this *Yuyue) GoClass(c *gin.Context)  {
	var cancelYueVli formValidate.GoClass
	var userId int
	err := c.ShouldBind(&cancelYueVli)
	err = formValidate.CommonValidate1(cancelYueVli)
	if err != nil {
		fmt.Println(err)
		constData.ReturnHandle.Error(c, 10005, err.Error())
		return
	}
	userId = c.GetInt("user_id")
	err = services.DoClass(userId, cancelYueVli.YueId)
	if err != nil {
		constData.ReturnHandle.Error(c,  50000, err.Error())
		return
	}
	constData.ReturnHandle.Success(c, "打卡成功", "")
	return
}