package controllers

import (
	"git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
	"git.rosy.net.cn/baseapi/utils"
	"git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store"
	"git.rosy.net.cn/jx-callback/globals"
	"git.rosy.net.cn/jx-callback/globals/api"
	"github.com/astaxie/beego/server/web"
	"strings"
)

type TiktokController struct {
	web.Controller
}

// CallbackTiktokOrderMsg 抖店用户下单订单推送 (tiktokStore)
func (t *TiktokController) CallbackTiktokOrderMsg() {
	// 1.防伪校验
	resp, byteList := api.TiktokStore.EventSignChange(t.Ctx.Request)
	if resp.Code != 0 {
		t.Data["json"] = resp
		t.ServeJSON()
		return
	}

	if strings.Contains(string(byteList), "\"msg_id\":\"0\"") {
		t.Data["json"] = tiktok_api.CallbackResponse{Code: tiktok_api.CallbackSuccessCode, Msg: tiktok_api.CallbackSuccess}
		t.ServeJSON()
		return
	}

	// 2.参数解析
	orderStatus, resp := api.TiktokStore.CreateOrderCallback(byteList)
	if resp.Code != 0 {
		t.Data["json"] = resp
		t.ServeJSON()
		return
	}

	globals.SugarLogger.Debugf("--------orderStatus := %s", utils.Format4Output(orderStatus, false))
	for k, v := range orderStatus {
		for _, callback := range v {
			resp2 := tiktok_store.OnOrderMsg(k, callback)
			if resp2.Code != 0 {
				t.Data["json"] = resp2
				t.ServeJSON()
				return
			}
		}
	}

	t.Data["json"] = tiktok_api.CallbackResponse{Code: tiktok_api.CallbackSuccessCode, Msg: tiktok_api.CallbackSuccess}
	t.ServeJSON()

}
