package itao import ( "context" "github.com/gogf/gf/encoding/gjson" "github.com/gogf/gf/frame/g" ) type addressItao struct { } var Address = addressItao{} type AddressDivisionReq struct { Province string `json:"prov,omitempty"` City string `json:"city,omitempty"` Area string `json:"distinct,omitempty"` Town string `json:"town,omitempty"` Page int `json:"pageIndex"` Size int `json:"pageSize"` } type AddressDivisionRes struct { Result struct { Result struct { Divisions []struct { DivisionId int `json:"divisionId"` DivisionLeaf bool `json:"divisionLeaf"` DivisionToken string `json:"divisionToken"` Level int `json:"level"` Names struct { EN string `json:"EN"` CN string `json:"CN"` } `json:"names"` } `json:"divisions"` PageIndex int `json:"pageIndex"` PageSize int `json:"pageSize"` ParentToken string `json:"parentToken"` TotalCount int `json:"totalCount"` TotalPage int `json:"totalPage"` } `json:"result"` Success bool `json:"success"` ErrMsg string `json:"errMsg"` ErrCode string `json:"errCode"` } `json:"result"` } //Division 行政区划 func (s addressItao) Division(ctx context.Context, req AddressDivisionReq) (res *AddressDivisionRes, err error) { method := "tt.order.queryDivision" result, err := server.Post(ctx, method, g.Map{ "param": req, }) _ = gjson.New(result).Scan(&res) return } type AddressParseReq struct { Province string `json:"prov"` City string `json:"city"` Detail string `json:"addressDetail"` } type AddressParseRes struct { Result struct { City string `json:"city"` CityId int `json:"cityId"` District string `json:"district"` DistrictId int `json:"districtId"` Prov string `json:"prov"` ProvId int `json:"provId"` Town string `json:"town"` TownId int `json:"townId"` } `json:"result"` Success bool `json:"success"` } //Parse 地址解析 // 省、市必传 func (s addressItao) Parse(ctx context.Context, req AddressParseReq) (res *AddressParseRes, err error) { method := "tt.address.validate" result, err := server.Post(ctx, method, g.Map{ "param": req, }) _ = gjson.New(result).Scan(&res) return }