package app_server import ( "encoding/json" "errors" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-print/dao" settingModel "git.rosy.net.cn/jx-print/model/app_model" "time" ) type PrintSettingServer struct { } var PrintSettingInfoServer = new(PrintSettingServer) // UpdatePrintSetting 修改打印机绑定信息 func (p *PrintSettingServer) UpdatePrintSetting(userId string, param *settingModel.UpdatePrintSetting) error { // 判断打印机和用户是否匹配 isTrue, err := dao.GetPrintById(userId, param.PrintNo) if err != nil { return err } if !isTrue { return errors.New("此打印机不属于该用户") } return dao.PrintSettingInfoDao.UpdatePrinterSetting(param) } // SystemInitPrintSetting 绑定打印机时初始化一个打印机设置 func (p *PrintSettingServer) SystemInitPrintSetting(printNo string) error { // 打印机标号唯一,判断打印机是否存在设置 isHave, err := dao.PrintSettingInfoDao.QueryPrintNoIsExit(printNo) if err != nil { return err } if !isHave { return errors.New("已经存在绑定的打印机设置,联系管理员") } day := time.Now() param, err := MarshalJson2String(&settingModel.PrintSetting{ CreatedAt: day, UpdatedAt: day, DeletedAt: utils.DefaultTimeValue, PrintNo: printNo, CallNameSetting: 64, SystemVoice: 1, }) if err != nil { return err } return dao.PrintSettingInfoDao.InsertPrintSetting(param) } // DeletePrintSetting 删除打印机设置 func (p *PrintSettingServer) DeletePrintSetting(printNo []string) error { return dao.PrintSettingInfoDao.DeleteSetting(printNo) } // QueryPrintSetting 查询用户打印机设置 func (p *PrintSettingServer) QueryPrintSetting(printNo string) (*settingModel.PrintSettingObj, error) { PrintSetting, err := dao.PrintSettingInfoDao.QueryPrintSetting(printNo) if err != nil { return nil, err } if PrintSetting == nil { return nil, errors.New("打印机设置查询错误") } return UnMarshalString2Json(PrintSetting) } // MarshalJson2String 工具类 func MarshalJson2String(param *settingModel.PrintSetting) (*settingModel.PrintSetting, error) { // 打印机提示语音设置 printVoiceSetting := &settingModel.PrintVoice{ TimeVoice: settingModel.SettingClose, PaperShortageVoice: settingModel.SettingOpen, DisconnectVoice: settingModel.SettingOpen, LoseAuthorization: settingModel.SettingOpen, } printVoiceSettingByte, err := json.Marshal(printVoiceSetting) if err != nil { return nil, err } param.PrintVoiceSetting = string(printVoiceSettingByte) // 订单提示设置 orderVoiceSetting := &settingModel.OrderVoice{ PrintOrder: settingModel.SettingOpen, OrderNotice: settingModel.SettingOpen, UserOrderCancel: settingModel.SettingClose, UserOrderCancelVoice: settingModel.SettingOpen, RefundOrder: settingModel.SettingOpen, RefundOrderVoice: settingModel.SettingOpen, BusinessOrderCancel: settingModel.SettingClose, BusinessOrderCancelVoice: settingModel.SettingOpen, } orderVoiceSettingByte, err := json.Marshal(orderVoiceSetting) if err != nil { return nil, err } param.OrderVoiceSetting = string(orderVoiceSettingByte) // 送达设置 riderVoiceSetting := &settingModel.RiderVoice{ RiderTakeOrder: settingModel.SettingOpen, RiderTakeOrderVoice: settingModel.SettingOpen, RiderServiceVoice: settingModel.SettingOpen, RiderReminderVoice: settingModel.SettingOpen, } riderVoiceSettingByte, err := json.Marshal(riderVoiceSetting) if err != nil { return nil, err } param.RiderVoiceSetting = string(riderVoiceSettingByte) // 客户收货语音设置 customerVoiceSetting := &settingModel.CustomerReceivingGoods{ CustomerRejectionPrint: settingModel.SettingClose, CustomerRejectionVoice: settingModel.SettingOpen, CustcareRefundPrint: settingModel.SettingClose, CustcareRefundVoice: settingModel.SettingOpen, ConsultingPrint: settingModel.SettingClose, ConsultingVoice: settingModel.SettingClose, } customerVoiceSettingByte, err := json.Marshal(customerVoiceSetting) if err != nil { return nil, err } param.CustomerVoiceSetting = string(customerVoiceSettingByte) // 拣货设置 pickingSetting := &settingModel.ShopPickingVoice{ BusinessOffLine: settingModel.SettingClose, BusinessOffLineVoice: settingModel.SettingOpen, WaitOrderPrint: settingModel.SettingClose, WaitOrderVoice: settingModel.SettingOpen, WaitPickingPrint: settingModel.SettingClose, WaitPickingVoice: settingModel.SettingOpen, } pickingSettingByte, err := json.Marshal(pickingSetting) if err != nil { return nil, err } param.PickingSetting = string(pickingSettingByte) return param, nil } // UnMarshalString2Json 将字符串设置转换为对象设置 func UnMarshalString2Json(param *settingModel.PrintSetting) (*settingModel.PrintSettingObj, error) { var ( printVoiceSetting = &settingModel.PrintVoice{} orderVoiceSetting = &settingModel.OrderVoice{} riderVoiceSetting = &settingModel.RiderVoice{} customerVoiceSetting = &settingModel.CustomerReceivingGoods{} pickingSetting = &settingModel.ShopPickingVoice{} ) result := &settingModel.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 }