将根据坐标获取物理地址修改为根据城市code获取
This commit is contained in:
@@ -653,17 +653,24 @@ func DeleteUsers4Role(ctx *jxcontext.Context, r *authz.RoleInfo, userIDList []st
|
|||||||
return errList.GetErrListAsOne()
|
return errList.GetErrListAsOne()
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAddressInfoFromCoord(db *dao.DaoDB, lng, lat float64) (formattedAddress string, districtCode, cityCode int, err error) {
|
func getAddressInfoFromCoord(db *dao.DaoDB, lng, lat float64, districtCodeParam int) (formattedAddress string, districtCode, cityCode int, err error) {
|
||||||
regeoInfo, err := api.TencentMapAPI.GeoCodeRegeoSingle(lng, lat, 0, false, nil, 0, 0)
|
place, err := dao.GetPlacesByDistrictCode(districtCodeParam)
|
||||||
if err == nil {
|
if err != nil {
|
||||||
formattedAddress = regeoInfo.Result.Address
|
return "", 0, 0, err
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
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
|
// 地址 // 行政区划code
|
||||||
return formattedAddress, districtCode, cityCode, err
|
return formattedAddress, districtCode, cityCode, err
|
||||||
}
|
}
|
||||||
@@ -676,7 +683,8 @@ func AddUserDeliveryAddress(ctx *jxcontext.Context, address *model.UserDeliveryA
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
lng := address.Lng
|
lng := address.Lng
|
||||||
lat := address.Lat
|
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 {
|
if err == nil {
|
||||||
txDB, _ := dao.Begin(db)
|
txDB, _ := dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -739,11 +747,11 @@ func UpdateUserDeliveryAddress(ctx *jxcontext.Context, userID string, addressID
|
|||||||
var outAddress *model.UserDeliveryAddress
|
var outAddress *model.UserDeliveryAddress
|
||||||
valid := dao.StrictMakeMapByStructObject2(payload, address, &outAddress, ctx.GetUserName())
|
valid := dao.StrictMakeMapByStructObject2(payload, address, &outAddress, ctx.GetUserName())
|
||||||
delete(valid, "autoAddress")
|
delete(valid, "autoAddress")
|
||||||
delete(valid, "districtCode")
|
//delete(valid, "districtCode")
|
||||||
delete(valid, "cityCode")
|
delete(valid, "cityCode")
|
||||||
if len(valid) > 0 {
|
if len(valid) > 0 {
|
||||||
if valid["lng"] != nil || valid["lat"] != nil {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,3 +114,28 @@ func GetPlaces(db *DaoDB, cityCodes []int) (places []*model.Place, err error) {
|
|||||||
err = GetRows(db, &places, sql, sqlParams)
|
err = GetRows(db, &places, sql, sqlParams)
|
||||||
return places, err
|
return places, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetPlacesByDistrictCode(districtCode int) (*DistrictName, error) {
|
||||||
|
sql := `
|
||||||
|
SELECT p1.name province_name,p1.code province_code,p2.name city_name,p2.code city_code,p3.name county_name,p3.code county_code FROM place p1
|
||||||
|
LEFT JOIN place p2 ON p2.parent_code = p1.code
|
||||||
|
LEFT JOIN place p3 ON p3.parent_code = p2.code
|
||||||
|
WHERE p3.code = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{districtCode}
|
||||||
|
place := &DistrictName{}
|
||||||
|
if err := GetRow(GetDB(), place, sql, sqlParams...); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return place, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type DistrictName struct {
|
||||||
|
ProvinceName string `json:"province_name"`
|
||||||
|
ProvinceCode int `json:"province_code"`
|
||||||
|
CityName string `json:"city_name"`
|
||||||
|
CityCode int `json:"city_code"`
|
||||||
|
CountyName string `json:"county_name"`
|
||||||
|
CountyCode int `json:"county_code"`
|
||||||
|
}
|
||||||
|
|||||||
@@ -293,6 +293,8 @@ func (c *User2Controller) TransferLegacyWeixins() {
|
|||||||
// @Param tag formData string false "标签"
|
// @Param tag formData string false "标签"
|
||||||
// @Param remark formData string false "备注"
|
// @Param remark formData string false "备注"
|
||||||
// @Param isDefault formData int false "是否是默认"
|
// @Param isDefault formData int false "是否是默认"
|
||||||
|
// @Param cityCode formData int false "省code"
|
||||||
|
// @Param districtCode formData int false "市code"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /AddMyDeliveryAddress [post]
|
// @router /AddMyDeliveryAddress [post]
|
||||||
@@ -312,6 +314,8 @@ func (c *User2Controller) AddMyDeliveryAddress() {
|
|||||||
Tag: params.Tag,
|
Tag: params.Tag,
|
||||||
Remark: params.Remark,
|
Remark: params.Remark,
|
||||||
IsDefault: int8(params.IsDefault),
|
IsDefault: int8(params.IsDefault),
|
||||||
|
CityCode: params.CityCode,
|
||||||
|
DistrictCode: params.DistrictCode,
|
||||||
}
|
}
|
||||||
retVal, err = cms.AddMyDeliveryAddress(params.Ctx, address)
|
retVal, err = cms.AddMyDeliveryAddress(params.Ctx, address)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
@@ -345,6 +349,8 @@ func (c *User2Controller) DeleteMyDeliveryAddress() {
|
|||||||
// @Param tag formData string false "标签"
|
// @Param tag formData string false "标签"
|
||||||
// @Param remark formData string false "备注"
|
// @Param remark formData string false "备注"
|
||||||
// @Param isDefault formData int false "是否是默认(0:否,1:是)"
|
// @Param isDefault formData int false "是否是默认(0:否,1:是)"
|
||||||
|
// @Param cityCode formData int false "省code"
|
||||||
|
// @Param districtCode formData int false "市code"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /UpdateMyDeliveryAddress [put]
|
// @router /UpdateMyDeliveryAddress [put]
|
||||||
|
|||||||
Reference in New Issue
Block a user