From 2674ab29a8b081c362671da55f10be29f37c9634 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 13 三月 2023 18:10:15 +0800
Subject: [PATCH] 财务管理

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/OrderStateEnum.java                   |    7 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/UserTypeEnum.java                     |    3 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITRevenueService.java               |   55 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/RevenueTypeEnum.java                  |   50 +
 management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js                             |   99 +++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueOrderDetail.html                       |  208 ++++++
 management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js                                  |  236 +++++++
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/CashWithdrawalTypeEnum.java           |   50 +
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueCommissionDetail.html                  |   75 ++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_add.html                              |   32 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/SystemConfigTypeEnum.java             |   57 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java   |   24 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TRevenueMapper.java                     |   45 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TRevenueMapper.xml              |  129 +++
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java       |  131 +++
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TRevenue.java                         |  128 +++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue.html                                  |   73 ++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html                     |   75 ++
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java         |    1 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRechargeRecord/tRechargeRecord.html                    |   40 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/RevenueExpenditureResp.java |  177 +++++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_edit.html                             |   32 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java  |  219 ++++++
 23 files changed, 1,935 insertions(+), 11 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
index ac13512..c1adc1a 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -1,5 +1,6 @@
 package com.stylefeng.guns.modular.system.controller.general;
 
+import cn.hutool.core.util.CreditCodeUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
@@ -9,10 +10,9 @@
 import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
 import com.stylefeng.guns.modular.system.controller.resp.TDriverResp;
 import com.stylefeng.guns.modular.system.controller.util.*;
+import com.stylefeng.guns.modular.system.enums.UserTypeEnum;
 import com.stylefeng.guns.modular.system.model.*;
-import com.stylefeng.guns.modular.system.service.ITAgentService;
-import com.stylefeng.guns.modular.system.service.ITBranchOfficeService;
-import com.stylefeng.guns.modular.system.service.ITRegionService;
+import com.stylefeng.guns.modular.system.service.*;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiModelProperty;
@@ -23,6 +23,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -31,7 +32,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import com.stylefeng.guns.core.log.LogObjectHolder;
 import org.springframework.web.bind.annotation.RequestParam;
-import com.stylefeng.guns.modular.system.service.ITDriverService;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
@@ -74,6 +74,8 @@
     private HttpUtils httpUtils;
     @Autowired
     private TokenUtils tokenUtils;
+    @Autowired
+    private ITRechargeRecordService tRechargeRecordService;
 
     /**
      * 跳转到首页
@@ -448,11 +450,25 @@
      */
     @ApiOperation(value = "充值余额")
     @RequestMapping(value = "/recharge-balance")
