|
@@ -132,6 +132,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
// BigDecimal preferential = this.setCoupon(coupons);
|
|
|
// order.setPreferential(preferential);
|
|
|
|
|
|
+ order.setOrderNo(generator.generateNextOrderNumber(OrderNumberGenerator.KEY_PREFIX_ORDER));
|
|
|
//订单价格
|
|
|
List<TXiangmu> list = JSONObject.parseArray(order.getcGoods().toJSONString(), TXiangmu.class);
|
|
|
BigDecimal sum = list.stream().map(TXiangmu::getSum).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
@@ -144,10 +145,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
}
|
|
|
TJs js = jsService.getById(order.getcJsId());
|
|
|
//添加位置信息
|
|
|
- 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());
|
|
|
+ locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, js.getcOpenId() + order.getOrderNo(), Double.parseDouble(js.getLongitude().toString()), Double.parseDouble(js.getLatitude().toString()));
|
|
|
+ locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, order.getcOpenId() + order.getOrderNo(), Double.parseDouble(address.getLongitude().toString()), Double.parseDouble(address.getLatitude().toString()));
|
|
|
+ double distance = locationUtil.getDistance(js.getcOpenId() + order.getOrderNo(), order.getcOpenId() + order.getOrderNo());
|
|
|
+ locationUtil.remove(LocationUtil.GEO_KEY_USER, js.getcOpenId() + order.getOrderNo(), order.getcOpenId() + order.getOrderNo());
|
|
|
order.setDistance(new BigDecimal(distance));
|
|
|
//计算车费
|
|
|
if (order.getDistance() != null && order.getDistance().compareTo(BigDecimal.ZERO) > 0) {
|
|
@@ -173,7 +174,6 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
order.setcName(address.getUserName());
|
|
|
order.setAtlasAdd(address.getAtlasAdd());
|
|
|
|
|
|
- order.setOrderNo(generator.generateNextOrderNumber(OrderNumberGenerator.KEY_PREFIX_ORDER));
|
|
|
order.setnStatus(OrderStatusEnum.WAIT_PAY.getCode());
|
|
|
order.setDtCreateTime(LocalDateTime.now());
|
|
|
Date date = DateTimeUtils.addMinute(new Date(), 10);
|
|
@@ -209,6 +209,40 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
|
|
|
orderPayManage(user, orderNew);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Object updateAddressById(TOrder borrow) {
|
|
|
+ TOrder order = this.getById(borrow.getcId());
|
|
|
+ if(borrow.getLatitude()!=null && borrow.getLatitude()!=0 && borrow.getLongitude()!=null && borrow.getLongitude()!=0){
|
|
|
+
|
|
|
+
|
|
|
+ order.setAtlasAdd(borrow.getAtlasAdd());
|
|
|
+ order.setcName(borrow.getcName());
|
|
|
+ order.setcPhone(borrow.getcPhone());
|
|
|
+ order.setName(borrow.getName());
|
|
|
+ order.setAddress(borrow.getAddress());
|
|
|
+ order.setLatitude(borrow.getLatitude());
|
|
|
+ order.setLongitude(borrow.getLongitude());
|
|
|
+ TJs js = jsService.getById(order.getcJsId());
|
|
|
+ //添加位置信息
|
|
|
+ locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, js.getcOpenId() + order.getOrderNo(), Double.parseDouble(js.getLongitude().toString()), Double.parseDouble(js.getLatitude().toString()));
|
|
|
+ locationUtil.geoAdd(LocationUtil.GEO_KEY_USER, order.getcOpenId() + order.getOrderNo(), Double.parseDouble(borrow.getLongitude().toString()), Double.parseDouble(borrow.getLatitude().toString()));
|
|
|
+ double distance = locationUtil.getDistance(js.getcOpenId() + order.getOrderNo(), order.getcOpenId() + order.getOrderNo());
|
|
|
+ locationUtil.remove(LocationUtil.GEO_KEY_USER, js.getcOpenId() + order.getOrderNo(), order.getcOpenId() + order.getOrderNo());
|
|
|
+ order.setDistance(new BigDecimal(distance));
|
|
|
+ //计算车费
|
|
|
+ if (order.getDistance() != null && order.getDistance().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ //判断是否可以免车费
|
|
|
+ if (!this.isFree(js, order.getDistance())) {
|
|
|
+ BigDecimal bigDecimal = massageUtil.calculateTaxiFare(order.getDistance());
|
|
|
+ order.setFare(bigDecimal.setScale(MassageConstants.INTEGER_TWO, RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.setTotalPrice(order.getdTotalMoney().add(Optional.ofNullable(order.getFare()).orElse(BigDecimal.ZERO)));
|
|
|
+ this.updateById(order);
|
|
|
+ }
|
|
|
+ return order;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 支付订单
|