package dao import ( "encoding/json" "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-print/globals" "strings" "time" ) var SystemTempObj map[string]*model.SystemTemp func Init() { SystemTempObj = make(map[string]*model.SystemTemp, 0) sysTempList, err := QuerySystemTemp() if err != nil { globals.SugarLogger.Debug("query system temp err :", err) return } SystemTempObj[sysTempList.TempSize] = sysTempList //now := time.Now() //param := &model.SystemTemp{ // CreatedAt: &now, // UpdatedAt: &now, // LastOperator: "system", // DeletedAt: &utils.DefaultTimeValue, // TempName: "", // TempRank: model.SystemTempKey, // Temp: "", // UserId: "system_user", // TempType: model.TempTypeMerchant, // TempSize: model.SystemTempSizeBig, // PrintSn: "system", // IsUse: 1, //} // 初始化大字体模板 //if _, v := temp[model.SystemTempSizeBig]; !v { // param.TempName = "system" + model.SystemTempSizeBig // param.Temp = model.SystemTempValue // if err := AddTemp(param); err != nil { // globals.SugarLogger.Debug("init system temp err :", err) // } // SystemTempObj[model.SystemTempSizeBig] = param //} // 初始化中字体模板 //if _, v := temp[model.SystemTempSizeMedium]; !v { // param.TempName = "system" + model.SystemTempSizeMedium // medium := strings.Replace(model.SystemTempValue, "", "", -1) // medium2 := strings.Replace(medium, "", "", -1) // param.Temp = medium2 // param.TempSize = model.SystemTempSizeMedium // param.IsUse = 2 // if err := AddTemp(param); err != nil { // globals.SugarLogger.Debug("init system temp err :", err) // } // SystemTempObj[model.SystemTempSizeMedium] = param //} // 初始化小字体模板 //if _, v := temp[model.SystemTempSizeSmall]; !v { // param.TempName = "system" + model.SystemTempSizeSmall // medium := strings.Replace(model.SystemTempValue, "", " ", -1) // medium2 := strings.Replace(medium, "", " ", -1) // param.Temp = medium2 // param.TempSize = model.SystemTempSizeSmall // param.IsUse = 2 // if err := AddTemp(param); err != nil { // globals.SugarLogger.Debug("init system temp err :", err) // } // SystemTempObj[model.SystemTempSizeSmall] = param //} } // MakePrintMsgOnTemp 将打印数据渲染到模板当中 func MakePrintMsgOnTemp(param map[string]string, userId string) (string, error) { // 查询用户默认模板,不存在则使用系统默认模板 userTemp := &model.SystemTemp{} userTemp, isHave, err := SelectUserDefaultTemp(userId, model.TempTypeMerchantUser) if err != nil || !isHave { userTemp, err = QuerySystemTemp() } if userTemp == nil || !isHave || err != nil { if userTemp.TempType != "" { userTemp = SystemTempObj[userTemp.TempSize] } else { userTemp = SystemTempObj[model.SystemTempSizeBig] } } // 需要打印数据 printMsg := "" printValue := make([]interface{}, 0, 0) userTempMap := make(map[string]string, 0) if err := json.Unmarshal([]byte(userTemp.Temp), &userTempMap); err != nil { return "", err } for _, v := range strings.Split(userTemp.TempRank, ",") { switch v { case "skuName", "skuNumber", "skuPrice", "skuAllPrice", "allSkuTypeCount", "allSkuCount", "skuUpc", "userPayMoney": continue case "goodsListDetail": printMsg += userTempMap[v] skuList := make([]*model.SkuListPrintOrder, 0, 0) if err := json.Unmarshal([]byte(param["skuList"]), &skuList); err != nil { return "", err } for i := 0; i < len(skuList); i++ { printMsg += userTempMap["skuName"] printMsg += userTempMap["skuNumber"] printMsg += userTempMap["skuPrice"] printMsg += userTempMap["skuAllPrice"] printValue = append(printValue, skuList[i].SkuName, skuList[i].SkuCount, skuList[i].SalePrice, skuList[i].TotalCountPrice) if skuList[i].Upc != "" { printMsg += userTempMap["skuUpc"] printValue = append(printValue, skuList[i].Upc) } } printMsg += userTempMap["allSkuTypeCount"] printValue = append(printValue, param["allSkuTypeCount"]) printMsg += userTempMap["allSkuCount"] printValue = append(printValue, param["allSkuCount"]) printMsg += userTempMap["userPayMoney"] printValue = append(printValue, param["userPayMoney"]) case "businessType": if param[v] == "2" { // 是预订单 printMsg += userTempMap[v] printValue = append(printValue, param[v]) } case "divider": printMsg += userTempMap[v] case "title": printMsg += userTempMap[v] case "qrcOrder": // 老版打印机展示不要 //printMsg += userTempMap[v] //printValue = append(printValue, param[v]) printMsg += `%s #%s` printValue = append(printValue, param["vendorName"], param["vendorOrderNo"]) default: printMsg += userTempMap[v] printValue = append(printValue, param[v]) } } return strings.Replace(fmt.Sprintf(strings.Replace(printMsg, "\n", "", -1), printValue...), "\\n", "\r\n", -1), nil //} } // MakePrintMsgOnTempVoice 制作平台语音 func MakePrintMsgOnTempVoice(param map[string]string, setting *model.PrintSettingObj, userId string) (string, error) { // 打订单 if param[model.OrderStatusPrint] != "" { // 订单提示设置 printMsg, err := PrinterOrderVoice(param, setting, userId) if err != nil { globals.SugarLogger.Debug("err Unmarshal userTemp.printMsg", err) return "", err } return printMsg, nil } // 打运单 if param[model.WayBillStatusPrint] != "" { switch param[model.WayBillStatusPrint] { case utils.Int2Str(model.WaybillStatusCourierAssigned): // 分配骑手 return PrintWayBillOrderStatus(param, setting), nil case utils.Int2Str(model.WaybillStatusDeliverReminder): // 催单 printVoiceMsg := `` printVoiceValue := make([]interface{}, 0, 0) //printVoiceMsg, printVoiceValue = SyntheticSpeech(printVoiceMsg, printVoiceValue, param) printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.ReminderOrderVoice) return strings.Replace(fmt.Sprintf(strings.Replace(printVoiceMsg, "\n", "", -1), printVoiceValue...), "\\n", "\r\n", -1), nil case utils.Int2Str(model.WaybillStatusDelivered): // 送达 printVoiceMsg := `` printVoiceValue := make([]interface{}, 0, 0) //printVoiceMsg, printVoiceValue = SyntheticSpeech(printVoiceMsg, printVoiceValue, param) printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.FinialsOrderVoice) return strings.Replace(fmt.Sprintf(strings.Replace(printVoiceMsg, "\n", "", -1), printVoiceValue...), "\\n", "\r\n", -1), nil } } // 门店状态 if param[model.StoreStatusPrint] != "" { return PrintStoreStatus(param, setting), nil } // 进店咨询 if param[model.EnterTheStorePrint] != "" && setting.VoiceSetting.ConsultingPrint == model.SettingOpen { return `19`, nil } return "", nil } // PrinterOrderVoice 打印机订单提示设置 func PrinterOrderVoice(param map[string]string, setting *model.PrintSettingObj, userId string) (string, error) { var ( printVoiceMsg string //语音信息 printVoiceValue = make([]interface{}, 0, 0) textMsg string // 文本信息 err error ) // 订单状态 switch param[model.OrderStatusPrint] { // 新订单(待接单) case utils.Int2Str(model.OrderStatusNew): // utils.Int2Str(model.OrderStatusFinishedPickup), utils.Int2Str(model.OrderStatusAccepted) //if param[model.OrderStatusPrint] != utils.Int2Str(model.OrderStatusNew) && param[model.VendorIDPrint] == utils.Int64ToStr(model.VendorIDMTWM) { // return "", err //} //if param[model.OrderStatusPrint] == utils.Int2Str(model.OrderStatusFinishedPickup) && param[model.VendorIDPrint] == utils.Int64ToStr(model.VendorIDEBAI) { // return "", err //} // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } // 订单设置 if setting.PrintSetting.WaitOrderPrint == model.SettingOpen { // 打印订单 textMsg, err = MakePrintMsgOnTemp(param, userId) if err != nil { return "", err } } if setting.VoiceSetting.WaitOrderVoice == model.SettingOpen { // 订单通知 printVoiceMsg += `%d` // 你来新订单了 printVoiceValue = append(printVoiceValue, model.NewOrderVoice) } // 申请取消 case utils.Int2Str(model.ApplyOrderCancel): // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } // 订单设置 if setting.PrintSetting.ApplyUserCancelOrder == model.SettingOpen { // 申请取消打印 rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
客户申请取消订单:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejection += `
取消时间: %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint], utils.Time2DateStr(time.Now())) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) } if setting.VoiceSetting.ApplyUserOrderCancelVoice == model.SettingOpen { // 申请取消语音 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.ApplyCancelVoice) //printVoiceMsg, printVoiceValue = SyntheticSpeech(printVoiceMsg, printVoiceValue, param) } // 申请退货 case utils.Int2Str(model.ApplyOrderRefundGoods): // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
客户申请退货:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejection += `
原因: %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint], param[model.RejectionReasonPrint]) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) if setting.VoiceSetting.ApplyRefundGoodsVoice == model.SettingOpen { // 申请退货语音 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.ApplyReturnGoodsVoice) // printVoiceMsg, printVoiceValue = SyntheticSpeech(printVoiceMsg, printVoiceValue, param) } // 申请退款 case utils.Int2Str(model.ApplyOrderRefund): // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } // 订单设置 if setting.PrintSetting.ApplyUserRefund == model.SettingOpen { // 取消退款订单 textMsg, err = MakePrintMsgOnTemp(param, userId) if err != nil { return "", err } } if setting.VoiceSetting.ApplyRefundOrderVoice == model.SettingOpen { //printVoiceMsg, printVoiceValue = SyntheticSpeech(printVoiceMsg, printVoiceValue, param) printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.ApplyRefundVoice) } // 取消打印 case utils.Int2Str(model.OrderStatusRejection): // 拒收 // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } //if setting.VoiceSetting.CustomerRejectionVoice == model.SettingOpen && setting.SystemVoice == model.SettingOpen { // // 暂无语音打印 //} // 拒收暂无语音设置,使用文本提示 if setting.PrintSetting.CustomerRejectionPrint == model.SettingOpen { // 客户拒收打印 rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
客户拒收信息:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejection += `
拒收原因: %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint], param[model.RejectionReasonPrint]) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) } case utils.Int2Str(model.OrderStatusCustomerService): // 客服退款 // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } if setting.VoiceSetting.CusterRefundVoice == model.SettingOpen { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.BusinessResponsibilityVoice) } if setting.PrintSetting.CusterRefundPrint == model.SettingOpen { rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
客服退款详情:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejection += `
退款原因: %s

` rejection += `
退款时间: %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint], param[model.CustcareRefundReasonPrint], utils.Time2DateStr(time.Now())) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) } case utils.Int2Str(model.OrderStatusCanceled), utils.Int2Str(model.CancelOrderSuccess): // 取消订单成功 // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) if setting.VoiceSetting.RefundGoodsVoice == model.SettingOpen { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.CancelOrderVoice) } } if setting.PrintSetting.CusterRefundPrint == model.SettingOpen { rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
订单取消成功:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejection += `
取消原因: %s

` rejection += `
取消成功时间: %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint], param[model.CustcareRefundReasonPrint], utils.Time2DateStr(time.Now())) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) } case utils.Int2Str(model.BusinessCancelOrder): // 商家取消打印 // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } if setting.PrintSetting.BusinessOrderCancel == model.SettingOpen { rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
商家侧取消订单:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejection += `
取消原因: %s

