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 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 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 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> addressQuery(HttpServletRequest request, @RequestBody AddressReq addressReq) { Result result = new Result(); List list = addressService.addressQuery(addressReq); result.setData(list); return result; } @ApiOperation( value = "根据经纬度查询省市区",notes = "extra:经度+逗号+纬度") @PostMapping("/address/findByLocation") @PassToken public Result 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 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 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> findHouseByLon(HttpServletRequest request, @RequestBody LongiLatiModel longiLatiModel) { longiLatiModel.setLatitude(BusinessSimpleUtil.changeLon(longiLatiModel.getLatitude())); longiLatiModel.setLongitude(BusinessSimpleUtil.changeLon(longiLatiModel.getLongitude())); Result> result=addressService.findHouseByLon(longiLatiModel); return result; } }