diff --git a/business/jxstore/cms/print.go b/business/jxstore/cms/print.go index 4bb546b84..6c7774e19 100644 --- a/business/jxstore/cms/print.go +++ b/business/jxstore/cms/print.go @@ -16,38 +16,44 @@ type PrintInfo struct { AppID int } -func AddPrinter(appID int, printNo, printKey, name string) (err error) { +func AddPrinter(appID int, printers []*model.Printer) (err error) { var ( db = dao.GetDB() ) - //看有没有重复的 - if printers, _ := dao.GetPrinters(db, appID, printNo); len(printers) > 0 { - return fmt.Errorf("此应用已经绑定了该打印机!print_no : %v", printNo) + if len(printers) > 50 { + return fmt.Errorf("一次最多只能绑定50台!") } - printer := &model.Printer{ - AppID: appID, - PrintNo: printNo, - PrintKey: printKey, - Name: name, - Status: model.PrinterStatusOffline, - } - dao.WrapAddIDCULDEntity(printer, "") - if err = dao.CreateEntity(db, printer); err != nil { - return err + for _, v := range printers { + if printers2, _ := dao.GetPrinters(db, appID, v.PrintNo); len(printers2) > 0 { + return fmt.Errorf("此应用已经绑定了该打印机!print_no : %v", v.PrintNo) + } + printer := &model.Printer{ + AppID: appID, + PrintNo: v.PrintNo, + Name: v.Name, + SIM: v.SIM, + Status: model.PrinterStatusOffline, + } + dao.WrapAddIDCULDEntity(printer, "") + if err = dao.CreateEntity(db, printer); err != nil { + return err + } } return err } -func DelPrinter(appID int, printNo string) (err error) { +func DelPrinter(appID int, printNos []string) (err error) { var ( db = dao.GetDB() ) - //看有没有 - if printers, _ := dao.GetPrinters(db, appID, printNo); len(printers) == 0 { - return fmt.Errorf("该应用下未找到该打印机!print_no : %v", printNo) - } else { - if _, err = dao.DeleteEntity(db, printers[0]); err != nil { - return err + for _, v := range printNos { + if printers, _ := dao.GetPrinters(db, appID, v); len(printers) == 0 { + return fmt.Errorf("该应用下未找到该打印机!print_no : %v", v) + } else { + printers[0].DeletedAt = time.Now() + if _, err = dao.UpdateEntity(db, printers[0], "DeletedAt"); err != nil { + return err + } } } return err diff --git a/controllers/api_controller.go b/controllers/api_controller.go index 16b4e6277..4b4741109 100644 --- a/controllers/api_controller.go +++ b/controllers/api_controller.go @@ -188,7 +188,7 @@ func (c *ApiController) AddPrinter(dataMap map[string]interface{}) (data, errCod var ( printers []*model.Printer printersStr string - //appID int + appID int ) globals.SugarLogger.Debugf("Begin API AddPrinter data: [%v]", utils.Format4Output(dataMap, false)) if _, ok := dataMap["prints"].(string); !ok { @@ -201,34 +201,43 @@ func (c *ApiController) AddPrinter(dataMap map[string]interface{}) (data, errCod if err = utils.UnmarshalUseNumber([]byte(printersStr), &printers); err != nil { return buildParamErrCodeAndErr("prints") } - //for _, v := range printers { - // if v.PrintNo { - // - // } - //} - //appID = utils.Str2Int(dataMap[keyAppID].(string)) - //if err = cms.AddPrinter(appID, printers); err != nil { - // return "", model.ErrCodeGeneralFailed, err - //} - return "", errCode, err -} - -//删除打印机绑定,暂不支持批量 -func (c *ApiController) DelPrinter(dataMap map[string]interface{}) (data, errCode string, err error) { - var ( - printNo string - appID int - ) - globals.SugarLogger.Debugf("Begin API DelPrinter data: [%v]", utils.Format4Output(dataMap, false)) - if _, ok := dataMap[keyPrintNo].(string); !ok { - return buildParamErrCodeAndErr(keyPrintNo) - } else { - if printNo = dataMap[keyPrintNo].(string); printNo == "" { - return buildParamErrCodeAndErr(keyPrintNo) + for _, v := range printers { + if v.PrintNo == "" { + return buildParamErrCodeAndErr("prints") } } appID = utils.Str2Int(dataMap[keyAppID].(string)) - if err = cms.DelPrinter(appID, printNo); err != nil { + if err = cms.AddPrinter(appID, printers); err != nil { + return "", model.ErrCodeGeneralFailed, err + } + return "", errCode, err +} + +//删除打印机绑定 +func (c *ApiController) DelPrinter(dataMap map[string]interface{}) (data, errCode string, err error) { + var ( + printNos []string + printNosStr string + appID int + ) + globals.SugarLogger.Debugf("Begin API DelPrinter data: [%v]", utils.Format4Output(dataMap, false)) + if _, ok := dataMap["print_nos"].(string); !ok { + return buildParamErrCodeAndErr("print_nos") + } else { + if printNosStr = dataMap["print_nos"].(string); printNosStr == "" { + return buildParamErrCodeAndErr("print_nos") + } + } + if err = utils.UnmarshalUseNumber([]byte(printNosStr), &printNos); err != nil { + return buildParamErrCodeAndErr("print_nos") + } + for _, v := range printNos { + if v == "" { + return buildParamErrCodeAndErr("print_nos") + } + } + appID = utils.Str2Int(dataMap[keyAppID].(string)) + if err = cms.DelPrinter(appID, printNos); err != nil { return "", model.ErrCodeGeneralFailed, err } return "", errCode, err