You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
package display |
|
|
|
import ( |
|
"context" |
|
"go-common/library/net/metadata" |
|
"strconv" |
|
"time" |
|
|
|
locmdl "go-common/app/service/main/location/model" |
|
"go-common/library/log" |
|
xip "go-common/library/net/ip" |
|
) |
|
|
|
// DisplayID is display id . |
|
func (s *Service) DisplayID(c context.Context, mid int64, buvid string, now time.Time) (id string) { |
|
if mid == 0 { |
|
id = buvid + "-" + strconv.FormatInt(now.Unix(), 10) |
|
} else { |
|
id = strconv.FormatInt(mid, 10) + "-" + strconv.FormatInt(now.Unix(), 10) |
|
} |
|
return |
|
} |
|
|
|
// Zone is zone id and district info . |
|
func (s *Service) Zone(c context.Context, now time.Time) (zone *xip.Zone) { |
|
var ( |
|
info *locmdl.Info |
|
err error |
|
) |
|
zone = &xip.Zone{} |
|
if info, err = s.loc.Info(c, metadata.String(c, metadata.RemoteIP)); err != nil || info == nil { |
|
log.Error("error %v or info is nil", err) |
|
return |
|
} |
|
zone.ID = info.ZoneID |
|
zone.Addr = info.Addr |
|
zone.ISP = info.ISP |
|
zone.Country = info.Country |
|
zone.Province = info.Province |
|
zone.City = info.City |
|
zone.Latitude = info.Latitude |
|
zone.Longitude = info.Longitude |
|
zone.CountryCode = info.CountryCode |
|
return |
|
}
|
|
|