Pu Zhibing
2024-12-25 0d49fd3475ffef0d26c8b68c0c8d5ae04fff2386
修改bug
6个文件已修改
130 ■■■■ 已修改文件
DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverAHTravel/guns-admin/src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverAHTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
//        }
//    }
//}