将根据坐标获取物理地址修改为根据城市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
|
||||
}
|
||||
|
||||
@@ -114,3 +114,28 @@ func GetPlaces(db *DaoDB, cityCodes []int) (places []*model.Place, err error) {
|
||||
err = GetRows(db, &places, sql, sqlParams)
|
||||
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 remark formData string false "备注"
|
||||
// @Param isDefault formData int false "是否是默认"
|
||||
// @Param cityCode formData int false "省code"
|
||||
// @Param districtCode formData int false "市code"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /AddMyDeliveryAddress [post]
|
||||
@@ -312,6 +314,8 @@ func (c *User2Controller) AddMyDeliveryAddress() {
|
||||
Tag: params.Tag,
|
||||
Remark: params.Remark,
|
||||
IsDefault: int8(params.IsDefault),
|
||||
CityCode: params.CityCode,
|
||||
DistrictCode: params.DistrictCode,
|
||||
}
|
||||
retVal, err = cms.AddMyDeliveryAddress(params.Ctx, address)
|
||||
return retVal, "", err
|
||||
@@ -345,6 +349,8 @@ func (c *User2Controller) DeleteMyDeliveryAddress() {
|
||||
// @Param tag formData string false "标签"
|
||||
// @Param remark formData string false "备注"
|
||||
// @Param isDefault formData int false "是否是默认(0:否,1:是)"
|
||||
// @Param cityCode formData int false "省code"
|
||||
// @Param districtCode formData int false "市code"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /UpdateMyDeliveryAddress [put]
|
||||
|
||||
Reference in New Issue
Block a user