` rejection += `
取消成功时间: %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint], param[model.CustcareRefundReasonPrint], utils.Time2DateStr(time.Now())) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) } case utils.Int2Str(model.OrderRefundMoneySuccess): // 订单退款成功打印 // 称谓设置/平台语音设置 if setting.CallNameSetting == 64 || setting.CallNameSetting == 65 || setting.CallNameSetting == 66 { // 老板 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, setting.CallNameSetting) } if setting.PrintSetting.OrderCancelSuccess == model.SettingOpen { rejection := `` rejectionValue := make([]interface{}, 0, 0) rejection += `
退款成功:

` rejection += `
订单号: %s

` rejection += `
订单来源: %s # %s

` rejectionValue = append(rejectionValue, param[model.OrderNoPrint], param[model.VendorNamePrint], param[model.VendorOrderNoPrint]) textMsg = strings.Replace(fmt.Sprintf(strings.Replace(rejection, "\n", "", -1), rejectionValue...), "\\n", "\r\n", -1) } } voice := strings.Replace(fmt.Sprintf(strings.Replace(printVoiceMsg, "\n", "", -1), printVoiceValue...), "\\n", "\r\n", -1) return voice + textMsg, nil } // PrintWayBillOrderStatus 打印运单类通知消息 func PrintWayBillOrderStatus(param map[string]string, setting *model.PrintSettingObj) string { var ( printVoiceMsg string //语音信息 printVoiceValue = make([]interface{}, 0, 0) textMsg string // 文本信息 textMsgValue = make([]interface{}, 0, 0) // 文本信息 ) switch param[model.WayBillStatusPrint] { case utils.Int2Str(model.WaybillStatusAccepted), utils.Int2Str(model.WaybillStatusCourierAssigned): // 分配骑手 if setting.PrintSetting.RiderTakeOrder == model.SettingOpen { // 打印订单 textMsg += `
接单骑手信息:

