From 70d7bd95e4fbd606e9b1f29a02ccc999c581dc87 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 19 八月 2025 13:55:05 +0800 Subject: [PATCH] 8.18 --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 1152 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 992 insertions(+), 160 deletions(-) diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index ba3c124..e64410b 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.core.util.GpsCoordinateUtils; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper; import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper; @@ -15,6 +16,7 @@ import com.stylefeng.guns.modular.crossCity.server.ILineService; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper; +import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpperPushOrder; import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; @@ -43,6 +45,7 @@ import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; @@ -51,7 +54,10 @@ import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds; @@ -174,6 +180,8 @@ @Value("${callbackPath}") private String callbackPath; + public static List<Integer> crossCityOrderIds = new ArrayList<>(); + public Map<String, Thread> threadMap = new HashMap<>(); //存储摆渡车无接单后推送标识,实现多个类型的摆渡车订单无人接单后只给前端推送一次 @@ -214,13 +222,24 @@ */ @Override public Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception { + System.err.println(orderId); Map<String, Object> map = new HashMap<>(); UserInfo userInfo = userInfoService.selectById(uid); map.put("balance", userInfo.getBalance()); OrderCrossCity orderCrossCity = this.selectById(orderId); - int i = userCouponRecordService.queryAvailable(uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney()); - i = i + userCouponRecordService.queryAvailable(uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney()); - map.put("coupon", i); + List<Map<String, Object>> list = userCouponRecordService.queryAvailable_(uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney()); + List<Map<String, Object>> list1 = userCouponRecordService.queryAvailable_(uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney()); + list.addAll(list1); + Iterator<Map<String, Object>> iterator = list.iterator(); + System.err.println(list); + while (iterator.hasNext()){ + Map<String, Object> next = iterator.next(); + if(next.get("type").equals(2) && (Double.valueOf(next.get("money").toString()) > orderCrossCity.getOrderMoney() + || Double.valueOf(next.get("fullMoney").toString()) > orderCrossCity.getOrderMoney())){ + iterator.remove(); + } + } + map.put("coupon", list.size()); return map; } @@ -240,10 +259,184 @@ List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney(), pageNum, size); List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney(), pageNum, size); list.addAll(list1); - return list; + Iterator<Map<String, Object>> iterator = list.iterator(); + System.err.println(list); + while (iterator.hasNext()){ + Map<String, Object> next = iterator.next(); + if(next.get("type").equals(2) && (Double.valueOf(next.get("money").toString()) > orderCrossCity.getOrderMoney() + || Double.valueOf(next.get("fullMoney").toString()) > orderCrossCity.getOrderMoney())){ + iterator.remove(); + } + } + if(CollectionUtils.isEmpty(list)){ + return list; + } + List<Integer> ids = list.stream().map(map -> Integer.parseInt(map.get("id").toString())).collect(Collectors.toList()); + List<Map<String, Object>> result = userCouponRecordService.queryCouponCrossCity(ids, pageNum, size); + System.err.println(result); + return result; } +// /** +// * 订单支付 +// * @param payType +// * @param orderId +// * @param couponId +// * @param type +// * @return +// * @throws Exception +// */ +// @Override +// public ResultUtil payCrossCityOrder(Integer payType, Integer orderId, Integer couponId, Integer type) throws Exception { +// OrderCrossCity orderCrossCity = this.selectById(orderId); +// if(orderCrossCity.getState() != 7){ +// return ResultUtil.error("订单已完成支付,不允许重复支付", ""); +// } +// Integer uid = orderCrossCity.getUserId(); +// Double orderMoney = orderCrossCity.getOrderMoney(); +// System.err.println(orderMoney); +// UserInfo userInfo = userInfoService.selectById(uid); +// ResultUtil resultUtil = ResultUtil.success(""); +// orderCrossCity.setCouponMoney(0D);//初始化历史数据 +// orderCrossCity.setCouponId(null); +// +// //计算优惠券 +// BigDecimal payMoney = new BigDecimal(0); +// UserCouponRecord userCouponRecord = null; +// if(null != couponId){ +// userCouponRecord = userCouponRecordService.selectById(couponId); +// if(userCouponRecord.getCompanyId() != orderCrossCity.getCompanyId()){ +// return ResultUtil.error("优惠券不能用于此订单", ""); +// } +// if(userCouponRecord.getState() == 2){ +// return ResultUtil.error("优惠券已使用", ""); +// } +// if(userCouponRecord.getState() == 3){ +// return ResultUtil.error("优惠券已过期", ""); +// } +// if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 3){ +// return ResultUtil.error("优惠券不能用于此类型订单", ""); +// } +// if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){ +// return ResultUtil.error("优惠券不能用于此订单", ""); +// } +// payMoney = new BigDecimal(orderMoney.toString()).subtract(new BigDecimal(userCouponRecord.getMoney())); +// System.err.println(payMoney); +// orderCrossCity.setCouponMoney(userCouponRecord.getMoney()); +// orderCrossCity.setCouponId(couponId); +// } +// if(payMoney.compareTo(new BigDecimal(0)) == 0 ){ +// payMoney = new BigDecimal(orderMoney.toString()); +// } +// //计算红包 +// UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderCrossCity.getCompanyId(), 1, 3, orderMoney); +//// if(null != query && orderMoney.compareTo(query.getMoney()) > 0){ +//// orderMoney = orderMoney - query.getMoney(); +//// orderCrossCity.setRedPacketMoney(query.getMoney()); +//// orderCrossCity.setRedPacketId(query.getId()); +//// } +//// +//// //计算折扣 +//// UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId()); +//// if(null != query2){ +//// Double special = query2.getSpecial(); +//// orderCrossCity.setDiscount(special); +//// double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); +//// if(orderMoney.compareTo(v) > 0){ +//// orderCrossCity.setDiscountMoney(orderMoney - v); +//// orderCrossCity.setActivityId(query2.getId()); +//// orderMoney = v; +//// } +//// } +// if(payType == 1){//微信支付 +// String value = redisUtil.getValue("appletOpenId"); +// String appletsOpenId = null; +// if(ToolUtil.isNotEmpty(value)){ +// JSONObject jsonObject = JSON.parseObject(value); +// appletsOpenId = jsonObject.getString(uid.toString()); +// }else{ +// appletsOpenId = userInfo.getAppletsOpenId(); +// } +//// Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); +//// if(map.get("code").equals("200")){ +//// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据 +//// resultUtil = ResultUtil.success(map.get("data")); +//// }else{ +//// resultUtil = ResultUtil.error(map.get("msg"), ""); +//// } +// String app = type == 1 ? "APP" : "JSAPI"; +// resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), payMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); +// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, Double.valueOf(payMoney.toString()), "", 1);//添加预支付数据 +// } +// if(payType == 2){//支付宝支付 +// Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null); +// if(map.get("code").equals("200")){ +// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, map.get("order_id"), 1);//添加预支付数据 +// resultUtil = ResultUtil.success(map.get("data")); +// }else{ +// resultUtil = ResultUtil.error(map.get("msg"), ""); +// } +// } +// if(payType == 3){//余额支付 +// if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ +// return ResultUtil.error("余额不足,无法完成支付", ""); +// } +// +// userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// +// SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); +// userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 +// +// //添加交易明细 +// transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 3, orderId); +// userInfoService.updateById(userInfo); +// +// orderCrossCity.setState(2);//跨城支付完成后才开始服务 +// orderCrossCity.setPayType(3); +// orderCrossCity.setPayMoney(orderMoney); +// +// //处理优惠券和红包 +// if(null != userCouponRecord){ +// userCouponRecord.setState(2); +// userCouponRecord.setEndTime(new Date()); +// userCouponRecordService.updateById(userCouponRecord); +// } +// if(null != query){ +// query.setState(2); +// query.setEndTime(new Date()); +// userRedPacketRecordService.updateById(query); +// } +// +// //添加已收入明细 +// Line line = lineService.selectById(orderCrossCity.getLineId()); +// Double speMoney = Double.valueOf(line.getRakeRate()); +// BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入 +// BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入 +// incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue()); +// incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue()); +// Driver driver = driverService.selectById(orderCrossCity.getDriverId()); +// driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driverService.updateById(driver); +// +// // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 +// new Thread(new Runnable() { +// @Override +// public void run() { +// pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); +// pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); +// pushUtil.pushDriverPosition(orderCrossCity.getId(), 3); +// } +// }).start(); +// +// systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); +// } +// +// this.updateAllColumnById(orderCrossCity); +// return resultUtil; +// } /** * 订单支付 * @param payType @@ -261,65 +454,70 @@ } Integer uid = orderCrossCity.getUserId(); Double orderMoney = orderCrossCity.getOrderMoney(); + System.err.println(orderMoney); UserInfo userInfo = userInfoService.selectById(uid); ResultUtil resultUtil = ResultUtil.success(""); orderCrossCity.setCouponMoney(0D);//初始化历史数据 orderCrossCity.setCouponId(null); + if (orderCrossCity.getDriverId() != null) { - //计算优惠券 - UserCouponRecord userCouponRecord = null; - if(null != couponId){ - userCouponRecord = userCouponRecordService.selectById(couponId); - if(userCouponRecord.getCompanyId() != orderCrossCity.getCompanyId()){ - return ResultUtil.error("优惠券不能用于此订单", ""); + //计算优惠券 + BigDecimal payMoney = new BigDecimal(0); + UserCouponRecord userCouponRecord = null; + if (null != couponId) { + userCouponRecord = userCouponRecordService.selectById(couponId); + if (userCouponRecord.getCompanyId() != orderCrossCity.getCompanyId()) { + return ResultUtil.error("优惠券不能用于此订单", ""); + } + if (userCouponRecord.getState() == 2) { + return ResultUtil.error("优惠券已使用", ""); + } + if (userCouponRecord.getState() == 3) { + return ResultUtil.error("优惠券已过期", ""); + } + if (userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 3) { + return ResultUtil.error("优惠券不能用于此类型订单", ""); + } + if (userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0) { + return ResultUtil.error("优惠券不能用于此订单", ""); + } + payMoney = new BigDecimal(orderMoney.toString()).subtract(new BigDecimal(userCouponRecord.getMoney())); + System.err.println(payMoney); + orderCrossCity.setCouponMoney(userCouponRecord.getMoney()); + orderCrossCity.setCouponId(couponId); } - if(userCouponRecord.getState() == 2){ - return ResultUtil.error("优惠券已使用", ""); + if (payMoney.compareTo(new BigDecimal(0)) == 0) { + payMoney = new BigDecimal(orderMoney.toString()); } - if(userCouponRecord.getState() == 3){ - return ResultUtil.error("优惠券已过期", ""); - } - if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 3){ - return ResultUtil.error("优惠券不能用于此类型订单", ""); - } - if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){ - return ResultUtil.error("优惠券不能用于此订单", ""); - } - orderMoney = orderMoney - userCouponRecord.getMoney(); - orderCrossCity.setCouponMoney(userCouponRecord.getMoney()); - orderCrossCity.setCouponId(couponId); - } - - //计算红包 - UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderCrossCity.getCompanyId(), 1, 3, orderMoney); - if(null != query && orderMoney.compareTo(query.getMoney()) > 0){ - orderMoney = orderMoney - query.getMoney(); - orderCrossCity.setRedPacketMoney(query.getMoney()); - orderCrossCity.setRedPacketId(query.getId()); - } - - //计算折扣 - UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId()); - if(null != query2){ - Double special = query2.getSpecial(); - orderCrossCity.setDiscount(special); - double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); - if(orderMoney.compareTo(v) > 0){ - orderCrossCity.setDiscountMoney(orderMoney - v); - orderCrossCity.setActivityId(query2.getId()); - orderMoney = v; - } - } - - if(payType == 1){//微信支付 - String value = redisUtil.getValue("appletOpenId"); - String appletsOpenId = null; - if(ToolUtil.isNotEmpty(value)){ - JSONObject jsonObject = JSON.parseObject(value); - appletsOpenId = jsonObject.getString(uid.toString()); - }else{ - appletsOpenId = userInfo.getAppletsOpenId(); - } + //计算红包 + UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderCrossCity.getCompanyId(), 1, 3, orderMoney); +// if(null != query && orderMoney.compareTo(query.getMoney()) > 0){ +// orderMoney = orderMoney - query.getMoney(); +// orderCrossCity.setRedPacketMoney(query.getMoney()); +// orderCrossCity.setRedPacketId(query.getId()); +// } +// +// //计算折扣 +// UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId()); +// if(null != query2){ +// Double special = query2.getSpecial(); +// orderCrossCity.setDiscount(special); +// double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); +// if(orderMoney.compareTo(v) > 0){ +// orderCrossCity.setDiscountMoney(orderMoney - v); +// orderCrossCity.setActivityId(query2.getId()); +// orderMoney = v; +// } +// } + if (payType == 1) {//微信支付 + String value = redisUtil.getValue("appletOpenId"); + String appletsOpenId = null; + if (ToolUtil.isNotEmpty(value)) { + JSONObject jsonObject = JSON.parseObject(value); + appletsOpenId = jsonObject.getString(uid.toString()); + } else { + appletsOpenId = userInfo.getAppletsOpenId(); + } // Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); // if(map.get("code").equals("200")){ // paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据 @@ -327,79 +525,374 @@ // }else{ // resultUtil = ResultUtil.error(map.get("msg"), ""); // } - String app = type == 1 ? "APP" : "JSAPI"; - resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), orderMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); - paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, "", 1);//添加预支付数据 - } - if(payType == 2){//支付宝支付 - Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null); - if(map.get("code").equals("200")){ - paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, map.get("order_id"), 1);//添加预支付数据 - resultUtil = ResultUtil.success(map.get("data")); - }else{ - resultUtil = ResultUtil.error(map.get("msg"), ""); + String app = type == 1 ? "APP" : "JSAPI"; + resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), payMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); + paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, Double.valueOf(payMoney.toString()), "", 1);//添加预支付数据 } - } - if(payType == 3){//余额支付 - if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ - return ResultUtil.error("余额不足,无法完成支付", ""); + if (payType == 2) {//支付宝支付 + Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null); + if (map.get("code").equals("200")) { + paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, map.get("order_id"), 1);//添加预支付数据 + resultUtil = ResultUtil.success(map.get("data")); + } else { + resultUtil = ResultUtil.error(map.get("msg"), ""); + } } + if (payType == 3) {//余额支付 + if (userInfo.getBalance() == null || userInfo.getBalance() < orderMoney) { + return ResultUtil.error("余额不足,无法完成支付", ""); + } - userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 + SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); + userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 - //添加交易明细 - transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 3, orderId); - userInfoService.updateById(userInfo); + //添加交易明细 + transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 3, orderId); + userInfoService.updateById(userInfo); - orderCrossCity.setState(2);//跨城支付完成后才开始服务 - orderCrossCity.setPayType(3); - orderCrossCity.setPayMoney(orderMoney); + orderCrossCity.setState(2);//跨城支付完成后才开始服务 + orderCrossCity.setPayType(3); + orderCrossCity.setPayMoney(orderMoney); - //处理优惠券和红包 - if(null != userCouponRecord){ - userCouponRecord.setState(2); - userCouponRecord.setEndTime(new Date()); - userCouponRecordService.updateById(userCouponRecord); + //处理优惠券和红包 + if (null != userCouponRecord) { + userCouponRecord.setState(2); + userCouponRecord.setEndTime(new Date()); + userCouponRecordService.updateById(userCouponRecord); + } + if (null != query) { + query.setState(2); + query.setEndTime(new Date()); + userRedPacketRecordService.updateById(query); + } + + //添加已收入明细 + Line line = lineService.selectById(orderCrossCity.getLineId()); + Double speMoney = Double.valueOf(line.getRakeRate()); + BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入 + BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入 + incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue()); + incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue()); + Driver driver = driverService.selectById(orderCrossCity.getDriverId()); + driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); + + // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 + new Thread(new Runnable() { + @Override + public void run() { + pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); + pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); + pushUtil.pushDriverPosition(orderCrossCity.getId(), 3); + } + }).start(); + + systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); } - if(null != query){ - query.setState(2); - query.setEndTime(new Date()); - userRedPacketRecordService.updateById(query); + }else { + //没有指定司机 + //计算优惠券 + BigDecimal payMoney = new BigDecimal(0); + UserCouponRecord userCouponRecord = null; + if(null != couponId){ + userCouponRecord = userCouponRecordService.selectById(couponId); + if(userCouponRecord.getCompanyId() != null){ + return ResultUtil.error("优惠券不能用于此订单", ""); + } + if(userCouponRecord.getState() == 2){ + return ResultUtil.error("优惠券已使用", ""); + } + if(userCouponRecord.getState() == 3){ + return ResultUtil.error("优惠券已过期", ""); + } + if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 3){ + return ResultUtil.error("优惠券不能用于此类型订单", ""); + } + if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){ + return ResultUtil.error("优惠券不能用于此订单", ""); + } + payMoney = new BigDecimal(orderMoney.toString()).subtract(new BigDecimal(userCouponRecord.getMoney())); + System.err.println(payMoney); + orderCrossCity.setCouponMoney(userCouponRecord.getMoney()); + orderCrossCity.setCouponId(couponId); } + if(payMoney.compareTo(new BigDecimal(0)) == 0 ){ + payMoney = new BigDecimal(orderMoney.toString()); + } + //计算红包 + //TODO:红包是否必须指定公司,必须要公司则不能用红包 +// UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderCrossCity.getCompanyId(), 1, 3, orderMoney); +// if(null != query && orderMoney.compareTo(query.getMoney()) > 0){ +// orderMoney = orderMoney - query.getMoney(); +// orderCrossCity.setRedPacketMoney(query.getMoney()); +// orderCrossCity.setRedPacketId(query.getId()); +// } +// +// //计算折扣 +// UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId()); +// if(null != query2){ +// Double special = query2.getSpecial(); +// orderCrossCity.setDiscount(special); +// double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); +// if(orderMoney.compareTo(v) > 0){ +// orderCrossCity.setDiscountMoney(orderMoney - v); +// orderCrossCity.setActivityId(query2.getId()); +// orderMoney = v; +// } +// } + if(payType == 1){//微信支付 + String value = redisUtil.getValue("appletOpenId"); + String appletsOpenId = null; + if(ToolUtil.isNotEmpty(value)){ + JSONObject jsonObject = JSON.parseObject(value); + appletsOpenId = jsonObject.getString(uid.toString()); + }else{ + appletsOpenId = userInfo.getAppletsOpenId(); + } +// Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); +// if(map.get("code").equals("200")){ +// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据 +// resultUtil = ResultUtil.success(map.get("data")); +// }else{ +// resultUtil = ResultUtil.error(map.get("msg"), ""); +// } + String app = type == 1 ? "APP" : "JSAPI"; + resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), payMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); + paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, Double.valueOf(payMoney.toString()), "", 1);//添加预支付数据 + } + if(payType == 2){//支付宝支付 + Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null); + if(map.get("code").equals("200")){ + paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, map.get("order_id"), 1);//添加预支付数据 + resultUtil = ResultUtil.success(map.get("data")); + }else{ + resultUtil = ResultUtil.error(map.get("msg"), ""); + } + } + if(payType == 3){//余额支付 + if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ + return ResultUtil.error("余额不足,无法完成支付", ""); + } - //添加已收入明细 - Line line = lineService.selectById(orderCrossCity.getLineId()); - Double speMoney = Double.valueOf(line.getRakeRate()); - BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入 - BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入 - incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue()); - incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue()); - Driver driver = driverService.selectById(orderCrossCity.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 - new Thread(new Runnable() { - @Override - public void run() { - pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); - pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); - pushUtil.pushDriverPosition(orderCrossCity.getId(), 3); +// SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); +// userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 + + //添加交易明细 + transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 3, orderId); + userInfoService.updateById(userInfo); + + orderCrossCity.setState(1);//跨城支付完成后才开始推单 + orderCrossCity.setPayType(3); + orderCrossCity.setPayMoney(orderMoney); + + //处理优惠券和红包 + if(null != userCouponRecord){ + userCouponRecord.setState(2); + userCouponRecord.setEndTime(new Date()); + userCouponRecordService.updateById(userCouponRecord); + } +// if(null != query){ +// query.setState(2); +// query.setEndTime(new Date()); +// userRedPacketRecordService.updateById(query); +// } + + //添加已收入明细 +// Line line = lineService.selectById(orderCrossCity.getLineId()); +// Double speMoney = Double.valueOf(line.getRakeRate()); +// BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入 +// BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入 +// incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue()); +// incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue()); +// Driver driver = driverService.selectById(orderCrossCity.getDriverId()); +// driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driverService.updateById(driver); + + // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 +// new Thread(new Runnable() { +// @Override +// public void run() { +// pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); +// pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); +// pushUtil.pushDriverPosition(orderCrossCity.getId(), 3); +// } +// }).start(); + + systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); + } +// 支付成功后,触发推单(异步执行,不阻塞支付响应) + new Thread(() -> { + try { + //推单操作 + if(orderCrossCity.getState() == 1){ + this.pushCrossCityOrder(orderCrossCity); + System.out.println("推单!!"); + } + } catch (Exception e) { + e.printStackTrace(); } }).start(); - - systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); } - this.updateAllColumnById(orderCrossCity); + return resultUtil; } - +// /** +// * 订单支付(推单场景) +// * @param payType +// * @param orderId +// * @param couponId +// * @param type +// * @return +// * @throws Exception +// */ +// @Override +// public ResultUtil payCrossCityOrder2(Integer payType, Integer orderId, Integer couponId, Integer type) throws Exception { +// OrderCrossCity orderCrossCity = this.selectById(orderId); +// if(orderCrossCity.getState() != 7){ +// return ResultUtil.error("订单已完成支付,不允许重复支付", ""); +// } +// Integer uid = orderCrossCity.getUserId(); +// Double orderMoney = orderCrossCity.getOrderMoney(); +// System.err.println(orderMoney); +// UserInfo userInfo = userInfoService.selectById(uid); +// ResultUtil resultUtil = ResultUtil.success(""); +// orderCrossCity.setCouponMoney(0D);//初始化历史数据 +// orderCrossCity.setCouponId(null); +// +// //计算优惠券 +// BigDecimal payMoney = new BigDecimal(0); +// UserCouponRecord userCouponRecord = null; +// if(null != couponId){ +// userCouponRecord = userCouponRecordService.selectById(couponId); +// if(userCouponRecord.getCompanyId() != orderCrossCity.getCompanyId()){ +// return ResultUtil.error("优惠券不能用于此订单", ""); +// } +// if(userCouponRecord.getState() == 2){ +// return ResultUtil.error("优惠券已使用", ""); +// } +// if(userCouponRecord.getState() == 3){ +// return ResultUtil.error("优惠券已过期", ""); +// } +// if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 3){ +// return ResultUtil.error("优惠券不能用于此类型订单", ""); +// } +// if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){ +// return ResultUtil.error("优惠券不能用于此订单", ""); +// } +// payMoney = new BigDecimal(orderMoney.toString()).subtract(new BigDecimal(userCouponRecord.getMoney())); +// System.err.println(payMoney); +// orderCrossCity.setCouponMoney(userCouponRecord.getMoney()); +// orderCrossCity.setCouponId(couponId); +// } +// if(payMoney.compareTo(new BigDecimal(0)) == 0 ){ +// payMoney = new BigDecimal(orderMoney.toString()); +// } +// //计算红包 +// UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderCrossCity.getCompanyId(), 1, 3, orderMoney); +//// if(null != query && orderMoney.compareTo(query.getMoney()) > 0){ +//// orderMoney = orderMoney - query.getMoney(); +//// orderCrossCity.setRedPacketMoney(query.getMoney()); +//// orderCrossCity.setRedPacketId(query.getId()); +//// } +//// +//// //计算折扣 +//// UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId()); +//// if(null != query2){ +//// Double special = query2.getSpecial(); +//// orderCrossCity.setDiscount(special); +//// double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); +//// if(orderMoney.compareTo(v) > 0){ +//// orderCrossCity.setDiscountMoney(orderMoney - v); +//// orderCrossCity.setActivityId(query2.getId()); +//// orderMoney = v; +//// } +//// } +// if(payType == 1){//微信支付 +// String value = redisUtil.getValue("appletOpenId"); +// String appletsOpenId = null; +// if(ToolUtil.isNotEmpty(value)){ +// JSONObject jsonObject = JSON.parseObject(value); +// appletsOpenId = jsonObject.getString(uid.toString()); +// }else{ +// appletsOpenId = userInfo.getAppletsOpenId(); +// } +//// Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 9, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/wxPayOrderTaxi", "", type, appletsOpenId); +//// if(map.get("code").equals("200")){ +//// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, map.get("order_id"), 1);//添加预支付数据 +//// resultUtil = ResultUtil.success(map.get("data")); +//// }else{ +//// resultUtil = ResultUtil.error(map.get("msg"), ""); +//// } +// String app = type == 1 ? "APP" : "JSAPI"; +// resultUtil = payMoneyUtil.weixinpay("完成订单", "", orderId + "_3_" + UUIDUtil.getRandomCode(5), payMoney.toString(), "/base/wxPayOrderTaxi", app, userInfo.getAppletsOpenId()); +// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, Double.valueOf(payMoney.toString()), "", 1);//添加预支付数据 +// } +// if(payType == 2){//支付宝支付 +// Map<String, String> map = icbcPayUtil.placeAnOrder(orderId + ",3", 10, 5, uid.toString(), "完成订单", orderMoney, callbackPath + "/base/aliPayOrderTaxi", "", type, null); +// if(map.get("code").equals("200")){ +// paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, map.get("order_id"), 1);//添加预支付数据 +// resultUtil = ResultUtil.success(map.get("data")); +// }else{ +// resultUtil = ResultUtil.error(map.get("msg"), ""); +// } +// } +// if(payType == 3){//余额支付 +// if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ +// return ResultUtil.error("余额不足,无法完成支付", ""); +// } +// +// userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// +// SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId()); +// userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 +// +// //添加交易明细 +// transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 3, orderId); +// userInfoService.updateById(userInfo); +// +// orderCrossCity.setState(2);//跨城支付完成后才开始服务 +// orderCrossCity.setPayType(3); +// orderCrossCity.setPayMoney(orderMoney); +// +// //处理优惠券和红包 +// if(null != userCouponRecord){ +// userCouponRecord.setState(2); +// userCouponRecord.setEndTime(new Date()); +// userCouponRecordService.updateById(userCouponRecord); +// } +// if(null != query){ +// query.setState(2); +// query.setEndTime(new Date()); +// userRedPacketRecordService.updateById(query); +// } +// +// //添加已收入明细 +// Line line = lineService.selectById(orderCrossCity.getLineId()); +// Double speMoney = Double.valueOf(line.getRakeRate()); +// BigDecimal d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);//企业收入 +// BigDecimal c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入 +// incomeService.saveData(1, orderCrossCity.getCompanyId(), 2, orderCrossCity.getId(), 3, d.doubleValue()); +// incomeService.saveData(2, orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3, c.doubleValue()); +// +// systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1); +// } +// +// this.updateAllColumnById(orderCrossCity); +// //没有司机,推单操作 +// if(orderCrossCity.getDriverId() == null && orderCrossCity.getState() == 2){ +// this.pushCrossCityOrder(orderCrossCity); +// } +// return resultUtil; +// } /** * 支付成功后的回调操作 @@ -433,7 +926,11 @@ } //添加交易明细 transactionDetailsService.saveData(orderCrossCity.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId()); - orderCrossCity.setState(2);//先支付再服务 + if(orderCrossCity.getDriverId()==null){ + orderCrossCity.setState(1); + }else { + orderCrossCity.setState(2);//先支付再服务 + } orderCrossCity.setPayType(type); orderCrossCity.setPayMoney(query.getAmount()); this.updateById(orderCrossCity); @@ -475,44 +972,59 @@ // driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); // driverService.updateById(driver); - Company company = companyService.selectById(driver.getFranchiseeId()); - if(Objects.isNull(company)){ - company = companyService.selectById(driver.getCompanyId()); - } - // 司机收入 - double moneyTwo; - // 平台收入 - double money; - if(orderCrossCity.getOrderSource() == 2 || orderCrossCity.getOrderSource() == 3){ - double v = company.getPercentageDeduction() / 100; - money = v * orderCrossCity.getOrderMoney(); - moneyTwo = orderCrossCity.getOrderMoney()-money; - }else { - money = company.getFixedDeduction(); - moneyTwo = orderCrossCity.getOrderMoney()-money; - } - driver.setBalance(driver.getBalance() + moneyTwo); - // 新增扣除使用费记录 - transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderCrossCity.getId(),placeOrderWay,company.getId()); - // 司机订单收入 - transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 3, orderCrossCity.getId(),placeOrderWay,company.getId()); +// Company company = companyService.selectById(driver.getFranchiseeId()); +// if(Objects.isNull(company)){ +// company = companyService.selectById(driver.getCompanyId()); +// } +// // 司机收入 +// double moneyTwo; +// // 平台收入 +// double money; +// if(orderCrossCity.getOrderSource() == 2 || orderCrossCity.getOrderSource() == 3){ +// double v = company.getPercentageDeduction() / 100; +// money = v * orderCrossCity.getOrderMoney(); +// moneyTwo = orderCrossCity.getOrderMoney()-money; +// }else { +// money = company.getFixedDeduction(); +// moneyTwo = orderCrossCity.getOrderMoney()-money; +// } +// driver.setBalance(driver.getBalance() + moneyTwo); +// // 新增扣除使用费记录 +// transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderCrossCity.getId(),placeOrderWay,company.getId()); +// // 司机订单收入 +// transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 3, orderCrossCity.getId(),placeOrderWay,company.getId()); +// +// driverService.updateById(driver); - driverService.updateById(driver); + + // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); - pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); - pushUtil.pushDriverPosition(orderCrossCity.getId(), 3); + + if(driver!=null){ + pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); + pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); + pushUtil.pushDriverPosition(orderCrossCity.getId(), 3); + }else { + try { + pushCrossCityOrder(orderCrossCity); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } }).start(); - systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderCrossCity.getUserId(), 1); +// systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderCrossCity.getUserId(), 1); //添加司机消息提醒 - systemNoticeService.addSystemNotice(2, "用户已线上完成支付", driver.getId(), 1); + if(driver!=null){ + systemNoticeService.addSystemNotice(2, "用户已线上完成支付", driver.getId(), 1); + } }else{ System.err.println("预支付数据异常(orderId = " + id + ")"); } @@ -729,6 +1241,193 @@ return ResultUtil.success(baseWarpper); } + /** + * 跨城下单操作(推单场景) + * @param orderCrossCityWarpperPushOrder + * @param uid + * @return + * @throws Exception + */ + @Override + public synchronized ResultUtil<BaseWarpper> orderCrossCityPushOrder(OrderCrossCityWarpperPushOrder orderCrossCityWarpperPushOrder, Integer uid) throws Exception { + /** + * 1.下了即时单就不能下预约单和即时单 + * 2.下了预约单和再下一张即时单不能再下预约单 + */ + List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 1, 2, 3, 4, 5, 6, 7, 11); + if(orderPrivateCars.size() > 0){ + return ResultUtil.error("有未完成的订单"); + } + List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11); + if(list.size() > 0){ + return ResultUtil.error("有未完成的订单"); + } + List<OrderCrossCity> orderCrossCities1 = orderCrossCityMapper.queryByState(uid, 1, 2, 3, 4, 5, 7, 11); + if(orderCrossCities1.size() > 0){ + return ResultUtil.error("有未完成的订单"); + } + + if(null == orderCrossCityWarpperPushOrder.getServerCarModelId()){ + return ResultUtil.error("请选择服务车型"); + } + OrderCrossCity orderCrossCity = new OrderCrossCity(); + orderCrossCity.setUserId(uid); + orderCrossCity.setServerCarModelId(orderCrossCityWarpperPushOrder.getServerCarModelId()); +// orderCrossCity.setDriverId(orderCrossCityWarpper.getDriverId()); + orderCrossCity.setLineId(orderCrossCityWarpperPushOrder.getLineId()); +// orderCrossCity.setLineShiftDriverId(orderCrossCityWarpper.getLineShiftDriverId()); +// orderCrossCity.setCarId(orderCrossCityWarpper.getCarId()); + orderCrossCity.setOrderNum(this.getOrderNum(orderCrossCityWarpperPushOrder.getDriverId(), orderCrossCityWarpperPushOrder.getLineShiftDriverId())); + orderCrossCity.setPlacementLon(orderCrossCityWarpperPushOrder.getPlacementLon()); + orderCrossCity.setPlacementLat(orderCrossCityWarpperPushOrder.getPlacementLat()); + String placementAddress = orderCrossCityWarpperPushOrder.getPlacementAddress(); + placementAddress = placementAddress.replaceAll("& #40;", "("); + placementAddress = placementAddress.replaceAll("& #41;", ")"); + orderCrossCity.setPlacementAddress(placementAddress); + orderCrossCity.setStartLon(orderCrossCityWarpperPushOrder.getStartLon()); + orderCrossCity.setStartLat(orderCrossCityWarpperPushOrder.getStartLat()); + String startAddress = orderCrossCityWarpperPushOrder.getStartAddress(); + startAddress = startAddress.replaceAll("& #40;", "("); + startAddress = startAddress.replaceAll("& #41;", ")"); + orderCrossCity.setStartAddress(startAddress); + orderCrossCity.setEndLon(orderCrossCityWarpperPushOrder.getEndLon()); + orderCrossCity.setEndLat(orderCrossCityWarpperPushOrder.getEndLat()); + String endAddress = orderCrossCityWarpperPushOrder.getEndAddress(); + endAddress = endAddress.replaceAll("& #40;", "("); + endAddress = endAddress.replaceAll("& #41;", ")"); + orderCrossCity.setEndAddress(endAddress); + orderCrossCity.setMileage(0D); + ResultUtil<Map<String, Object>> price = this.getPrice(orderCrossCityWarpperPushOrder.getDistance(), orderCrossCityWarpperPushOrder.getPeopleNumber(), orderCrossCityWarpperPushOrder.getTravelMode(), orderCrossCityWarpperPushOrder.getLineId(), + orderCrossCityWarpperPushOrder.getServerCarModelId(), orderCrossCityWarpperPushOrder.getTotalSeat(), orderCrossCityWarpperPushOrder.getSeatNumber()); + Double money = Double.valueOf(price.getData().get("price").toString()); + orderCrossCity.setOrderMoney(money); +// Integer companyId = driver.getCompanyId(); +// orderCrossCity.setCompanyId(companyId); + UserInfo userInfo = userInfoService.selectById(uid); + orderCrossCity.setPassengers(userInfo.getNickName()); + orderCrossCity.setPassengersPhone(userInfo.getPhone()); + orderCrossCity.setPeopleNumber(orderCrossCityWarpperPushOrder.getPeopleNumber()); + orderCrossCity.setSeatNumber(orderCrossCityWarpperPushOrder.getSeatNumber()); + List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("orderNum", orderCrossCity.getOrderNum()).eq("isDelete", 1)); + orderCrossCity.setSort(orderCrossCities.size() + 1); + orderCrossCity.setState(7);//待支付 + orderCrossCity.setInsertTime(new Date()); + orderCrossCity.setTravelTime(orderCrossCityWarpperPushOrder.getTravelTime()); + orderCrossCity.setSnatchOrderTime(new Date()); + orderCrossCity.setTravelMode(orderCrossCityWarpperPushOrder.getTravelMode()); + orderCrossCity.setOrderSource(orderCrossCityWarpperPushOrder.getOrderSource()); + orderCrossCity.setIsDelete(1); + orderCrossCity.setRemark(orderCrossCityWarpperPushOrder.getRemark()); + orderCrossCity.setIsReassign(1); + //调用高德创建轨迹 +// String s = gdFalconUtil.selectTerminal(driver.getPhone()); +// String track = gdFalconUtil.createTrack(s); +// orderCrossCity.setTrackId(track); +// if (orderCrossCity.getTravelMode() == 2) {//包车 +// orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber()); +// orderCrossCity.setPeopleNumber(lineShiftDriver.getLaveSeat()); +// } + + //调用移动的小号接口 +// Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()); +// Region region = regionMapper.query(geocode.get("districtCode")); +// Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1))); +// if (String.valueOf(map.get("code")).equals("200")) { +// orderCrossCity.setTelX(map.get("telX")); +// orderCrossCity.setBindId(map.get("bindId")); +// } + this.insert(orderCrossCity); + +// if (driver.getState() == 2) { +// driver.setState(3); +// driverService.updateById(driver); +// } + +// //修改预约班次的数据 +// if (orderCrossCity.getTravelMode() == 2) {//包车 +// lineShiftDriver.setLaveSeat(0); +// lineShiftDriver.setLaveSeatNumber(""); +// } else {//拼车 +// lineShiftDriver.setLaveSeat((lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber()) < 0 ? 0 : lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber()); +// String[] split = orderCrossCity.getSeatNumber().split(","); +// String[] split1 = lineShiftDriver.getLaveSeatNumber().split(","); +// String seatNumber = ""; +// //先判断选中座位号和剩余座位号是否匹配 +// for (String spl : split) { +// boolean b = true; +// for (String sp : split1) { +// if (ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)) { +// b = false; +// break; +// } +// } +// if (b) { +// throw new SystemException("您选中的" + spl + "号座位已被占用,请选择其他座位!"); +// } +// } +// for (String sp : split1) { +// boolean b = true; +// for (String spl : split) { +// if (ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)) { +// b = false; +// break; +// } +// } +// if (b && ToolUtil.isNotEmpty(sp)) { +// seatNumber += (sp + ","); +// } +// } +// lineShiftDriver.setLaveSeatNumber((ToolUtil.isNotEmpty(seatNumber) && seatNumber.length() > 0) ? +// seatNumber.substring(0, seatNumber.length() - 1) : ""); +// } +// lineShiftDriverMapper.updateById(lineShiftDriver); + + //添加消息 + systemNoticeService.addSystemNotice(1, "您的跨城订单已下单成功!", orderCrossCity.getUserId(), 1); + + BaseWarpper baseWarpper = new BaseWarpper(); + baseWarpper.setId(orderCrossCity.getId()); + + //创建定时任务,取消订单30分钟 + TimerTask timerTask = new TimerTask() { + @Override + public void run() { + OrderCrossCity orderCrossCity1 = orderCrossCityMapper.selectById(orderCrossCity.getId()); + if(orderCrossCity1.getState() == 7 && orderCrossCity1.getPayMoney() == null){ + orderCrossCity1.setState(10); + orderCrossCityMapper.updateById(orderCrossCity1); + + OrderCancel orderCancel = new OrderCancel(); + orderCancel.setOrderId(orderCrossCity.getId()); + orderCancel.setOrderType(3); + orderCancel.setReason("用户未及时付款,系统自动取消订单"); + orderCancel.setRemark("用户未及时付款,系统自动取消订单"); + orderCancel.setState(2); + orderCancel.setInsertTime(new Date()); + orderCancel.setUserType(2); + orderCancelService.insert(orderCancel); + +// //修改司机座位 +// LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId()); +// lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber()); +// lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber()); +// lineShiftDriverMapper.updateById(lineShiftDriver); +// +// //修改司机为空闲 +// List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11); +// if(orderCrossCities.size() == 0){ +// Driver driver = driverService.selectById(orderCrossCity.getDriverId()); +// driver.setState(2); +// driverService.updateById(driver); +// } + } + } + }; + Timer timer = new Timer(); + timer.schedule(timerTask, 30 * 60 * 1000); + + return ResultUtil.success(baseWarpper); + } /** * 获取订单 @@ -1246,7 +1945,9 @@ new Thread(new Runnable() { @Override public void run() { - pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); + if(orderCrossCity.getDriverId()!=null){ + pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0); + } System.err.println("推送取消操作---------------------"); } }).start(); @@ -1254,9 +1955,12 @@ //修改司机座位 LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId()); - lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber()); - lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber()); - lineShiftDriverMapper.updateById(lineShiftDriver); + if(lineShiftDriver!=null){ + lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber()); + lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber()); + lineShiftDriverMapper.updateById(lineShiftDriver); + } + //修改司机为空闲 List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11); @@ -1283,20 +1987,10 @@ if(null == query){ return ResultUtil.error("订单还未进行支付"); } -// Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), id + "_3", orderCrossCity.getOrderNum()); -// if(Integer.valueOf(merrefund.get("code").toString()) == 0){ -// Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum()); -// if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功 -// //添加交易明细 -// transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id); -// } -// if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败 -// return ResultUtil.error("订单取消失败(退款不成功)"); -// } -// if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知 -// return ResultUtil.error("退款返回未知异常"); -// } -// } + Map<String, String> merrefund = payMoneyUtil.wxRefund(query.getCode(), orderCrossCity.getOrderNum(), String.valueOf(query.getAmount()), String.valueOf(query.getAmount()), ""); + System.err.println("跨城退款数据:::"+merrefund); + //添加交易明细 + transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, id); integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid); } @@ -1364,6 +2058,18 @@ orderServerWarpper.setState(orderCrossCity.getState()); orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0"); orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0"); + value = value == null ? "0.0,0.0" : value; + double[] doubles = GpsCoordinateUtils.calBD09toGCJ02(Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0])); + orderServerWarpper.setNextLongitude(String.valueOf(doubles[0])); + orderServerWarpper.setNextLatitude(String.valueOf(doubles[1])); + // 起点地址转换 + doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getStartLat(), orderCrossCity.getStartLon()); + orderServerWarpper.setStartLat(String.valueOf(doubles[0])); + orderServerWarpper.setStartLon(String.valueOf(doubles[1])); + // 终点地址转换 + doubles = GpsCoordinateUtils.calBD09toGCJ02(orderCrossCity.getEndLat(), orderCrossCity.getEndLon()); + orderServerWarpper.setEndLat(String.valueOf(doubles[0])); + orderServerWarpper.setEndLon(String.valueOf(doubles[1])); orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice()); if(orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3){//前往预约地 orderServerWarpper.setReservationMileage(d); @@ -1378,8 +2084,8 @@ if(null == distance){ System.err.println("查询距离出错了"); }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000),2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60),2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); @@ -1792,6 +2498,23 @@ return orderCrossCityMapper.queryListOrder(driverId, lineShiftId, state, day); } + @Override + public void autoCancelOrder() { + LocalDateTime localDateTime = LocalDateTime.now(); + LocalDateTime dateTime = localDateTime.minusMinutes(30); + String time = dateUtil.localDateTimeToStringHHmm(dateTime); + LocalDateTime start = LocalDateTime.parse(time + ":00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime end = start.plusMinutes(1); + + List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("state", 7).between("insertTime", start, end)); + if(!CollectionUtils.isEmpty(orderCrossCities)){ + for (OrderCrossCity orderCrossCity : orderCrossCities) { + orderCrossCity.setState(10); + } + this.updateBatchById(orderCrossCities); + } + } + /** * 获取订单编号 * @return @@ -1813,4 +2536,113 @@ } } + + + /** + * 推送跨城抢单数据 + * @param orderCrossCity + * @throws Exception + */ + public void pushCrossCityOrder(OrderCrossCity orderCrossCity) throws Exception{ + new Thread(new Runnable() { + @Override + public void run() { + try { + crossCityOrderIds.add(orderCrossCity.getId());//添加记录,防止调用接口重复提醒无人接单 + String vehicle = redisUtil.getValue("VEHICLE"); + List<Integer> integers = new ArrayList<>(); + if(ToolUtil.isNotEmpty(vehicle)){ + integers = JSON.parseArray(vehicle).toJavaList(Integer.class); + } + Company query = companyCityService.query(String.valueOf(orderCrossCity.getStartLon()), String.valueOf(orderCrossCity.getStartLat()));//获取起点所属分公司 +// List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数 +// Company query = companyService.selectById(1); + for(int i = 1; i <= 3; i++){ +// PushOrder pushOrder = pushOrderService.querys(i, 4, query.getId()).get(0); + + //获取同线路的同车型的跨城司机 + List<Driver> list = driverService.queryDriversByLineAndCarModel(3,orderCrossCity.getServerCarModelId(), orderCrossCity.getLineId()); + if(list.size() > 0){ +// double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 +// int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) +// list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + for(Driver driver : list){//开始进行推送 +// boolean bo = false; +// for(Integer integer : integers){ +// if(integer.compareTo(driver.getId()) == 0){ +// bo = true; +// break; +// } +// } +// if(bo){ +// continue; +// } + pushUtil.pushOrderState(2, driver.getId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 10); + } + } + Thread.sleep(10 * 1000);//设置等待时间 + Integer state = orderCrossCityMapper.selectById(orderCrossCity.getId()).getState(); + if(state > 1){ + break; + } +// if(i == querys.size() && state == 1){ + if(i == 3 && state == 1){ + pushUtil.pushEndPush(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 1); + orderIds.remove(orderCrossCity.getId()); + orderCrossCity.setState(10); + orderCrossCityMapper.updateById(orderCrossCity); + + OrderCancel orderCancel = new OrderCancel(); + orderCancel.setOrderId(orderCrossCity.getId()); + orderCancel.setOrderType(3); + orderCancel.setReason("没有司机接单,系统自动取消订单"); + orderCancel.setRemark("没有司机接单,系统自动取消订单"); + orderCancel.setState(2); + orderCancel.setInsertTime(new Date()); + orderCancel.setUserType(2); + orderCancelService.insert(orderCancel); + //TODO:退款 + UserInfo userInfo = userInfoService.selectById (orderCrossCity.getUserId()); + userInfo.setBalance (new BigDecimal (userInfo.getBalance ()) + .add (new BigDecimal (orderCrossCity.getOrderMoney())) // 余额增加订单金额 + .setScale (2, BigDecimal.ROUND_HALF_EVEN) + .doubleValue ()); + SysIntegral query1 = sysIntegralMapper.query (orderCrossCity.getCompanyId ()); + if (query1 != null) { + int addIntegral = orderCrossCity.getOrderMoney().intValue () * query1.getIntegral (); // 原增加的积分 + userInfo.setIntegral (userInfo.getIntegral () - addIntegral); // 扣除对应积分(确保积分不为负可加额外判断) + } + transactionDetailsService.saveData (orderCrossCity.getUserId(), "订单取消退款", orderCrossCity.getOrderMoney (), 1, 1, 1, 3, orderCrossCity.getId ()); + userInfoService.updateById (userInfo); + + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } + +// /** +// * 下单后继续等待 +// * @param id +// * @return +// * @throws Exception +// */ +// @Override +// public ResultUtil pushOrderCrossCity(Integer id) throws Exception { +// OrderCrossCity orderCrossCity = this.selectById(id); +// if(null == orderCrossCity){ +// return ResultUtil.error("推送订单失败,订单信息有误"); +// } +// if(orderCrossCity.getState() != 1){ +// return ResultUtil.error("订单已被司机接单,不能重复推送"); +// } +// +// +// this.pushCrossCityOrder(orderCrossCity); +// +// return ResultUtil.success(); +// } } -- Gitblit v1.7.1