diff --git a/business/jxstore/cms/print.go b/business/jxstore/cms/print.go index f92983b9f..f1cf98557 100644 --- a/business/jxstore/cms/print.go +++ b/business/jxstore/cms/print.go @@ -128,26 +128,20 @@ func InitPrint(printer *model.Printer, printParam *model.AddPrinterParam) error return err } - // 打印机标号唯一,判断打印机是否存在设置 - //var setting []*model.PrintSetting - //if err := dao.GetRowsTx(txDb, &setting, `SELECT * FROM print_setting WHERE print_no = ?`, []interface{}{printer.PrintNo}...); err != nil { - // txDb.Rollback() - // return err - //} - //if len(setting) == 0 { - // 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, + CreatedAt: day, + UpdatedAt: day, + DeletedAt: utils.DefaultTimeValue, + PrintNo: printer.PrintNo, + CallNameSetting: 64, // 老板 + BusinessOffLineVoice: 1, // 离线开关 + BalanceNotEnoughVoice: 1, // 余额不足 + EveryDayGreetVoice: 1, // 问好 + BusinessPrintNum: 1, // 商户侧打印次数 + CustomerPrintNum: 1, // 用户侧打印次数 + }) if err != nil { return err @@ -181,78 +175,45 @@ func InitPrint(printer *model.Printer, printParam *model.AddPrinterParam) error // MarshalJson2String 工具类 func MarshalJson2String(param *model.PrintSetting) (*model.PrintSetting, error) { - // 打印机提示语音设置 - printVoiceSetting := &model.PrintVoice{ - TimeVoice: model.SettingClose, - PaperShortageVoice: model.SettingOpen, - DisconnectVoice: model.SettingOpen, - LoseAuthorization: model.SettingOpen, + // 语音设置 + voiceSetting := &model.VoiceSettingDetail{ + WaitOrderVoice: model.SettingOpen, + RiderTakeOrderVoice: model.SettingOpen, + ApplyUserOrderCancelVoice: model.SettingOpen, + ApplyRefundOrderVoice: model.SettingOpen, + ApplyRefundGoodsVoice: model.SettingOpen, + RefundGoodsVoice: model.SettingOpen, + ConfirmGoodsVoice: model.SettingOpen, + SuccessGoodsVoice: model.SettingOpen, + ConsultingPrint: model.SettingOpen, + ReminderVoice: model.SettingOpen, + CustomerRejectionVoice: model.SettingOpen, + CusterRefundVoice: model.SettingOpen, + LoseAuthorization: model.SettingOpen, } - printVoiceSettingByte, err := json.Marshal(printVoiceSetting) + customerVoiceSettingByte, err := json.Marshal(voiceSetting) if err != nil { return nil, err } - param.PrintVoiceSetting = string(printVoiceSettingByte) + param.VoiceSetting = string(customerVoiceSettingByte) - // 订单提示设置 - 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, + // 打印设置 + printSetting := &model.PrintSettingDetail{ + UserOrderCancel: model.SettingOpen, + RefundOrder: model.SettingOpen, + BusinessOrderCancel: model.SettingOpen, + RiderTakeOrder: model.SettingOpen, + CusterRefundPrint: model.SettingOpen, + WaitOrderPrint: model.SettingOpen, + ApplyUserCancelOrder: model.SettingOpen, + ApplyUserRefund: model.SettingOpen, + OrderCancelSuccess: model.SettingOpen, } - orderVoiceSettingByte, err := json.Marshal(orderVoiceSetting) + pickingSettingByte, err := json.Marshal(printSetting) 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) + param.PrintSetting = string(pickingSettingByte) return param, nil } diff --git a/business/model/print_edition.go b/business/model/print_edition.go new file mode 100644 index 000000000..68f577b69 --- /dev/null +++ b/business/model/print_edition.go @@ -0,0 +1,31 @@ +package model + +import "time" + +// PrintEdition 版本控制 +type PrintEdition struct { + ID int `orm:"column(id)" json:"id" db:"id"` + CreatedAt time.Time `orm:"type(datetime)" json:"created_at" db:"created_at"` // 创建时间 + UpdatedAt time.Time `orm:"type(datetime)" json:"updated_at" db:"updated_at"` // 更新时间 + EditionNo string `orm:"type(varchar);size(64)" json:"edition_no" db:"edition_no"` // 版本号 + EditionMsg string `orm:"type(text)" json:"edition_msg" db:"edition_msg"` // 更新说明 + IsHotBuild int `orm:"type(tinyint)" json:"is_hot_build" db:"is_hot_build"` // 是否热更新 + IsForce int `orm:"type(tinyint)" json:"is_force" db:"is_force"` // 是否强制更新 + APKUrl string `orm:"type(varchar);size(255)" json:"apk_url" db:"apk_url"` // apk下载地址 + HotUrl string `orm:"type(varchar);size(255)" json:"hot_url" db:"hot_url"` // 热更下载地址 +} + +type AddOrUpdatePrintEdition struct { + Id int `json:"id" form:"id"` // 修改填写 + CreatedAt time.Time `json:"created_at" form:"created_at"` // 修改填写 + EditionNo string `json:"edition_no" form:"edition_no" binding:"required"` // 版本号 + EditionMsg string `json:"edition_msg" form:"edition_msg" binding:"required"` // 更新说明 + IsHotBuild int `json:"is_hot_build" form:"is_hot_build" binding:"required"` // 是否热更新 + IsForce int `json:"is_force" form:"is_force" binding:"required" ` // 是否强制更新 + APKUrl string `json:"apk_url" form:"apk_url" binding:"required"` // apk下载地址 + HotUrl string `json:"hot_url" form:"hot_url" binding:"required"` // 热更下载地址 +} + +type DeletePrintEdition struct { + Id int `json:"id" form:"id" binding:"required"` +} diff --git a/business/model/print_notice.go b/business/model/print_notice.go new file mode 100644 index 000000000..90c854408 --- /dev/null +++ b/business/model/print_notice.go @@ -0,0 +1,30 @@ +package model + +import "time" + +// PrintNotice 包含广告和通知消息 +type PrintNotice struct { + ID int `orm:"column(id)" json:"id" db:"id"` + CreatedAt time.Time `orm:"type(datetime)" json:"created_at" db:"created_at"` // 创建时间 + UpdatedAt time.Time `orm:"type(datetime)" json:"updated_at" db:"updated_at"` // 更新时间 + NoticeType int `orm:"type(int)" json:"notice_type" db:"notice_type"` // 类型(1-广告/2-通知) + Msg string `orm:"type(varchar);size(255)" json:"msg" db:"msg"` // 内容(广告就是图片,通知消息就是文字) + Link string `orm:"type(varchar);size(255)" json:"link" db:"link"` // 跳转地址 +} + +type AddOrUpdatePrintNotice struct { + Id int `json:"id" form:"id"` + NoticeType int `json:"notice_type" form:"notice_type" binding:"required"` + Msg string `json:"msg" form:"msg" binding:"required"` + Link string `json:"link" form:"link" binding:"required"` +} + +type DeletePrintNotice struct { + Id int `json:"id" form:"id" binding:"required"` +} + +type QueryPrintNotice struct { + NoticeType int `json:"notice_type" form:"notice_type" binding:"required"` + PageSize int `json:"page_size" form:"page_size" binding:"required"` + PageNumber int `json:"page_number" form:"page_number" binding:"required"` +} diff --git a/business/model/print_setting.go b/business/model/print_setting.go index cea06c5c3..5d0b3ef84 100644 --- a/business/model/print_setting.go +++ b/business/model/print_setting.go @@ -7,19 +7,20 @@ import ( // PrintSetting 打印机设置 type PrintSetting 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"` - DeletedAt time.Time `json:"deleted_at" db:"deleted_at"` - PrintNo string `orm:"type(varchar);size(32)" json:"print_no" db:"print_no"` // 打印机编号 - CallNameSetting int `orm:"type(int);size(4);default(64)" json:"call_name_setting" db:"call_name_setting"` // 称谓设置 [64-默认老板] - SystemVoice int `orm:"type(tinyint);size(2);default(1)" json:"system_voice" db:"system_voice"` // 平台语音开关[1打开] + 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"` + DeletedAt time.Time `json:"deleted_at" db:"deleted_at"` + PrintNo string `orm:"type(varchar);size(32)" json:"print_no" db:"print_no"` // 打印机编号 + CallNameSetting int `orm:"type(int);size(4);default(64)" json:"call_name_setting" db:"call_name_setting"` // 称谓设置 [64-默认老板] + BusinessOffLineVoice int `orm:"type(tinyint);size(2);default(1)" json:"business_off_line_voice" db:"business_off_line_voice"` // 店铺离线语音[1打开] + BalanceNotEnoughVoice int `orm:"type(tinyint);size(2);default(1)" json:"balance_not_enough_voice" db:"balance_not_enough_voice"` // 余额不足语音提示[1打开] + EveryDayGreetVoice int `orm:"type(tinyint);size(2);default(1)" json:"every_day_greet_voice" db:"every_day_greet_voice"` // 每日招呼语音[1打开] + BusinessPrintNum int `orm:"type(int);size(4);default(1)" json:"business_print_num" db:"business_print_num"` // 商家侧订单打印次数 + CustomerPrintNum int `orm:"type(int);size(4);default(1)" json:"customer_print_num" json:"customer_print_num"` // 用户侧订单打印次数 - PrintVoiceSetting string `orm:"type(varchar);size(512)" json:"print_voice_setting" db:"print_voice_setting"` // 打印机提示语音设置 - OrderVoiceSetting string `orm:"type(varchar);size(512)" json:"order_voice_setting" db:"order_voice_setting"` // 订单提示设置 - RiderVoiceSetting string `orm:"type(varchar);size(512)" json:"rider_voice_setting" db:"rider_voice_setting"` // 骑手动态提示设置 - CustomerVoiceSetting string `orm:"type(varchar);size(512)" json:"customer_voice_setting" db:"customer_voice_setting"` // 客户收货提示设置 - PickingSetting string `orm:"type(varchar);size(512)" json:"picking_setting" db:"picking_setting"` // 拣货语音设置 + VoiceSetting string `orm:"type(varchar);size(1024)" json:"voice_setting" db:"voice_setting"` // 语音设置 + PrintSetting string `orm:"type(varchar);size(1024)" json:"print_setting" db:"print_setting"` // 打印设置 } func (v *PrintSetting) TableUnique() [][]string { @@ -29,117 +30,82 @@ func (v *PrintSetting) TableUnique() [][]string { } 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 // 拣货语音设置 + 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"` + PrintNo string `json:"print_no" db:"print_no"` // 打印机编号 + CallNameSetting int `json:"call_name_setting" db:"call_name_setting"` // 称谓设置 [64-默认老板] + BusinessOffLineVoice int `json:"business_off_line_voice" db:"business_off_line_voice"` // 店铺离线语音[1打开] + BalanceNotEnoughVoice int `json:"balance_not_enough_voice" db:"balance_not_enough_voice"` // 余额不足语音提示[1打开] + EveryDayGreetVoice int `json:"every_day_greet_voice" db:"every_day_greet_voice"` // 每日招呼语音[1打开] + BusinessPrintNum int `json:"business_print_num" db:"business_print_num"` // 商家侧订单打印次数 + CustomerPrintNum int `json:"customer_print_num" json:"customer_print_num"` // 用户侧订单打印次数 + + VoiceSetting *VoiceSettingDetail `json:"voice_setting" db:"voice_setting"` // 语音设置 + PrintSetting *PrintSettingDetail `json:"print_setting" db:"print_setting"` // 打印设置 } -// PrintVoice 打印机提示语音设置 -type PrintVoice struct { - TimeVoice int `json:"time_voice"` // 平台语音开关[1打开] - PaperShortageVoice int `json:"paper_shortage_voice"` // 缺纸语音开关[1打开] - DisconnectVoice int `json:"disconnect_voice"` // 打印机断开连接提示[1打开] - LoseAuthorization int `json:"lose_authorization"` // 失去授权语音提示[1打开] +// VoiceSettingDetail 语音设置 +type VoiceSettingDetail struct { + WaitOrderVoice int `json:"wait_order_voice"` // 待接单语音[1打开] + RiderTakeOrderVoice int `json:"rider_take_order_voice"` // 骑手接单语音[1打开] + ApplyUserOrderCancelVoice int `json:"apply_user_order_cancel_voice"` // 用户申请取消订单语音提示[1打开] + ApplyRefundOrderVoice int `json:"apply_refund_order_voice"` // 用户申请退款提示语音[1打开] + ApplyRefundGoodsVoice int `json:"apply_refund_goods_voice"` // 用户申请退货提示语音[1打开] + RefundGoodsVoice int `json:"refund_goods_voice"` // 订单已经取消语音[1打开] + ConfirmGoodsVoice int `json:"confirm_goods_voice"` // 确认接单语音[1打开] + SuccessGoodsVoice int `json:"success_goods_voice"` // 订单完成语音[1打开] + ConsultingPrint int `json:"consulting_print"` // 客户进店咨询打印[1打开] + ReminderVoice int `json:"reminder_voice"` // 客户催单语音[1打开] + CustomerRejectionVoice int `json:"customer_rejection_voice"` // 客户拒收语音[1打开] + CusterRefundVoice int `json:"custer_refund_voice"` // 客服(平台)退款语音[1打开] + LoseAuthorization int `json:"lose_authorization"` // 失去授权语音提示[1打开] } -// OrderVoice 订单提示设置 -type OrderVoice struct { - PrintOrder int `json:"print_order"` // 打印订单[1打开]必须 - OrderNotice int `json:"order_notice"` // 订单通知[1打开]必须 - UserOrderCancel int `json:"user_order_cancel"` // 用户取消订单打印[1打开] - UserOrderCancelVoice int `json:"user_order_cancel_voice"` // 用户取消订单订单语音提示[1打开] - RefundOrder int `json:"refund_order"` // 退款打印[1打开] - RefundOrderVoice int `json:"refund_order_voice"` // 退款提示语音[1打开] - BusinessOrderCancel int `json:"business_order_cancel"` // 取消订单[1打开] - BusinessOrderCancelVoice int `json:"business_order_cancel_voice"` // 取消订单语音提示[1打开] -} - -// RiderVoice 骑手动态语音提示 -type RiderVoice struct { - RiderTakeOrder int `json:"rider_take_order"` // 骑手接单打印[1打开] - RiderTakeOrderVoice int `json:"rider_take_order_voice"` // 骑手接单语音[1打开] - RiderServiceVoice int `json:"rider_service_voice"` // 骑手送达语音[1打开] - RiderReminderVoice int `json:"rider_reminder_voice"` // 骑手催单语音[1打开] -} - -// CustomerReceivingGoods 客户收货语音提示 -type CustomerReceivingGoods struct { - CustomerRejectionPrint int `json:"customer_rejection_print"` // 客户拒收打印[1打开] - CustomerRejectionVoice int `json:"customer_rejection_voice"` // 客户拒收语音[1打开] - CustcareRefundPrint int `json:"custcare_refund_print"` // 客服退款打印[1打开] - CustcareRefundVoice int `json:"custcare_refund_voice"` // 客服退款语音[1打开] - ConsultingPrint int `json:"consulting_print"` // 进店咨询打印[1打开] - ConsultingVoice int `json:"consulting_voice"` // 进店咨询语音[1打开] -} - -// ShopPickingVoice 店铺拣货语音提示 -type ShopPickingVoice struct { - BusinessOffLine int `json:"business_off_line"` // 店铺离线打印[1打开] - BusinessOffLineVoice int `json:"business_off_line_voice"` // 店铺离线语音[1打开] +// PrintSettingDetail 打印设置 +type PrintSettingDetail struct { + UserOrderCancel int `json:"user_order_cancel"` // 用户取消订单打印[1打开] + RefundOrder int `json:"refund_order"` // 订单退款打印[1打开] + BusinessOrderCancel int `json:"business_order_cancel"` // 商家取消打印[1打开] + RiderTakeOrder int `json:"rider_take_order"` // 骑手接单打印[1打开] + CusterRefundPrint int `json:"custer_refund_print"` // 客服退款打印[1打开] WaitOrderPrint int `json:"wait_order_print"` // 待接单打印[1打开] - WaitOrderVoice int `json:"wait_order_voice"` // 待接单语音[1打开] - WaitPickingPrint int `json:"wait_picking_print"` // 待拣货单打印[1打开] - WaitPickingVoice int `json:"wait_picking_voice"` // 待拣货语音[1打开] + ApplyUserCancelOrder int `json:"apply_user_cancel_order"` // 用户申请取消订单打印[1打开] + ApplyUserRefund int `json:"apply_user_refund"` // 申请部分退款打印[1打开] + OrderCancelSuccess int `json:"order_cancel_success"` // 取消成功打印[1打开] } // UnMarshalString2Json 将字符串设置转换为对象设置 func UnMarshalString2Json(param *PrintSetting) (*PrintSettingObj, error) { var ( - printVoiceSetting = &PrintVoice{} - orderVoiceSetting = &OrderVoice{} - riderVoiceSetting = &RiderVoice{} - customerVoiceSetting = &CustomerReceivingGoods{} - pickingSetting = &ShopPickingVoice{} + printSetting = &PrintSettingDetail{} + voiceSetting = &VoiceSettingDetail{} ) 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, + 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.PrintVoiceSetting), &printVoiceSetting); err != nil { + if err := json.Unmarshal([]byte(param.VoiceSetting), voiceSetting); err != nil { return nil, err } - result.PrintVoiceSetting = printVoiceSetting + result.VoiceSetting = voiceSetting - if err := json.Unmarshal([]byte(param.OrderVoiceSetting), &orderVoiceSetting); err != nil { + if err := json.Unmarshal([]byte(param.PrintSetting), printSetting); 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 + result.PrintSetting = printSetting return result, nil } diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 5c3f2b8a5..98c2176ef 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -25,6 +25,8 @@ func Init() { orm.RegisterModel(&model.PrintBillRecord{}) orm.RegisterModel(&model.PrintBindStore{}) orm.RegisterModel(&model.PrintActivation{}) + orm.RegisterModel(&model.PrintEdition{}) + orm.RegisterModel(&model.PrintNotice{}) // create table orm.RunSyncdb("default", false, true) }