From b219589d73f46bd98995bceb4caf16dadb56b869 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 12 九月 2025 20:30:13 +0800
Subject: [PATCH] 修改bug

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java |  400 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 376 insertions(+), 24 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
index 371b26b..be6012d 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
@@ -1,8 +1,11 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.beetl.ShiroExtUtil;
 import com.stylefeng.guns.core.util.ExcelUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.dao.IncomeMapper;
@@ -12,8 +15,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -34,17 +39,25 @@
 
     @Autowired
     private ITOrderCallService orderCallService;
-
+    
     @Autowired
     private ITUserService userService;
-
+    
     @Autowired
     private ITOrderCharteredCarService orderCharteredCarService;
-
+    
     @Autowired
     private ITDriverService driverService;
+    @Autowired
+    private ShiroExtUtil shiroExtUtil;
 
+    @Autowired
+    private ITCompanyService companyService;
 
+    @Autowired
+    private ITLineService lineService;
+    
+    
     /**
      * 添加数据
      * @param userType
@@ -227,9 +240,9 @@
             endTime = split[1];
         }
         Map<String, Object> maps = new HashMap<>();
-
+    
         List<Map<String, Object>> datas = new ArrayList<>();
-            List<Map<String, Object>> list2 = this.baseMapper.summaryOfIncomeDetailsListGroupSum1(1, ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, offset, limit);
+        List<Map<String, Object>> list2 = this.baseMapper.summaryOfIncomeDetailsListGroupSum1(1, shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, offset, limit);
         for (Map<String, Object> income : list2) {
             Double orderMoney = Double.valueOf(null != income.get("orderMoney") ? income.get("orderMoney").toString() : "0");
             Double payMoney = Double.valueOf(income.get("payMoney").toString());
@@ -317,7 +330,7 @@
         }
 
         List<Map<String, Object>> datas1 = new ArrayList<>();
-        list2 = this.baseMapper.summaryOfIncomeDetailsListGroupSum1(1, ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
+        list2 = this.baseMapper.summaryOfIncomeDetailsListGroupSum1(1, shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
         for (Map<String, Object> income : list2) {
             Double orderMoney = Double.valueOf(null != income.get("orderMoney") ? income.get("orderMoney").toString() : "0");
             Double payMoney = Double.valueOf(income.get("payMoney").toString());
@@ -441,16 +454,16 @@
     public HSSFWorkbook exportSummaryOfIncomeDetails(String insertTime, Integer orderType, Integer incomeType, String name, String phone) throws Exception {
         String startTime = "";
         String endTime = "";
-        if(ToolUtil.isNotEmpty(insertTime)){
+        if (ToolUtil.isNotEmpty(insertTime)) {
             String[] split = insertTime.split(" - ");
             startTime = split[0];
             endTime = split[1];
         }
-
-        List<Map<String, Object>> list = this.baseMapper.summaryOfIncomeDetailsListGroupSum1(1, ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
+    
+        List<Map<String, Object>> list = this.baseMapper.summaryOfIncomeDetailsListGroupSum1(1, shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
         List<Map<String, Object>> datas = new ArrayList<>();
         Integer num = 0;
-
+    
         for (Map<String, Object> income : list) {
             Double orderMoney = Double.valueOf(null != income.get("orderMoney") ? income.get("orderMoney").toString() : "0");
             Double payMoney = Double.valueOf(income.get("payMoney").toString());
@@ -458,7 +471,7 @@
             Double overtimeDeduction = Double.valueOf(income.get("overtimeDeduction").toString());
             Double complaint = Double.valueOf(income.get("complaint").toString());
             String insertTime1 = income.get("insertTime").toString();
-            Double taxiCardRevenue = Double.valueOf(new BigDecimal(income.get("taxiCardRevenue").toString()).setScale(2,RoundingMode.HALF_UP).toString());
+            Double taxiCardRevenue = Double.valueOf(new BigDecimal(income.get("taxiCardRevenue").toString()).setScale(2, RoundingMode.HALF_UP).toString());
             Double other = Double.valueOf(new BigDecimal(income.get("other").toString()).setScale(2,RoundingMode.HALF_UP).toString());
             money = orderMoney - money;
 
@@ -568,15 +581,15 @@
     public Map<String, Object> summaryOfSpendingDetailsList(String insertTime, Integer orderType, Integer incomeType, String name, String phone, Integer offset, Integer limit) throws Exception {
         String startTime = "";
         String endTime = "";
-        if(ToolUtil.isNotEmpty(insertTime)){
+        if (ToolUtil.isNotEmpty(insertTime)) {
             String[] split = insertTime.split(" - ");
             startTime = split[0];
             endTime = split[1];
         }
         Map<String, Object> maps = new HashMap<>();
-
-            List<Map<String, Object>> list1 = this.baseMapper.summaryOfSpendingDetailsList1(ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, offset, limit);
-        List<Map<String, Object>> list2 = this.baseMapper.summaryOfSpendingDetailsList1(ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
+    
+        List<Map<String, Object>> list1 = this.baseMapper.summaryOfSpendingDetailsList1(shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, offset, limit);
+        List<Map<String, Object>> list2 = this.baseMapper.summaryOfSpendingDetailsList1(shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
         BigDecimal orderRevenue = new BigDecimal("0");
         BigDecimal activityAward = new BigDecimal("0");
         BigDecimal other = new BigDecimal("0");
@@ -595,9 +608,9 @@
         map.put("all", all.toString());
         list1.add(map);
         maps.put("rows", list1);
-        System.out.println("支出明细"+list1);
-
-        list1 = this.baseMapper.summaryOfSpendingDetailsList1(ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
+        System.out.println("支出明细" + list1);
+    
+        list1 = this.baseMapper.summaryOfSpendingDetailsList1(shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
         maps.put("total", list1.size());
         return maps;
     }
@@ -606,13 +619,13 @@
     public HSSFWorkbook exportSummaryOfSpendingDetails(String insertTime, Integer orderType, Integer incomeType, String name, String phone) throws Exception {
         String startTime = "";
         String endTime = "";
-        if(ToolUtil.isNotEmpty(insertTime)){
+        if (ToolUtil.isNotEmpty(insertTime)) {
             String[] split = insertTime.split(" - ");
             startTime = split[0];
             endTime = split[1];
         }
-
-        List<Map<String, Object>> list1 = this.baseMapper.summaryOfSpendingDetailsList1(ShiroKit.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
+    
+        List<Map<String, Object>> list1 = this.baseMapper.summaryOfSpendingDetailsList1(shiroExtUtil.getUser().getObjectId(), startTime, endTime, orderType, incomeType, name, phone, null, null);
         String[] title = new String[]{"时间", "订单类型", "收益类型", "司机名称", "司机手机号", "订单应支付金额", "平台奖励支出", "其他支出", "支出合计"};
         String[][] values = new String[list1.size()][9];
         int n = 0;
@@ -621,8 +634,8 @@
             Object insertTime1 = map1.get("insertTime");
             values[n][0] = insertTime1.toString();
             values[n][1] = "";
-            if(null != map1.get("orderType")){
-                switch (Integer.valueOf(map1.get("orderType").toString())){
+            if (null != map1.get("orderType")) {
+                switch (Integer.valueOf(map1.get("orderType").toString())) {
                     case 1:
                         values[n][1] = "快车";
                         break;
@@ -662,4 +675,343 @@
     public void updateState(String s) {
         this.baseMapper.updateState(s);
     }
+
+    @Override
+    public Map<String, Object> saveIncome(Integer orderId, Integer orderType, Double payMoney) throws Exception {
+        TCompany company = null;
+        Integer orderNumber = 0;
+        Integer driverId = null;
+        JSONObject jsonObject = null;
+        JSONArray rules = null;
+        JSONArray time_rules = null;
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+        String startTime = sdf1.format(new Date()) + " 00:00:00";
+        String endTime = sdf1.format(new Date()) + " 23:59:59";
+        Map<String, Object> map = new HashMap<>();
+        switch (orderType){
+            case 1:
+                TOrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                driverId = orderPrivateCar.getDriverId();
+                company = companyService.selectById(orderPrivateCar.getCompanyId());
+                jsonObject = JSON.parseObject(company.getSpe());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if( ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>()
+                        .eq("driverId", orderPrivateCar.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(7, 8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getSpe());
+                break;
+            case 2:
+                TOrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                driverId = orderTaxi.getDriverId();
+                company = companyService.selectById(orderTaxi.getCompanyId());
+                jsonObject = JSON.parseObject(company.getTaxi());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderTaxiService.selectCount(new EntityWrapper<TOrderTaxi>()
+                        .eq("driverId", orderTaxi.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(7, 8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getTaxi());
+                break;
+            case 3:
+                TOrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                TLine line = lineService.selectById(orderCrossCity.getLineId());
+                driverId = orderCrossCity.getDriverId();
+                jsonObject = JSON.parseObject(line.getOutSetting());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderCrossCityService.selectCount(new EntityWrapper<TOrderCrossCity>()
+                        .eq("driverId", orderCrossCity.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", line.getOutSetting());
+                break;
+            case 4:
+                TOrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+                driverId = orderLogistics.getDriverId();
+                company = companyService.selectById(orderLogistics.getCompanyId());
+                jsonObject = JSON.parseObject(company.getSameLogistics());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderLogisticsService.selectCount(new EntityWrapper<TOrderLogistics>()
+                        .eq("driverId", orderLogistics.getDriverId())
+                        .eq("type", 4)
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(6, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getSameLogistics());
+                break;
+            case 5:
+                TOrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
+                driverId = orderLogistics1.getDriverId();
+                company = companyService.selectById(orderLogistics1.getCompanyId());
+                jsonObject = JSON.parseObject(company.getCrossLogistics());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+                orderNumber = orderLogisticsService.selectCount(new EntityWrapper<TOrderLogistics>()
+                        .eq("driverId", orderLogistics1.getDriverId())
+                        .eq("type", 5)
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(6, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getCrossLogistics());
+                break;
+            case 7:
+                TOrderCall orderCall = orderCallService.selectById(orderId);
+                driverId = orderCall.getDriverId();
+                company = companyService.selectById(orderCall.getCompanyId());
+                jsonObject = JSON.parseObject(company.getOnCall());
+                rules = jsonObject.getJSONArray("rules");
+                time_rules = jsonObject.getJSONArray("time_rules");
+                //按天查询当天的订单量
+                //按时间段
+                if(time_rules.size() > 0){
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    for (int i = 0; i < time_rules.size(); i++) {
+                        JSONArray jsonArray = time_rules.getJSONArray(i);
+                        JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                        String time = jsonObject2.getString("time");
+                        if(ToolUtil.isNotEmpty(time)){
+                            String[] split = time.split(" - ");
+                            Date start = sdf.parse(split[0] + " 00:00:00");
+                            Date end = sdf.parse(split[1] + " 23:59:59");
+                            if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                                startTime = split[0] + " 00:00:00";
+                                endTime = split[1] + " 23:59:59";
+                                break;
+                            }
+                        }
+                    }
+                }
+
+                orderNumber = orderCallService.selectCount(new EntityWrapper<TOrderCall>()
+                        .eq("driverId", orderCall.getDriverId())
+                        .eq("isDelete", 1)
+                        .in("state", Arrays.asList(7, 8, 9))
+                        .last(" and DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i%m') between '" + startTime + "' and '" + endTime + "'")
+                );
+                map.put("orderNumber", orderNumber);
+                map.put("disposition", company.getOnCall());
+                break;
+        }
+
+        BigDecimal money = BigDecimal.ZERO;
+        //{"rules":[],"time_rules":[[{"order":"1,3","percent":"20","MemberCoins":"1.1,2"},{"order":"3,10","percent":"40","MemberCoins":"2,5"}]]}
+        //按天
+        if(rules.size() > 0){
+            for (int i = 0; i < rules.size(); i++) {
+                JSONObject jsonObject1 = rules.getJSONObject(i);
+                money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
+                if(money.compareTo(BigDecimal.ZERO) >= 0){
+                    break;
+                }
+            }
+        }
+        //按时间段
+        if(time_rules.size() > 0){
+            boolean b = false;
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            for (int i = 0; i < time_rules.size(); i++) {
+                JSONArray jsonArray = time_rules.getJSONArray(i);
+                JSONObject jsonObject2 = jsonArray.getJSONObject(0);
+                String time = jsonObject2.getString("time");
+                if(!b && ToolUtil.isNotEmpty(time)){
+                    String[] split = time.split(" - ");
+                    Date start = sdf.parse(split[0] + " 00:00:00");
+                    Date end = sdf.parse(split[1] + " 23:59:59");
+                    if(System.currentTimeMillis() >= start.getTime() && System.currentTimeMillis() < end.getTime()){
+                        for (int j = 0; j < jsonArray.size(); j++) {
+                            JSONObject jsonObject1 = jsonArray.getJSONObject(j);
+                            money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
+                            if(money.compareTo(BigDecimal.ZERO) < 0){
+                                continue;
+                            }
+                            b = true;
+                            break;
+                        }
+                    }
+                }
+                if(b){
+                    break;
+                }
+            }
+
+            if(!b){
+                JSONArray jsonArray = time_rules.getJSONArray(0);
+                for (int j = 0; j < jsonArray.size(); j++) {
+                    JSONObject jsonObject1 = jsonArray.getJSONObject(j);
+                    money = getDriverMoney(orderNumber, payMoney, driverId, orderId, orderType, jsonObject1);
+                    if(money.compareTo(BigDecimal.ZERO) < 0){
+                        continue;
+                    }
+                    break;
+                }
+            }
+        }
+        if(money.compareTo(BigDecimal.ZERO) > 0){
+            TDriver driver = driverService.selectById(driverId);
+            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setBalance((null != driver.getBalance() ? driver.getBalance() : BigDecimal.ZERO).add(money).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+            driverService.updateById(driver);
+        }
+        return map;
+    }
+
+    public BigDecimal getDriverMoney(Integer orderNumber, Double payMoney, Integer driverId, Integer orderId, Integer orderType, JSONObject jsonObject1) throws Exception{
+        String order = jsonObject1.getString("order");
+        Double percent = jsonObject1.getDouble("percent");
+        String MemberCoins = jsonObject1.getString("MemberCoins");
+        String[] split = order.split(",");
+        if(Integer.valueOf(split[0]).compareTo(orderNumber) <= 0 && Integer.valueOf(split[1]).compareTo(orderNumber) > 0){
+            String[] split1 = MemberCoins.split(",");
+            Double d = Double.valueOf(split1[0]);
+            Double g = Double.valueOf(split1[1]);
+
+            //平台抽成金额
+            BigDecimal multiply1 = new BigDecimal(payMoney).multiply(new BigDecimal(percent / 100));
+            //抽成金额小于最低金额,司机收入为0
+            if(multiply1.compareTo(new BigDecimal(d)) < 0){
+                saveData(1, 1, 2, orderId, orderType, d);
+                //司机收入
+                BigDecimal subtract = new BigDecimal(payMoney).subtract(new BigDecimal(d));
+                if(subtract.compareTo(BigDecimal.ZERO) > 0){
+                    saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
+                    return subtract;
+                }
+                return new BigDecimal(0);
+            }
+            if(multiply1.compareTo(new BigDecimal(d)) >= 0 && multiply1.compareTo(new BigDecimal(g)) < 0){
+                //司机收入
+                BigDecimal subtract = new BigDecimal(payMoney).subtract(multiply1);
+                saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
+                saveData(1, 1, 2, orderId, orderType, multiply1.doubleValue());
+                return subtract;
+            }
+            if(multiply1.compareTo(new BigDecimal(g)) >= 0){
+                //司机收入
+                BigDecimal subtract = new BigDecimal(payMoney).subtract(new BigDecimal(g));
+                saveData(2, driverId, 2, orderId, orderType, subtract.doubleValue());
+                saveData(1, 1, 2, orderId, orderType, g);
+                return subtract;
+            }
+        }
+        return new BigDecimal(-1);
+    }
+
 }

--
Gitblit v1.7.1