package shanghu

import (
	"duoduo/apis/shanghu/models"
	"duoduo/models/shanghu"
	"duoduo/tools/app"
	"github.com/gin-gonic/gin"
	"time"
)

// 增加邀请次数
func InvitedDrawNum(c *gin.Context) {
	var inData models.InvitedDrawNumRequest
	var sqlData shanghu.ClientActiveDrawNum
	var clientSql shanghu.ActiveUser
	var activeSql shanghu.MerchantActiveConfig

	err := c.ShouldBindJSON(&inData)
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	if inData.InvitedCode == "yuanshima" {
		app.OK(c, nil, app.Success)
		return
	}

	//查询活动没有抽奖跳过
	activeSql.ID = inData.ActiveConfigId
	activeConfigInfo, err := activeSql.GetConfigInfoById()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	if activeConfigInfo.DrawMode == 0 { //不抽奖
		app.OK(c, nil, app.Success)
		return
	}

	clientSql.Code = inData.InvitedCode
	clientInfo, err := clientSql.GetUserInfoByCode()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	sqlData.ClientOpenID = clientInfo.OpenID
	sqlData.ActiveConfigID = inData.ActiveConfigId
	sqlData.ClientOpenIDInvited = inData.OpenId
	sqlData.CreatedAt = time.Now()
	sqlData.UpdatedAt = time.Now()

	//校验是否重复打开 同一个用户id 邀请同一个id 同一个活动id
	count, err := sqlData.GetClientDrawNum()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	//已被邀请过
	if count > 0 {
		app.OK(c, nil, app.Success)
		return
	}

	_, err = sqlData.Create()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	app.OK(c, nil, app.Success)

}

func ActiveDrawCount(c *gin.Context) {
	var inData models.ActiveDrawCountRequest
	var sqlData shanghu.ClientActiveDrawNum
	var outData models.ActiveDrawCountReply

	err := c.ShouldBindJSON(&inData)
	if err != nil {
		app.Error(c, 400, err, err.Error())
		return
	}

	sqlData.ClientOpenID = inData.OpenId
	sqlData.ActiveConfigID = inData.ActiveConfigId
	count, err := sqlData.GetClientDrawByOpenID()
	if err != nil {
		app.Error(c, 500, err, err.Error())
		return
	}

	outData.Num = count
	app.OK(c, outData, app.Success)

}