|
@@ -136,13 +136,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
List<TXiangmu> list = JSONObject.parseArray(order.getcGoods().toJSONString(), TXiangmu.class);
|
|
|
BigDecimal sum = list.stream().map(TXiangmu::getSum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
order.setdTotalMoney(sum);
|
|
|
- //总价 = 订单 + 车费 - 优惠
|
|
|
- order.setTotalPrice(sum.add(Optional.ofNullable(order.getFare()).orElse(BigDecimal.ZERO)));
|
|
|
- if (order.getParentNo() != null && order.getOrderType() == 2) {
|
|
|
- //升级订单 补差价
|
|
|
- TOrder partOrder = this.getByNo(order.getParentNo());
|
|
|
- order.setPriceDifference(order.getTotalPrice().subtract(partOrder.getTotalPrice()));
|
|
|
- }
|
|
|
+
|
|
|
//获取用户默认地址
|
|
|
TAddress address = addressService.getByOpenId(order.getcOpenId());
|
|
|
if (address == null) {
|
|
@@ -150,10 +144,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
}
|
|
|
TJs js = jsService.getById(order.getcJsId());
|
|
|
//添加位置信息
|
|
|
- locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, "js" + js.getcOpenId(), Double.parseDouble(js.getLongitude().toString()), Double.parseDouble(js.getLatitude().toString()));
|
|
|
- locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, "user" + order.getcOpenId(), Double.parseDouble(address.getLongitude().toString()), Double.parseDouble(address.getLatitude().toString()));
|
|
|
- double distance = locationUtil.getDistance("js" + js.getcOpenId(), "user" + order.getcOpenId());
|
|
|
- locationUtil.remove(LocationUtil.GEO_KEY_USER, "js" + js.getcOpenId() + "," + "user" + order.getcOpenId());
|
|
|
+ locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, js.getcOpenId(), Double.parseDouble(js.getLongitude().toString()), Double.parseDouble(js.getLatitude().toString()));
|
|
|
+ locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, order.getcOpenId(), Double.parseDouble(address.getLongitude().toString()), Double.parseDouble(address.getLatitude().toString()));
|
|
|
+ double distance = locationUtil.getDistance(js.getcOpenId(), order.getcOpenId());
|
|
|
+ locationUtil.remove(LocationUtil.GEO_KEY_USER, js.getcOpenId() + "," + order.getcOpenId());
|
|
|
order.setDistance(new BigDecimal(distance));
|
|
|
//计算车费
|
|
|
if (order.getDistance() != null && order.getDistance().compareTo(BigDecimal.ZERO) > 0) {
|
|
@@ -163,6 +157,13 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
order.setFare(bigDecimal.setScale(MassageConstants.INTEGER_TWO, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
}
|
|
|
+ //总价 = 订单 + 车费 - 优惠
|
|
|
+ order.setTotalPrice(sum.add(Optional.ofNullable(order.getFare()).orElse(BigDecimal.ZERO)));
|
|
|
+ if (order.getParentNo() != null && order.getOrderType() == 2) {
|
|
|
+ //升级订单 补差价
|
|
|
+ TOrder partOrder = this.getByNo(order.getParentNo());
|
|
|
+ order.setPriceDifference(order.getTotalPrice().subtract(partOrder.getTotalPrice()));
|
|
|
+ }
|
|
|
|
|
|
order.setAddress(address.getAddress());
|
|
|
order.setName(address.getName());
|