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
|
||||
* @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);
|
||||
String provinceCode = addressRequestVo.getProvinceCode();
|
||||
QueryWrapper<Province> provinceQueryWrapper = new QueryWrapper<>();
|
||||
provinceQueryWrapper.eq("region_code", provinceCode);
|
||||
Province province = provinceService.getOne(provinceQueryWrapper);
|
||||
private R saveConsigneeAddress(ModifyOrderAddressRequestVo addressRequestVo, BuyOrder buyOrder, Province province) {
|
||||
if (province == null) {
|
||||
String provinceCode = addressRequestVo.getProvinceCode();
|
||||
QueryWrapper<Province> provinceQueryWrapper = new QueryWrapper<>();
|
||||
provinceQueryWrapper.eq("region_code", provinceCode);
|
||||
province = provinceService.getOne(provinceQueryWrapper);
|
||||
}
|
||||
if (province == null) return R.error(500, "省份信息不存在");
|
||||
buyOrder.setProvince(province.getProvName());
|
||||
|
||||
String cityCode = addressRequestVo.getCityCode();
|
||||
QueryWrapper<City> cityQueryWrapper = new QueryWrapper<>();
|
||||
cityQueryWrapper.eq("region_code", cityCode);
|
||||
City city = cityService.getOne(cityQueryWrapper);
|
||||
if (city == null) return R.error(500, "城市信息不存在");
|
||||
buyOrder.setCity(city.getCityName());
|
||||
|
||||
String countyCode = addressRequestVo.getCountyCode();
|
||||
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
|
||||
countyQueryWrapper.eq("region_code", countyCode);
|
||||
County county = countyService.getOne(countyQueryWrapper);
|
||||
if (county == null) return R.error(500, "区县信息不存在");
|
||||
buyOrder.setDistrict(county.getCountyName());
|
||||
|
||||
buyOrder.setShippingUser(addressRequestVo.getConsigneeName());
|
||||
buyOrder.setUserPhone(addressRequestVo.getConsigneeMobile());
|
||||
buyOrder.setAddress(addressRequestVo.getAddress());
|
||||
@@ -1118,10 +1122,86 @@ public class BuyOrderController {
|
||||
if (str.contains("+")||str.contains("&")) {
|
||||
return R.error(500, "信息中不能含有“+”、“&”符号!");
|
||||
}
|
||||
|
||||
buyOrderService.updateById(buyOrder);
|
||||
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;
|
||||
/**
|
||||
* 用户地址 ID(App 从地址列表选择时传入;后台管理员修改时会将订单 addressId 置为 null)
|
||||
*/
|
||||
private Integer addressId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user