diff --git a/business/model/print_temp.go b/business/model/print_temp.go
new file mode 100644
index 000000000..8bbfa0ef8
--- /dev/null
+++ b/business/model/print_temp.go
@@ -0,0 +1,52 @@
+package model
+
+import (
+ "time"
+)
+
+type SystemTemp struct {
+ ID int `orm:"column(id)" json:"id" db:"id"`
+ CreatedAt *time.Time `json:"created_at" db:"created_at"`
+ UpdatedAt *time.Time `json:"updated_at" db:"updated_at"`
+ LastOperator string `json:"last_operator" db:"last_operator"`
+ DeletedAt *time.Time `json:"deleted_at" db:"deleted_at"`
+ TempName string `json:"temp_name" db:"temp_name"` // 模板名称
+ TempRank string `orm:"type(text)" json:"temp_rank" db:"temp_rank"` // 模板顺序
+ Temp string `orm:"type(text)" json:"temp" db:"temp"` // 模板
+ UserId string `json:"user_id" db:"user_id"` // 所属用户
+ TempType string `json:"temp_type" db:"temp_type"` // 模板类型 user_store/user_consumer
+ TempSize string `json:"temp_size" db:"temp_size"` // 模板尺寸 big/medium/small
+ PrintSn string `json:"print_sn" db:"print_sn"` // 模板所属打印机
+ IsUse int `json:"is_use" db:"is_use"` // 默认使用 1-使用/2-不使用
+ Properties string `orm:"type(text)" json:"properties" db:"properties"` // 模板字段属性
+}
+
+//func (v *SystemTemp) TableUnique() [][]string {
+// return [][]string{
+// []string{"PrintNo"},
+// }
+//}
+
+func (v *SystemTemp) TableIndex() [][]string {
+ return [][]string{
+ []string{"UserId", "TempType", "TempSize"},
+ []string{"PrintSn"},
+ }
+}
+
+const (
+ TempTypeMerchantUser = `user_store` // 商户自定义模板-商户看
+ TempTypeConsumerUser = `user_consumer` // 商户自定义模板-消费用户看
+ TempTypeMerchant = `sys_store` // 系统模板-商户看
+ TempTypeConsumer = `sys_consumer` // 系统模板-消费用户看
+)
+
+const (
+ SystemTempSizeBig = "big"
+ SystemTempSizeSmall = "small"
+ SystemTempSizeMedium = "medium"
+)
+const (
+ SettingOpen = 1 // 开启
+ SettingClose = -1 // 关闭
+)
diff --git a/business/model/print_temp_config.go b/business/model/print_temp_config.go
new file mode 100644
index 000000000..4622ead0f
--- /dev/null
+++ b/business/model/print_temp_config.go
@@ -0,0 +1,149 @@
+package model
+
+//
+//var TempTag map[string]string
+//
+//func init() {
+// TempTag = make(map[string]string, 26)
+// TempTag["title"] = Title
+// TempTag["sound"] = Sound
+// TempTag["eBailOrderNo"] = EBailOrderNo
+// TempTag["payOrderTime"] = PayOrderTime
+// TempTag["trySendTime"] = TrySendTime
+// TempTag["orderNo"] = OrderNo
+// TempTag["businessType"] = BusinessType
+// TempTag["vendorName"] = VendorName
+// TempTag["eBaiCode"] = EBaiCode
+// TempTag["qRCOrder"] = QRCOrder
+// TempTag["eBaiVendorName"] = EBaiVendorName
+// TempTag["eBaiOrderNo"] = EBaiOrderNo
+// TempTag["consigneeName"] = ConsigneeName
+// TempTag["consigneeMobile"] = ConsigneeMobile
+// TempTag["consigneeAddress"] = ConsigneeAddress
+// TempTag["buyerComment"] = BuyerComment
+// TempTag["goodsListDetail"] = GoodsListDetail
+// TempTag["skuName"] = SkuName
+// TempTag["skuNumber"] = SkuNumber
+// TempTag["skuPrice"] = SkuPrice
+// TempTag["skuAllPrice"] = SkuAllPrice
+// TempTag["allSkuTypeCount"] = AllSkuTypeCount
+// TempTag["allSkuCount"] = AllSkuCount
+// TempTag["storeName"] = StoreName
+// TempTag["storeTel"] = StoreTel
+// TempTag["officialName"] = OfficialName
+//}
+//
+//const (
+// //SystemTempKey 公共参数 EBaiOrderNo= vendorName EBaiVendorName = vendorOrderNo
+// SystemTempKey = "title,sound,eBailOrderNo,payOrderTime,trySendTime,orderNo,businessType,vendorName,eBaiCode,qRCOrder,eBaiVendorName,eBaiOrderNo,consigneeName," +
+// "consigneeMobile,consigneeAddress,buyerComment,goodsListDetail,skuName,skuNumber,skuPrice,skuAllPrice,skuUpc,allSkuTypeCount,allSkuCount,storeName,storeTel,officialName"
+// SystemTempValue = "{" +
+// "title:" + Title + "," +
+// "sound:" + Sound + "," +
+// "eBailOrderNo:" + EBailOrderNo + "," +
+// "payOrderTime:" + PayOrderTime + "," +
+// "trySendTime:" + TrySendTime + "," +
+// "orderNo:" + OrderNo + "," +
+// "businessType:" + BusinessType + "," +
+// "vendorName:" + VendorName + "," +
+// "eBaiCode:" + EBaiCode + "," +
+// "qRCOrder:" + QRCOrder + "," +
+// "eBaiVendorName:" + EBaiVendorName + "," +
+// "eBaiOrderNo:" + EBaiOrderNo + "," +
+// "consigneeName:" + ConsigneeName + "," +
+// "consigneeMobile:" + ConsigneeMobile + "," +
+// "consigneeAddress:" + ConsigneeAddress + "," +
+// "buyerComment:" + BuyerComment + "," +
+// "goodsListDetail:" + GoodsListDetail + "," +
+// "skuName:" + SkuName + "," +
+// "skuNumber:" + SkuNumber + "," +
+// "skuPrice:" + SkuPrice + "," +
+// "skuAllPrice:" + SkuAllPrice + "," +
+// "skuUpc:" + SkuUpc + "," +
+// "allSkuTypeCount:" + AllSkuTypeCount + "," +
+// "allSkuCount:" + AllSkuCount + "," +
+// "storeName:" + StoreName + "," +
+// "storeTel:" + StoreTel + "," +
+// "officialName:" + OfficialName +
+// "}"
+//
+// Title = `
手机买菜上京西
+// 极速到家送惊喜
+// --------------------------------
`
+//
+// Sound = `
%d
`
+// EBailOrderNo = `%s
`
+// PayOrderTime = ` 下单时间: %s
`
+// TrySendTime = ` 预计送达: %s
`
+// OrderNo = ` 订单编号: %s
`
+// BusinessType = `预订单
`
+//
+// VendorName = `
%s`
+// EBaiCode = `#%s
`
+//
+// QRCOrder = `%s
`
+// EBaiVendorName = `%s:`
+// EBaiOrderNo = `%s
`
+// ConsigneeName = ` 客户: %s
`
+// ConsigneeMobile = ` 电话: %s
`
+// ConsigneeAddress = ` 地址: %s
`
+//
+// BuyerComment = ` 客户备注:
%s
`
+// GoodsListDetail = `商品明细:
+// 品名 数量 单价 小计
+// --------------------------------
`
+//
+// SkuName = `%s
`
+// SkuNumber = `x%s`
+// SkuPrice = ` ¥%s`
+// SkuAllPrice = ` ¥%s
`
+// SkuUpc = `upc码: %s\n`
+//
+// AllSkuTypeCount = `
共%s种,`
+// AllSkuCount = `%s件商品
--------------------------------
`
+//
+// StoreName = `商品质量问题请联系:
%s:`
+// StoreTel = `%s
更多信息请关注官方微信: `
+//
+// OfficialName = `%s
+// --------------------------------
+// --------------------------------
`
+//)
+
+type SkuListPrintOrder struct {
+ SkuName string `json:"skuName"` // 商品名称
+ SkuCount string `json:"skuCount"` // 商品数量
+ SalePrice string `json:"salePrice"` // 单价
+ TotalCountPrice string `json:"totalCountPrice"` // 总价
+ Upc string `json:"upc"` // 条形码
+}
+
+type JXPrintData struct {
+ EBailOrderNo string `json:"e_bail_order_no"` // 饿百取货码(品牌名称)
+ BusinessType string `json:"business_type"` // 是否为预定单 2-是/1-否
+ PayOrderTime string `json:"pay_order_time"` // 下单时间
+ TrySendTime string `json:"try_send_time"` // 预计送达时间
+ OrderNo string `json:"order_no"` // 订单编号
+ VendorName string `json:"vendor_name"` // 订单来源平台名称
+ VendorID string `json:"vendor_id"` // 订单来源平台Id
+ VendorOrderNo string `json:"vendor_order_no"` // 订单序号
+ EBaiCode string `json:"e_bai_code"` // 饿百取货码
+ QRCOrder string `json:"qrc_order"` // 订单二维码单号,还是订单Id
+ ConsigneeName string `json:"consignee_name"` // 客户名称
+ ConsigneeMobile string `json:"consignee_mobile"` // 客户电话
+ ConsigneeAddress string `json:"consignee_address"` // 客户地址
+ BuyerComment string `json:"buyer_comment"` // 客户备注
+ SkuList []*SkuListPrintOrder `json:"sku_list"` // 商品列表
+ SkuName string `json:"sku_name"` // 商品名称
+ SkuCount string `json:"sku_count"` // 商品件数
+ SkuOnePrice string `json:"sku_one_price"` // 商品单价
+ SkuAllPrice string `json:"sku_all_price"` // 商品总价 = 商品件数 x 商品件数
+ AllSkuTypeCount string `json:"all_sku_type_count"` // 商品种类
+ AllSkuCount string `json:"all_sku_count"` // 商品总数量
+ UserPayMoney string `json:"user_pay_money"` // 用户支付
+ StoreName string `json:"store_name"` // 门店名称
+ StoreTel string `json:"store_tel"` // 门店电话
+ OfficialName string `json:"official_name"` // 官方名称
+ BigFont string `json:"big_font"` // 是否为大字体
+ PrintNumber string `json:"print_number"` // 打印次数
+}
diff --git a/business/model/print_temp_voice.go b/business/model/print_temp_voice.go
new file mode 100644
index 000000000..d68d69e98
--- /dev/null
+++ b/business/model/print_temp_voice.go
@@ -0,0 +1,201 @@
+package model
+
+var NumberVoiceMap map[string]int
+
+func init() {
+ NumberVoiceMap = map[string]int{
+ "0": ZeroVoice,
+ "1": OneVoice,
+ "2": TwoVoice,
+ "3": ThreeVoice,
+ "4": FourVoice,
+ "5": FiveVoice,
+ "6": SixVoice,
+ "7": SevenVoice,
+ "8": EightVoice,
+ "9": NineVoice,
+ "10": TenVoice,
+ "20": TwentyVoice,
+ "30": ThirtyVoice,
+ "40": FortyVoice,
+ "50": FiftyVoice,
+ "60": SixtyVoice,
+ "70": SeventyVoice,
+ "80": EightyVoice,
+ "90": NinetyVoice,
+ "100": OneHundredVoice,
+ "200": TwoHundredVoice,
+ "300": ThereHundredVoice,
+ "400": FourHundredVoice,
+ "500": FiveHundredVoice,
+ "600": SixHundredVoice,
+ "700": SeventyHundredVoice,
+ "800": EightHundredVoice,
+ "900": NineHundredVoice,
+ "1000": OneThousandVoice,
+ }
+}
+
+// 语音常量
+const (
+ WeComeJXPrintVoice = 1 //. 欢迎使用京西云打印机.mp3
+ NetConnSuccessVoice = 2 //. 网络连接成功.mp3
+ NetConnFailVoice = 3 //. 网络连接失败和心跳失败.mp3
+ PrintLostPaperVoice = 4 //. 打印机缺纸或装纸错误.mp3
+ WFILPasswordErrVoice = 5 //. WIFI密码错误.mp3
+ NewOrderVoice = 6 //. 您来新订单了.mp3
+ WaitOrderVoice = 7 //. 您有新订单未处理.mp3
+ WaitPickUpOrderVoice = 8 //. 您有订单未拣货.mp3
+ RiderGetOrderVoice = 9 //. 骑手接单了.mp3
+ FinialsOrderVoice = 10 //. 定单以完成.mp3
+ ReminderOrderVoice = 11 //. 有人催单了.mp3
+ CancelOrderVoice = 12 //. 定单被取消了.mp3
+ ApplyCancelVoice = 13 //. 申请取消-后台设置播放几次.mp3
+ ApplyRefundVoice = 14 //. 申请退款-后台甚至播放几次.mp3
+ ApplyReturnGoodsVoice = 15 //. 申请退货-后台设置播放几次.mp3
+ DeliverFailVoice = 16 //. 骑手联系不到客户,可能会把商品送回.mp3
+ LoseTokenVoice = 17 //. 失去授权-联播3次.mp3
+ BusinessResponsibilityVoice = 18 //. 商家责任客服退款.mp3
+ EnterTheStoreVoice = 19 //. 进店咨询.mp3
+ StoreOfflineVoice = 20 //. 店铺被下线-联播3次.mp3
+ followVoice = 21 //. 请关注.mp3
+ ElmVoice = 22 //. 饿了么.mp3
+ JdToHose = 23 //. 京东到家.mp3
+ JxStore = 24 //. 京西.mp3
+ MtWmVoice = 25 //. 美团外卖.mp3
+ WmVoice = 26 //. 微盟.mp3
+ TaoBaoVoice = 27 //. 淘宝.mp3
+ JdVoice = 28 //. 京东.mp3
+ PddVoice = 29 //. 拼多多.mp3
+ MtVoice = 30 //. 美团.mp3
+ WdVoice = 31 //. 微店.mp3
+ XdVoice = 32 //. 新店.mp3
+ YzVoice = 33 //. 有赞.mp3
+ ZeroVoice = 34 //. 0.mp3
+ OneVoice = 35 //. 1.mp3
+ TwoVoice = 36 //. 2.mp3
+ ThreeVoice = 37 //. 3.mp3
+ FourVoice = 38 //. 4.mp3
+ FiveVoice = 39 //. 5.mp3
+ SixVoice = 40 //. 6.mp3
+ SevenVoice = 41 //. 7.mp3
+ EightVoice = 42 //. 8.mp3
+ NineVoice = 43 //. 9.mp3
+ TenVoice = 44 //. 10.mp3
+ TwentyVoice = 45 //. 20.mp3
+ ThirtyVoice = 46 //. 30.mp3
+ FortyVoice = 47 //. 40.mp3
+ FiftyVoice = 48 //. 50.mp3
+ SixtyVoice = 49 //. 60.mp3
+ SeventyVoice = 50 //. 70.mp3
+ EightyVoice = 51 //. 80.mp3
+ NinetyVoice = 52 //. 90.mp3
+ OneHundredVoice = 53 //. 100.mp3
+ TwoHundredVoice = 54 //. 200.mp3
+ ThereHundredVoice = 55 //. 300.mp3
+ FourHundredVoice = 56 //. 400.mp3
+ FiveHundredVoice = 57 //. 500.mp3
+ SixHundredVoice = 58 //. 600.mp3
+ SeventyHundredVoice = 59 //. 700.mp3
+ EightHundredVoice = 60 //. 800.mp3
+ NineHundredVoice = 61 //. 900.mp3
+ OneThousandVoice = 62 //. 1000.mp3
+ OrderNoVoice = 63 //. 号定单.mp3
+ BossVoice = 64 //. 老板.mp3
+ EldestBrotherVoice = 65 //. 大哥.mp3
+ EldestSisterVoice = 66 //. 大姐.mp3
+ ToStorePayVoice = 67 //. 到店支付.mp3
+ SpotVoice = 68 //. 点.mp3
+ BalanceEnoughVoice = 69 //. 余额不足5元.mp3
+ MondayVoice = 70 //. 星期一.mp3
+ TuesdayVoice = 71 //. 星期二.mp3
+ WednesdayVoice = 72 //. 星期三.mp3
+ ThursdayVoice = 73 //. 星期四.mp3
+ FridayVoice = 74 //. 星期五.mp3
+ SaturdayVoice = 75 //. 星期六.mp3
+ SundayVoice = 76 //. 星期天.mp3
+ ElementVoice = 77 //. 元.mp3
+)
+
+//
+//EBailOrderNo = "eBaiOrderNo" // 品牌名称
+//BusinessType = "businessType" // 是否为预定单
+//PayOrderTime = "payOrderTime" // 下单时间
+//TrySendTime = "trySendTime" // 预计送达时间
+//OrderNo = "orderNo" // 订单编号
+//VendorName = "vendorName" // 订单来源平台名称
+//VendorID = "vendorID" // 订单来源平台id
+//VendorOrderNo = "vendorOrderNo" // 订单序号1/2/
+//EBaiCode = "eBailCode" // 饿百取货码
+//QRCOrder = "qrcOrder" // 订单二维码单号,还是订单Id
+//ConsigneeName = "consigneeName" // 客户名称
+//ConsigneeMobile = "consigneeMobile" // 客户电话
+//ConsigneeAddress = "consigneeAddress" // 客户地址
+//BuyerComment = "buyerComment" // 客户备注
+//SkuList = "skuList" // 商品列表
+//SkuName = "skuName" // 商品名称
+//SkuCount = "skuCount" // 商品件数
+//SkuOnePrice = "skuOnePrice" // 商品单价
+//SkuAllPrice = "skuAllPrice" // 商品总价 = 商品件数 x 商品件数
+//AllSkuTypeCount = "allSkuTypeCount" // 商品种类
+//AllSkuCount = "allSkuCount" // 商品总数量
+//UserPayMoney = "userPayMoney" // 用户支付
+//StoreName = "storeName" // 门店名称
+//StoreTel = "storeTel" // 门店电话
+//OfficialName = "officialName" // 官方名称
+//BigFont = "bigFont" // 是否为大字体
+//PrintNumber = "printNumber" // 打印次数
+//AppID = "appId" // 应用id
+//// 状态对应打印设置的变化
+//OrderStatus = "orderStatus" // 订单状态
+//WayBillStatus = "wayBillStatus" // 运单状态
+//StoreStatus = "storeStatus" // 门店状态
+//ReminderStatus = "reminderStatus" // 催单状态
+//AfsOrderStatus = "afsOrderStatus" // 售后
+//
+//RiderVendorId = "riderVendorId" // 骑手所属平台id
+//RiderName = "riderName" // 骑手名称
+//RiderPhone = "riderPhone" // 骑手电话
+//RejectionReason = "rejectionReason" // 拒收原因
+//CustcareRefundReason = "custcareRefundReason" // 客服退款理由
+//EnterTheStore = "enterTheStore" // 催单
+// 菜市商城常量名称
+const (
+ EBailOrderNoPrint = "eBaiOrderNo" // 品牌名称
+ BusinessTypePrint = "businessType" // 是否为预定单
+ PayOrderTimePrint = "payOrderTime" // 下单时间
+ TrySendTimePrint = "trySendTime" // 预计送达时间
+ OrderNoPrint = "orderNo" // 订单编号
+ VendorNamePrint = "vendorName" // 订单来源平台名称
+ VendorIDPrint = "vendorID" // 订单来源平台id
+ VendorOrderNoPrint = "vendorOrderNo" // 订单序号1/2/
+ EBaiCodePrint = "eBailCode" // 饿百取货码
+ QRCOrderPrint = "qRCOrder" // 订单二维码单号,还是订单Id
+ ConsigneeNamePrint = "consigneeName" // 客户名称
+ ConsigneeMobilePrint = "consigneeMobile" // 客户电话
+ ConsigneeAddressPrint = "consigneeAddress" // 客户地址
+ BuyerCommentPrint = "buyerComment" // 客户备注
+ SkuListPrint = "skuList" // 商品列表
+ SkuNamePrint = "skuName" // 商品名称
+ SkuCountPrint = "skuCount" // 商品件数
+ SkuOnePricePrint = "skuOnePrice" // 商品单价
+ SkuAllPricePrint = "skuAllPrice" // 商品总价 = 商品件数 x 商品件数
+ AllSkuTypeCountPrint = "allSkuTypeCount" // 商品种类
+ AllSkuCountPrint = "allSkuCount" // 商品总数量
+ UserPayMoneyPrint = "userPayMoney" // 用户支付
+ StoreNamePrint = "storeName" // 门店名称
+ StoreTelPrint = "storeTel" // 门店电话
+ OfficialNamePrint = "officialName" // 官方名称
+ BigFontPrint = "bigFont" // 是否为大字体
+ PrintNumberPrint = "printNumber" // 打印次数
+ AppIDPrint = "appId" // 应用id
+ OrderStatusPrint = "orderStatus" // 订单状态
+ WayBillStatusPrint = "wayBillStatus" // 运单状态
+ StoreStatusPrint = "storeStatus" // 门店状态
+ RiderVendorIdPrint = "riderVendorId" // 骑手所属平台id
+ RiderNamePrint = "riderName" // 骑手名称
+ RiderPhonePrint = "riderPhone" // 骑手电话
+ RejectionReasonPrint = "rejectionReason" // 拒收原因
+ CustcareRefundReasonPrint = "custcareRefundReason" // 客服退款理由
+ EnterTheStorePrint = "enterTheStore" // 进店
+)