87 lines
1.8 KiB
Go
87 lines
1.8 KiB
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
http "go-common/app/interface/bbq/app-bbq/api/http/v1"
|
||
|
"go-common/app/interface/bbq/app-bbq/model"
|
||
|
)
|
||
|
|
||
|
// GetLocaitonAll .
|
||
|
func (s *Service) GetLocaitonAll(c context.Context, arg *http.LocationRequest) (*http.LocationResponse, error) {
|
||
|
result := &http.LocationResponse{}
|
||
|
m, err := s.dao.GetLocationAll(c)
|
||
|
if err != nil {
|
||
|
return result, err
|
||
|
}
|
||
|
|
||
|
var coutries []*model.Location
|
||
|
for _, item := range (*m)[arg.PID] {
|
||
|
coutry := &model.Location{
|
||
|
ID: item.ID,
|
||
|
PID: item.PID,
|
||
|
Name: item.Name,
|
||
|
}
|
||
|
var provices []*model.Location
|
||
|
for _, v := range (*m)[item.ID] {
|
||
|
provice := &model.Location{
|
||
|
ID: v.ID,
|
||
|
PID: v.PID,
|
||
|
Name: v.Name,
|
||
|
}
|
||
|
var citys []*model.Location
|
||
|
for _, u := range (*m)[v.ID] {
|
||
|
city := &model.Location{
|
||
|
ID: u.ID,
|
||
|
PID: u.PID,
|
||
|
Name: u.Name,
|
||
|
}
|
||
|
var area []*model.Location
|
||
|
for _, w := range (*m)[u.ID] {
|
||
|
var child []*model.Location
|
||
|
area = append(area, &model.Location{
|
||
|
ID: w.ID,
|
||
|
PID: w.PID,
|
||
|
Name: w.Name,
|
||
|
Child: child,
|
||
|
})
|
||
|
}
|
||
|
city.Child = area
|
||
|
citys = append(citys, city)
|
||
|
}
|
||
|
provice.Child = citys
|
||
|
provices = append(provices, provice)
|
||
|
}
|
||
|
coutry.Child = provices
|
||
|
coutries = append(coutries, coutry)
|
||
|
}
|
||
|
|
||
|
result.List = coutries
|
||
|
|
||
|
return result, err
|
||
|
}
|
||
|
|
||
|
// GetLocationChild .
|
||
|
func (s *Service) GetLocationChild(c context.Context, arg *http.LocationRequest) (*http.LocationResponse, error) {
|
||
|
result := &http.LocationResponse{}
|
||
|
m, err := s.dao.GetLocationChild(c, arg.PID)
|
||
|
if err != nil {
|
||
|
return result, err
|
||
|
}
|
||
|
|
||
|
var provices []*model.Location
|
||
|
for _, v := range (*m)[arg.PID] {
|
||
|
var child []*model.Location
|
||
|
provice := &model.Location{
|
||
|
ID: v.ID,
|
||
|
PID: v.PID,
|
||
|
Name: v.Name,
|
||
|
Child: child,
|
||
|
}
|
||
|
provices = append(provices, provice)
|
||
|
}
|
||
|
|
||
|
result.List = provices
|
||
|
|
||
|
return result, err
|
||
|
}
|