package db import ( "github.com/go-xorm/xorm" "github.com/pkg/errors" "leit.com/leit_seat_aps/common" "xorm.io/core" ) // EDI文件表 type Edi_oem struct { Finr int `xorm:"pk" json:"edi_oem.finr"` Ediid string `xorm:"pk" json:"edi_oem.ediid"` Descr string `json:"edi_oem.descr"` Enabled int `json:"edi_oem.enabled"` Oem string `json:"edi_oem.oem"` Fileserver_host string `json:"edi_oem.fileserver_host"` Tod_folder string `json:"edi_oem.tod_folder"` Seq_folder string `json:"edi_oem.seq_folder"` Reorder_folder string `json:"edi_oem.reorder_folder"` Calloff_folder string `json:"edi_oem.calloff_folder"` Tod_filename_regexp string `json:"edi_oem.tod_filename_regexp"` Seq_filename_regexp string `json:"edi_oem.seq_filename_regexp"` Reorder_filename_regexp string `json:"edi_oem.reorder_filename_regexp"` Calloff_filename_regexp string `json:"edi_oem.calloff_filename_regexp"` Emailserver_host string `json:"edi_oem.emailserver_host"` Emailserver_port int `json:"edi_oem.emailserver_port"` From_email string `json:"edi_oem.from_email"` From_pwd string `json:"edi_oem.from_pwd"` Edi_error_to_recievers string `json:"edi_oem.edi_error_to_recievers"` Lastmodif string `json:"edi_oem.lastmodif"` Lastuser string `json:"edi_oem.lastuser"` Credatuz string `json:"edi_oem.credatuz"` Itemlst []Edi_oem_itemlst `json:"itemlst" xorm:"-"` } func (t *Edi_oem) Clipped() { common.TrimStruct(t, *t) } func (t *Edi_oem) TableName() string { return "edi_oem" } //增 func (t *Edi_oem) Add() (err error) { var ( i int affw int64 editab Edi_oem ) e := G_DbEngine editab = Edi_oem{} affw, err = e.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Count(editab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = e.Table("edi_oem").Insert(t) if err != nil { return err } // 遍历子项并插入 for i = 0; i < len(t.Itemlst); i++ { if err = t.Itemlst[i].Add(); err != nil { return } } return nil } //增 func (t *Edi_oem) Insert(session *xorm.Session) (err error) { var ( i int affw int64 editab Edi_oem ) editab = Edi_oem{} affw, err = session.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Count(editab) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } _, err = session.Table("edi_oem").Insert(t) if err != nil { return err } // 遍历子项并插入 for i = 0; i < len(t.Itemlst); i++ { if err = t.Itemlst[i].Insert(session); err != nil { return } } return } //删 func (t *Edi_oem) Del() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Ediid}).Delete(&Edi_oem{}) if err != nil { return false } return true } //改 func (t *Edi_oem) Update() bool { e := G_DbEngine _, err := e.ID(core.PK{G_FINR, t.Ediid}).Update(t) if err != nil { return false } return true } //更新指定字段 func (t *Edi_oem) UpdateFields(session *xorm.Session, fields string) (err error) { if _, err = session.Table("edi_oem").ID(core.PK{G_FINR, t.Ediid}).Cols(fields).Update(t); err != nil { return } return } //查 func (t *Edi_oem) SelectOne() (data Edi_oem, err error) { var i int e := G_DbEngine _, err = e.ID(core.PK{G_FINR, t.Ediid}).Get(&data) if err != nil { return data, err } data.Clipped() // 获取值列表 if err = e.Where("finr = ? and ediid = ? ", G_FINR, data.Ediid).OrderBy("itemtype").Find(&data.Itemlst); err != nil { return } for i, _ = range data.Itemlst { data.Itemlst[i].Clipped() } return data, nil } //查 func (t *Edi_oem) SelectOneBySession(session *xorm.Session) (data Edi_oem, err error) { var i int _, err = session.ID(core.PK{G_FINR, t.Ediid}).Get(&data) if err != nil { return data, err } data.Clipped() // 获取值列表 if err = session.Where("finr = ? and ediid = ? ", G_FINR, data.Ediid).OrderBy("itemtype").Find(&data.Itemlst); err != nil { return } for i, _ = range data.Itemlst { data.Itemlst[i].Clipped() } return data, nil } // 查询激活的EDI func (t *Edi_oem) SelectActiveOnes() (datalst []Edi_oem, err error) { var i, j int e := G_DbEngine // 获取激活的edi列表 if err = e.Where("finr = ? and enabled > ? ", G_FINR, 0).OrderBy("ediid").Find(&datalst); err != nil { return } for i, _ = range datalst { datalst[i].Clipped() // 获取值列表 if err = e.Where("finr = ? and ediid = ? ", G_FINR, datalst[i].Ediid).OrderBy("itemtype").Find(&datalst[i].Itemlst); err != nil { return } for j, _ = range datalst[i].Itemlst { datalst[i].Itemlst[j].Clipped() } } return }