将根据坐标获取物理地址修改为根据城市code获取
This commit is contained in:
@@ -653,17 +653,24 @@ func DeleteUsers4Role(ctx *jxcontext.Context, r *authz.RoleInfo, userIDList []st
|
||||
return errList.GetErrListAsOne()
|
||||
}
|
||||
|
||||
func getAddressInfoFromCoord(db *dao.DaoDB, lng, lat float64) (formattedAddress string, districtCode, cityCode int, err error) {
|
||||
regeoInfo, err := api.TencentMapAPI.GeoCodeRegeoSingle(lng, lat, 0, false, nil, 0, 0)
|
||||
if err == nil {
|
||||
formattedAddress = regeoInfo.Result.Address
|
||||
districtCode = int(utils.Str2Int64WithDefault(regeoInfo.Result.AdInfo.Adcode, 0))
|
||||
if districtCode == 0 {
|
||||
err = fmt.Errorf("坐标lng:%f,lat:%f找不到位置信息", lng, lat)
|
||||
} else if districtInfo, err2 := dao.GetPlaceByCode(db, districtCode); err2 == nil {
|
||||
cityCode = districtInfo.ParentCode
|
||||
}
|
||||
func getAddressInfoFromCoord(db *dao.DaoDB, lng, lat float64, districtCodeParam int) (formattedAddress string, districtCode, cityCode int, err error) {
|
||||
place, err := dao.GetPlacesByDistrictCode(districtCodeParam)
|
||||
if err != nil {
|
||||
return "", 0, 0, err
|
||||
}
|
||||
formattedAddress = place.ProvinceName + place.CityName + place.CountyName
|
||||
districtCode = place.CountyCode
|
||||
cityCode = place.CityCode
|
||||
//regeoInfo, err := api.TencentMapAPI.GeoCodeRegeoSingle(lng, lat, 0, false, nil, 0, 0)
|
||||
//if err == nil {
|
||||
// formattedAddress = regeoInfo.Result.Address
|
||||
// districtCode = int(utils.Str2Int64WithDefault(regeoInfo.Result.AdInfo.Adcode, 0))
|
||||
// if districtCode == 0 {
|
||||
// err = fmt.Errorf("坐标lng:%f,lat:%f找不到位置信息", lng, lat)
|
||||
// } else if districtInfo, err2 := dao.GetPlaceByCode(db, districtCode); err2 == nil {
|
||||
// cityCode = districtInfo.ParentCode
|
||||
// }
|
||||
//}
|
||||
// 地址 // 行政区划code
|
||||
return formattedAddress, districtCode, cityCode, err
|
||||
}
|
||||
@@ -676,7 +683,8 @@ func AddUserDeliveryAddress(ctx *jxcontext.Context, address *model.UserDeliveryA
|
||||
db := dao.GetDB()
|
||||
lng := address.Lng
|
||||
lat := address.Lat
|
||||
address.AutoAddress, address.DistrictCode, address.CityCode, err = getAddressInfoFromCoord(db, lng, lat)
|
||||
|
||||
address.AutoAddress, address.DistrictCode, address.CityCode, err = getAddressInfoFromCoord(db, lng, lat, address.DistrictCode)
|
||||
if err == nil {
|
||||
txDB, _ := dao.Begin(db)
|
||||
defer func() {
|
||||
@@ -739,11 +747,11 @@ func UpdateUserDeliveryAddress(ctx *jxcontext.Context, userID string, addressID
|
||||
var outAddress *model.UserDeliveryAddress
|
||||
valid := dao.StrictMakeMapByStructObject2(payload, address, &outAddress, ctx.GetUserName())
|
||||
delete(valid, "autoAddress")
|
||||
delete(valid, "districtCode")
|
||||
//delete(valid, "districtCode")
|
||||
delete(valid, "cityCode")
|
||||
if len(valid) > 0 {
|
||||
if valid["lng"] != nil || valid["lat"] != nil {
|
||||
valid["autoAddress"], valid["districtCode"], valid["cityCode"], err = getAddressInfoFromCoord(db, outAddress.Lng, outAddress.Lat)
|
||||
valid["autoAddress"], valid["districtCode"], valid["cityCode"], err = getAddressInfoFromCoord(db, outAddress.Lng, outAddress.Lat, valid["districtCode"].(int))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user