Files
jx-callback/business/model/dao/place.go
苏尹岚 ac2bb2bcfe aa
2021-03-30 10:19:36 +08:00

103 lines
2.1 KiB
Go

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
}