Initial commit (code only without large binaries)
This commit is contained in:
205
EdgeAPI/internal/rpc/services/service_region_province.go
Normal file
205
EdgeAPI/internal/rpc/services/service_region_province.go
Normal file
@@ -0,0 +1,205 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/db/models/regions"
|
||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||
)
|
||||
|
||||
// RegionProvinceService 省份相关服务
|
||||
type RegionProvinceService struct {
|
||||
BaseService
|
||||
}
|
||||
|
||||
// FindAllEnabledRegionProvincesWithCountryId 查找所有省份
|
||||
// Deprecated
|
||||
func (this *RegionProvinceService) FindAllEnabledRegionProvincesWithCountryId(ctx context.Context, req *pb.FindAllEnabledRegionProvincesWithCountryIdRequest) (*pb.FindAllEnabledRegionProvincesWithCountryIdResponse, error) {
|
||||
// 校验请求
|
||||
_, _, err := this.ValidateNodeId(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
provinces, err := regions.SharedRegionProvinceDAO.FindAllEnabledProvincesWithCountryId(tx, req.RegionCountryId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
result := []*pb.RegionProvince{}
|
||||
for _, province := range provinces {
|
||||
result = append(result, &pb.RegionProvince{
|
||||
Id: int64(province.ValueId),
|
||||
Name: province.Name,
|
||||
Codes: province.DecodeCodes(),
|
||||
CustomName: province.CustomName,
|
||||
CustomCodes: province.DecodeCustomCodes(),
|
||||
DisplayName: province.DisplayName(),
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.FindAllEnabledRegionProvincesWithCountryIdResponse{
|
||||
RegionProvinces: result,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FindEnabledRegionProvince 查找单个省份信息
|
||||
// Deprecated
|
||||
func (this *RegionProvinceService) FindEnabledRegionProvince(ctx context.Context, req *pb.FindEnabledRegionProvinceRequest) (*pb.FindEnabledRegionProvinceResponse, error) {
|
||||
// 校验请求
|
||||
_, _, err := this.ValidateNodeId(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
province, err := regions.SharedRegionProvinceDAO.FindEnabledRegionProvince(tx, req.RegionProvinceId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if province == nil {
|
||||
return &pb.FindEnabledRegionProvinceResponse{RegionProvince: nil}, nil
|
||||
}
|
||||
|
||||
return &pb.FindEnabledRegionProvinceResponse{
|
||||
RegionProvince: &pb.RegionProvince{
|
||||
Id: int64(province.ValueId),
|
||||
Name: province.Name,
|
||||
Codes: province.DecodeCodes(),
|
||||
CustomName: province.CustomName,
|
||||
CustomCodes: province.DecodeCustomCodes(),
|
||||
DisplayName: province.DisplayName(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FindAllRegionProvincesWithRegionCountryId 查找所有省份
|
||||
func (this *RegionProvinceService) FindAllRegionProvincesWithRegionCountryId(ctx context.Context, req *pb.FindAllRegionProvincesWithRegionCountryIdRequest) (*pb.FindAllRegionProvincesWithRegionCountryIdResponse, error) {
|
||||
// 校验请求
|
||||
_, _, err := this.ValidateNodeId(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
provinces, err := regions.SharedRegionProvinceDAO.FindAllEnabledProvincesWithCountryId(tx, req.RegionCountryId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var pbProvinces = []*pb.RegionProvince{}
|
||||
for _, province := range provinces {
|
||||
pbProvinces = append(pbProvinces, &pb.RegionProvince{
|
||||
Id: int64(province.ValueId),
|
||||
Name: province.Name,
|
||||
Codes: province.DecodeCodes(),
|
||||
CustomName: province.CustomName,
|
||||
CustomCodes: province.DecodeCustomCodes(),
|
||||
DisplayName: province.DisplayName(),
|
||||
})
|
||||
}
|
||||
|
||||
return &pb.FindAllRegionProvincesWithRegionCountryIdResponse{
|
||||
RegionProvinces: pbProvinces,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FindAllRegionProvinces 查找所有国家|地区的所有省份
|
||||
func (this *RegionProvinceService) FindAllRegionProvinces(ctx context.Context, req *pb.FindAllRegionProvincesRequest) (*pb.FindAllRegionProvincesResponse, error) {
|
||||
_, _, err := this.ValidateAdminAndUser(ctx, true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
provinces, err := regions.SharedRegionProvinceDAO.FindAllEnabledProvinces(tx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var pbProvinces = []*pb.RegionProvince{}
|
||||
var countryRouteCodeCache = map[int64]string{} // countryId => routeCode
|
||||
for _, province := range provinces {
|
||||
// 国家|地区ID
|
||||
var countryId = int64(province.CountryId)
|
||||
if countryId <= 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
// 国家|地区线路
|
||||
countryRouteCode, ok := countryRouteCodeCache[countryId]
|
||||
if !ok {
|
||||
countryRouteCode, err = regions.SharedRegionCountryDAO.FindRegionCountryRouteCode(tx, countryId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
countryRouteCodeCache[countryId] = countryRouteCode
|
||||
}
|
||||
if len(countryRouteCode) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
pbProvinces = append(pbProvinces, &pb.RegionProvince{
|
||||
Id: int64(province.ValueId),
|
||||
Name: province.Name,
|
||||
Codes: province.DecodeCodes(),
|
||||
CustomName: province.CustomName,
|
||||
CustomCodes: province.DecodeCustomCodes(),
|
||||
DisplayName: province.DisplayName(),
|
||||
RegionCountryId: countryId,
|
||||
RegionCountry: &pb.RegionCountry{
|
||||
Id: countryId,
|
||||
RouteCode: countryRouteCode,
|
||||
},
|
||||
})
|
||||
}
|
||||
return &pb.FindAllRegionProvincesResponse{
|
||||
RegionProvinces: pbProvinces,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FindRegionProvince 查找单个省份信息
|
||||
func (this *RegionProvinceService) FindRegionProvince(ctx context.Context, req *pb.FindRegionProvinceRequest) (*pb.FindRegionProvinceResponse, error) {
|
||||
// 校验请求
|
||||
_, _, err := this.ValidateNodeId(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
province, err := regions.SharedRegionProvinceDAO.FindEnabledRegionProvince(tx, req.RegionProvinceId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if province == nil {
|
||||
return &pb.FindRegionProvinceResponse{RegionProvince: nil}, nil
|
||||
}
|
||||
|
||||
return &pb.FindRegionProvinceResponse{
|
||||
RegionProvince: &pb.RegionProvince{
|
||||
Id: int64(province.ValueId),
|
||||
Name: province.Name,
|
||||
Codes: province.DecodeCodes(),
|
||||
CustomName: province.CustomName,
|
||||
CustomCodes: province.DecodeCustomCodes(),
|
||||
DisplayName: province.DisplayName(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// UpdateRegionProvinceCustom 修改城市定制信息
|
||||
func (this *RegionProvinceService) UpdateRegionProvinceCustom(ctx context.Context, req *pb.UpdateRegionProvinceCustomRequest) (*pb.RPCSuccess, error) {
|
||||
_, err := this.ValidateAdmin(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
err = regions.SharedRegionProvinceDAO.UpdateProvinceCustom(tx, req.RegionProvinceId, req.CustomName, req.CustomCodes)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return this.Success()
|
||||
}
|
||||
Reference in New Issue
Block a user