+    @Transactional(rollbackFor = Exception.class)
     @ResponseBody
     public Object rechargeBalance(Integer id, String money) {
         TDriver tDriver = tDriverService.selectById(id);
         tDriver.setBackgroundBalance(new BigDecimal(money).add(tDriver.getBackgroundBalance()));
         tDriverService.updateById(tDriver);
+
+        // 添加充值记录
+        TRechargeRecord tRechargeRecord = new TRechargeRecord();
+        tRechargeRecord.setType(UserTypeEnum.AGENT.getCode());
+        tRechargeRecord.setUserId(id);
+        tRechargeRecord.setCode(UUIDUtil.getNumberRandom(16));
+        tRechargeRecord.setAmount(new BigDecimal(money));
+        tRechargeRecord.setPayType(2);
+        tRechargeRecord.setPayTime(new Date());
+        tRechargeRecord.setPayStatus(2);
+        tRechargeRecord.setCreateTime(new Date());
+        tRechargeRecord.setAgentId(Objects.requireNonNull(ShiroKit.getUser()).getId());
+        tRechargeRecordService.insert(tRechargeRecord);
         return SUCCESS_TIP;
     }
 
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java
new file mode 100644
index 0000000..2bd89db
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TRevenueController.java
@@ -0,0 +1,219 @@
+package com.stylefeng.guns.modular.system.controller.general;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp;
+import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
+import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
+import com.stylefeng.guns.modular.system.model.TDriver;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import org.springframework.web.bind.annotation.RequestParam;
+import com.stylefeng.guns.modular.system.model.TRevenue;
+import com.stylefeng.guns.modular.system.service.ITRevenueService;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 控制器
+ *
+ * @author fengshuonan
+ * @Date 2023-03-13 09:49:19
+ */
+@Controller
+@RequestMapping("/tRevenue")
+public class TRevenueController extends BaseController {
+
+    private String PREFIX = "/system/tRevenue/";
+
+    @Autowired
+    private ITRevenueService tRevenueService;
+
+    /**
+     * 跳转到首页
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "tRevenue.html";
+    }
+
+    /**
+     * 跳转到添加
+     */
+    @RequestMapping("/tRevenue_add")
+    public String tRevenueAdd() {
+        return PREFIX + "tRevenue_add.html";
+    }
+
+    /**
+     * 跳转到修改
+     */
+    @RequestMapping("/tRevenue_update/{tRevenueId}")
+    public String tRevenueUpdate(@PathVariable Integer tRevenueId, Model model) {
+        TRevenue tRevenue = tRevenueService.selectById(tRevenueId);
+        model.addAttribute("item",tRevenue);
+        LogObjectHolder.me().set(tRevenue);
+        return PREFIX + "tRevenue_edit.html";
+    }
+
+    /**
+     * 跳转到佣金提现详情
+     */
+    @RequestMapping("/commissionDetail")
+    public String commissionDetail(String code, Model model) {
+        tRevenueService.commissionDetail(code,model);
+        return PREFIX + "tRevenueCommissionDetail.html";
+    }
+
+    /**
+     * 跳转到余额提现详情
+     */
+    @RequestMapping("/balanceDetail")
+    public String balanceDetail(String code, Model model) {
+        tRevenueService.balanceDetail(code,model);
+        return PREFIX + "tRevenueBalanceDetail.html";
+    }
+
+    /**
+     * 跳转到支付订单详情
+     */
+    @RequestMapping("/orderDetail")
+    public String orderDetail(String code, Model model) {
+        tRevenueService.orderDetail(code,model);
+        return PREFIX + "tRevenueOrderDetail.html";
+    }
+
+    /**
+     * 获取列表
+     */
+    @RequestMapping(value = "/list")
+    @ResponseBody
+    public Object list(String code,Integer businessType,Integer payType,String driverName,String businessTime) {
+        return tRevenueService.getPageList(code,businessType,payType,driverName,businessTime);
+    }
+
+    /**
+     * 获取列表
+     */
+    @RequestMapping(value = "/list-back")
+    @ResponseBody
+    public Object listBack(String condition) {
+        return tRevenueService.selectList(null);
+    }
+
+    /**
+     * 新增
+     */
+    @RequestMapping(value = "/add")
+    @ResponseBody
+    public Object add(TRevenue tRevenue) {
+        tRevenueService.insert(tRevenue);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping(value = "/delete")
+    @ResponseBody
+    public Object delete(@RequestParam Integer tRevenueId) {
+        tRevenueService.deleteById(tRevenueId);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping(value = "/update")
+    @ResponseBody
+    public Object update(TRevenue tRevenue) {
+        tRevenueService.updateById(tRevenue);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 详情
+     */
+    @RequestMapping(value = "/detail/{tRevenueId}")
+    @ResponseBody
+    public Object detail(@PathVariable("tRevenueId") Integer tRevenueId) {
+        return tRevenueService.selectById(tRevenueId);
+    }
+
+    @ApiOperation(value = "导出收支明细列表",notes="导出收支明细列表")
+    @RequestMapping(value = "/export")
+    @ResponseBody
+    public void export(String code,Integer businessType,Integer payType,String driverName,String businessTime, HttpServletResponse response) {
+        try {
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "RevenueExpenditureDetailsInfo"+time1+".xls";
+            String[] title = new String[] {"订单号","交易时间","交易类型","司机姓名","司机电话",
+                    "支付类型","金额","佣金提成","优惠券","余额","状态"};
+            List<RevenueExpenditureResp> pageList = tRevenueService.getPageList(code, businessType, payType, driverName, businessTime);
+
+            String[][] values = new String[pageList.size()][];
+            for (int i = 0; i < pageList.size(); i++) {
+                RevenueExpenditureResp d = pageList.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = d.getCode();
+                values[i][1] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getBusinessTime());
+                Integer businessType1 = d.getBusinessType();
+                if(1 == businessType1){
+                    values[i][2] = "支付订单";
+                }else if (11 == businessType1){
+                    values[i][2] = "佣金提现";
+                }else if (12 == businessType1){
+                    values[i][2] = "余额提现";
+                }
+                values[i][3] = d.getDriverName();
+                values[i][4] = d.getDriverPhone();
+                Integer payType1 = d.getPayType();
+                if(1 == payType1){
+                    values[i][5] = "微信支付";
+                }else if (2 == payType1){
+                    values[i][5] = "余额支付";
+                }else if (3 == payType1){
+                    values[i][5] = "线下收款";
+                }
+                values[i][6] = String.valueOf(Objects.isNull(d.getAmount())? BigDecimal.ZERO :d.getAmount());
+                values[i][7] = String.valueOf(Objects.isNull(d.getCommissionAmount())? BigDecimal.ZERO :d.getCommissionAmount());
+                values[i][8] = String.valueOf(Objects.isNull(d.getDiscountedPrice())? BigDecimal.ZERO :d.getDiscountedPrice());
+                values[i][9] = String.valueOf(Objects.isNull(d.getAccountBalance())? BigDecimal.ZERO :d.getAccountBalance());
+                Integer state = d.getState();
+                if(2 == state){
+                    values[i][10] = "完成";
+                }else if(108 == state){
+                    values[i][10] = "完成";
+                }else if(109 == state){
+                    values[i][10] = "完成";
+                }
+            }
+            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null);
+            ExcelUtil.setResponseHeader(response, fileName);
+            OutputStream os = response.getOutputStream();
+            wb.write(os);
+            os.flush();
+            os.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/RevenueExpenditureResp.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/RevenueExpenditureResp.java
new file mode 100644
index 0000000..25db384
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/RevenueExpenditureResp.java
@@ -0,0 +1,177 @@
+package com.stylefeng.guns.modular.system.controller.resp;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class RevenueExpenditureResp implements Serializable {
+
+
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    @ApiModelProperty(value = "订单号")
+    private String code;
+
+    @ApiModelProperty(value = "交易时间")
+    private Date businessTime;
+
+    @ApiModelProperty(value = "交易类型 1=支付订单 11=佣金体现 12=余额提现")
+    private Integer businessType;
+
+    @ApiModelProperty(value = "司机姓名")
+    private String driverName;
+
+    @ApiModelProperty(value = "司机电话")
+    private  String driverPhone;
+
+    @ApiModelProperty(value = "支付类型 1微信支付 2余额支付 3线下收款")
+    private  Integer payType;
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "佣金抽成")
+    private BigDecimal commissionAmount;
+
+    @ApiModelProperty(value = "优惠券金额")
+    private BigDecimal discountedPrice;
+
+    @ApiModelProperty(value = "余额")
+    private BigDecimal accountBalance;
+
+    @ApiModelProperty(value = "状态 (2、108、109)完成")
+    private Integer state;
+
+    @ApiModelProperty(value = "司机id")
+    private Integer driverId;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal payMoney;
+
+    @ApiModelProperty(value = "订单ID")
+    private Integer orderId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public BigDecimal getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(BigDecimal payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Date getBusinessTime() {
+        return businessTime;
+    }
+
+    public void setBusinessTime(Date businessTime) {
+        this.businessTime = businessTime;
+    }
+
+    public Integer getBusinessType() {
+        return businessType;
+    }
+
+    public void setBusinessType(Integer businessType) {
+        this.businessType = businessType;
+    }
+
+    public String getDriverName() {
+        return driverName;
+    }
+
+    public void setDriverName(String driverName) {
+        this.driverName = driverName;
+    }
+
+    public String getDriverPhone() {
+        return driverPhone;
+    }
+
+    public void setDriverPhone(String driverPhone) {
+        this.driverPhone = driverPhone;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getCommissionAmount() {
+        return commissionAmount;
+    }
+
+    public void setCommissionAmount(BigDecimal commissionAmount) {
+        this.commissionAmount = commissionAmount;
+    }
+
+    public BigDecimal getDiscountedPrice() {
+        return discountedPrice;
+    }
+
+    public void setDiscountedPrice(BigDecimal discountedPrice) {
+        this.discountedPrice = discountedPrice;
+    }
+
+    public BigDecimal getAccountBalance() {
+        return accountBalance;
+    }
+
+    public void setAccountBalance(BigDecimal accountBalance) {
+        this.accountBalance = accountBalance;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TRevenueMapper.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TRevenueMapper.java
new file mode 100644
index 0000000..2f26bd4
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TRevenueMapper.java
@@ -0,0 +1,45 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp;
+import com.stylefeng.guns.modular.system.model.TRevenue;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 收入记录 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2023-03-13
+ */
+@Mapper
+public interface TRevenueMapper extends BaseMapper<TRevenue> {
+
+    /**
+     * 获取列表
+     * @param startTime
+     * @param endTime
+     * @param code
+     * @param businessType
+     * @param payType
+     * @param driverName
+     * @param roleType
+     * @param objectId
+     * @return
+     */
+    List<RevenueExpenditureResp> getPageList(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("code")String code,
+                                             @Param("businessType")Integer businessType, @Param("payType")Integer payType, @Param("driverName")String driverName,
+                                             @Param("roleType")Integer roleType, @Param("objectId")Integer objectId);
+
+    /**
+     *
+     * @param code
+     * @param type
+     * @return
+     */
+    RevenueExpenditureResp commissionOrBalanceDetail(@Param("code")String code, @Param("type")Integer type);
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TRevenueMapper.xml b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TRevenueMapper.xml
new file mode 100644
index 0000000..70c34c8
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TRevenueMapper.xml
@@ -0,0 +1,129 @@
+<?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.TRevenueMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TRevenue">
+        <id column="id" property="id" />
+        <result column="type" property="type" />
+        <result column="userType" property="userType" />
+        <result column="userId" property="userId" />
+        <result column="orderId" property="orderId" />
+        <result column="amount" property="amount" />
+        <result column="createTime" property="createTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, type, userType, userId, orderId, amount, createTime
+    </sql>
+    <select id="getPageList" resultType="com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp">
+        SELECT
+            t.id,
+            t.businessType,
+            t.amount,
+            t.businessTime,
+            t.driverName,
+            t.driverPhone,
+            t.`code`,
+            t.payType,
+            t.state,
+            t.discountedPrice,
+            t.driverId,
+            t.accountBalance,
+            t.agentId,
+            t.payMoney,
+            t.orderId
+        FROM
+        (SELECT
+            r.id,
+            r.type AS businessType,
+            r.amount,
+            r.createTime AS businessTime,
+            d.`name` AS driverName,
+            d.phone AS driverPhone,
+            o.`code`,
+            o.payType,
+            o.state,
+            o.discountedPrice,
+            o.payMoney,
+            o.id AS orderId,
+            d.id AS driverId,
+            d.balance AS accountBalance,
+            d.agentId
+        FROM
+            t_revenue r
+                LEFT JOIN t_driver d ON r.userId = d.id
+                LEFT JOIN t_order o ON r.orderId = o.id
+        WHERE
+            ( o.state = ${@com.stylefeng.guns.modular.system.enums.OrderStateEnum@WAIT_EVALUATED.getCode()}
+                  OR o.state = ${@com.stylefeng.guns.modular.system.enums.OrderStateEnum@FINISH.getCode()} )
+          AND r.type = 1
+        UNION ALL
+        SELECT
+            cw.id,
+            cw.businessType,
+            cw.amount,
+            cw.createTime AS businessTime,
+            d.`name` AS driverName,
+            d.phone AS driverPhone,
+            cw.`code`,
+            0 AS payType,
+            cw.state,
+            0 AS discountedPrice,
+            0 AS payMoney,
+            0 AS orderId,
+            d.id AS driverId,
+            d.balance AS accountBalance,
+            d.agentId
+        FROM
+            t_cash_withdrawal cw
+                LEFT JOIN t_driver d ON cw.userDriverId = d.id
+        WHERE
+            cw.type = 2) t
+        <where>
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                AND t.businessTime BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="code != null and code != ''">
+                AND t.code LIKE concat('%',#{code},'%')
+            </if>
+            <if test="businessType != null">
+                AND t.businessType = #{businessType}
+            </if>
+            <if test="payType != null">
+                AND t.payType = #{payType}
+            </if>
+            <if test="driverName != null and driverName != ''">
+                AND t.driverName LIKE concat('%',#{driverName},'%')
+            </if>
+            <if test="roleType != null and roleType == 3">
+                AND t.agentId = #{objectId}
+            </if>
+        </where>
+    </select>
+    <select id="commissionOrBalanceDetail" resultType="com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp">
+        SELECT
+            cw.id,
+            cw.businessType,
+            cw.amount,
+            cw.createTime AS businessTime,
+            d.`name` AS driverName,
+            d.phone AS driverPhone,
+            cw.`code`,
+            0 AS payType,
+            cw.state,
+            0 AS discountedPrice,
+            0 AS payMoney,
+            0 AS orderId,
+            d.id AS driverId,
+            d.balance AS accountBalance,
+            d.agentId
+        FROM
+            t_cash_withdrawal cw
+                LEFT JOIN t_driver d ON cw.userDriverId = d.id
+        WHERE
+            cw.type = 2 AND cw.businessType = #{type} AND cw.code = #{code}
+    </select>
+
+</mapper>
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/CashWithdrawalTypeEnum.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/CashWithdrawalTypeEnum.java
new file mode 100644
index 0000000..c2cab24
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/CashWithdrawalTypeEnum.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.modular.system.enums;
+
+
+
+/**
+ * @Description 提现记录枚举
+ * @Author xiaochen
+ * @Date 2023/02/15 9:42
+ */
+public enum CashWithdrawalTypeEnum {
+
+    COMMISSION_WITHDRAWAL(11, "佣金提现"),
+    BALANCE_WITHDRAWAL(12, "余额提现");
+
+    private String desc;
+
+
+    private int code;
+
+
+    CashWithdrawalTypeEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    /**
+     * 通过code获取枚举
+     *
+     * @param code
+     * @return
+     */
+    public static CashWithdrawalTypeEnum fromCode(Integer code) {
+        CashWithdrawalTypeEnum[] resultTypes = CashWithdrawalTypeEnum.values();
+        for (CashWithdrawalTypeEnum resultType : resultTypes) {
+            if (code.equals(resultType.getCode())) {
+                return resultType;
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/OrderStateEnum.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/OrderStateEnum.java
index 17af1fa..944a047 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/OrderStateEnum.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/OrderStateEnum.java
@@ -9,7 +9,7 @@
  */
 public enum OrderStateEnum {
 
-    /*订单状态(101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待评价,108=已完成,201=转单中,301=已取消)*/
+    /*订单状态(101=待接单,102=已接单,103=前往预约点,104=到达预约点,105=开始服务,106=到达目的地,107=待支付,108=待评价,109=已完成,201=转单中,301=已取消,401=等待中)*/
 
     PENDING_ORDER(101, "待接单"),
     ORDER_RECEIVED(102, "已接单"),
@@ -17,8 +17,9 @@
     ARRIVE_APPOINTMENT_POINT(104, "到达预约点"),
     START_SERVICE(105, "开始服务"),
     ARRIVE_IN(106, "到达目的地"),
-    WAIT_EVALUATED(107, "待评价"),
-    FINISH(108, "已完成"),
+    WAIT_PAY(107,"待支付"),
+    WAIT_EVALUATED(108, "待评价"),
+    FINISH(109, "已完成"),
     TRANSFERRING(201, "转单中"),
     CANCELED(301,"已取消"),
     WAITING(401,"等待中");
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/RevenueTypeEnum.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/RevenueTypeEnum.java
new file mode 100644
index 0000000..8dd9d21
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/RevenueTypeEnum.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.modular.system.enums;
+
+
+
+/**
+ * @Description 用户司机枚举
+ * @Author xiaochen
+ * @Date 2023/02/15 9:42
+ */
+public enum RevenueTypeEnum {
+
+    ORDER_REVENUE(1, "订单收入"),
+    COMMISSION_INCOME(2, "分佣收入");
+
+    private String desc;
+
+
+    private int code;
+
+
+    RevenueTypeEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    /**
+     * 通过code获取枚举
+     *
+     * @param code
+     * @return
+     */
+    public static RevenueTypeEnum fromCode(Integer code) {
+        RevenueTypeEnum[] resultTypes = RevenueTypeEnum.values();
+        for (RevenueTypeEnum resultType : resultTypes) {
+            if (code.equals(resultType.getCode())) {
+                return resultType;
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/SystemConfigTypeEnum.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/SystemConfigTypeEnum.java
new file mode 100644
index 0000000..93e9f56
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/SystemConfigTypeEnum.java
@@ -0,0 +1,57 @@
+package com.stylefeng.guns.modular.system.enums;
+
+
+
+/**
+ * @Description 系统规则配置
+ * @Author xiaochen
+ * @Date 2023/02/15 9:42
+ */
+public enum SystemConfigTypeEnum {
+
+    /*类型(1=派单规则,2=佣金分成规则,3=抽成规则,4=积分规则,5=价格规则,6=余额规则,7=客服管理)*/
+
+    DISPATCH_RULES(1, "派单规则"),
+    COMMISSION_SHARING_RULES(2, "佣金分成规则"),
+    EXTRACTION_RULE(3, "抽成规则"),
+    INTEGRAL_RULE(4, "积分规则"),
+    PRICE_RULES(5, "价格规则"),
+    BALANCE_RULES(6, "余额规则"),
+    CUSTOMER_SERVICE_MGMT(7,"客服管理");
+
+    private String desc;
+
+
+    private int code;
+
+
+    SystemConfigTypeEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    /**
+     * 通过code获取枚举
+     *
+     * @param code
+     * @return
+     */
+    public static SystemConfigTypeEnum fromCode(Integer code) {
+        SystemConfigTypeEnum[] resultTypes = SystemConfigTypeEnum.values();
+        for (SystemConfigTypeEnum resultType : resultTypes) {
+            if (code.equals(resultType.getCode())) {
+                return resultType;
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/UserTypeEnum.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/UserTypeEnum.java
index c45eb25..b5cd752 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/UserTypeEnum.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/enums/UserTypeEnum.java
@@ -10,7 +10,8 @@
 public enum UserTypeEnum {
 
     USER(1, "用户"),
-    DRIVER(2, "司机");
+    DRIVER(2, "司机"),
+    AGENT(3,"代理商");
 
     private String desc;
 
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TRevenue.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TRevenue.java
new file mode 100644
index 0000000..c77def0
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TRevenue.java
@@ -0,0 +1,128 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import java.math.BigDecimal;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 收入记录
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2023-03-13
+ */
+@TableName("t_revenue")
+public class TRevenue extends Model<TRevenue> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 收入类型(1=订单收入,2=分佣收入)
+     */
+    private Integer type;
+    /**
+     * 用户类型(1=用户,2=司机,3=代理商)
+     */
+    private Integer userType;
+    /**
+     * 用户id
+     */
+    private Integer userId;
+    /**
+     * 订单id
+     */
+    private Integer orderId;
+    /**
+     * 收入金额
+     */
+    private BigDecimal amount;
+    /**
+     * 添加时间
+     */
+    private Date createTime;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "TRevenue{" +
+        "id=" + id +
+        ", type=" + type +
+        ", userType=" + userType +
+        ", userId=" + userId +
+        ", orderId=" + orderId +
+        ", amount=" + amount +
+        ", createTime=" + createTime +
+        "}";
+    }
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITRevenueService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITRevenueService.java
new file mode 100644
index 0000000..9423118
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITRevenueService.java
@@ -0,0 +1,55 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp;
+import com.stylefeng.guns.modular.system.model.TRevenue;
+import com.baomidou.mybatisplus.service.IService;
+import org.springframework.ui.Model;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 收入记录 服务类
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2023-03-13
+ */
+public interface ITRevenueService extends IService<TRevenue> {
+
+    /**
+     * 获取列表
+     * @param code 订单号
+     * @param businessType 交易类型
+     * @param payType 支付类型
+     * @param driverName 司机名称
+     * @param businessTime 交易时间
+     * @return
+     */
+    List<RevenueExpenditureResp> getPageList(String code, Integer businessType, Integer payType, String driverName, String businessTime);
+
+    /**
+     * 跳转到佣金提现详情
+     * @param code
+     * @param model
+     */
+    void commissionDetail(String code, Model model);
+
+    /**
+     * 跳转到余额提现详情
+     * @param code
+     * @param model
+     */
+    void balanceDetail(String code, Model model);
+    /**
+     * 佣金提现余额提现封装model
+     */
+    void packageModel(RevenueExpenditureResp revenueExpenditureResp,Model model);
+
+    /**
+     * 跳转到支付订单详情
+     * @param code
+     * @param model
+     */
+    void orderDetail(String code, Model model);
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
index 5fee007..fba7e3b 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -97,6 +97,7 @@
         // 查询司机
         TDriver tDriver = tDriverMapper.selectById(tOrder.getDriverId());
         model.addAttribute("driverName",tDriver.getName());
+        model.addAttribute("driverPhone",tDriver.getPhone());
 
         // 查询司机所属分公司
         TBranchOffice tBranchOffice = tBranchOfficeMapper.selectById(tDriver.getBranchOfficeId());
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java
new file mode 100644
index 0000000..fbfa5e0
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TRevenueServiceImpl.java
@@ -0,0 +1,131 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp;
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.enums.CashWithdrawalTypeEnum;
+import com.stylefeng.guns.modular.system.enums.RevenueTypeEnum;
+import com.stylefeng.guns.modular.system.enums.SystemConfigTypeEnum;
+import com.stylefeng.guns.modular.system.enums.UserTypeEnum;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.ITEvaluateService;
+import com.stylefeng.guns.modular.system.service.ITOrderService;
+import com.stylefeng.guns.modular.system.service.ITRevenueService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.service.ITSystemConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.ui.Model;
+import org.springframework.util.StringUtils;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * <p>
+ * 收入记录 服务实现类
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2023-03-13
+ */
+@Service
+public class TRevenueServiceImpl extends ServiceImpl<TRevenueMapper, TRevenue> implements ITRevenueService {
+
+    @Autowired
+    private TRevenueMapper tRevenueMapper;
+    @Autowired
+    private TAppUserMapper tAppUserMapper;
+    @Autowired
+    private ITSystemConfigService tSystemConfigService;
+    @Autowired
+    private ITOrderService tOrderService;
+    @Autowired
+    private ITEvaluateService tEvaluateService;
+
+    @Override
+    public List<RevenueExpenditureResp> getPageList(String code, Integer businessType, Integer payType, String driverName, String businessTime) {
+        String startTime = null;
+        String endTime = null;
+        // 开始,结束时间
+        if(StringUtils.hasLength(businessTime)){
+            String[] split = businessTime.split(" - ");
+            startTime = split[0];
+            endTime = split[1];
+        }
+        Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType();
+        Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
+        List<RevenueExpenditureResp> pageList = tRevenueMapper.getPageList(startTime, endTime, code, businessType, payType, driverName, roleType, objectId);
+        // 查询抽佣规则
+        TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>()
+                .eq("type", SystemConfigTypeEnum.EXTRACTION_RULE.getCode()));
+        for (RevenueExpenditureResp revenueExpenditureResp : pageList) {
+            BigDecimal commissionAmount = BigDecimal.ZERO;
+            if(1 == revenueExpenditureResp.getBusinessType()){
+                // 计算佣金提成
+                // 1.该订单的代驾用户是否为该司机邀请
+                Integer count = tAppUserMapper.selectCount(new EntityWrapper<TAppUser>()
+                        .eq("inviterType", UserTypeEnum.DRIVER.getCode())
+                        .eq("inviterId", revenueExpenditureResp.getDriverId()));
+                if(count>0){
+                    commissionAmount = commissionAmount.add(JSONObject.parseObject(tSystemConfig.getContent()).getBigDecimal("num1"));
+                }
+                // 2.查询跟该订单相关的分佣收入
+                List<TRevenue> tRevenues = tRevenueMapper.selectList(new EntityWrapper<TRevenue>()
+                        .eq("type", RevenueTypeEnum.COMMISSION_INCOME.getCode())
+                        .eq("orderId", revenueExpenditureResp.getOrderId()));
+                Optional<BigDecimal> reduce = tRevenues.stream().map(TRevenue::getAmount).reduce(BigDecimal::add);
+                if(reduce.isPresent()){
+                    commissionAmount = commissionAmount.add(reduce.get());
+                }
+                revenueExpenditureResp.setCommissionAmount(commissionAmount);
+            }
+        }
+        return pageList;
+    }
+
+    @Override
+    public void commissionDetail(String code, Model model) {
+        RevenueExpenditureResp revenueExpenditureResp = tRevenueMapper.commissionOrBalanceDetail(code, CashWithdrawalTypeEnum.COMMISSION_WITHDRAWAL.getCode());
+        this.packageModel(revenueExpenditureResp,model);
+    }
+
+    @Override
+    public void balanceDetail(String code, Model model) {
+        RevenueExpenditureResp revenueExpenditureResp = tRevenueMapper.commissionOrBalanceDetail(code, CashWithdrawalTypeEnum.BALANCE_WITHDRAWAL.getCode());
+        this.packageModel(revenueExpenditureResp,model);
+    }
+
+    @Override
+    public void packageModel(RevenueExpenditureResp revenueExpenditureResp,Model model) {
+        model.addAttribute("code",revenueExpenditureResp.getCode());
+        model.addAttribute("businessTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(revenueExpenditureResp.getBusinessTime()));
+        model.addAttribute("businessType",revenueExpenditureResp.getBusinessType());
+        model.addAttribute("driverName",revenueExpenditureResp.getDriverName());
+        model.addAttribute("driverPhone",revenueExpenditureResp.getDriverPhone());
+        model.addAttribute("amount",revenueExpenditureResp.getAmount());
+        model.addAttribute("accountBalance",revenueExpenditureResp.getAccountBalance());
+    }
+
+    @Override
+    public void orderDetail(String code, Model model) {
+        // 查询订单
+        TOrder tOrder = tOrderService.selectOne(new EntityWrapper<TOrder>().eq("code", code)
+                .last("LIMIT 1"));
+        tOrderService.orderDetail(tOrder.getId(),model);
+        // 查询评价
+        TEvaluate tEvaluate = tEvaluateService.selectOne(new EntityWrapper<TEvaluate>().eq("orderId", tOrder.getId()));
+        if(Objects.nonNull(tEvaluate)){
+            model.addAttribute("evaluateScore",tEvaluate.getScore());
+            model.addAttribute("evaluateContent",tEvaluate.getEvaluate());
+        }else {
+            model.addAttribute("evaluateScore","");
+            model.addAttribute("evaluateContent","");
+        }
+    }
+}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRechargeRecord/tRechargeRecord.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRechargeRecord/tRechargeRecord.html
index 0726fce..1211d30 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRechargeRecord/tRechargeRecord.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRechargeRecord/tRechargeRecord.html
@@ -9,11 +9,38 @@
                 <div class="row row-lg">
                     <div class="col-sm-12">
                         <div class="row">
-                            <div class="col-sm-3">
-                                <#NameCon id="condition" name="名称" />
+                            <div class="col-sm-2">
+                                <#NameCon id="code" name="订单号" />
                             </div>
-                            <div class="col-sm-3">
+                            <div class="col-sm-2">
+                                <select class="input-group" id="businessType" style="width: 180px;height: 33px" name="businessType">
+                                    <option value="">交易类型</option>
+                                    <option value="1">佣金提现</option>
+                                    <option value="2">余额提现</option>
+                                    <option value="3">支付订单</option>
+                                </select>
+                            </div>
+                            <div class="col-sm-2">
+                                <select class="input-group" id="payType" style="width: 180px;height: 33px" name="payType">
+                                    <option value="">支付渠道</option>
+                                    <option value="1">微信支付</option>
+                                    <option value="2">余额支付</option>
+                                </select>
+                            </div>
+                            <div class="col-sm-2">
+                                <#NameCon id="driverName" name="司机姓名" />
+                            </div>
+                            <div class="col-sm-2">
+                                <#TimeCon id="businessTime" name="交易时间" />
+                            </div>
+                            <div class="col-sm-2">
                                 <#button name="搜索" icon="fa-search" clickFun="TRechargeRecord.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TRechargeRecord.resetSearch()" space="true"/>
+                            </div>
+                            <div class="col-sm-12">
+                                <button type="button" class="btn btn-primary " onclick="TRechargeRecord.export()" id="export">
+                                    <i class="fa "></i>&nbsp;导出
+                                </button>
                             </div>
                         </div>
                         <div class="hidden-xs" id="TRechargeRecordTableToolbar" role="group">
@@ -35,4 +62,11 @@
     </div>
 </div>
 <script src="${ctxPath}/static/modular/system/tRechargeRecord/tRechargeRecord.js"></script>
+<script type="text/javascript">
+    laydate.render({
+        elem: '#businessTime',
+        type: 'date',
+        range: true
+    });
+</script>
 @}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue.html
new file mode 100644
index 0000000..e13daed
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue.html
@@ -0,0 +1,73 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>收支明细</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-2">
+                                <#NameCon id="code" name="订单号" />
+                            </div>
+                            <div class="col-sm-2">
+                                <select class="input-group" id="businessType" style="width: 180px;height: 33px" name="businessType">
+                                    <option value="">交易类型</option>
+                                    <option value="11">佣金提现</option>
+                                    <option value="12">余额提现</option>
+                                    <option value="1">支付订单</option>
+                                </select>
+                            </div>
+                            <div class="col-sm-2">
+                                <select class="input-group" id="payType" style="width: 180px;height: 33px" name="payType">
+                                    <option value="">支付渠道</option>
+                                    <option value="1">微信支付</option>
+                                    <option value="2">余额支付</option>
+                                    <option value="3">线下收款</option>
+                                </select>
+                            </div>
+                            <div class="col-sm-2">
+                                <#NameCon id="driverName" name="司机姓名" />
+                            </div>
+                            <div class="col-sm-2">
+                                <#TimeCon id="businessTime" name="交易时间" />
+                            </div>
+                            <div class="col-sm-2">
+                                <#button name="搜索" icon="fa-search" clickFun="TRevenue.search()"/>
+                                <#button name="重置" icon="fa-trash" clickFun="TRevenue.resetSearch()" space="true"/>
+                            </div>
+                            <div class="col-sm-12">
+                                <button type="button" class="btn btn-primary " onclick="TRevenue.export()" id="export">
+                                    <i class="fa "></i>&nbsp;导出
+                                </button>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="TRevenueTableToolbar" role="group">
+                            @if(shiro.hasPermission("/tRevenue/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="TRevenue.openAddTRevenue()"/>
+                            @}
+                            @if(shiro.hasPermission("/tRevenue/update")){
+                                <#button name="修改" icon="fa-edit" clickFun="TRevenue.openTRevenueDetail()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/tRevenue/delete")){
+                                <#button name="删除" icon="fa-remove" clickFun="TRevenue.delete()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="TRevenueTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue.js"></script>
+<script type="text/javascript">
+    laydate.render({
+        elem: '#businessTime',
+        type: 'date',
+        range: true
+    });
+</script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html
new file mode 100644
index 0000000..359f6f7
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueBalanceDetail.html
@@ -0,0 +1,75 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>详情</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >订单号:</label>
+                                <label>${code}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >交易时间:</label>
+                                <label>${businessTime}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >交易类型:</label>
+                                @if(businessType==1){
+                                <label>支付订单</label>
+                                @}
+                                @if(businessType==11){
+                                <label>佣金提现</label>
+                                @}
+                                @if(businessType==12){
+                                <label>余额提现</label>
+                                @}
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group" >
+                                <label class="control-label">司机姓名:</label>
+                                <label>${driverName}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">司机电话:</label>
+                                <label>${driverPhone}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">提现金额:</label>
+                                <label>${amount}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">余额:</label>
+                                <label>${accountBalance}</label>
+                            </div>
+                        </div>
+
+                        <div class="hidden-xs" id="TDriverTableToolbar" role="group"  style="text-align: center">
+                            <#button name="取消" icon="fa-plus" clickFun="TRevenueInfoDlg.close()" />
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue.js"></script>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue_info.js"></script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueCommissionDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueCommissionDetail.html
new file mode 100644
index 0000000..359f6f7
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueCommissionDetail.html
@@ -0,0 +1,75 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>详情</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >订单号:</label>
+                                <label>${code}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >交易时间:</label>
+                                <label>${businessTime}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >交易类型:</label>
+                                @if(businessType==1){
+                                <label>支付订单</label>
+                                @}
+                                @if(businessType==11){
+                                <label>佣金提现</label>
+                                @}
+                                @if(businessType==12){
+                                <label>余额提现</label>
+                                @}
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group" >
+                                <label class="control-label">司机姓名:</label>
+                                <label>${driverName}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">司机电话:</label>
+                                <label>${driverPhone}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">提现金额:</label>
+                                <label>${amount}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">余额:</label>
+                                <label>${accountBalance}</label>
+                            </div>
+                        </div>
+
+                        <div class="hidden-xs" id="TDriverTableToolbar" role="group"  style="text-align: center">
+                            <#button name="取消" icon="fa-plus" clickFun="TRevenueInfoDlg.close()" />
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue.js"></script>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue_info.js"></script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueOrderDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueOrderDetail.html
new file mode 100644
index 0000000..fd8508a
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenueOrderDetail.html
@@ -0,0 +1,208 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>详情</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+
+                        <hr/>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div style="background-color: gray;height: 35px;line-height: 35px">
+                                <label style="color: #0C0C0C">订单支付详情</label>
+                            </div>
+                        </div>
+                        <hr/>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >下单时间:</label>
+                                <label>${createTime}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >订单编号:</label>
+                                <label>${code}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >乘车时间:</label>
+                                <label>${startTime}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group" style="color: green"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >下单用户昵称:</label>
+                                <label>${userName}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group" >
+                                <label class="control-label" >下单用户手机号:</label>
+                                <label>${userPhone}</label>
+                            </div>
+                        </div>
+
+                        <hr/>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div style="background-color: gray;height: 35px;line-height: 35px">
+                                <label style="color: #0C0C0C">上下地点</label>
+                            </div>
+                        </div>
+                        <hr/>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group" >
+                                <label class="control-label">起点:</label>
+                                <label>${startAddress}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">终点:</label>
+                                <label>${endAddress}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group" style="color:red;" >
+                            <div class="initialLevel col-sm-3 control-label form-group" >
+                                <label class="control-label">司机姓名:</label>
+                                <label>${driverName}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">司机电话:</label>
+                                <label>${driverPhone}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >上车地点:</label>
+                                <label>${startAddress}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">上车时间:</label>
+                                <label>${boardingTime}</label>
+                            </div>
+                        </div>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >下车地点:</label>
+                                <label>${endAddress}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >下车时间:</label>
+                                <label>${getoffTime}</label>
+                            </div>
+                        </div>
+
+
+                        <hr/>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div style="background-color: gray;height: 35px;line-height: 35px">
+                                <label style="color: #0C0C0C">费用明细</label>
+                            </div>
+                        </div>
+                        <hr/>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group"  >
+                                <label class="control-label" >起步价:</label>
+                                <label>${startPrice}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >等待费:</label>
+                                <label>${waitTimePrice}</label>
+                            </div>
+                        </div>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group"  >
+                                <label class="control-label" >里程费:</label>
+                                <label>${overDrivePrice}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >恶劣天气:</label>
+                                <label>${badWeatherPrice}</label>
+                            </div>
+                        </div>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group"  >
+                                <label class="control-label" >实际费用:</label>
+                                <label>${orderMoney}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >实际支付费用:</label>
+                                <label>${payMoney}</label>
+                            </div>
+                        </div>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group"  >
+                                <label class="control-label" >优惠券抵扣费用:</label>
+                                <label>${discountedPrice}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >支付方式:</label>
+                                @if(payType==1){
+                                <label>微信支付</label>
+                                @}
+                                @if(payType==2){
+                                <label>余额支付</label>
+                                @}
+                                @if(payType==3){
+                                <label>线下收款</label>
+                                @}
+                            </div>
+                        </div>
+
+
+                        <hr/>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div style="background-color: gray;height: 35px;line-height: 35px">
+                                <label style="color: #0C0C0C">评论详情</label>
+                            </div>
+                        </div>
+                        <hr/>
+
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-2 control-label form-group"  >
+                                <label class="control-label" >评论分数:</label>
+                                @if(evaluateScore==1){
+                                <label>非常差</label>
+                                @}
+                                @if(evaluateScore==2){
+                                <label>差</label>
+                                @}
+                                @if(evaluateScore==3){
+                                <label>一般</label>
+                                @}
+                                @if(evaluateScore==4){
+                                <label>满意</label>
+                                @}
+                                @if(evaluateScore==5){
+                                <label>非常满意</label>
+                                @}
+                            </div>
+                        </div>
+                        <div class="initialLevel col-sm-12 control-label form-group"  >
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >评论内容:</label>
+                                <label>${evaluateContent}</label>
+                            </div>
+                        </div>
+
+
+                        <div class="hidden-xs" id="TDriverTableToolbar" role="group"  style="text-align: center">
+                            <#button name="取消" icon="fa-plus" clickFun="TRevenueInfoDlg.close()" />
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue.js"></script>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue_info.js"></script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_add.html
new file mode 100644
index 0000000..1771a9d
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_add.html
@@ -0,0 +1,32 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal">
+
+            <div class="row">
+                <div class="col-sm-6 b-r">
+                            <#input id="id" name="主键" underline="true"/>
+                            <#input id="type" name="收入类型(1=订单收入,2=分佣收入)" underline="true"/>
+                            <#input id="userType" name="用户类型(1=用户,2=司机,3=代理商)" underline="true"/>
+                            <#input id="userId" name="用户id"/>
+                </div>
+
+                <div class="col-sm-6">
+                            <#input id="orderId" name="订单id" underline="true"/>
+                            <#input id="amount" name="收入金额" underline="true"/>
+                            <#input id="createTime" name="添加时间" underline="true"/>
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TRevenueInfoDlg.addSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TRevenueInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue_info.js"></script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_edit.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_edit.html
new file mode 100644
index 0000000..b0a7a5b
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tRevenue/tRevenue_edit.html
@@ -0,0 +1,32 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal">
+
+            <div class="row">
+                <div class="col-sm-6 b-r">
+                            <#input id="id" name="主键" value="${item.id}" underline="true"/>
+                            <#input id="type" name="收入类型(1=订单收入,2=分佣收入)" value="${item.type}" underline="true"/>
+                            <#input id="userType" name="用户类型(1=用户,2=司机,3=代理商)" value="${item.userType}" underline="true"/>
+                            <#input id="userId" name="用户id" value="${item.userId}" />
+                </div>
+
+                <div class="col-sm-6">
+                            <#input id="orderId" name="订单id" value="${item.orderId}" underline="true"/>
+                            <#input id="amount" name="收入金额" value="${item.amount}" underline="true"/>
+                            <#input id="createTime" name="添加时间" value="${item.createTime}" />
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TRevenueInfoDlg.editSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TRevenueInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tRevenue/tRevenue_info.js"></script>
+@}
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js
new file mode 100644
index 0000000..6db31dc
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue.js
@@ -0,0 +1,236 @@
+/**
+ * 管理初始化
+ */
+var TRevenue = {
+    id: "TRevenueTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TRevenue.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+            {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'},
+            {title: '收入类型(1=订单收入,2=分佣收入)', field: 'type', visible: false, align: 'center', valign: 'middle'},
+            {title: '用户类型(1=用户,2=司机,3=代理商)', field: 'userType', visible: false, align: 'center', valign: 'middle'},
+            {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'},
+            {title: '订单id', field: 'orderId', visible: false, align: 'center', valign: 'middle'},
+            {title: '收入金额', field: 'amount', visible: false, align: 'center', valign: 'middle'},
+            {title: '添加时间', field: 'createTime', visible: false, align: 'center', valign: 'middle'},
+
+            {title: '订单号', field: 'code', visible: true, align: 'center', valign: 'middle'},
+            {title: '交易时间', field: 'businessTime', visible: true, align: 'center', valign: 'middle'},
+            {title: '交易类型', field: 'businessType', visible: true, align: 'center', valign: 'middle',
+                formatter: function (value, row) {
+                    if (row.businessType === 1){
+                        return '<span>支付订单</span>'
+                    }else if (row.businessType === 11){
+                        return '<span>佣金提现</span>'
+                    }else if (row.businessType === 12){
+                        return '<span>余额提现</span>'
+                    }
+                }
+            },
+            {title: '司机姓名', field: 'driverName', visible: true, align: 'center', valign: 'middle'},
+            {title: '司机电话', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'},
+            {title: '支付类型', field: 'payType', visible: true, align: 'center', valign: 'middle',
+                formatter: function (value, row) {
+                    if (row.payType === 1){
+                        return '<span>微信支付</span>'
+                    }else if (row.payType === 2){
+                        return '<span>余额支付</span>'
+                    }else if (row.payType === 3){
+                        return '<span>线下收款</span>'
+                    }else if (row.payType === 0){
+                        return ''
+                    }
+                }
+            },
+            {title: '金额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
+            {title: '佣金提成', field: 'commissionAmount', visible: true, align: 'center', valign: 'middle'},
+            {title: '优惠券', field: 'discountedPrice', visible: true, align: 'center', valign: 'middle'},
+            {title: '余额', field: 'accountBalance', visible: true, align: 'center', valign: 'middle'},
+            {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',
+                formatter: function (value, row) {
+                    if (row.state === 2){
+                        return '<span>完成</span>'
+                    }else if (row.state === 108){
+                        return '<span>完成</span>'
+                    }else if (row.state === 109){
+                        return '<span>完成</span>'
+                    }
+                }
+            },
+        {title: '操作', visible: true, align: 'center', valign: 'middle',width:150,
+            formatter: function (value, row) {
+                if (row.businessType === 1){
+                    return '<a href="#" onclick="TRevenue.searchTRevenueOrderDetail('+row.code+')" style="color:blue">详情</a>'
+                }else if (row.businessType === 11){
+                    return '<a href="#" onclick="TRevenue.searchTRevenueCommissionDetail('+row.code+')" style="color:blue">详情</a>'
+                }else if (row.businessType === 12){
+                    return '<a href="#" onclick="TRevenue.searchTRevenueBalanceDetail('+row.code+')" style="color:blue">详情</a>'
+                }
+            }
+        }
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TRevenue.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TRevenue.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加
+ */
+TRevenue.openAddTRevenue = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加',
+        area: ['800px', '420px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tRevenue/tRevenue_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看详情
+ */
+TRevenue.openTRevenueDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '详情',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tRevenue/tRevenue_update/' + TRevenue.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 打开查看佣金提现详情(使用中)
+ */
+TRevenue.searchTRevenueCommissionDetail = function (code) {
+    var index = layer.open({
+        type: 2,
+        title: '佣金提现详情',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tRevenue/commissionDetail?code=' + code
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看余额提现详情(使用中)
+ */
+TRevenue.searchTRevenueBalanceDetail = function (code) {
+    var index = layer.open({
+        type: 2,
+        title: '余额提现详情',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tRevenue/balanceDetail?code=' + code
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看支付订单详情(使用中)
+ */
+TRevenue.searchTRevenueOrderDetail = function (code) {
+    var index = layer.open({
+        type: 2,
+        title: '支付订单详情',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tRevenue/orderDetail?code=' + code
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 删除
+ */
+TRevenue.delete = function () {
+    if (this.check()) {
+        var ajax = new $ax(Feng.ctxPath + "/tRevenue/delete", function (data) {
+            Feng.success("删除成功!");
+            TRevenue.table.refresh();
+        }, function (data) {
+            Feng.error("删除失败!" + data.responseJSON.message + "!");
+        });
+        ajax.set("tRevenueId",this.seItem.id);
+        ajax.start();
+    }
+};
+
+/**
+ * 司机信息导出
+ */
+TRevenue.export=function(){
+    var code=$("#code").val()
+    var businessType=$("#businessType").val()
+    var payType=$("#payType").val()
+    var driverName=$("#driverName").val()
+    var businessTime=$("#businessTime").val()
+    window.location.href=Feng.ctxPath + "/tRevenue/export?code="+code
+        +"&businessType="+businessType
+        +"&payType="+payType
+        +"&driverName="+driverName
+        +"&businessTime="+businessTime
+    ;
+}
+
+/**
+ * 查询列表
+ */
+TRevenue.search = function () {
+    var queryData = {};
+    queryData['code'] = $("#code").val();
+    queryData['businessType'] = $("#businessType").val();
+    queryData['payType'] = $("#payType").val();
+    queryData['driverName'] = $("#driverName").val();
+    queryData['businessTime'] = $("#businessTime").val();
+    TRevenue.table.refresh({query: queryData});
+};
+
+/**
+ * 重置
+ */
+TRevenue.resetSearch = function (){
+    $("#code").val('');
+    $("#businessType").val('');
+    $("#payType").val('');
+    $("#driverName").val('');
+    $("#businessTime").val('');
+    TRevenue.search();
+}
+
+$(function () {
+    var defaultColunms = TRevenue.initColumn();
+    var table = new BSTable(TRevenue.id, "/tRevenue/list", defaultColunms);
+    table.setPaginationType("client");
+    TRevenue.table = table.init();
+});
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js
new file mode 100644
index 0000000..2e2ec2d
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tRevenue/tRevenue_info.js
@@ -0,0 +1,99 @@
+/**
+ * 初始化详情对话框
+ */
+var TRevenueInfoDlg = {
+    tRevenueInfoData : {}
+};
+
+/**
+ * 清除数据
+ */
+TRevenueInfoDlg.clearData = function() {
+    this.tRevenueInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TRevenueInfoDlg.set = function(key, val) {
+    this.tRevenueInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+    return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+TRevenueInfoDlg.get = function(key) {
+    return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+TRevenueInfoDlg.close = function() {
+    parent.layer.close(window.parent.TRevenue.layerIndex);
+}
+
+/**
+ * 收集数据
+ */
+TRevenueInfoDlg.collectData = function() {
+    this
+    .set('id')
+    .set('type')
+    .set('userType')
+    .set('userId')
+    .set('orderId')
+    .set('amount')
+    .set('createTime');
+}
+
+/**
+ * 提交添加
+ */
+TRevenueInfoDlg.addSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/tRevenue/add", function(data){
+        Feng.success("添加成功!");
+        window.parent.TRevenue.table.refresh();
+        TRevenueInfoDlg.close();
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.tRevenueInfoData);
+    ajax.start();
+}
+
+/**
+ * 提交修改
+ */
+TRevenueInfoDlg.editSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/tRevenue/update", function(data){
+        Feng.success("修改成功!");
+        window.parent.TRevenue.table.refresh();
+        TRevenueInfoDlg.close();
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.tRevenueInfoData);
+    ajax.start();
+}
+
+$(function() {
+
+});

--
Gitblit v1.7.1