diff --git a/business/jxstore/cms/print.go b/business/jxstore/cms/print.go index e130fdd36..7d1ec27db 100644 --- a/business/jxstore/cms/print.go +++ b/business/jxstore/cms/print.go @@ -41,7 +41,7 @@ var ( } ) -func AddPrinter(appID int, printers []*model.Printer) (err error) { +func AddPrinter(appID int, printers []*model.AddPrinterParam) (err error) { var ( db = dao.GetDB() errs []error @@ -55,26 +55,27 @@ func AddPrinter(appID int, printers []*model.Printer) (err error) { continue } //验证 - if err = checkPrinterInfo(v.PrintNo, v.Name, v.Sound, v.IccID, v.Volume); err != nil { + if err = checkPrinterInfo(v.PrintNo, v.Name, "", "", 0); err != nil { errs = append(errs, err) continue } + printer := &model.Printer{ - AppID: appID, - PrintNo: v.PrintNo, - Name: v.Name, - IccID: v.IccID, - Status: model.PrinterStatusOffline, - Sound: v.Sound, - } - if v.Volume == 0 { - printer.Volume = 4 - } - if v.UserId == "" { - printer.UserId = "system" - } else { - printer.UserId = v.UserId + AppID: appID, + PrintNo: v.PrintNo, + Name: v.Name, + IccID: "", + Status: model.PrinterStatusOffline, + Sound: "sounda", + PrintKey: v.SIM, + IsOnline: 0, + Volume: 1, + FlowFlag: 0, + OfflineCount: 0, + UserId: "system", } + + // 创建打印机 dao.WrapAddIDCULDEntity(printer, "") if err = dao.CreateEntity(db, printer); err != nil { errs = append(errs, err) @@ -87,6 +88,119 @@ func AddPrinter(appID int, printers []*model.Printer) (err error) { return err } +func InitPrint(printer *model.Printer) error { + txDb, _ := dao.Begin(dao.GetDB()) + // 创建打印机 + dao.WrapAddIDCULDEntity(printer, "") + if err := dao.CreateEntityTx(txDb, printer); err != nil { + txDb.Rollback() + return err + } + + // 打印机标号唯一,判断打印机是否存在设置 + var setting *model.PrintSetting + if err := dao.GetRowTx(txDb, &setting, `SELECT * FROM print_setting WHERE print_no = ?`, []interface{}{printer.PrintNo}...); err != nil { + txDb.Rollback() + return err + } + if setting != nil { + txDb.Rollback() + return fmt.Errorf("此打印机已经被绑定过了") + } + + // 赋予打印机默认配置 + day := time.Now() + param, err := MarshalJson2String(&model.PrintSetting{ + CreatedAt: day, + UpdatedAt: day, + DeletedAt: utils.DefaultTimeValue, + PrintNo: printer.PrintNo, + CallNameSetting: 64, + SystemVoice: 1, + }) + if err != nil { + return err + } + dao.CreateEntityTx(txDb, ¶m) +} + +// MarshalJson2String 工具类 +func MarshalJson2String(param *model.PrintSetting) (*model.PrintSetting, error) { + // 打印机提示语音设置 + printVoiceSetting := &model.PrintVoice{ + TimeVoice: model.SettingClose, + PaperShortageVoice: model.SettingOpen, + DisconnectVoice: model.SettingOpen, + LoseAuthorization: model.SettingOpen, + } + printVoiceSettingByte, err := json.Marshal(printVoiceSetting) + if err != nil { + return nil, err + } + param.PrintVoiceSetting = string(printVoiceSettingByte) + + // 订单提示设置 + orderVoiceSetting := &model.OrderVoice{ + PrintOrder: model.SettingOpen, + OrderNotice: model.SettingOpen, + UserOrderCancel: model.SettingClose, + UserOrderCancelVoice: model.SettingOpen, + RefundOrder: model.SettingOpen, + RefundOrderVoice: model.SettingOpen, + BusinessOrderCancel: model.SettingClose, + BusinessOrderCancelVoice: model.SettingOpen, + } + orderVoiceSettingByte, err := json.Marshal(orderVoiceSetting) + if err != nil { + return nil, err + } + param.OrderVoiceSetting = string(orderVoiceSettingByte) + + // 送达设置 + riderVoiceSetting := &model.RiderVoice{ + RiderTakeOrder: model.SettingOpen, + RiderTakeOrderVoice: model.SettingOpen, + RiderServiceVoice: model.SettingOpen, + RiderReminderVoice: model.SettingOpen, + } + riderVoiceSettingByte, err := json.Marshal(riderVoiceSetting) + if err != nil { + return nil, err + } + param.RiderVoiceSetting = string(riderVoiceSettingByte) + + // 客户收货语音设置 + customerVoiceSetting := &model.CustomerReceivingGoods{ + CustomerRejectionPrint: model.SettingClose, + CustomerRejectionVoice: model.SettingOpen, + CustcareRefundPrint: model.SettingClose, + CustcareRefundVoice: model.SettingOpen, + ConsultingPrint: model.SettingClose, + ConsultingVoice: model.SettingClose, + } + customerVoiceSettingByte, err := json.Marshal(customerVoiceSetting) + if err != nil { + return nil, err + } + param.CustomerVoiceSetting = string(customerVoiceSettingByte) + + // 拣货设置 + pickingSetting := &model.ShopPickingVoice{ + BusinessOffLine: model.SettingClose, + BusinessOffLineVoice: model.SettingOpen, + WaitOrderPrint: model.SettingClose, + WaitOrderVoice: model.SettingOpen, + WaitPickingPrint: model.SettingClose, + WaitPickingVoice: model.SettingOpen, + } + pickingSettingByte, err := json.Marshal(pickingSetting) + if err != nil { + return nil, err + } + param.PickingSetting = string(pickingSettingByte) + return param, nil +} + func checkPrinterInfo(printNo, name, sound, sim string, volume int) (err error) { if printNo != "" { diff --git a/business/model/print.go b/business/model/print.go index e734d3e66..b24380cfc 100644 --- a/business/model/print.go +++ b/business/model/print.go @@ -14,6 +14,12 @@ const ( PrintMsgAll = -9 ) +type AddPrinterParam struct { + PrintNo string `json:"print_no"` //打印机编号 + Name string `json:"name"` //打印机备注名 + SIM string `json:"sim"` //sim卡号 +} + type Printer struct { ModelIDCULD diff --git a/controllers/api_controller.go b/controllers/api_controller.go index 715e6e6ee..cf877d9e3 100644 --- a/controllers/api_controller.go +++ b/controllers/api_controller.go @@ -193,7 +193,7 @@ end: //添加打印机,一次最多50条 func (c *ApiController) AddPrinter(dataMap map[string]interface{}) (data, errCode string, err error) { var ( - printers []*model.Printer + printers []*model.AddPrinterParam printersStr string appID int )