package model import ( "cc/db" "errors" ) // Localtion 位置 type Localtion struct { ID int `db:"id" json:"id"` // 位置ID Name string `db:"name" json:"name"` // 位置名称 Code string `db:"code" json:"code"` // 位置编码 } // GetAll 获取所有位置 func (loc *Localtion) GetAll() (rv []Localtion, rer error) { sql := "SELECT * FROM localtions" rer = db.DB.Select(&rv, sql) return } // GetLocaltionByID 根据ID获取位置 func (loc *Localtion) GetLocaltionByID() (rer error) { sql := "SELECT * FROM localtions WHERE id =?" return db.DB.Get(loc, sql, loc.ID) } // CreateLocaltion 创建位置 func (loc *Localtion) CreateLocaltion() (rer error) { // 检查位置名称是否存在 var count int sql := "SELECT COUNT(*) FROM localtions WHERE name=?" err := db.DB.Get(&count, sql, loc.Name) if err != nil { return err } if count > 0 { return errors.New("位置名称已存在") } // 检查位置编码是否存在 sql = "SELECT COUNT(*) FROM localtions WHERE code=?" err = db.DB.Get(&count, sql, loc.Code) if err != nil { return err } if count > 0 { return errors.New("位置编码已存在") } // 插入数据 sql = "INSERT INTO localtions (name, code) VALUES (?, ?)" _, rer = db.DB.Exec(sql, loc.Name, loc.Code) return } // UpdateLocaltion 更新位置 func (loc *Localtion) UpdateLocaltion() (rer error) { // 检查位置名称是否存在 var count int sql := "SELECT COUNT(*) FROM localtions WHERE name=? AND id!=?" err := db.DB.Get(&count, sql, loc.Name, loc.ID) if err != nil { return err } if count > 0 { return errors.New("位置名称已存在") } // 检查位置编码是否存在 sql = "SELECT COUNT(*) FROM localtions WHERE code=? AND id!=?" err = db.DB.Get(&count, sql, loc.Code, loc.ID) if err != nil { return err } if count > 0 { return errors.New("位置编码已存在") } // 更新数据 sql = "UPDATE localtions SET name=?, code=? WHERE id=?" _, rer = db.DB.Exec(sql, loc.Name, loc.Code, loc.ID) return } // DeleteLocaltion 删除位置 func (loc *Localtion) DeleteLocaltion() (rer error) { sql := "DELETE FROM localtions WHERE id=?" _, rer = db.DB.Exec(sql, loc.ID) return }