This commit is contained in:
邹宗楠
2022-08-23 15:03:57 +08:00
parent 8818dc957c
commit 14fa03b586
3 changed files with 137 additions and 17 deletions

View File

@@ -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, &param)
}
// 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 != "" {

View File

@@ -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

View File

@@ -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
)