` textMsg += `
骑手姓名: %s

` textMsg += `
骑手电话: %s

` textMsg += `
接单时间: %s

` textMsg += `
订单来源: %s

` textMsg += `
单号: #%s

` textMsgValue = append(textMsgValue, param[model.RiderNamePrint], param[model.RiderPhonePrint], utils.Time2DateStr(time.Now()), param[model.VendorNamePrint], param[model.VendorOrderNoPrint]) } } if setting.VoiceSetting.RiderTakeOrderVoice == model.SettingOpen { // 骑手接单语音通知 printVoiceMsg += `%d%d` // 骑手已经接单了 printVoiceValue = append(printVoiceValue, model.RiderGetOrderVoice) } msg := strings.Replace(fmt.Sprintf(strings.Replace(textMsg, "\n", "", -1), textMsgValue...), "\\n", "\r\n", -1) voice := strings.Replace(fmt.Sprintf(strings.Replace(printVoiceMsg, "\n", "", -1), printVoiceValue...), "\\n", "\r\n", -1) return voice + msg } // PrintStoreStatus 打印门店状态 func PrintStoreStatus(param map[string]string, setting *model.PrintSettingObj) string { var ( printVoiceMsg string //语音信息 printVoiceValue = make([]interface{}, 0, 0) textMsg string // 文本信息 textMsgValue = make([]interface{}, 0, 0) ) switch utils.Str2Int(param[model.StoreStatusPrint]) { case -9: // 丢失授权 var voice string if setting.VoiceSetting.LoseAuthorization == model.SettingOpen { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.LoseTokenVoice) voice = strings.Replace(fmt.Sprintf(strings.Replace(printVoiceMsg, "\n", "", -1), printVoiceValue...), "\\n", "\r\n", -1) } textMsg += `门店丢失授权通知
` textMsg += `门店:%s
` textMsg += `平台:%s
` textMsg += `下线时间:%s
` textMsg += `授权丢失,将无法继续打压订单!!!!
` textMsgValue = append(textMsgValue, param[model.StoreNamePrint], param[model.VendorNamePrint], utils.Time2DateStr(time.Now())) msg := strings.Replace(fmt.Sprintf(strings.Replace(textMsg, "\n", "", -1), textMsgValue...), "\\n", "\r\n", -1) return voice + msg default: // 离线打印文本开启 textMsg += `
门店下线通知

