Files
full/module/base/initial/internal/logic/data/areas.go

45 lines
1.0 KiB
Go
Raw Normal View History

package data
import (
"context"
"fmt"
pb "bsm/full/module/base/initial/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
)
// 区域数据,默认级别:市
func Areas(ctx context.Context, in *pb.AreasRequest) (reply *pb.AreasReply, err error) {
// 参数检查 - 如果都没有提供,默认使用中国(ID=1)
if in.GetCountryCode() == "" && in.GetCountryId() == 0 {
in.CountryId = 1 // 默认中国
}
// 查询条件:国家代码优先
areas, err := GetAreasByCache(in)
if err != nil {
printer.Error("GetAreasByCache", err)
return nil, errcode.ErrDB
}
// 转换为响应格式
var data []*pb.AreasItem
for _, area := range areas {
data = append(data, &pb.AreasItem{
Id: fmt.Sprintf("%d", area.Id),
Pid: fmt.Sprintf("%d", area.Pid),
Deep: area.Deep,
Name: area.Name,
PinyinPrefix: area.PinyinPrefix,
Pinyin: area.Pinyin,
ExtId: area.ExtId,
ExtName: area.ExtName,
})
}
return &pb.AreasReply{
Areas: data,
}, nil
}