29 lines
843 B
Go
29 lines
843 B
Go
package mysql
|
|
|
|
import (
|
|
"acquaintances/biz/model"
|
|
"acquaintances/biz/model/area"
|
|
)
|
|
|
|
func QueryArea(keyword *string, page, pageSize int64) ([]*area.Area, int64, error) {
|
|
db := DB.Model(model.Country{})
|
|
if keyword != nil && len(*keyword) != 0 {
|
|
db = db.Where(DB.Or("chinese_name like ?", "%"+*keyword+"%").
|
|
Or("english_name like ?", "%"+*keyword+"%").
|
|
Or("iso2 like ?", "%"+*keyword+"%").
|
|
Or("iso3 like ?", "%"+*keyword+"%").
|
|
Or("num_code like ?", "%"+*keyword+"%").
|
|
Or("phone_code like ?", "%"+*keyword+"%").
|
|
Or("domain_suffix like ?", "%"+*keyword+"%"))
|
|
}
|
|
var total int64
|
|
if err := db.Count(&total).Error; err != nil {
|
|
return nil, 0, err
|
|
}
|
|
var res []*area.Area
|
|
if err := db.Limit(int(pageSize)).Offset(int(pageSize * (page - 1))).Find(&res).Error; err != nil {
|
|
return nil, 0, err
|
|
}
|
|
return res, total, nil
|
|
}
|