| package com.xzx.gc.user.controller; | 
|   | 
| import cn.hutool.core.bean.BeanUtil; | 
| import cn.hutool.core.collection.CollUtil; | 
| import cn.hutool.core.lang.Validator; | 
| import com.github.pagehelper.PageInfo; | 
| import com.xzx.gc.common.Result; | 
| import com.xzx.gc.common.annotations.PassToken; | 
| import com.xzx.gc.common.constant.CommonEnum; | 
| import com.xzx.gc.common.constant.Constants; | 
| import com.xzx.gc.common.dto.CommonDto; | 
| import com.xzx.gc.common.dto.gdmap.GdAroundResDto; | 
| import com.xzx.gc.common.dto.gdmap.GdReverseGEODto; | 
| import com.xzx.gc.common.dto.log.OperationAppLog; | 
| import com.xzx.gc.common.request.BaseController; | 
| import com.xzx.gc.common.utils.BusinessSimpleUtil; | 
| import com.xzx.gc.common.utils.BusinessUtil; | 
| import com.xzx.gc.common.utils.MqUtil; | 
| import com.xzx.gc.common.utils.gdmap.GdMapUtil; | 
| import com.xzx.gc.entity.AddressInfo; | 
| import com.xzx.gc.entity.LongiLati; | 
| import com.xzx.gc.model.JsonResult; | 
| import com.xzx.gc.model.admin.LongiLatiModel; | 
| import com.xzx.gc.model.user.AddressReq; | 
| import com.xzx.gc.model.user.AddressVo; | 
| import com.xzx.gc.user.mapper.AddressMapper; | 
| import com.xzx.gc.user.service.AddressService; | 
| import com.xzx.gc.user.service.AddressLevelService; | 
| import com.xzx.gc.user.service.UserService; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| import javax.servlet.http.HttpServletRequest; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author:andylei | 
|  * @title | 
|  * @Description | 
|  * @date 2018/11/22/022 | 
|  * @修改历史 | 
|  */ | 
| @Api(tags = "地址管理") | 
| @RestController | 
| public class AddressController extends BaseController { | 
|     @Autowired | 
|     private AddressService addressService; | 
|   | 
|     @Autowired | 
|     private AddressMapper addressMapper; | 
|   | 
|     @Autowired | 
|     private BusinessUtil businessUtil; | 
|   | 
|     @Autowired | 
|     private UserService userService; | 
|   | 
|     @Autowired | 
|     private MqUtil mqUtil; | 
|   | 
|   | 
|   | 
|     /**t | 
|      * 添加地址 | 
|      * @param addressReq | 
|      */ | 
|     @ApiOperation( value = "添加地址") | 
|     @PostMapping("/address/add") | 
|     public Result<String> addressAdd(HttpServletRequest request, @RequestBody AddressReq addressReq) { | 
|         Result result = new Result(); | 
|         long l = addressService.addressAdd(addressReq); | 
|   | 
|         String mobilePhone = userService.findOtherByUserId(getUserId(request),0); | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) | 
|                 .methodName(Constants.USER_MODUL_NAME).operateAction("添加地址-"+l).build(); | 
|         mqUtil.sendApp(build); | 
|   | 
|   | 
|         return result; | 
|     } | 
|   | 
|     /** | 
|      * 地址修改 | 
|      * @param addressReq | 
|      */ | 
|     @ApiOperation( value = "修改地址") | 
|     @PostMapping("/address/modify") | 
|     public Result<String> addressModify(HttpServletRequest request, @RequestBody AddressReq addressReq) { | 
|         Result result = new Result(); | 
|         addressService.addressModify(addressReq); | 
|   | 
|         String mobilePhone = userService.findOtherByUserId(getUserId(request),0); | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) | 
|                 .methodName(Constants.USER_MODUL_NAME).operateAction("修改地址-"+addressReq.getAddressId()).build(); | 
|         mqUtil.sendApp(build); | 
|   | 
|         return result; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 地址删除 | 
|      * @param addressReq | 
|      */ | 
|     @ApiOperation( value = "删除地址") | 
|     @PostMapping("/address/del") | 
|     public Result<String> addressDel(HttpServletRequest request, @RequestBody AddressReq addressReq) { | 
|         Result result = new Result(); | 
|         addressService.addressDel(addressReq); | 
|   | 
|         String mobilePhone = userService.findOtherByUserId(getUserId(request),0); | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) | 
|                 .methodName(Constants.USER_MODUL_NAME).operateAction("删除地址-"+addressReq.getAddressId()).build(); | 
|         mqUtil.sendApp(build); | 
|   | 
|   | 
|         return result; | 
|     } | 
|   | 
|     /** | 
|      * 地址查询 | 
|      * @param addressReq | 
|      */ | 
|     @ApiOperation( value = "查询地址") | 
|     @PostMapping("/address/query") | 
|     public Result<List<AddressVo>> addressQuery(HttpServletRequest request, @RequestBody AddressReq addressReq) { | 
|         Result result = new Result(); | 
|         List<AddressVo> list = addressService.addressQuery(addressReq); | 
|         result.setData(list); | 
|         return result; | 
|     } | 
|   | 
|   | 
|     @ApiOperation( value = "根据经纬度查询省市区",notes = "extra:经度+逗号+纬度") | 
|     @PostMapping("/address/findByLocation") | 
|     @PassToken | 
|     public Result<AddressInfo> findByLocation( @RequestBody CommonDto commonDto) { | 
|         String extra = commonDto.getExtra(); | 
|         Validator.validateNotEmpty(extra,"经纬度不能为空"); | 
|         GdReverseGEODto gdReverseGEODto = new GdReverseGEODto(); | 
|         gdReverseGEODto.setLocation(extra); | 
|         Result areaInfo = GdMapUtil.getAreaInfo(gdReverseGEODto, 0); | 
|   | 
|         if(areaInfo.getCode()==0){ | 
|             AddressInfo addressInfo= (AddressInfo) areaInfo.getData(); | 
|             addressInfo.setTownshipName(businessUtil.changeArea(addressInfo.getTownshipName())); | 
|             AddressReq addressReq=new AddressReq(); | 
|             BeanUtil.copyProperties(addressInfo,addressReq); | 
|             List<AddressVo> addressLevelList= addressMapper.queryAreaIdByName(addressReq); | 
|             if(CollUtil.isNotEmpty(addressLevelList)){ | 
|                 addressInfo.setProvinceId(addressLevelList.get(0).getProvinceId()); | 
|                 addressInfo.setCityId(addressLevelList.get(0).getCityId()); | 
|                 addressInfo.setTownshipId(addressLevelList.get(0).getTownshipId()); | 
|             } | 
|             return Result.success(addressInfo); | 
|         } | 
|         return areaInfo; | 
|     } | 
|   | 
|   | 
|   | 
|     @PostMapping( "/admin/front/address/updateUserAddress.json") | 
|     @ApiOperation(value="用户管理-修改地址", notes="test: 仅0有正确返回") | 
|     public JsonResult<String> updateUserAddress(@RequestBody AddressInfo address, HttpServletRequest request){ | 
|         String res = addressService.updateUserAddress(address); | 
|   | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) | 
|                 .methodName(Constants.USER_MODUL_NAME).operateAction("修改地址-"+address.getAddressId()).build(); | 
|         mqUtil.sendApp(build); | 
|         return JsonResult.success(res); | 
|     } | 
|   | 
|   | 
|     @ApiOperation( value = "根据经纬度查询附近小区") | 
|     @PostMapping("/address/findHouseByLon") | 
|     public Result<PageInfo<GdAroundResDto>> findHouseByLon(HttpServletRequest request, @RequestBody LongiLatiModel longiLatiModel) { | 
|         longiLatiModel.setLatitude(BusinessSimpleUtil.changeLon(longiLatiModel.getLatitude())); | 
|         longiLatiModel.setLongitude(BusinessSimpleUtil.changeLon(longiLatiModel.getLongitude())); | 
|         Result<PageInfo<GdAroundResDto>> result=addressService.findHouseByLon(longiLatiModel); | 
|         return result; | 
|   | 
|     } | 
|   | 
| } |