diff --git a/business/jxstore/cms/print.go b/business/jxstore/cms/print.go index 066ba61dc..b72da8684 100644 --- a/business/jxstore/cms/print.go +++ b/business/jxstore/cms/print.go @@ -305,3 +305,12 @@ func connHandler(c net.Conn, printInfo *PrintInfo) (status int) { fmt.Println("server response:", string(buf[:n])) return status } + +//#region 打印机拼装模板 + +// QueryPrinterSetting 查询用户设置 +func QueryPrinterSetting() { + +} + +//#endregion 打印机 diff --git a/business/model/dao/dao_print.go b/business/model/dao/dao_print.go index a8df3002c..9de0b247d 100644 --- a/business/model/dao/dao_print.go +++ b/business/model/dao/dao_print.go @@ -5,6 +5,30 @@ import ( "git.rosy.net.cn/jx-callback/business/model" ) +// QueryUserPrinter 查询用户打印机 +func QueryUserPrinter(userId, printNo string) (*model.Printer, error) { + sql := ` + SELECT * + FROM printer + WHERE 1 = 1 AND deleted_at = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + } + + if printNo != "" { + sql += " AND print_no = ?" + sqlParams = append(sqlParams, printNo) + } + if userId != "" { + sql += " AND user_id = ?" + sqlParams = append(sqlParams, userId) + } + var printer = &model.Printer{} + err := GetRow(GetDB(), &printer, sql, sqlParams) + return printer, err +} + func GetPrinters(db *DaoDB, appID int, printNo string, status, statusNeq int) (printers []*model.Printer, err error) { sql := ` SELECT * diff --git a/business/model/print_setting.go b/business/model/print_setting.go index f2e6502f7..ec9cc3927 100644 --- a/business/model/print_setting.go +++ b/business/model/print_setting.go @@ -1,10 +1,16 @@ package model -import "time" +import ( + "encoding/json" + "errors" + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/model/dao" + "time" +) // PrintSetting 打印机设置 type PrintSetting struct { - ID int `orm:"column(id)" json:"id" db:"id"` + ID int `json:"id" db:"id"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` DeletedAt time.Time `json:"deleted_at" db:"deleted_at"` @@ -25,10 +31,19 @@ func (v *PrintSetting) TableUnique() [][]string { } } -func (v *PrintSetting) TableIndex() [][]string { - return [][]string{ - []string{"CreatedAt"}, - } +type PrintSettingObj struct { + ID int + CreatedAt time.Time + UpdatedAt time.Time + DeletedAt time.Time + PrintNo string // 打印机编号 + CallNameSetting int // 称谓设置 [64-默认老板] + SystemVoice int // 平台语音开关[1打开] + PrintVoiceSetting *PrintVoice // 打印机提示语音设置 + OrderVoiceSetting *OrderVoice // 订单提示设置 + RiderVoiceSetting *RiderVoice // 骑手动态提示设置 + CustomerVoiceSetting *CustomerReceivingGoods // 客户收货提示设置 + PickingSetting *ShopPickingVoice // 拣货语音设置 } // PrintVoice 打印机提示语音设置 @@ -79,14 +94,75 @@ type ShopPickingVoice struct { WaitPickingVoice int `json:"wait_picking_voice"` // 待接单语音[1打开] } -// AddPrintSetting 打印机设置添加 -type AddPrintSetting struct { - PrintNo string `json:"print_no" form:"print_no" binding:"required"` - CallNameSetting int `json:"call_name_setting" form:"call_name_setting"` - SystemVoice int `json:"system_voice" form:"system_voice"` - PrintVoiceSetting *PrintVoice - OrderVoiceSetting *OrderVoice - RiderVoiceSetting *RiderVoice - CustomerVoiceSetting *CustomerReceivingGoods - PickingSetting *ShopPickingVoice +func GetPrintSetting(printNo string) (*PrintSettingObj, error) { + sql := ` SELECT * FROM print_setting WHERE print_no = ? and deleted_at = ? ` + sqlParams := []interface{}{ + printNo, + utils.DefaultTimeValue, + } + + var printSetting *PrintSetting + if err := dao.GetRows(dao.GetDB(), &printSetting, sql, sqlParams...); err != nil { + return nil, err + } + if printSetting == nil { + return nil, errors.New("数据查询异常") + } + + return UnMarshalString2Json(printSetting) +} + +// 将打印机设置转换一下 + +// UnMarshalString2Json 将字符串设置转换为对象设置 +func UnMarshalString2Json(param *PrintSetting) (*PrintSettingObj, error) { + var ( + printVoiceSetting = &PrintVoice{} + orderVoiceSetting = &OrderVoice{} + riderVoiceSetting = &RiderVoice{} + customerVoiceSetting = &CustomerReceivingGoods{} + pickingSetting = &ShopPickingVoice{} + ) + + result := &PrintSettingObj{ + ID: param.ID, + CreatedAt: param.CreatedAt, + UpdatedAt: param.UpdatedAt, + DeletedAt: param.DeletedAt, + PrintNo: param.PrintNo, + CallNameSetting: param.CallNameSetting, + SystemVoice: param.SystemVoice, + PrintVoiceSetting: nil, + OrderVoiceSetting: nil, + RiderVoiceSetting: nil, + CustomerVoiceSetting: nil, + PickingSetting: nil, + } + + if err := json.Unmarshal([]byte(param.PrintVoiceSetting), printVoiceSetting); err != nil { + return nil, err + } + result.PrintVoiceSetting = printVoiceSetting + + if err := json.Unmarshal([]byte(param.OrderVoiceSetting), orderVoiceSetting); err != nil { + return nil, err + } + result.OrderVoiceSetting = orderVoiceSetting + + if err := json.Unmarshal([]byte(param.RiderVoiceSetting), riderVoiceSetting); err != nil { + return nil, err + } + result.RiderVoiceSetting = riderVoiceSetting + + if err := json.Unmarshal([]byte(param.CustomerVoiceSetting), customerVoiceSetting); err != nil { + return nil, err + } + result.CustomerVoiceSetting = customerVoiceSetting + + if err := json.Unmarshal([]byte(param.PickingSetting), pickingSetting); err != nil { + return nil, err + } + result.PickingSetting = pickingSetting + + return result, nil } diff --git a/business/model/print_temp.go b/business/model/print_temp.go index 6080f76da..1903ecb9f 100644 --- a/business/model/print_temp.go +++ b/business/model/print_temp.go @@ -1,6 +1,10 @@ package model -import "time" +import ( + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/model/dao" + "time" +) type SystemTemp struct { ID int `orm:"column(id)" json:"id" db:"id"` @@ -30,3 +34,43 @@ func (v *SystemTemp) TableIndex() [][]string { []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 // 关闭 +) + +// SelectUserDefaultTemp 查询用户默认模板 +func SelectUserDefaultTemp(userId string, tempType string) (*SystemTemp, bool, error) { + var result *SystemTemp + if err := dao.GetRow(dao.GetDB(), &result, `SELECT * FROM system_temp WHERE user_id = ? AND temp_type = ? AND is_use = ? AND deleted_at = ? ORDER BY created_at desc `, []interface{}{userId, tempType, 1, utils.DefaultTimeValue}...); err != nil { + return nil, false, err + } + return result, true, nil +} + +// QuerySystemTemp 查询系统模板 +func QuerySystemTemp() ([]*SystemTemp, error) { + var result []*SystemTemp + if err := dao.GetRows(dao.GetDB(), &result, `SELECT * FROM system_temp WHERE user_id = ? ORDER BY created_at desc `, []interface{}{"system_user"}...); err != nil { + return nil, err + } + return result, nil +} + +// AddTemp 添加模板数据 +func AddTemp(param *SystemTemp) error { + return dao.CreateEntity(dao.GetDB(), param) +} diff --git a/business/model/print_temp_config.go b/business/model/print_temp_config.go new file mode 100644 index 000000000..2448d304e --- /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 +} + +// SystemTempKey 系统数据库模板排序 +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 = `