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 }