将根据坐标获取物理地址修改为根据城市code获取

This commit is contained in:
邹宗楠
2025-03-20 10:49:32 +08:00
parent 8306b04823
commit 0bfd0b6515
3 changed files with 52 additions and 13 deletions

View File

@@ -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
}