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" "github.com/jmoiron/sqlx" "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(txDB *sqlx.Tx, printNo string) error { // 打印机标号唯一,判断打印机是否存在设置 isHave, err := dao.PrintSettingInfoDao.QueryPrintNoIsExit(printNo) if err != nil { return err } if !isHave { // 修改打印机所属用户 return nil } day := time.Now() param, err := MarshalJson2String(&settingModel.PrintSetting{ CreatedAt: day, UpdatedAt: day, DeletedAt: utils.DefaultTimeValue, PrintNo: printNo, CallNameSetting: 64, // 老板 BusinessPrintNum: 1, // 打印一份 CustomerPrintNum: 1, // 打印一份 }) if err != nil { return err } return dao.PrintSettingInfoDao.InsertPrintSetting(txDB, 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) { // 语音设置 voiceSetting := &settingModel.VoiceSettingDetail{ WaitOrderVoice: settingModel.SettingOpen, RiderTakeOrderVoice: settingModel.SettingOpen, ApplyUserOrderCancelVoice: settingModel.SettingOpen, ApplyRefundOrderVoice: settingModel.SettingOpen, ApplyRefundGoodsVoice: settingModel.SettingOpen, RefundGoodsVoice: settingModel.SettingOpen, ConfirmGoodsVoice: settingModel.SettingOpen, SuccessGoodsVoice: settingModel.SettingOpen, ConsultingPrint: settingModel.SettingOpen, ReminderVoice: settingModel.SettingOpen, CustomerRejectionVoice: settingModel.SettingOpen, CusterRefundVoice: settingModel.SettingOpen, LoseAuthorization: settingModel.SettingOpen, } customerVoiceSettingByte, err := json.Marshal(voiceSetting) if err != nil { return nil, err } param.VoiceSetting = string(customerVoiceSettingByte) // 打印设置 printSetting := &settingModel.PrintSettingDetail{ UserOrderCancel: settingModel.SettingOpen, RefundOrder: settingModel.SettingOpen, BusinessOrderCancel: settingModel.SettingOpen, RiderTakeOrder: settingModel.SettingOpen, CusterRefundPrint: settingModel.SettingOpen, WaitOrderPrint: settingModel.SettingOpen, ApplyUserCancelOrder: settingModel.SettingOpen, ApplyUserRefund: settingModel.SettingOpen, OrderCancelSuccess: settingModel.SettingOpen, } pickingSettingByte, err := json.Marshal(printSetting) if err != nil { return nil, err } param.PrintSetting = string(pickingSettingByte) return param, nil } // UnMarshalString2Json 将字符串设置转换为对象设置 func UnMarshalString2Json(param *settingModel.PrintSetting) (*settingModel.PrintSettingObj, error) { var ( printSetting = &settingModel.PrintSettingDetail{} voiceSetting = &settingModel.VoiceSettingDetail{} ) result := &settingModel.PrintSettingObj{ ID: param.ID, CreatedAt: param.CreatedAt, UpdatedAt: param.UpdatedAt, DeletedAt: param.DeletedAt, PrintNo: param.PrintNo, CallNameSetting: param.CallNameSetting, BusinessOffLineVoice: param.BusinessOffLineVoice, BalanceNotEnoughVoice: param.BalanceNotEnoughVoice, EveryDayGreetVoice: param.EveryDayGreetVoice, BusinessPrintNum: param.BusinessPrintNum, CustomerPrintNum: param.CustomerPrintNum, } if err := json.Unmarshal([]byte(param.VoiceSetting), voiceSetting); err != nil { return nil, err } result.VoiceSetting = voiceSetting if err := json.Unmarshal([]byte(param.PrintSetting), printSetting); err != nil { return nil, err } result.PrintSetting = printSetting return result, nil }