` textMsg += `
门店:%s

` textMsg += `
平台:%s

` textMsg += `
下线时间:%s

` textMsgValue = append(textMsgValue, param[model.StoreNamePrint], param[model.VendorNamePrint], utils.Time2DateStr(time.Now())) // 离线打印语音开启 printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.StoreOfflineVoice) voice := strings.Replace(fmt.Sprintf(strings.Replace(printVoiceMsg, "\n", "", -1), printVoiceValue...), "\\n", "\r\n", -1) msg := strings.Replace(fmt.Sprintf(strings.Replace(textMsg, "\n", "", -1), textMsgValue...), "\\n", "\r\n", -1) return voice + msg } } // SyntheticSpeech 合成语音 (美团xxx号订单) func SyntheticSpeech(printVoiceMsg string, printVoiceValue []interface{}, param map[string]string) (string, []interface{}) { printVoiceMsg += `%d` // 美团 switch param[model.VendorIDPrint] { case utils.Int2Str(model.VendorIDJD): // 京东 printVoiceValue = append(printVoiceValue, model.JdVoice) case utils.Int2Str(model.VendorIDMTWM): // 美团 printVoiceValue = append(printVoiceValue, model.MtVoice) case utils.Int2Str(model.VendorIDELM): // 饿了么 printVoiceValue = append(printVoiceValue, model.ElmVoice) case utils.Int2Str(model.VendorIDEBAI): // 饿百 printVoiceValue = append(printVoiceValue, model.ElmVoice) case utils.Int2Str(model.VendorIDJDShop): // 京东商城 printVoiceValue = append(printVoiceValue, model.JdToHose) case utils.Int2Str(model.VendorIDTT): // 抖音 // 暂无 } if param[model.VendorOrderNoPrint] != "" { switch len(param[model.VendorOrderNoPrint]) { case 1: printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint]]) case 2: printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][:1]+"0"]) if param[model.VendorOrderNoPrint][1:] != "0" { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][1:]]) } case 3: printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][0:1]+"00"]) if param[model.VendorOrderNoPrint][1:2] == "0" && param[model.VendorOrderNoPrint][2:] == "0" { } else if param[model.VendorOrderNoPrint][1:2] == "0" && param[model.VendorOrderNoPrint][2:] != "0" { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][1:2]]) printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][2:]]) } else if param[model.VendorOrderNoPrint][1:2] != "0" && param[model.VendorOrderNoPrint][2:] == "0" { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][1:2]+"0"]) } else if param[model.VendorOrderNoPrint][1:2] != "0" && param[model.VendorOrderNoPrint][2:] != "0" { printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][1:2]+"0"]) printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.NumberVoiceMap[param[model.VendorOrderNoPrint][2:]]) } } } printVoiceMsg += `%d` printVoiceValue = append(printVoiceValue, model.OrderNoVoice) return printVoiceMsg, printVoiceValue }