package dao import ( "git.rosy.net.cn/jx-callback/business/model" "github.com/astaxie/beego/adapter/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 } func GetPlaceByJdCode(db *DaoDB, jdCode int) (place *model.Place, err error) { if db == nil { db = GetDB() } place = &model.Place{ JdCode: jdCode, } err = db.Db.Read(place, "JdCode") return place, err } func GetPlaceByJdsCode(db *DaoDB, jdsCode int) (place *model.Place, err error) { if db == nil { db = GetDB() } place = &model.Place{ JdsCode: jdsCode, } err = db.Db.Read(place, "JdsCode") return place, err } func GetPlaces(db *DaoDB, cityCodes []int) (places []*model.Place, err error) { sql := ` SELECT * FROM place WHERE 1 = 1 ` sqlParams := []interface{}{} if len(cityCodes) > 0 { sql += " AND code IN (" + GenQuestionMarks(len(cityCodes)) + ")" sqlParams = append(sqlParams, cityCodes) } err = GetRows(db, &places, sql, sqlParams) return places, err }