From 4f9707811eef19b7c9f59d587d05208b40a23b54 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 10 七月 2025 17:35:02 +0800 Subject: [PATCH] 增加redis锁 --- DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java | 262 +++++++++++++++------------- UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 259 +++++++++++++++------------- 2 files changed, 281 insertions(+), 240 deletions(-) diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java index 9e38e89..651e9bd 100644 --- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java +++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java @@ -84,6 +84,8 @@ @Value("${callbackPath}") private String callbackPath; + @Autowired + private RedisUtil redisUtil; /** @@ -94,142 +96,162 @@ */ @Override public ResultUtil saveData(Reassign reassign, Integer uid, Integer type) throws Exception { - type = null == type ? 2 : type;//现目前微信只支持小程序支付 - String content = reassign.getRemark(); - if(ToolUtil.isNotEmpty(content)){ - List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null); - for(SensitiveWords s : sensitiveWords){ - content = content.replaceAll(s.getContent(), "***"); + boolean lock = redisUtil.lock(reassign.getOrderId() + "_reassign", 10); + if(!lock){ + int num1 = 1; + while (num1 <= 10){ + Thread.sleep(3000);//等待3秒 + lock = redisUtil.lock(reassign.getOrderId() + "_reassign", 10); + if(lock){ + break; + }else{ + num1++; + } } } - reassign.setRemark(content); + ResultUtil resultUtil = ResultUtil.success(); - Driver driver = driverService.selectById(uid); - // TODO: 2020/11/12 司机端不控制重复提交(如果重复提交且未支付,直接将之前的数据删除) + try { + type = null == type ? 2 : type;//现目前微信只支持小程序支付 + String content = reassign.getRemark(); + if(ToolUtil.isNotEmpty(content)){ + List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null); + for(SensitiveWords s : sensitiveWords){ + content = content.replaceAll(s.getContent(), "***"); + } + } + reassign.setRemark(content); + Driver driver = driverService.selectById(uid); + // TODO: 2020/11/12 司机端不控制重复提交(如果重复提交且未支付,直接将之前的数据删除) // Reassign query = reassignMapper.query(uid, null, null, null, 1); // if(null != query){ // return ResultUtil.error("有未完成支付的改派申请"); // } - Reassign query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 1); - if(null != query){ + Reassign query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 1); + if(null != query){ // return ResultUtil.error("不能重复提交申请"); - reassignMapper.deleteById(query.getId()); - } - query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2); - if(null != query){ - return ResultUtil.error("您提交的申请正在处理中"); - } - - //获取支付金额 - Double aDouble = orderService.queryReassignMoney(reassign.getOrderId(), reassign.getOrderType()); - reassign.setMoney(aDouble); - reassign.setOriginalDriverId(uid); - reassign.setOriginalCarId(driver.getCarId()); - reassign.setInsertTime(new Date()); - this.insert(reassign); - - systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid); - - //开始支付 - if(null != reassign.getPayType()){ - if(reassign.getPayType() == 1){//微信支付 - reassign.setState(1); - ResultUtil resultUtil1 = payMoneyUtil.weixinpay("改派订单",reassign.getId()+"",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/wxReassign","APP", ""); - //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 9, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/wxReassign", "", type, driver.getAppletsOpenId()); - if(resultUtil1.getCode()==200){ - paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, null, 1);//添加预支付数据 - resultUtil = resultUtil1; - }else{ - resultUtil = ResultUtil.error("获取支付信息失败", ""); - } + reassignMapper.deleteById(query.getId()); } - if(reassign.getPayType() == 2){//支付宝 - reassign.setState(1); - ResultUtil resultUtil1 = payMoneyUtil.alipay("改派订单","改派订单",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/aliReassign", ""); - //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 10, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/aliReassign", "", 2, ""); - if(resultUtil1.getCode()==200){ - paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 2, aDouble, null, 1);//添加预支付数据 - resultUtil = resultUtil1; - }else{ - resultUtil = ResultUtil.error("获取支付信息失败", ""); - } + query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2); + if(null != query){ + return ResultUtil.error("您提交的申请正在处理中"); } - if(reassign.getPayType() == 3){//余额 - reassign.setState(2); - reassign.setPayTime(new Date()); - reassignMapper.updateById(reassign); - - Double balance = driver.getBalance(); - Double laveBusinessMoney = driver.getLaveBusinessMoney(); - Double laveActivityMoney = driver.getLaveActivityMoney(); - if(null == balance || balance < aDouble){ - throw new SystemException("账户余额不足"); + + //获取支付金额 + Double aDouble = orderService.queryReassignMoney(reassign.getOrderId(), reassign.getOrderType()); + reassign.setMoney(aDouble); + reassign.setOriginalDriverId(uid); + reassign.setOriginalCarId(driver.getCarId()); + reassign.setInsertTime(new Date()); + this.insert(reassign); + + systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid); + + //开始支付 + if(null != reassign.getPayType()){ + if(reassign.getPayType() == 1){//微信支付 + reassign.setState(1); + ResultUtil resultUtil1 = payMoneyUtil.weixinpay("改派订单",reassign.getId()+"",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/wxReassign","APP", ""); + //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 9, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/wxReassign", "", type, driver.getAppletsOpenId()); + if(resultUtil1.getCode()==200){ + paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, null, 1);//添加预支付数据 + resultUtil = resultUtil1; + }else{ + resultUtil = ResultUtil.error("获取支付信息失败", ""); + } } - if(null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0){ - driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - }else if(null != laveActivityMoney && laveActivityMoney.compareTo(aDouble) >= 0){ - driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + if(reassign.getPayType() == 2){//支付宝 + reassign.setState(1); + ResultUtil resultUtil1 = payMoneyUtil.alipay("改派订单","改派订单",reassign.getId() + "_" + reassign.getOrderType(),aDouble+"","/base/aliReassign", ""); + //Map<String, String> map = icbcPayUtil.placeAnOrder(reassign.getId() + "_" + reassign.getOrderType(), 10, 5, uid.toString(), "改派订单", aDouble, callbackPath + "/base/aliReassign", "", 2, ""); + if(resultUtil1.getCode()==200){ + paymentRecordService.saveData(1, null, null, reassign.getOrderId(), reassign.getOrderType(), 2, aDouble, null, 1);//添加预支付数据 + resultUtil = resultUtil1; + }else{ + resultUtil = ResultUtil.error("获取支付信息失败", ""); + } } - driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driverService.updateById(driver); - //添加交易明细 - transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId()); - - - //修改改派通知状态 - switch (reassign.getOrderType()){ - case 1: - OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId()); - orderPrivateCar.setOldState(orderPrivateCar.getState()); - orderPrivateCar.setState(11); - orderPrivateCar.setReassignNotice(2); - orderPrivateCarService.updateById(orderPrivateCar); - - //添加已收入明细 - incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney()); - break; - case 2: - OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId()); - orderTaxi.setOldState(orderTaxi.getState()); - orderTaxi.setState(11); - orderTaxi.setReassignNotice(2); - orderTaxiService.updateById(orderTaxi); - - //添加已收入明细 - incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney()); - break; - case 4: - OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId()); - orderLogistics.setOldState(orderLogistics.getState()); - orderLogistics.setState(11); - orderLogistics.setReassignNotice(2); - orderLogisticsService.updateById(orderLogistics); - - //添加已收入明细 - incomeService.saveData(1, orderLogistics.getCompanyId(), 4, orderLogistics.getId(), orderLogistics.getType(), reassign.getMoney()); - break; - case 5: - OrderLogistics orderLogistics1 = orderLogisticsService.selectById(reassign.getOrderId()); - orderLogistics1.setOldState(orderLogistics1.getState()); - orderLogistics1.setState(11); - orderLogistics1.setReassignNotice(2); - orderLogisticsService.updateById(orderLogistics1); - - //添加已收入明细 - incomeService.saveData(1, orderLogistics1.getCompanyId(), 4, orderLogistics1.getId(), orderLogistics1.getType(), reassign.getMoney()); - break; - } - - systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid); - //开始推送调度单 - Map<String, String> map = new HashMap<>(); - map.put("orderId", reassign.getOrderId().toString()); - map.put("orderType", reassign.getOrderType().toString()); - List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1); + if(reassign.getPayType() == 3){//余额 + reassign.setState(2); + reassign.setPayTime(new Date()); + reassignMapper.updateById(reassign); + + Double balance = driver.getBalance(); + Double laveBusinessMoney = driver.getLaveBusinessMoney(); + Double laveActivityMoney = driver.getLaveActivityMoney(); + if(null == balance || balance < aDouble){ + throw new SystemException("账户余额不足"); + } + if(null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0){ + driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + }else if(null != laveActivityMoney && laveActivityMoney.compareTo(aDouble) >= 0){ + driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + } + driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + driverService.updateById(driver); + //添加交易明细 + transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId()); + + + //修改改派通知状态 + switch (reassign.getOrderType()){ + case 1: + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId()); + orderPrivateCar.setOldState(orderPrivateCar.getState()); + orderPrivateCar.setState(11); + orderPrivateCar.setReassignNotice(2); + orderPrivateCarService.updateById(orderPrivateCar); + + //添加已收入明细 + incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney()); + break; + case 2: + OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId()); + orderTaxi.setOldState(orderTaxi.getState()); + orderTaxi.setState(11); + orderTaxi.setReassignNotice(2); + orderTaxiService.updateById(orderTaxi); + + //添加已收入明细 + incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney()); + break; + case 4: + OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId()); + orderLogistics.setOldState(orderLogistics.getState()); + orderLogistics.setState(11); + orderLogistics.setReassignNotice(2); + orderLogisticsService.updateById(orderLogistics); + + //添加已收入明细 + incomeService.saveData(1, orderLogistics.getCompanyId(), 4, orderLogistics.getId(), orderLogistics.getType(), reassign.getMoney()); + break; + case 5: + OrderLogistics orderLogistics1 = orderLogisticsService.selectById(reassign.getOrderId()); + orderLogistics1.setOldState(orderLogistics1.getState()); + orderLogistics1.setState(11); + orderLogistics1.setReassignNotice(2); + orderLogisticsService.updateById(orderLogistics1); + + //添加已收入明细 + incomeService.saveData(1, orderLogistics1.getCompanyId(), 4, orderLogistics1.getId(), orderLogistics1.getType(), reassign.getMoney()); + break; + } + + systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid); + //开始推送调度单 + Map<String, String> map = new HashMap<>(); + map.put("orderId", reassign.getOrderId().toString()); + map.put("orderType", reassign.getOrderType().toString()); + List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1); // for(Dispatch dispatch : dispatches){ // jgPushUtil.push(2,"有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId()); // } + } } + }catch (Exception e){ + e.printStackTrace(); + }finally { + redisUtil.unlock(reassign.getOrderId() + "_reassign"); } return resultUtil; } diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 7cc99cb..4120934 100644 --- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -672,136 +672,150 @@ */ @Override public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception { - OrderPrivateCar orderPrivateCar = this.selectById(id); - Integer uid = orderPrivateCar.getUserId(); - UserInfo userInfo = userInfoService.selectById(uid); - ResultUtil resultUtil = ResultUtil.success(""); - - if(null == orderPrivateCar){ - return ResultUtil.error("取消订单失败,订单信息有误", ""); - } - if(orderPrivateCar.getState() != 12){ - return ResultUtil.error("取消订单失败,不合法的操作", ""); - } - OrderCancel orderCancel = null; - if(null == cancleId || cancleId==0){ - orderCancel = orderCancelService.query(id, 1, null, null, 1); - }else{ - orderCancel = orderCancelService.selectById(cancleId); - } - - CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); - if(null != query){ - String code = id + "_1_" + UUIDUtil.getRandomCode(3); - if(payType == 1){//微信支付 - if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ - return ResultUtil.error("未授权微信,无法完成支付"); + boolean lock = redisUtil.lock(id + "_cancleOrder", 10); + if(!lock){ + int num1 = 1; + while (num1 <= 10){ + Thread.sleep(3000);//等待3秒 + lock = redisUtil.lock(id + "_cancleOrder", 10); + if(lock){ + break; + }else{ + num1++; } - orderCancel.setPayType(1); - orderCancelService.updateById(orderCancel); - resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",code,query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); - if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, id, 1, 1, query.getMoney(), null, 1, code);//添加预支付数据 - new Thread(()->{ - int num = 1; - int min = 5000; - int w = 0; - while (num <= 10) { - try { - w += min * num; - OrderPrivateCar orderPrivateCar1 = orderPrivateCarMapper.selectById(id); - if (orderPrivateCar1.getState() == 10) { - break; - } - ResultUtil<Map<String, Object>> resultUtil1 = payMoneyUtil.queryWXOrder("", code, "JSAPI"); - if (resultUtil1.getCode() == 200) { - /** - * SUCCESS--支付成功 - * REFUND--转入退款 - * NOTPAY--未支付 - * CLOSED--已关闭 - * REVOKED--已撤销(刷卡支付) - * USERPAYING--用户支付中 - * PAYERROR--支付失败(其他原因,如银行返回失败) - * ACCEPT--已接收,等待扣款 - */ - String s = resultUtil1.getData().get("trade_state").toString(); - if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) { + } + } + ResultUtil resultUtil = ResultUtil.success(""); + try { + OrderPrivateCar orderPrivateCar = this.selectById(id); + Integer uid = orderPrivateCar.getUserId(); + UserInfo userInfo = userInfoService.selectById(uid); + + if(null == orderPrivateCar){ + return ResultUtil.error("取消订单失败,订单信息有误", ""); + } + if(orderPrivateCar.getState() != 12){ + return ResultUtil.error("取消订单失败,不合法的操作", ""); + } + OrderCancel orderCancel = null; + if(null == cancleId || cancleId==0){ + orderCancel = orderCancelService.query(id, 1, null, null, 1); + }else{ + orderCancel = orderCancelService.selectById(cancleId); + } + + CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); + if(null != query){ + String code = id + "_1_" + UUIDUtil.getRandomCode(3); + if(payType == 1){//微信支付 + if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){ + return ResultUtil.error("未授权微信,无法完成支付"); + } + orderCancel.setPayType(1); + orderCancelService.updateById(orderCancel); + resultUtil = payMoneyUtil.weixinpay("订单取消",id +"",code,query.getMoney()+"","/base/wxCancelOrderTaxi","JSAPI",userInfo.getAppletsOpenId()); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, id, 1, 1, query.getMoney(), null, 1, code);//添加预支付数据 + new Thread(()->{ + int num = 1; + int min = 5000; + int w = 0; + while (num <= 10) { + try { + w += min * num; + OrderPrivateCar orderPrivateCar1 = orderPrivateCarMapper.selectById(id); + if (orderPrivateCar1.getState() == 10) { break; } - if ("SUCCESS".equals(s) || "ACCEPT".equals(s)) { - String transaction_id = resultUtil1.getData().get("transaction_id").toString(); - payCancelOrderPrivateCar(id, transaction_id, 1); - break; - } - if ("NOTPAY".equals(s) || "USERPAYING".equals(s)) { + ResultUtil<Map<String, Object>> resultUtil1 = payMoneyUtil.queryWXOrder("", code, "JSAPI"); + if (resultUtil1.getCode() == 200) { + /** + * SUCCESS--支付成功 + * REFUND--转入退款 + * NOTPAY--未支付 + * CLOSED--已关闭 + * REVOKED--已撤销(刷卡支付) + * USERPAYING--用户支付中 + * PAYERROR--支付失败(其他原因,如银行返回失败) + * ACCEPT--已接收,等待扣款 + */ + String s = resultUtil1.getData().get("trade_state").toString(); + if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) { + break; + } + if ("SUCCESS".equals(s) || "ACCEPT".equals(s)) { + String transaction_id = resultUtil1.getData().get("transaction_id").toString(); + payCancelOrderPrivateCar(id, transaction_id, 1); + break; + } + if ("NOTPAY".equals(s) || "USERPAYING".equals(s)) { + Thread.sleep(w); + num++; + } + } else { Thread.sleep(w); num++; } - } else { - Thread.sleep(w); - num++; + }catch (Exception e){ + e.printStackTrace(); } - }catch (Exception e){ - e.printStackTrace(); } - } - }).start(); - - }else{ - resultUtil = ResultUtil.error("支付失败", ""); + }).start(); + + }else{ + resultUtil = ResultUtil.error("支付失败", ""); + } + } - - } - if(payType == 2){//支付宝支付 - orderCancel.setPayType(2); - orderCancelService.updateById(orderCancel); - resultUtil = payMoneyUtil.alipay("订单取消","订单取消", "",code,query.getMoney()+"","/base/aliCancelOrderTaxi"); - if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, id, 1, 2, query.getMoney(), null, 1, code);//添加预支付数据 - resultUtil = resultUtil; - }else{ - resultUtil = ResultUtil.error("支付失败", ""); + if(payType == 2){//支付宝支付 + orderCancel.setPayType(2); + orderCancelService.updateById(orderCancel); + resultUtil = payMoneyUtil.alipay("订单取消","订单取消", "",code,query.getMoney()+"","/base/aliCancelOrderTaxi"); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, id, 1, 2, query.getMoney(), null, 1, code);//添加预支付数据 + resultUtil = resultUtil; + }else{ + resultUtil = ResultUtil.error("支付失败", ""); + } } - } - if(payType == 3){//余额支付 - if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ - return ResultUtil.error("余额不足,无法完成支付", ""); - } - - userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - //添加交易明细 - transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 1, id); - userInfoService.updateById(userInfo); - - //解除小号绑定 + if(payType == 3){//余额支付 + if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){ + return ResultUtil.error("余额不足,无法完成支付", ""); + } + + userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + //添加交易明细 + transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 1, id); + userInfoService.updateById(userInfo); + + //解除小号绑定 // if(orderPrivateCar.getBindId() != null){ // chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId(),orderPrivateCar.getTelX()); // } - - orderPrivateCar.setState(10); - orderPrivateCar.setTelX(""); - orderPrivateCar.setBindId(""); - this.updateById(orderPrivateCar); - - orderCancel.setState(2); - orderCancel.setPayType(3); - orderCancelService.updateById(orderCancel); - - //添加已收入明细 - incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney()); - //添加已收入明细 - Company company = companyService.selectById(orderPrivateCar.getCompanyId()); - Double taxi = company.getSpeMoney(); - BigDecimal c =new BigDecimal(query.getMoney());//司机收入 - incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); - Driver driver = driverService.selectById(orderPrivateCar.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); - - this.deleteTask(id);//删除定时任务 + + orderPrivateCar.setState(10); + orderPrivateCar.setTelX(""); + orderPrivateCar.setBindId(""); + this.updateById(orderPrivateCar); + + orderCancel.setState(2); + orderCancel.setPayType(3); + orderCancelService.updateById(orderCancel); + + //添加已收入明细 + incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney()); + //添加已收入明细 + Company company = companyService.selectById(orderPrivateCar.getCompanyId()); + Double taxi = company.getSpeMoney(); + BigDecimal c =new BigDecimal(query.getMoney());//司机收入 + incomeService.saveData(2, orderPrivateCar.getDriverId(), 3, orderPrivateCar.getId(), 1, c.doubleValue()); + Driver driver = driverService.selectById(orderPrivateCar.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); + + this.deleteTask(id);//删除定时任务 // new Thread(new Runnable() { // @Override @@ -809,10 +823,15 @@ // pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0); // } // }).start(); - - //添加消息 - systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1); + + //添加消息 + systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1); + } } + }catch (Exception e){ + e.printStackTrace(); + }finally { + redisUtil.unlock(id + "_cancleOrder"); } return resultUtil; } -- Gitblit v1.7.1