package service

import (
	"encoding/json"
	"errors"
	"fmt"
	"github.com/tidwall/gjson"
	"go-queue-server/dal/order/bom"
	"strings"
)


var createOrderMap []*map[string]string



func CreateBomOrder(bomjson string)  error{
	var (
		//jsonData map[string]interface{}
		err error
	)
	job := gjson.Get(bomjson, "job")
	jobname := job.String()
	data := gjson.Get(bomjson, "data")

	if jobname == "create_bom_order"{
		//fmt.Println(data)
		//jsonData = gjson.Parse(data.String()).Value().(map[string]interface{})
		//处理下单逻辑
		err  =  createOrder(data.String())
	}
	return err
}


/*
创建订单
 */
func createOrder(jsonData string) (err error){
	orderBomData := &bom.CreateOrderBomData{}
	createOrderMap := make([]*map[string]string,0)
	err = json.Unmarshal([]byte(jsonData),orderBomData)
	if err != nil{
		return err
	}
	for _,v := range *orderBomData.Matching_ids{
		//fmt.Println(v)
		kv := strings.Split(v,"_")

		if len(kv) != 2{
			return errors.New(fmt.Sprintf("参数有误:%s",jsonData))
		}
		createOrderMap = append(createOrderMap,&map[string]string{"bom_sn":kv[0],"matching_id":kv[1]})
	}
	orderBomData.CreateBomOrderData = make([]*map[string]string,0)
	orderBomData.CreateBomOrderData = createOrderMap
	//处理数据层逻辑
	_ = bom.BuildBomOrder(orderBomData)

	return nil
}