package dao import ( "git.rosy.net.cn/jx-callback/business/model" "github.com/astaxie/beego/orm" ) const ( EnableCondAll = 0 EnableCondEnalbed = 1 EnableCondDisabled = 2 ) func GetPlaceByCode(db *DaoDB, code int) (place *model.Place, err error) { if db == nil { db = GetDB() } place = &model.Place{ Code: code, } err = GetEntity(db, place, "Code") return place, err } func GetPlacesByCond(db *DaoDB, enableCond int) (placeList []*model.Place, err error) { if db == nil { db = GetDB() } sql := ` SELECT * FROM place WHERE level = 2 ` if enableCond == EnableCondEnalbed { sql += " AND enabled = 1" } else if enableCond == EnableCondDisabled { sql += " AND enabled = 0" } sql += " ORDER BY code" err = GetRows(db, &placeList, sql) return placeList, err } func GetPlaceByName(db *DaoDB, name string, level int, parentCode int) (place *model.Place, err error) { if db == nil { db = GetDB() } cols := []string{ "Name", "Level", } place = &model.Place{ Name: name, Level: int8(level), } if parentCode != 0 { cols = append(cols, "ParentCode") place.ParentCode = parentCode } if err = GetEntity(db, place, cols...); err == orm.ErrNoRows { err = db.Db.Raw("SELECT * FROM place WHERE parent_code = ? AND level = ? AND name LIKE ?", parentCode, level, "%"+name+"%").QueryRow(place) } return place, err }