Files
EdgeAPI/internal/rpc/services/service_region_province.go

69 lines
2.0 KiB
Go
Raw Normal View History

2020-11-06 11:02:53 +08:00
package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models/regions"
2020-11-06 11:02:53 +08:00
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
2021-07-11 18:05:57 +08:00
// RegionProvinceService 省份相关服务
2020-11-06 11:02:53 +08:00
type RegionProvinceService struct {
BaseService
2020-11-06 11:02:53 +08:00
}
2021-07-11 18:05:57 +08:00
// FindAllEnabledRegionProvincesWithCountryId 查找所有省份
2020-11-06 11:02:53 +08:00
func (this *RegionProvinceService) FindAllEnabledRegionProvincesWithCountryId(ctx context.Context, req *pb.FindAllEnabledRegionProvincesWithCountryIdRequest) (*pb.FindAllEnabledRegionProvincesWithCountryIdResponse, error) {
// 校验请求
2021-07-11 18:05:57 +08:00
_, _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin, rpcutils.UserTypeNode)
2020-11-06 11:02:53 +08:00
if err != nil {
return nil, err
}
tx := this.NullTx()
provinces, err := regions.SharedRegionProvinceDAO.FindAllEnabledProvincesWithCountryId(tx, req.CountryId)
2020-11-06 11:02:53 +08:00
if err != nil {
return nil, err
}
result := []*pb.RegionProvince{}
for _, province := range provinces {
result = append(result, &pb.RegionProvince{
Id: int64(province.Id),
Name: province.Name,
Codes: province.DecodeCodes(),
2020-11-06 11:02:53 +08:00
})
}
return &pb.FindAllEnabledRegionProvincesWithCountryIdResponse{
Provinces: result,
}, nil
}
2021-07-11 18:05:57 +08:00
// FindEnabledRegionProvince 查找单个省份信息
func (this *RegionProvinceService) FindEnabledRegionProvince(ctx context.Context, req *pb.FindEnabledRegionProvinceRequest) (*pb.FindEnabledRegionProvinceResponse, error) {
// 校验请求
2021-07-11 18:05:57 +08:00
_, _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin, rpcutils.UserTypeNode)
if err != nil {
return nil, err
}
tx := this.NullTx()
province, err := regions.SharedRegionProvinceDAO.FindEnabledRegionProvince(tx, req.ProvinceId)
if err != nil {
return nil, err
}
if province == nil {
return &pb.FindEnabledRegionProvinceResponse{Province: nil}, nil
}
return &pb.FindEnabledRegionProvinceResponse{
Province: &pb.RegionProvince{
Id: int64(province.Id),
Name: province.Name,
Codes: province.DecodeCodes(),
},
}, nil
}