package db
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"LAPP_PRN_Service/common"
|
|
conf "LAPP_PRN_Service/config"
|
|
"LAPP_PRN_Service/glog"
|
|
"strings"
|
|
"xorm.io/core"
|
|
)
|
|
|
|
/******************************************************************************
|
|
*
|
|
* @Struct Name : Printer
|
|
*-----------------------------------------------------------------------------
|
|
*
|
|
* @Description : Printer的实体映射
|
|
*
|
|
* @Author : lou wenzhi
|
|
*
|
|
* @Date : 2021-04-13 13:08:46
|
|
*
|
|
******************************************************************************/
|
|
type Printer struct {
|
|
PlantNr int `xorm:"pk int 'PlantNr'" json:"Printer-PlantNr"`
|
|
PrinterId string `xorm:"pk varchar(18) 'PrinterId'" json:"Printer-PrinterId"`
|
|
Descr string `xorm:"varchar(30) 'Descr' not null" json:"Printer-Descr"`
|
|
PrinterType string `xorm:"varchar(1) 'PrinterType' not null" json:"Printer-PrinterType"`
|
|
PrinterName string `xorm:"varchar(100) 'PrinterName' not null" json:"Printer-PrinterName"`
|
|
IpAddress string `xorm:"varchar(15) 'IpAddress' not null" json:"Printer-IpAddress"`
|
|
SerialName string `xorm:"varchar(15) 'SerialName' not null" json:"Printer-SerialName"`
|
|
SerialPort int `xorm:"int 'SerialPort' not null" json:"Printer-SerialPort"`
|
|
Active int `xorm:"smallint 'Active' not null" json:"Printer-Active"`
|
|
PrinterSpec string `xorm:"varchar(30) 'PrinterSpec' not null" json:"Printer-PrinterSpec"`
|
|
PageSize string `xorm:"varchar(18) 'PageSize' not null" json:"Printer-PageSize"`
|
|
Port int `xorm:"int 'Port' not null" json:"Printer-Port"`
|
|
PrintInterval int `xorm:"int 'PrintInterval' not null" json:"Printer-PrintInterval"`
|
|
LastModify common.DateTime `xorm:"datetime 'LastModify' not null updated" json:"Printer-LastModify"`
|
|
LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"Printer-LastUser"`
|
|
CreateTime common.DateTime `xorm:"datetime 'CreateTime' not null created" json:"Printer-CreateTime"`
|
|
}
|
|
|
|
func (t *Printer) TableName() string {
|
|
return "Printer"
|
|
}
|
|
|
|
//增
|
|
func (t *Printer) Add() error {
|
|
e := G_DbEngine
|
|
countrole := new(Printer)
|
|
affw, err := e.Table("Printer").ID(core.PK{t.PlantNr, t.PrinterId}).Count(countrole)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if affw > 0 {
|
|
return errors.New("数据已经存在!")
|
|
}
|
|
_, err = e.Table("Printer").Insert(t)
|
|
if err != nil {
|
|
fmt.Printf("err is :%v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//删
|
|
func (t *Printer) Del() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{t.PlantNr, t.PrinterId}).Delete(&Printer{})
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//改
|
|
func (t *Printer) Update() bool {
|
|
e := G_DbEngine
|
|
_, err := e.ID(core.PK{t.PlantNr, t.PrinterId}).Cols("PlantNr", "PrinterId", "Descr", "PrinterType", "PrinterName", "IpAddress", "Active", "PrinterSpec", "PageSize", "Port", "PrintInterval", "LastModify", "LastUser", "CreateTime").Update(t)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
//查
|
|
func (t *Printer) SelectOne() (Printer, error) {
|
|
e := G_DbEngine
|
|
var data Printer
|
|
_, err := e.ID(core.PK{t.PlantNr, t.PrinterId}).Get(&data)
|
|
if err != nil {
|
|
return data, err
|
|
}
|
|
return data, nil
|
|
}
|
|
|
|
// 获取所有激活的打印机对象列表
|
|
func (t *Printer) GetPrinterList(conf *conf.EnvConfig) ([]Printer, error) {
|
|
|
|
var (
|
|
printertablist []Printer
|
|
pt []string
|
|
printers []string
|
|
)
|
|
e := G_DbEngine
|
|
pt = strings.Split(conf.PrinterType, ",")
|
|
printers = strings.Split(conf.Printers, ",")
|
|
if len(printers) > 0 {
|
|
err := e.Where("PlantNr = ? and Active = ?", conf.PlantNr, 1).In("PrinterId", printers).In("PrinterType", pt).Find(&printertablist)
|
|
if err != nil {
|
|
glog.Infoln("failed to query Printer for type: %s due to: %v", pt, err)
|
|
return nil, err
|
|
}
|
|
} else {
|
|
err := e.Where("PlantNr = ? and Active = ?", conf.PlantNr, 1).In("PrinterType", pt).Find(&printertablist)
|
|
if err != nil {
|
|
glog.Infoln("failed to query Printer for type: %s due to: %v", pt, err)
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
return printertablist, nil
|
|
}
|
|
|
|
// 获取打印机ID列表
|
|
func (t *Printer) GetPrinterIdList(conf *conf.EnvConfig) ([]string, error) {
|
|
var (
|
|
printertablist []Printer
|
|
prnlist, printers, pt []string
|
|
)
|
|
e := G_DbEngine
|
|
pt = strings.Split(conf.PrinterType, ",")
|
|
printers = strings.Split(conf.Printers, ",")
|
|
|
|
err := e.Where("PlantNr = ? and Active = ?", conf.PlantNr, 1).In("PrinterId", printers).In("PrinterType", pt).Find(&printertablist)
|
|
if err != nil {
|
|
glog.Infoln("failed to query printertab for type: due to:", pt, err)
|
|
return nil, err
|
|
}
|
|
for i := range printertablist {
|
|
prnlist = append(prnlist, strings.TrimSpace(printertablist[i].PrinterId))
|
|
}
|
|
return prnlist, nil
|
|
}
|