Merge branch 'master' of https://git.nuttyreading.com/zm/nuttyreading-server
This commit is contained in:
@@ -1091,26 +1091,30 @@ public class BuyOrderController {
|
|||||||
* @param addressRequestVo 地址请求 value object
|
* @param addressRequestVo 地址请求 value object
|
||||||
* @return R
|
* @return R
|
||||||
*/
|
*/
|
||||||
@RequestMapping(value = "/modifyConsigneeAddress", method = RequestMethod.POST)
|
private R saveConsigneeAddress(ModifyOrderAddressRequestVo addressRequestVo, BuyOrder buyOrder, Province province) {
|
||||||
public R modifyOrderAddress(@RequestBody ModifyOrderAddressRequestVo addressRequestVo) {
|
if (province == null) {
|
||||||
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
|
String provinceCode = addressRequestVo.getProvinceCode();
|
||||||
buyOrderQueryWrapper.eq("order_sn", addressRequestVo.getOrderSn());
|
QueryWrapper<Province> provinceQueryWrapper = new QueryWrapper<>();
|
||||||
BuyOrder buyOrder = buyOrderService.getOne(buyOrderQueryWrapper);
|
provinceQueryWrapper.eq("region_code", provinceCode);
|
||||||
String provinceCode = addressRequestVo.getProvinceCode();
|
province = provinceService.getOne(provinceQueryWrapper);
|
||||||
QueryWrapper<Province> provinceQueryWrapper = new QueryWrapper<>();
|
}
|
||||||
provinceQueryWrapper.eq("region_code", provinceCode);
|
if (province == null) return R.error(500, "省份信息不存在");
|
||||||
Province province = provinceService.getOne(provinceQueryWrapper);
|
|
||||||
buyOrder.setProvince(province.getProvName());
|
buyOrder.setProvince(province.getProvName());
|
||||||
|
|
||||||
String cityCode = addressRequestVo.getCityCode();
|
String cityCode = addressRequestVo.getCityCode();
|
||||||
QueryWrapper<City> cityQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<City> cityQueryWrapper = new QueryWrapper<>();
|
||||||
cityQueryWrapper.eq("region_code", cityCode);
|
cityQueryWrapper.eq("region_code", cityCode);
|
||||||
City city = cityService.getOne(cityQueryWrapper);
|
City city = cityService.getOne(cityQueryWrapper);
|
||||||
|
if (city == null) return R.error(500, "城市信息不存在");
|
||||||
buyOrder.setCity(city.getCityName());
|
buyOrder.setCity(city.getCityName());
|
||||||
|
|
||||||
String countyCode = addressRequestVo.getCountyCode();
|
String countyCode = addressRequestVo.getCountyCode();
|
||||||
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
|
||||||
countyQueryWrapper.eq("region_code", countyCode);
|
countyQueryWrapper.eq("region_code", countyCode);
|
||||||
County county = countyService.getOne(countyQueryWrapper);
|
County county = countyService.getOne(countyQueryWrapper);
|
||||||
|
if (county == null) return R.error(500, "区县信息不存在");
|
||||||
buyOrder.setDistrict(county.getCountyName());
|
buyOrder.setDistrict(county.getCountyName());
|
||||||
|
|
||||||
buyOrder.setShippingUser(addressRequestVo.getConsigneeName());
|
buyOrder.setShippingUser(addressRequestVo.getConsigneeName());
|
||||||
buyOrder.setUserPhone(addressRequestVo.getConsigneeMobile());
|
buyOrder.setUserPhone(addressRequestVo.getConsigneeMobile());
|
||||||
buyOrder.setAddress(addressRequestVo.getAddress());
|
buyOrder.setAddress(addressRequestVo.getAddress());
|
||||||
@@ -1118,10 +1122,86 @@ public class BuyOrderController {
|
|||||||
if (str.contains("+")||str.contains("&")) {
|
if (str.contains("+")||str.contains("&")) {
|
||||||
return R.error(500, "信息中不能含有“+”、“&”符号!");
|
return R.error(500, "信息中不能含有“+”、“&”符号!");
|
||||||
}
|
}
|
||||||
|
|
||||||
buyOrderService.updateById(buyOrder);
|
buyOrderService.updateById(buyOrder);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单地址
|
||||||
|
*
|
||||||
|
* @param addressRequestVo 地址请求 value object
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/modifyConsigneeAddress", method = RequestMethod.POST)
|
||||||
|
public R modifyOrderAddress(@RequestBody ModifyOrderAddressRequestVo addressRequestVo) {
|
||||||
|
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
|
||||||
|
buyOrderQueryWrapper.eq("order_sn", addressRequestVo.getOrderSn());
|
||||||
|
BuyOrder buyOrder = buyOrderService.getOne(buyOrderQueryWrapper);
|
||||||
|
if (buyOrder == null) {
|
||||||
|
return R.error(500,"订单不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 后台修改地址时,addressId 设为 0
|
||||||
|
buyOrder.setAddressId(0);
|
||||||
|
|
||||||
|
return saveConsigneeAddress(addressRequestVo, buyOrder, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* APP修改订单地址
|
||||||
|
*
|
||||||
|
* @param addressRequestVo 地址请求 value object
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/modifyConsigneeAddressApp", method = RequestMethod.POST)
|
||||||
|
public R modifyOrderAddressApp(@RequestBody ModifyOrderAddressRequestVo addressRequestVo) {
|
||||||
|
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
|
||||||
|
buyOrderQueryWrapper.eq("order_sn", addressRequestVo.getOrderSn());
|
||||||
|
BuyOrder buyOrder = buyOrderService.getOne(buyOrderQueryWrapper);
|
||||||
|
if (buyOrder == null) {
|
||||||
|
return R.error(500,"订单不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
MyUserEntity userEntity = myUserService.getById(ShiroUtils.getUId());
|
||||||
|
if (userEntity == null) return R.error(500, "用户不存在");
|
||||||
|
|
||||||
|
Integer currentUserId = userEntity.getId();
|
||||||
|
if (!currentUserId.equals(buyOrder.getUserId())) {
|
||||||
|
return R.error(500, "无权修改该订单地址");
|
||||||
|
}
|
||||||
|
|
||||||
|
String provinceCode = addressRequestVo.getProvinceCode();
|
||||||
|
QueryWrapper<Province> provinceQueryWrapper = new QueryWrapper<>();
|
||||||
|
provinceQueryWrapper.eq("region_code", provinceCode);
|
||||||
|
Province province = provinceService.getOne(provinceQueryWrapper);
|
||||||
|
if (province == null) {
|
||||||
|
return R.error(500, "省份信息不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 仅 App 用户:已支付运费时,新地址省份 code 必须与原订单省份 code 相同;无运费可改任意省
|
||||||
|
if (buyOrder.getShippingMoney() != null && buyOrder.getShippingMoney().compareTo(BigDecimal.ZERO) > 0) {
|
||||||
|
QueryWrapper<Province> oldProvinceQueryWrapper = new QueryWrapper<>();
|
||||||
|
oldProvinceQueryWrapper.eq("prov_name", buyOrder.getProvince());
|
||||||
|
Province oldProvince = provinceService.getOne(oldProvinceQueryWrapper);
|
||||||
|
if (oldProvince == null || !provinceCode.equals(oldProvince.getRegionCode())) {
|
||||||
|
return R.error(500, "该订单已支付运费,只能修改为同省份地址");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// App 传入 addressId 时更新
|
||||||
|
if (addressRequestVo.getAddressId() != null) {
|
||||||
|
buyOrder.setAddressId(addressRequestVo.getAddressId());
|
||||||
|
} else {
|
||||||
|
buyOrder.setAddressId(0);
|
||||||
|
}
|
||||||
|
// 仅 App 用户修改时 addressModified 每次 +1;后台修改不加
|
||||||
|
buyOrder.setAddressModified(buyOrder.getAddressModified() + 1);
|
||||||
|
|
||||||
|
|
||||||
|
return saveConsigneeAddress(addressRequestVo, buyOrder, province);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取订单地址
|
* 获取订单地址
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -37,4 +37,8 @@ public class ModifyOrderAddressRequestVo {
|
|||||||
* 详细地址
|
* 详细地址
|
||||||
*/
|
*/
|
||||||
private String address;
|
private String address;
|
||||||
|
/**
|
||||||
|
* 用户地址 ID(App 从地址列表选择时传入;后台管理员修改时会将订单 addressId 置为 null)
|
||||||
|
*/
|
||||||
|
private Integer addressId;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user