go-common/app/interface/bbq/app-bbq/service/location.go

87 lines
1.8 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
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
}