From 00ee134d5bcb07e9a07633963e68ba7e9fa215c2 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期二, 13 八月 2024 17:48:12 +0800 Subject: [PATCH] 优化支付 --- UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 63 +++++++++++++++++-------------- 1 files changed, 35 insertions(+), 28 deletions(-) diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index cebad80..56bb789 100644 --- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -135,8 +135,8 @@ @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; - @Autowired - private ChinaMobileUtil chinaMobileUtil; +// @Autowired +// private ChinaMobileUtil chinaMobileUtil; @Autowired private GDFalconUtil gdFalconUtil; @@ -310,19 +310,23 @@ orderMoney = v; } } + String code = orderId + "_3_fei"; if(payType == 1){//微信支付 - resultUtil = payMoneyUtil.weixinpay("完成订单",orderId +"",orderId + "_3_fei",orderMoney+"","/base/wxPayOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); + if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ + return ResultUtil.error("未授权微信,无法完成支付"); + } + resultUtil = payMoneyUtil.weixinpay("完成订单",orderId +"", code,orderMoney+"","/base/wxPayOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, orderId, 3, 1, orderMoney, null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, orderId, 3, 1, orderMoney, null, 1, code);//添加预支付数据 resultUtil = resultUtil; }else{ resultUtil = ResultUtil.error("获取支付信息失败", ""); } } if(payType == 2){//支付宝支付 - resultUtil = payMoneyUtil.alipay("完成订单","完成订单",orderId + ",3" ,orderMoney+"","/base/aliPayOrderTaxi"); + resultUtil = payMoneyUtil.alipay("完成订单","完成订单", "",orderId + ",3" ,orderMoney+"","/base/aliPayOrderTaxi"); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, orderId, 3, 2, orderMoney, null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, orderId, 3, 2, orderMoney, null, 1, code);//添加预支付数据 resultUtil = resultUtil; }else{ resultUtil = ResultUtil.error("获取支付信息失败", ""); @@ -361,7 +365,7 @@ //添加已收入明细 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 d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))).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()); @@ -435,7 +439,7 @@ //添加已收入明细 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 d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100)), new MathContext(2, RoundingMode.HALF_EVEN)).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()); @@ -575,11 +579,11 @@ //调用移动的小号接口 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")); - } +// 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){ @@ -767,15 +771,18 @@ }else{ orderCancel = orderCancelService.selectById(cancleId); } - CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId()); if(null != query){ + String code = id + "_3_fei"; if(payType == 1){//微信支付 + if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ + return ResultUtil.error("未授权微信,无法完成支付"); + } orderCancel.setPayType(1); orderCancelService.updateById(orderCancel); - resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",id + "_3_fei",query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); + resultUtil = payMoneyUtil.weixinpay("订单取消",id +"", code,query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, id, 3, 1, query.getMoney(), null, 1, code);//添加预支付数据 resultUtil = resultUtil; }else{ resultUtil = ResultUtil.error("获取支付信息失败", ""); @@ -784,9 +791,9 @@ if(payType == 2){//支付宝支付 orderCancel.setPayType(2); orderCancelService.updateById(orderCancel); - resultUtil = payMoneyUtil.alipay("订单取消","订单取消",id + ",3",query.getMoney()+"","/base/aliCancelOrderTaxi"); + resultUtil = payMoneyUtil.alipay("订单取消","订单取消", "",id + ",3",query.getMoney()+"","/base/aliCancelOrderTaxi"); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, id, 3, 2, query.getMoney(), null, 1, code);//添加预支付数据 resultUtil = resultUtil; }else{ resultUtil = ResultUtil.error("获取支付信息失败", ""); @@ -803,9 +810,9 @@ userInfoService.updateById(userInfo); //解除小号绑定 - if(orderCrossCity.getBindId() != null){ - chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX()); - } +// if(orderCrossCity.getBindId() != null){ +// chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX()); +// } orderCrossCity.setState(10); orderCrossCity.setTelX(""); @@ -1059,9 +1066,9 @@ transactionDetailsService.saveData(orderCrossCity.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId()); orderCrossCity.setState(10); //解除小号绑定 - if(orderCrossCity.getBindId() != null){ - chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX()); - } +// if(orderCrossCity.getBindId() != null){ +// chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId(),orderCrossCity.getTelX()); +// } orderCrossCity.setBindId(""); orderCrossCity.setTelX(""); this.updateById(orderCrossCity); @@ -1295,8 +1302,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), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); orderServerWarpper.setOrderId(orderCrossCity.getId()); @@ -1318,8 +1325,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), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); -- Gitblit v1.7.1