zhibing.pu
2024-05-13 9b68c6e4d6a3659443280fe261447d18d84ba62a
新增加接口
13个文件已修改
5个文件已添加
442 ■■■■■ 已修改文件
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BalanceUsageRecordMapper.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SettlementRecordMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/WithdrawalMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BalanceUsageRecordMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SettlementRecordMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SettlementRecord.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBalanceUsageRecordService.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BalanceUsageRecordServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -17,6 +17,7 @@
import com.stylefeng.guns.modular.system.util.EmailUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecord;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import io.swagger.annotations.Api;
@@ -89,6 +90,9 @@
    
    @Resource
    private DriverActivityHistoryMapper driverActivityHistoryMapper;
    @Resource
    private IBalanceUsageRecordService balanceUsageRecordService;
@@ -1179,7 +1183,7 @@
     */
    @ResponseBody
    @PostMapping("/api/driver/queryTotalRevenue")
    @ApiOperation(value = "获取收入明细【2.0】", tags = {"司机端-个人中心"}, notes = "开发中")
    @ApiOperation(value = "获取收入明细【2.0】", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
@@ -1192,7 +1196,7 @@
                return ResultUtil.tokenErr();
            }
            List<Map<String, Object>> list = driverService.queryTotalRevenue(language, uid, pageNum, size);
            // TODO 待翻译
            List<BaseWarpper> data = new ArrayList<>();
            for(Map<String, Object> map : list){
                String type = map.get("type").toString();
@@ -1202,7 +1206,8 @@
                if("2".equals(type)){
                    switch (Integer.valueOf(String.valueOf(null != map.get("orderType") ? map.get("orderType") : 0))){
                        case 1:
                            baseWarpper.setName(language == 1 ? "打车" : language == 2 ? "Ride" : "Course");
                            OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(map.get("incomeId").toString());
                            baseWarpper.setName(language == 1 ? (orderPrivateCar.getCancelMidway() == 0 ? "" : "【途中取消】") + "打车" : language == 2 ? (orderPrivateCar.getCancelMidway() == 0 ? "" : "【】") + "Ride" : (orderPrivateCar.getCancelMidway() == 0 ? "" : "【】") + "Course");
                            break;
                        case 2:
                            baseWarpper.setName(language == 1 ? "出租车" : language == 2 ? "taxi" : "taxi");
@@ -1211,7 +1216,8 @@
                            baseWarpper.setName(language == 1 ? "城际出行" : language == 2 ? "Intercity travel" : "Mobilité entre villes");
                            break;
                        case 4:
                            baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison");
                            OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString());
                            baseWarpper.setName(language == 1 ? (orderLogistics.getCancelMidway() == 0 ? "" : "【途中取消】") + "包裹" : language == 2 ? (orderLogistics.getCancelMidway() == 0 ? "" : "【】") + "Delivery" : (orderLogistics.getCancelMidway() == 0 ? "" : "【】") + "Livraison");
                            break;
                        case 5:
                            baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville");
@@ -1252,10 +1258,9 @@
                        case 4:
                            OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString());
                            List<Income> incomes3 = incomeService.queryData(1, null, 2, orderLogistics.getId(), 4);
                            map1.put("travelMoney", orderLogistics != null ? orderLogistics.getOrderMoney() : 0);//行程费
                            map1.put("parkMoney", 0);//停车费
                            map1.put("parkMoney", orderLogistics != null ? orderLogistics.getParkMoney() : 0);//停车费
                            map1.put("tipMoney", 0);//小费
                            map1.put("roadTollMoney", 0);//过路费
                            map1.put("roadTollMoney", orderLogistics != null ? orderLogistics.getRoadTollMoney() : 0);//过路费
                            map1.put("rakeMoney", incomes3.size() > 0 ? incomes3.get(0).getMoney() : 0);//抽成
                            break;
                        case 5:
@@ -1695,23 +1700,23 @@
    
    @ResponseBody
    @PostMapping("/api/driver/queryBalanceUsageRecord")
    @ApiOperation(value = "获取余额使用记录【2.0】", tags = {"司机端-个人中心"}, notes = "开发中")
    @ApiOperation(value = "获取余额使用记录【2.0】", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
            @ApiImplicitParam(value = "体现类型(1=活动收入提现,2=业务收入提现)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(value = "体现类型(1=活动收入,2=业务收入)", name = "type", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<BalanceUsageRecord> queryWithdrawal(Integer language, Integer pageNum, Integer size, Integer type, HttpServletRequest request){
    public ResultUtil<BalanceUsageRecord> queryBalanceUsageRecord(Integer language, Integer pageNum, Integer size, Integer type, HttpServletRequest request){
        try {
            Integer uid = driverService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            BalanceUsageRecord withdrawalWarpper1 = new BalanceUsageRecord();
            withdrawalWarpper1.setTotal(0D);
            withdrawalWarpper1.setList(new ArrayList<BalanceUsageRecordList>());
            return ResultUtil.success(withdrawalWarpper1);
            BalanceUsageRecord balanceUsageRecord = new BalanceUsageRecord();
            balanceUsageRecord.setTotal(balanceUsageRecordService.queryBalanceUsageRecordSum(uid, type));
            balanceUsageRecord.setList(balanceUsageRecordService.queryBalanceUsageRecord(language, uid, type, pageNum, size));
            return ResultUtil.success(balanceUsageRecord);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SettlementRecordController.java
@@ -83,7 +83,7 @@
    @ResponseBody
    @PostMapping("/api/settlementRecord/queryHistoricalSettlement")
    @ApiOperation(value = "获取结算历史记录【2.0】", tags = {"司机端-个人中心"}, notes = "开发中")
    @ApiOperation(value = "获取结算历史记录【2.0】", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
@@ -92,7 +92,7 @@
     */
    @ResponseBody
    @PostMapping("/api/withdrawal/queryWithdrawal")
    @ApiOperation(value = "获取历史提现数据【2.0】", tags = {"司机端-个人中心"}, notes = "开发中")
    @ApiOperation(value = "获取历史提现数据【2.0】", tags = {"司机端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
@@ -109,7 +109,7 @@
            List<Map<String, Object>> list = withdrawalService.queryWithdrawal(language, uid, type, state, pageNum, size);
            List<WithdrawalListWarpper> withdrawalWarpper = WithdrawalListWarpper.getWithdrawalWarpper(list);
            WithdrawalWarpper withdrawalWarpper1 = new WithdrawalWarpper();
            withdrawalWarpper1.setTotal(0D);
            withdrawalWarpper1.setTotal(withdrawalService.queryWithdrawalSum(uid, type));
            withdrawalWarpper1.setList(withdrawalWarpper);
            return ResultUtil.success(withdrawalWarpper1);
        }catch (Exception e){
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -437,4 +437,9 @@
     */
    @TableField("destination")
    private String destination;
    /**
     * 中途取消(0=否,1=是)
     */
    @TableField("cancelMidway")
    private Integer cancelMidway;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BalanceUsageRecordMapper.java
New file
@@ -0,0 +1,37 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:24
 */
public interface BalanceUsageRecordMapper extends BaseMapper<BalanceUsageRecord> {
    /**
     * 获取使用记录列表
     * @param driverId
     * @param type
     * @param pageNum
     * @param size
     * @return
     */
    List<Map<String, Object>> queryBalanceUsageRecord(@Param("driverId") Integer driverId, @Param("type") Integer type,
                                                      @Param("pageNum") Integer pageNum, @Param("size") Integer size);
    /**
     * 获取使用记录总额
     * @param driverId
     * @param type
     * @return
     */
    Double queryBalanceUsageRecordSum(@Param("driverId") Integer driverId, @Param("type") Integer type);
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SettlementRecordMapper.java
@@ -6,6 +6,7 @@
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
@@ -19,6 +20,6 @@
     * @param driverId
     * @return
     */
    List<QueryHistoricalSettlement> queryHistoricalSettlement(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum,
                                                              @Param("size") Integer size);
    List<Map<String, Object>> queryHistoricalSettlement(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum,
                                        @Param("size") Integer size);
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/WithdrawalMapper.java
@@ -20,4 +20,13 @@
    List<Map<String, Object>> queryWithdrawal(@Param("uid") Integer uid, @Param("userType") Integer userType,
                                              @Param("type") Integer type, @Param("state") Integer state, @Param("pageNum") Integer pageNum,
                                              @Param("size") Integer size);
    /**
     * 获取提现总额
     * @param uid
     * @return
     */
    Double queryWithdrawalSum(@Param("uid") Integer uid, @Param("userType") Integer userType,
                              @Param("type") Integer type);
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BalanceUsageRecordMapper.xml
New file
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper">
    <select id="queryBalanceUsageRecord" resultType="map">
        select
        DATE_FORMAT(createTime, '%Y-%m-%d') as createTime,
        money,
        purpose
        from t_balance_usage_record type = #{type} and driverId = #{driverId} order by createTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryBalanceUsageRecordSum" resultType="double">
        select ifnull(sum(money), 0) from t_balance_usage_record where type = #{type} and driverId = #{driverId}
    </select>
</mapper>
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SettlementRecordMapper.xml
@@ -16,11 +16,13 @@
    </resultMap>
    <select id="queryHistoricalSettlement" resultType="com.stylefeng.guns.modular.system.warpper.QueryHistoricalSettlement">
    <select id="queryHistoricalSettlement" resultType="map">
        select
        DATE_FORMAT(`day`, '%Y-%m-%d') as createTime,
        payMoney as price,
        `type`
        `type`,
        payType,
        balanceType
        from t_settlement_record where driverId = #{driverId} and paymentStatus = 2 order by insertTime desc limit #{pageNum}, #{size}
    </select>
</mapper>
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml
@@ -39,4 +39,13 @@
        </if>
        order by insertTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryWithdrawalSum" resultType="double">
        select
        ifnull(sum(money), 0) as money
        from t_pub_withdrawal
        where flag != 3 and userType = #{userType} and userId = #{uid} and type = #{type}
    </select>
</mapper>
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord.java
New file
@@ -0,0 +1,48 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import java.util.Date;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:21
 */
@Data
@TableName("t_balance_usage_record")
public class BalanceUsageRecord {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 司机id
     */
    @TableField("driverId")
    private Integer driverId;
    /**
     * 余额类型(1=奖励,2=收入)
     */
    @TableField("type")
    private Integer type;
    /**
     * 使用金额
     */
    @TableField("money")
    private Double money;
    /**
     * 用途
     */
    @TableField("purpose")
    private Integer purpose;
    /**
     * 使用时间
     */
    @TableField("createTime")
    private Date createTime;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SettlementRecord.java
@@ -51,6 +51,11 @@
    @TableField("payType")
    private Integer payType;
    /**
     * 余额类型(1=奖励余额,2=收入余额)
     */
    @TableField("balanceType")
    private Integer balanceType;
    /**
     * 支付时间
     */
    @TableField("payTime")
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBalanceUsageRecordService.java
New file
@@ -0,0 +1,43 @@
package com.stylefeng.guns.modular.system.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecordList;
import java.util.List;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:25
 */
public interface IBalanceUsageRecordService extends IService<BalanceUsageRecord> {
    /**
     * 获取使用记录列表
     * @param driverId
     * @param type
     * @param pageNum
     * @param size
     * @return
     */
    List<BalanceUsageRecordList> queryBalanceUsageRecord(Integer language, Integer driverId, Integer type, Integer pageNum, Integer size);
    /**
     * 获取使用记录总额
     * @param driverId
     * @param type
     * @return
     */
    Double queryBalanceUsageRecordSum(Integer driverId, Integer type);
    /**
     * 保存数据
     * @param driverId
     * @param type
     * @param money
     * @param purpose
     */
    void saveBalanceUsageRecord(Integer driverId, Integer type, Double money, Integer purpose);
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java
@@ -36,4 +36,13 @@
     * @throws Exception
     */
    ResultUtil withdrawalAudit(Integer id, Integer state, Integer language) throws Exception;
    /**
     * 获提现总额
     * @param uid
     * @return
     * @throws Exception
     */
    Double queryWithdrawalSum(Integer uid, Integer type) throws Exception;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BalanceUsageRecordServiceImpl.java
New file
@@ -0,0 +1,102 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import com.stylefeng.guns.modular.system.service.IBalanceUsageRecordService;
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecordList;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:25
 */
@Service
public class BalanceUsageRecordServiceImpl extends ServiceImpl<BalanceUsageRecordMapper, BalanceUsageRecord> implements IBalanceUsageRecordService {
    /**
     * 获取使用记录列表
     * @param driverId
     * @param type
     * @param pageNum
     * @param size
     * @return
     */
    @Override
    public List<BalanceUsageRecordList> queryBalanceUsageRecord(Integer language, Integer driverId, Integer type, Integer pageNum, Integer size) {
        pageNum = (pageNum - 1) * size;
        List<Map<String, Object>> list = this.baseMapper.queryBalanceUsageRecord(driverId, type, pageNum, size);
        List<BalanceUsageRecordList> datas = new ArrayList<>();
        // TODO 待翻译
        for (Map<String, Object> map : list) {
            BalanceUsageRecordList balanceUsageRecordList = new BalanceUsageRecordList();
            if(null != map.get("createTime")){
                balanceUsageRecordList.setTime(DateUtil.conversionFormat(language, map.get("createTime").toString()));
            }
            if(null != map.get("money")){
                balanceUsageRecordList.setMoney(Double.valueOf(map.get("money").toString()));
            }
            if(null != map.get("purpose")){
                switch (map.get("purpose").toString()){
                    case "1":
                        balanceUsageRecordList.setContent(language == 1 ? "打车支付" : language == 2 ? "" : "");
                        break;
                    case "2":
                        balanceUsageRecordList.setContent(language == 1 ? "包裹支付" : language == 2 ? "" : "");
                        break;
                    case "3":
                        balanceUsageRecordList.setContent(language == 1 ? "日结算" : language == 2 ? "" : "");
                        break;
                    case "4":
                        balanceUsageRecordList.setContent(language == 1 ? "周结算" : language == 2 ? "" : "");
                        break;
                    case "5":
                        balanceUsageRecordList.setContent(language == 1 ? "月结算" : language == 2 ? "" : "");
                        break;
                    case "6":
                        balanceUsageRecordList.setContent(language == 1 ? "提现" : language == 2 ? "" : "");
                        break;
                }
            }
            datas.add(balanceUsageRecordList);
        }
        return datas;
    }
    /**
     * 获取使用记录总额
     * @param driverId
     * @param type
     * @return
     */
    @Override
    public Double queryBalanceUsageRecordSum(Integer driverId, Integer type) {
        return this.baseMapper.queryBalanceUsageRecordSum(driverId, type);
    }
    /**
     * 保存数据
     * @param driverId
     * @param type
     * @param money
     * @param purpose
     */
    @Override
    public void saveBalanceUsageRecord(Integer driverId, Integer type, Double money, Integer purpose) {
        BalanceUsageRecord balanceUsageRecord = new BalanceUsageRecord();
        balanceUsageRecord.setDriverId(driverId);
        balanceUsageRecord.setType(type);
        balanceUsageRecord.setMoney(money);
        balanceUsageRecord.setPurpose(purpose);
        balanceUsageRecord.setCreateTime(new Date());
        this.insert(balanceUsageRecord);
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -100,6 +100,9 @@
    
    @Autowired
    private ISettlementRecordService settlementRecordService;
    @Resource
    private IBalanceUsageRecordService balanceUsageRecordService;
@@ -1207,14 +1210,18 @@
            }
            if(payType == 3){//余额支付
                driver.setBalance(driver.getBalance() - money);
                if(driver.getLaveBusinessMoney().compareTo(money) < 0){
                    double b = money - driver.getLaveBusinessMoney();
                Double laveBusinessMoney = driver.getLaveBusinessMoney();
                if(laveBusinessMoney.compareTo(money) < 0){
                    double b = money - laveBusinessMoney;
                    driver.setLaveBusinessMoney(0D);
                    driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b);
                    driverService.updateById(driver);
                    balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, b, orderType == 1 ? 1 : 2);
                    balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, laveBusinessMoney, orderType == 1 ? 1 : 2);
                }else{
                    driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money);
                    driverService.updateById(driver);
                    balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, orderType == 1 ? 1 : 2);
                }
                if(orderType == 1){//专车
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -15,10 +15,12 @@
import com.stylefeng.guns.modular.system.warpper.QueryHistoricalSettlement;
import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmount;
import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmountDetails;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -47,6 +49,9 @@
    @Value("${callbackPath}")
    private String callbackPath;//支付回调网关地址
    @Resource
    private IBalanceUsageRecordService balanceUsageRecordService;
@@ -151,23 +156,40 @@
            Double laveActivityMoney = driver1.getLaveActivityMoney();
            Double laveBusinessMoney = driver1.getLaveBusinessMoney();
            if(laveBusinessMoney.compareTo(payMoney) < 0){
                driver1.setLaveBusinessMoney(0D);
                BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveBusinessMoney));
                driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(m).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            if(laveActivityMoney.compareTo(payMoney) < 0){
                driver1.setLaveActivityMoney(0D);
                BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveActivityMoney));
                driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(m).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                settlementRecord.setPayMoney(laveActivityMoney);
                settlementRecord.setPaymentStatus(2);
                settlementRecord.setPayType(payType);
                settlementRecord.setBalanceType(1);
                settlementRecord.setPayTime(new Date());
                this.updateById(settlementRecord);
                balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2);
                balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, m.doubleValue(), settlementRecord.getType() + 2);
                SettlementRecord settlementRecord1 = new SettlementRecord();
                BeanUtils.copyProperties(settlementRecord, settlementRecord1);
                settlementRecord1.setId(null);
                settlementRecord1.setPayMoney(m.doubleValue());
                settlementRecord1.setBalanceType(2);
                this.insert(settlementRecord1);
            }else{
                driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                settlementRecord.setPaymentStatus(2);
                settlementRecord.setPayType(payType);
                settlementRecord.setBalanceType(1);
                settlementRecord.setPayTime(new Date());
                this.updateById(settlementRecord);
                balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney, settlementRecord.getType() + 2);
            }
            driver1.setBalance(new BigDecimal(driver1.getBalance()).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            //添加交易明细
            transactionDetailsService.saveData(driverId, "线下结算", payMoney, 2, 1, 2, null, null);
            driverService.updateById(driver1);
            settlementRecord.setPaymentStatus(2);
            settlementRecord.setPayType(payType);
            settlementRecord.setPayTime(new Date());
            this.updateById(settlementRecord);
            return ResultUtil.success("");
        }
        return resultUtil;
@@ -182,14 +204,37 @@
    @Override
    public List<QueryHistoricalSettlement> queryHistoricalSettlement(Integer language, Integer driverId, Integer pageNum, Integer size) {
        pageNum = (pageNum - 1) * size;
        List<QueryHistoricalSettlement> list = this.baseMapper.queryHistoricalSettlement(driverId, pageNum, size);
        for (QueryHistoricalSettlement queryHistoricalSettlement : list) {
            if(ToolUtil.isNotEmpty(queryHistoricalSettlement.getCreateTime())){
                String createTime = queryHistoricalSettlement.getCreateTime();
                queryHistoricalSettlement.setCreateTime(DateUtil.conversionFormat(language, createTime));
        List<Map<String, Object>> list = this.baseMapper.queryHistoricalSettlement(driverId, pageNum, size);
        List<QueryHistoricalSettlement> datas = new ArrayList<>();
        for (Map<String, Object> map : list) {
            QueryHistoricalSettlement queryHistoricalSettlement = new QueryHistoricalSettlement();
            if(null != map.get("createTime")){
                queryHistoricalSettlement.setCreateTime(DateUtil.conversionFormat(language, map.get("createTime").toString()));
            }
            if(null != map.get("price")){
                queryHistoricalSettlement.setPrice(Double.valueOf(map.get("price").toString()));
            }
            if(null != map.get("type")){
                queryHistoricalSettlement.setType(Integer.valueOf(map.get("type").toString()));
            }
            // TODO 待翻译
            if(null != map.get("payType")){
                Integer balanceType = Integer.valueOf(map.get("balanceType").toString());
                switch (map.get("payType").toString()){
                    case "1":
                        queryHistoricalSettlement.setPayType(language == 1 ? "手机支付" : language == 2 ? "" : "");
                        break;
                    case "2":
                        queryHistoricalSettlement.setPayType(language == 1 ? "线上支付" : language == 2 ? "" : "");
                        break;
                    default:
                        queryHistoricalSettlement.setPayType(language == 1 ? "余额支付(" + (balanceType == 1 ? "奖励" : "收入") + ")" : language == 2 ? "" : "");
                        break;
                }
            }
            datas.add(queryHistoricalSettlement);
        }
        return list;
        return datas;
    }
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
@@ -7,6 +7,7 @@
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.model.Withdrawal;
import com.stylefeng.guns.modular.system.service.IBalanceUsageRecordService;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IWithdrawalService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
@@ -33,6 +34,9 @@
    @Autowired
    private IDriverService driverService;
    @Resource
    private IBalanceUsageRecordService balanceUsageRecordService;
@@ -107,10 +111,12 @@
            driver.setLaveActivityMoney(v);
            v = new BigDecimal(driver.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
            driver.setBalance(v);
            balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, money, 6);
        }
        if(type == 2){
            double v = new BigDecimal(driver.getLaveBusinessMoney()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
            driver.setLaveBusinessMoney(v);
            balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, 6);
        }
        driverService.updateById(driver);
        return ResultUtil.success();
@@ -268,4 +274,15 @@
        }
        return ResultUtil.success();
    }
    /**
     * 获取提现总额
     * @param uid
     * @return
     * @throws Exception
     */
    @Override
    public Double queryWithdrawalSum(Integer uid, Integer type) throws Exception {
        return this.baseMapper.queryWithdrawalSum(uid, 2, type);
    }
}