From e52227b01983146f2e3c81dc575141d8b9889497 Mon Sep 17 00:00:00 2001 From: yanghb <yanghb> Date: 星期五, 21 四月 2023 10:16:30 +0800 Subject: [PATCH] 代码调整 --- DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java | 92 ++++++++++++++++++++------------------------- 1 files changed, 41 insertions(+), 51 deletions(-) diff --git a/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java index 48d2ea3..b848f35 100644 --- a/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java +++ b/DriverTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java @@ -26,6 +26,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; @@ -94,7 +95,6 @@ */ @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); @@ -105,14 +105,8 @@ reassign.setRemark(content); ResultUtil resultUtil = ResultUtil.success(); 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){ -// return ResultUtil.error("不能重复提交申请"); reassignMapper.deleteById(query.getId()); } query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2); @@ -128,20 +122,23 @@ reassign.setInsertTime(new Date()); this.insert(reassign); - systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid, 1); + systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid); //开始支付 if(null != reassign.getPayType()){ + + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String out_trade_no = sdf.format(new Date()) + reassign.getOrderType() + reassign.getId(); + if(reassign.getPayType() == 1){//微信支付 reassign.setState(1); - - resultUtil = payMoneyUtil.weixinpay("改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), aDouble.toString(), "/base/wxReassign", "APP"); - paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 1, aDouble, "", 1);//添加预支付数据 + String appletsOpenId = ""; + String tradeType = "APP"; + resultUtil = payMoneyUtil.weixinpay("改派订单", "", out_trade_no, aDouble.toString(), callbackPath + "/base/wxReassign", tradeType, appletsOpenId, ""); } if(reassign.getPayType() == 2){//支付宝 reassign.setState(1); - resultUtil = payMoneyUtil.alipay("改派订单", "改派订单", "", reassign.getId() + "_" + reassign.getOrderType() + "_" + UUIDUtil.getRandomCode(5), aDouble.toString(), "/base/aliReassign"); - paymentRecordService.saveData(1, uid, 2, reassign.getOrderId(), reassign.getOrderType(), 2, aDouble, "", 1);//添加预支付数据 + resultUtil = payMoneyUtil.alipay("改派订单", "支付订单", out_trade_no, aDouble.toString(), callbackPath + "/base/aliReassign"); } if(reassign.getPayType() == 3){//余额 reassign.setState(2); @@ -209,7 +206,7 @@ break; } - systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid, 1); + systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid); //开始推送调度单 Map<String, String> map = new HashMap<>(); map.put("orderId", reassign.getOrderId().toString()); @@ -276,45 +273,32 @@ ids += reassign.getId() + ","; } ids = ids.substring(0, ids.length() - 1); - systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid, 1); + systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid); //开始支付 if(null != reassign.getPayType()){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String out_trade_no = sdf.format(new Date()) + 3 + ids; + if(reassign.getPayType() == 1){//微信支付 String[] split1 = ids.split(","); - - resultUtil = payMoneyUtil.weixinpay("改派订单", "", ids + "_3_" + UUIDUtil.getRandomCode(5), totalMoney.toString(), "/base/wxReassign", "APP"); - for(String id : split1){ - paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 1, aDouble, "", 1);//添加预支付数据 + String appletsOpenId = ""; + String tradeType = "APP"; + resultUtil = payMoneyUtil.weixinpay("改派订单", "", out_trade_no, totalMoney.toString(), callbackPath + "/base/wxReassign", tradeType, appletsOpenId, ""); + if(resultUtil.getCode() == 200){ + for(String id : split1){ + paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 1, aDouble, "", 1);//添加预支付数据 + } } - -// Map<String, String> map = icbcPayUtil.placeAnOrder(ids + "_3", 9, 5, uid.toString(), "改派订单", totalMoney, callbackPath + "/base/wxReassign", "", type, driver.getAppletsOpenId()); -// if(map.get("code").equals("200")){ -// for(String id : split1){ -// paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 1, aDouble, map.get("order_id"), 1);//添加预支付数据 -// } -// resultUtil = ResultUtil.success(map.get("data")); -// }else{ -// resultUtil = ResultUtil.error(map.get("msg"), ""); -// } } if(reassign.getPayType() == 2){//支付宝 String[] split1 = ids.split(","); - resultUtil = payMoneyUtil.alipay("改派订单", "改派订单", "", ids + "_3_" + UUIDUtil.getRandomCode(5), totalMoney.toString(), "/base/aliReassign"); - for(String id : split1){ - paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 2, aDouble, "", 1);//添加预支付数据 + resultUtil = payMoneyUtil.alipay("改派订单", "支付订单", out_trade_no, totalMoney.toString(), callbackPath + "/base/aliReassign"); + if(resultUtil.getCode() == 200){ + for(String id : split1){ + paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 2, aDouble, "", 1);//添加预支付数据 + } } - - -// Map<String, String> map = icbcPayUtil.placeAnOrder(ids + "_3", 10, 5, uid.toString(), "改派订单", totalMoney, callbackPath + "/base/aliReassign", "", 2, ""); -// if(map.get("code").equals("200")){ -// for(String id : split1){ -// paymentRecordService.saveData(1, uid, 2, Integer.valueOf(id), 3, 2, aDouble, map.get("order_id"), 1);//添加预支付数据 -// } -// resultUtil = ResultUtil.success(map.get("data")); -// }else{ -// resultUtil = ResultUtil.error(map.get("msg"), ""); -// } } if(reassign.getPayType() == 3){//余额 for(String id : split){ @@ -326,8 +310,15 @@ transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, 3, Integer.valueOf(id)); } Double balance = driver.getBalance(); + Double laveBusinessMoney = driver.getLaveBusinessMoney(); + Double laveActivityMoney = driver.getLaveActivityMoney(); if(null == balance || balance < totalMoney){ throw new SystemException("账户余额不足"); + } + if(null != laveBusinessMoney && laveBusinessMoney.compareTo(totalMoney) >= 0){ + driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(totalMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + }else if(null != laveActivityMoney && laveActivityMoney.compareTo(totalMoney) >= 0){ + driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(totalMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); } driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(totalMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); driverService.updateById(driver); @@ -344,7 +335,7 @@ //添加已收入明细 incomeService.saveData(1, orderCrossCity.getCompanyId(), 4, orderCrossCity.getId(), 3, reassign.getMoney()); } - systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid, 1); + systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid); //开始推送调度单 Map<String, String> map = new HashMap<>(); map.put("orderId", reassign.getOrderId().toString()); @@ -384,10 +375,9 @@ * @throws Exception */ @Override - public void payReassign(String id, String order_id, Integer type) throws Exception { - String[] s = id.split("_"); - if(Integer.valueOf(s[1]) == 3){//跨城订单 - String[] split = s[0].split(","); + public void payReassign(String id, Integer orderType, String order_id, Integer type) throws Exception { + String[] split = id.split(","); + if(orderType == 3){//跨城订单 List<Reassign> reassigns = this.selectBatchIds(Arrays.asList(split)); Driver driver = driverService.selectById(reassigns.get(0).getOriginalDriverId()); for(String key : split){ @@ -424,7 +414,7 @@ //添加已收入明细 incomeService.saveData(1, orderCrossCity1.getCompanyId(), 4, orderCrossCity1.getId(), 3, reassign.getMoney()); } - systemNoticeService.addSystemNotice(2, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付改派申请费用!", reassigns.get(0).getOriginalDriverId(), 1); + systemNoticeService.addSystemNotice(2, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付改派申请费用!", reassigns.get(0).getOriginalDriverId()); }else{ System.err.println("预支付数据异常(orderId = " + id + ")"); @@ -433,7 +423,7 @@ }else{//其他订单 - Reassign reassign = this.selectById(s[0]); + Reassign reassign = this.selectById(split[0]); Driver driver = driverService.selectById(reassign.getOriginalDriverId()); PaymentRecord query = paymentRecordService.query(1, driver.getId(), 2, reassign.getOrderId(), reassign.getOrderType(), type, 1); if(null != query){ @@ -491,7 +481,7 @@ incomeService.saveData(1, orderLogistics1.getCompanyId(), 4, orderLogistics1.getId(), 5, reassign.getMoney()); break; } - systemNoticeService.addSystemNotice(2, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付改派申请费用!", reassign.getOriginalDriverId(), 1); + systemNoticeService.addSystemNotice(2, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付改派申请费用!", reassign.getOriginalDriverId()); //开始推送调度单 Map<String, String> map = new HashMap<>(); map.put("orderId", reassign.getOrderId().toString()); -- Gitblit v1.7.1