Authored by qinchao

地址更改比较

... ... @@ -9,4 +9,6 @@ public interface IBuyerOrderMetaService {
AddressInfo getAddressInfo(int uid, long orderCode);
AddressInfo getHiddenAddressInfo(int uid, long orderCode);
}
... ...
... ... @@ -108,4 +108,16 @@ public class BuyerOrderMetaServiceImpl implements IBuyerOrderMetaService {
return userAddress;
}
@Override
public AddressInfo getHiddenAddressInfo(int uid, long orderCode){
BuyerOrderMeta buyerOrderMeta = getBuyerOrderMeta(uid,
orderCode, MetaKey.BUYER_DELIVERY_HIDDEN_ADDRESS);
AddressInfo userAddress = null;
if ( null != buyerOrderMeta
&& StringUtils.isNotBlank(buyerOrderMeta.getMetaValue())){
userAddress = JSONObject.parseObject(buyerOrderMeta.getMetaValue(), AddressInfo.class);
}
return userAddress;
}
}
... ...
... ... @@ -135,9 +135,34 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
AddressInfo dbAddressInfo = buyerOrderMetaService.getAddressInfo(uid,orderCode);
if(dbAddressInfo==null){
logger.warn("dbAddressInfo is null ,uid {} ,orderCode {}",uid,orderCode);
throw new UfoServiceException(400,"找不到地址信息");
}
AddressInfo dbAddressInfo_hidden = buyerOrderMetaService.getHiddenAddressInfo(uid,orderCode);
if(dbAddressInfo_hidden==null){
logger.warn("dbAddressInfo_hidden is null ,uid {} ,orderCode {}",uid,orderCode);
throw new UfoServiceException(400,"找不到地址信息");
}
///// 检查隐藏的内容是否有变化,带*
if(StringUtils.isBlank(changedAddress.getAddress())||StringUtils.isBlank(changedAddress.getConsignee())
||StringUtils.isBlank(changedAddress.getMobile())){
throw new UfoServiceException(400,"地址信息填写错误");
}
//详细地址没有变化
if(StringUtils.equals(dbAddressInfo_hidden.getAddress(),changedAddress.getAddress())){
changedAddress.setAddress(dbAddressInfo.getAddress());
}
//收货人没有变化
if(StringUtils.equals(dbAddressInfo_hidden.getConsignee(),changedAddress.getConsignee())){
changedAddress.setConsignee(dbAddressInfo.getConsignee());
}
//手机号没有变化
if(StringUtils.equals(dbAddressInfo_hidden.getMobile(),changedAddress.getMobile())){
changedAddress.setMobile(dbAddressInfo.getMobile());
}
boolean changed = convertAddressInfoFrontRequest(dbAddressInfo,changedAddress);
//至少有一个要更新,否则直接返回
... ...