DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java
@@ -17,6 +17,7 @@ import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper; import com.stylefeng.guns.modular.system.model.CarModel; import com.stylefeng.guns.modular.system.model.CarService; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.service.ICarService; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.util.DateUtil; @@ -83,6 +84,10 @@ return ResultUtil.error("您还没预约呢"); } if(type == 1){//预约操作 Driver driver = driverService.selectById(driverId); if(null == driver.getBalance() || -100 >= driver.getBalance()){ return ResultUtil.error("账户余额不足,无法预约车次 "); } boolean b = this.judgeTime(driverId, lineShiftId, date.get("startTime")); if(b){ return ResultUtil.error("预约间隔超出给定可预约范围"); DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -272,6 +272,35 @@ driverService.updateById(driver); } //添加收入明细 Line line = lineService.selectById(orderCrossCity.getLineId()); Driver driver = driverService.selectById(orderCrossCity.getDriverId()); Double speMoney = driver.getIntercityCommission(); BigDecimal d = null;//企业收入 BigDecimal c = null;//司机收入 if(null == speMoney){ speMoney = Double.valueOf(line.getRakeRate()); d = new BigDecimal(orderCrossCity.getOrderMoney()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN)));//企业收入 c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);//司机收入 }else{ if(driver.getIntercityCommissionType() == 2){//固定 d = new BigDecimal(speMoney); c = new BigDecimal(orderCrossCity.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); } if(driver.getIntercityCommissionType() == 1){//比例 Double price = orderCrossCity.getOrderMoney(); d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))).setScale(2, BigDecimal.ROUND_HALF_EVEN); c = new BigDecimal(price).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.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); pushUtil.removeTask(orderId, 3);//删除定时任务,结束推送数据 systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderCrossCity.getUserId()); break; DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -148,12 +148,11 @@ 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(balance < -100){ if(null == balance || -100 >= balance || -100 >= (balance - aDouble)){ throw new SystemException("账户余额不足"); } if(null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0){ @@ -166,6 +165,7 @@ //添加交易明细 transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId()); reassignMapper.updateById(reassign); //修改改派通知状态 switch (reassign.getOrderType()){ @@ -320,7 +320,7 @@ Double balance = driver.getBalance(); Double laveBusinessMoney = driver.getLaveBusinessMoney(); Double laveActivityMoney = driver.getLaveActivityMoney(); if(null == balance || balance < totalMoney){ if(null == balance || -100 >= balance || -100 >= (balance - totalMoney)){ throw new SystemException("账户余额不足"); } if(null != laveBusinessMoney && laveBusinessMoney.compareTo(totalMoney) >= 0){ DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
@@ -1128,11 +1128,6 @@ return new String(cipher.doFinal(decode)); } public static void main(String[] ages){ // PayMoneyUtil payMoneyUtil = new PayMoneyUtil(); // payMoneyUtil.weixinpay("测试", "123", "12.5", ""); } /** DriverAHTravel/guns-admin/src/main/resources/application.yml
@@ -87,8 +87,8 @@ alipay: appid: 2021003115600201 #应用程序唯一标识 appPrivateKey: 111 #开发者应用私钥 alipayPublicKey: 111 #应用公钥 appPrivateKey: #开发者应用私钥 alipayPublicKey: #应用公钥 alipay_public_key: 111 #支付宝公钥 --- DriverAHTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,5 +1,12 @@ //package com.stylefeng.guns; // //import com.alipay.api.AlipayApiException; //import com.alipay.api.AlipayClient; //import com.alipay.api.CertAlipayRequest; //import com.alipay.api.DefaultAlipayClient; //import com.alipay.api.domain.AlipayTradeAppPayModel; //import com.alipay.api.request.AlipayTradeAppPayRequest; //import com.alipay.api.response.AlipayTradeAppPayResponse; //import com.stylefeng.guns.modular.crossCity.server.ILineSiteService; //import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; //import com.stylefeng.guns.modular.system.model.Reassign; @@ -10,6 +17,8 @@ //import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.test.context.junit4.SpringRunner; // //import java.util.HashMap; //import java.util.Map; // // //@RunWith(SpringRunner.class) @@ -22,10 +31,72 @@ // // @Test // public void queryVipLevelList() throws Exception { // Reassign reassign = new Reassign(); // reassign.setOrderType(3); // reassign.setOrderId(1496); // reassign.setPayType(3); // reassignService.saveData(reassign, 981, null); // CertAlipayRequest certAlipayRequest = new CertAlipayRequest (); // //设置网关地址 // certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do"); // //设置应用Id // certAlipayRequest.setAppId("2021003115600201"); // //设置应用私钥 // certAlipayRequest.setPrivateKey("aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs" + // "YXNzIDEgUjEwHhcNMjMwNDI1MDIwNTU0WhcNMjgwNDIzMDIwNTU0WjB/MQswCQYDVQQGEwJDTjEz" + // "MDEGA1UECgwq6LS15bee5a6J5ZCI56eR5oqA5Y+R5bGV5pyJ6ZmQ6LSj5Lu75YWs5Y+4MQ8wDQYD" + // "VQQLDAZBbGlwYXkxKjAoBgNVBAMMITIwODgzNDE1Mzk2MzU5NTctMjAyMTAwMzExNTYwMDIwMTCC" + // "ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAISktYx8t29nyVVIKgcjTHuf8wKQVMWRxEsp" + // "0XXITfhaUOKwXf013NLYhGwYk3VHpwJ+CYP6tmRCimfxiYYjbR8zez4mDaYqJyV8JmVGbXTr+Vyl" + // "GUhZgSAVmJCXT2v02sB6R8ddqLqIbwHcu9dyEWs6z31pFqV0/V9/7vWbwQt1OHhQX9ayfSTBWVRS" + // "N8mrT2ja/wW1A39OiGEmN2R1JRcn4nJfvjXp8PZCK4VCuBYBQR/UWgmdoB9iPh+x2twMlQyFQa5h" + // "JdtrUGgqszK2gw16613o7ZVBFkACj50d2W3EC/jNqg6Y3YgzJ20DDCiPbVRVmaqnzWLX2R4uoNzx" + // "b58CAwEAAaOCASkwggElMB8GA1UdIwQYMBaAFHEH4gRhFuTl8mXrMQ/J4PQ8mtWRMB0GA1UdDgQW" + // "BBTIr5i1A4yznJtpvC1/JatjS+m28DBABgNVHSAEOTA3MDUGB2CBHAFuAQEwKjAoBggrBgEFBQcC" + // "ARYcaHR0cDovL2NhLmFsaXBheS5jb20vY3BzLnBkZjAOBgNVHQ8BAf8EBAMCBsAwLwYDVR0fBCgw" + // "JjAkoCKgIIYeaHR0cDovL2NhLmFsaXBheS5jb20vY3JsNzYuY3JsMGAGCCsGAQUFBwEBBFQwUjAo" + // "BggrBgEFBQcwAoYcaHR0cDovL2NhLmFsaXBheS5jb20vY2E2LmNlcjAmBggrBgEFBQcwAYYaaHR0" + // "cDovL2NhLmFsaXBheS5jb206ODM0MC8wDQYJKoZIhvcNAQELBQADggEBAF5wG5kyt9qZoq4H3bwR" + // "WNMQvYrQneFN8072rAQYrfQWPZZrxF5JDr3cssP1YPCMrJSaJQy7LiIXXPdEE2+QOfQFacI6CBYk" + // "F+80VKflL2Yr7OrrcProl0i37m0VFNzxZkPavvouEOXmH5X7tkxLOBDC6Ed6P9CO6RoxxddZkTUR" + // "quf+FaywR+ugz5qZYmomXK0LIwTFRPDSOrJ4dzwStAUY/hJ/QkzO9onizDzGpZoQQA0UsZyxzFmf" + // "wjrBmk3gL80IuJomWMqa+DG+s/CUGSAW1m3G/talMpfwYSX/zVZbXHGAfrlXqRkPdIVj4aXCIEXt" + // "HAQnvN72+1fGSr7123A="); // //设置请求格式,固定值json // certAlipayRequest.setFormat("json"); // //设置字符集 // certAlipayRequest.setCharset("UTF-8"); // //设置签名类型 // certAlipayRequest.setSignType("RSA2"); // //设置应用公钥证书路径 // certAlipayRequest.setCertPath("C:\\Users\\39373\\Desktop\\安合出行\\支付宝\\appCertPublicKey_2021003115600201.crt"); // //设置支付宝公钥证书路径 // certAlipayRequest.setAlipayPublicCertPath("C:\\Users\\39373\\Desktop\\安合出行\\支付宝\\alipayCertPublicKey_RSA2.crt"); // //设置支付宝根证书路径 // certAlipayRequest.setRootCertPath("C:\\Users\\39373\\Desktop\\安合出行\\支付宝\\alipayRootCert.crt"); // //构造client // AlipayClient alipayClient = null; // try { // alipayClient = new DefaultAlipayClient(certAlipayRequest); // } catch (AlipayApiException e) { // e.printStackTrace(); // } // //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay // AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest (); // //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 // AlipayTradeAppPayModel model = new AlipayTradeAppPayModel (); // model.setBody("body"); // model.setSubject ("subject"); // model.setOutTradeNo ("123456"); // model.setTimeoutExpress ("30m" ); // model.setTotalAmount ("0.01"); // model.setProductCode ( "QUICK_MSECURITY_PAY" ); // model.setPassbackParams("");//自定义参数 // request.setBizModel ( model ); // request.setNotifyUrl (""); // try { // //这里和普通的接口调用不同,使用的是sdkExecute // AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); // Map<String, String> map = new HashMap<>(); // map.put("orderString", response.getBody()); // System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 // } catch (AlipayApiException e ) { // e.printStackTrace(); // } // } //}