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