Files
IUQT/acquaintances/biz/dal/mysql/area.go
2025-07-10 17:17:56 +08:00

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
}