From 01e64fe75bb1914c00ac2da749511296c6588f96 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 24 二月 2023 18:25:51 +0800
Subject: [PATCH] 司机管理完善,佣金管理完成

---
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java  |   10 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java                         |   36 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java       |  161 +++++++-
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TDriverCommissionResp.java |   91 +++++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html                               |    5 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html                              |    2 
 management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommission.js                         |   32 -
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaUpdate.html                         |    0 
 management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver.js                                   |   38 +
 management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommissionConnect.js                  |  137 +++++++
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java   |    9 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java  |  132 ++++++
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaAdd.html                            |   45 ++
 management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js                              |   10 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html                               |    2 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetailConnect.html            |  110 ++++++
 management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js                                   |   32 +
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriver.java                         |   25 +
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverDetail.html                             |    2 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCouponMapper.xml              |    4 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon.html                                   |    4 
 management/guns-admin/src/main/webapp/static/modular/system/tAgent/tAgent_info.js                                |    6 
 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java               |   16 
 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetail.html                   |  116 ++++++
 24 files changed, 929 insertions(+), 96 deletions(-)

diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
index 4df1237..9d5c098 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAgentController.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.SuccessTip;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.exception.ServiceExceptionEnum;
 import com.stylefeng.guns.core.util.DateUtil;
 import com.stylefeng.guns.modular.system.controller.resp.TAgentResp;
 import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
@@ -127,6 +130,12 @@
     @RequestMapping(value = "/add")
     @ResponseBody
     public Object add(TAgent tAgent) {
+
+        int count = tAgentService.selectCount(new EntityWrapper<TAgent>().eq("principalPhone", tAgent.getPrincipalPhone()));
+        if(count>0){
+            return new SuccessTip(500,"该代理商已存在!");
+        }
+
         String[] split = tAgent.getAreaId().split("/");
         // 查询省市
         // 黑龙江省/大兴安岭地区
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java
index f16be0a..e1535ec 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java
@@ -70,7 +70,7 @@
      */
     @RequestMapping(value = "/list")
     @ResponseBody
-    public Object list(Integer couponType,Integer couponServiceType,String createtime) {
+    public Object list(Integer couponType,Integer couponServiceType,String createTime) {
         EntityWrapper<TCoupon> wrapper = new EntityWrapper<>();
         if(Objects.nonNull(couponType)){
             wrapper.eq("coupon_type",couponType);
@@ -79,13 +79,13 @@
             wrapper.eq("coupon_service_type",couponServiceType);
         }
         // 开始,结束时间
-        if(StringUtils.hasLength(createtime)){
-            String[] split = createtime.split(" - ");
+        if(StringUtils.hasLength(createTime)){
+            String[] split = createTime.split(" - ");
             Date startTime = DateUtil.getDate_str4(split[0]);
             Date endTime = DateUtil.getDate_str4(split[1]);
-            wrapper.between("createtime",startTime,endTime);
+            wrapper.between("create_time",startTime,endTime);
         }
-        wrapper.orderBy(true,"createtime",false);
+        wrapper.orderBy(true,"create_time",false);
         wrapper.groupBy(true,"coupon_name");
         wrapper.groupBy(true,"coupon_type");
         return tCouponService.selectList(wrapper);
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 eb37640..54fc2f8 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
@@ -3,8 +3,10 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.SuccessTip;
 import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.shiro.ShiroUser;
+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.model.*;
@@ -37,6 +39,7 @@
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -195,10 +198,19 @@
     }
 
     /**
-     * 跳转区域页面
+     * 佣金跳转详情页面
      */
-    @RequestMapping("/areaPage")
-    public String areaDetail(String area,String areaId,Model model) {
+    @RequestMapping("/commission/driverCommissionDetail")
+    public String driverCommissionDetail(Integer tDriverId, Model model) {
+        tDriverService.driverCommissionDetail(tDriverId,model);
+        return PREFIX + "tDriverCommissionDetail.html";
+    }
+
+    /**
+     * 跳转区域页面编辑
+     */
+    @RequestMapping("/areaPageUpdate")
+    public String areaPageUpdate(String area,String areaId,Model model) {
         List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
         model.addAttribute("provinceList",tRegions);
         List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
@@ -222,7 +234,17 @@
             model.addAttribute("cityId",split1[1]);
             model.addAttribute("districtId",split1[2]);
         }
-        return PREFIX + "tDriverArea.html";
+        return PREFIX + "tDriverAreaUpdate.html";
+    }
+
+    /**
+     * 跳转区域页面新增
+     */
+    @RequestMapping("/areaPageAdd")
+    public String areaPageAdd(Model model) {
+        List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
+        model.addAttribute("provinceList",tRegions);
+        return PREFIX + "tDriverAreaAdd.html";
     }
 
     /**
@@ -243,9 +265,8 @@
     @ResponseBody
     public Object commissionList(String name,String phone,Integer status) {
         EntityWrapper<TDriver> wrapper = tDriverService.getCommissionPageList(name,phone,status);
-        wrapper.ne("isException",2);
         List<TDriver> tDrivers = tDriverService.selectList(wrapper);
-        return tDriverService.getTDriverResp(tDrivers);
+        return tDriverService.getTDriverCommissionResp(tDrivers);
     }
     /**
      * 获取异常列表
@@ -257,6 +278,31 @@
         wrapper.eq("isException",2);
         List<TDriver> tDrivers = tDriverService.selectList(wrapper);
         return tDriverService.getTDriverResp(tDrivers);
+    }
+
+    /**
+     * 佣金关联列表
+     */
+    @RequestMapping(value = "/commission/connect/list")
+    @ResponseBody
+    public Object commissionConnectList(String driverId) {
+
+        // 查询当前用户的用户信息
+        TDriver tDriver = tDriverService.selectById(driverId);
+
+        EntityWrapper<TDriver> wrapper = new EntityWrapper<>();
+        if(StringUtils.hasLength(driverId)){
+            wrapper.eq("inviterId",driverId);
+        }
+        List<TDriver> list = tDriverService.selectList(wrapper);
+        List<TDriverCommissionResp> commissionResp = tDriverService.getTDriverCommissionResp(list);
+        for (TDriverCommissionResp tDriverCommissionResp : commissionResp) {
+            if(Objects.nonNull(tDriver)){
+                tDriverCommissionResp.setInviterName(tDriver.getName());
+                tDriverCommissionResp.setInviterPhone(tDriver.getPhone());
+            }
+        }
+        return commissionResp;
     }
 
     /**
@@ -313,9 +359,17 @@
 
         int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone()));
         if(count>0){
-            return "该司机已存在!";
+            return new SuccessTip(500,"该司机已存在!");
         }
-        tDriverService.addOrUpdate(tDriver);
+        Object o = tDriverService.addOrUpdate(tDriver);
+        if(Objects.nonNull(o)){
+            return o;
+        }
+        // 默认值板块
+        tDriver.setCode(UUIDUtil.getNumberRandom(16));
+        tDriver.setBalance(BigDecimal.ZERO);
+        tDriver.setBackgroundBalance(BigDecimal.ZERO);
+        tDriver.setCommission(BigDecimal.ZERO);
         tDriverService.insert(tDriver);
         return SUCCESS_TIP;
     }
@@ -368,9 +422,17 @@
     @RequestMapping(value = "/update")
     @ResponseBody
     public Object update(TDriver tDriver) {
+        TDriver driver = tDriverService.selectOne(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone())
+                .last("LIMIT 1"));
+        if(Objects.nonNull(driver) && !tDriver.getId().equals(driver.getId())){
+            return new SuccessTip(500,"该司机已存在!");
+        }
 //        Object ocr = ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png");
 //        System.err.println(ocr);
-        tDriverService.addOrUpdate(tDriver);
+        Object o = tDriverService.addOrUpdate(tDriver);
+        if(Objects.nonNull(o)){
+            return o;
+        }
         tDriverService.updateById(tDriver);
         return SUCCESS_TIP;
     }
@@ -532,4 +594,56 @@
             e.printStackTrace();
         }
     }
+    @ApiOperation(value = "导出司机异常列表",notes="导出司机异常列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    @RequestMapping(value = "/export-commission")
+    @ResponseBody
+    public void exportCommission(String name,String phone,Integer status,HttpServletResponse response) {
+        try {
+            Date date = new Date();
+            DateFormat format = new SimpleDateFormat("yyyyMMdd");
+            String time1 = format.format(date);
+            String fileName = "CommissionInfo"+time1+".xls";
+            String[] title = new String[] {"姓名","手机号","所属代理商","推广人数","关联人数",
+                    "累计获得佣金","可提现佣金","已提现金额","状态"};
+            EntityWrapper<TDriver> wrapper = tDriverService.getCommissionPageList(name,phone,status);
+//            wrapper.ne("isException",2);
+            // 是否异常
+            List<TDriver> list = tDriverService.selectList(wrapper);
+
+            List<TDriverCommissionResp> commissionResp = tDriverService.getTDriverCommissionResp(list);
+
+            String[][] values = new String[commissionResp.size()][];
+            for (int i = 0; i < commissionResp.size(); i++) {
+                TDriverCommissionResp d = commissionResp.get(i);
+                values[i] = new String[title.length];
+                values[i][0] = d.getName();
+                values[i][1] = d.getPhone();
+                values[i][2] = d.getAgentName();
+                values[i][3] = String.valueOf(Objects.isNull(d.getNumberPromoters()) ? 0:d.getNumberPromoters());
+                values[i][4] = String.valueOf(d.getConnectedPersons());
+                values[i][5] = String.valueOf(d.getAccumulatedCommission());
+                values[i][6] = String.valueOf(Objects.isNull(d.getCommission())?0:d.getCommission());
+                values[i][7] = String.valueOf(d.getWithdrawnAmount());
+                Integer status1 = d.getStatus();
+                if(1 == status1){
+                    values[i][8] = "正常";
+                }else if(2 == status1){
+                    values[i][8] = "冻结";
+                }else if(3 == status1){
+                    values[i][8] = "已删除";
+                }
+            }
+            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/TDriverCommissionResp.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TDriverCommissionResp.java
new file mode 100644
index 0000000..b15b8d6
--- /dev/null
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TDriverCommissionResp.java
@@ -0,0 +1,91 @@
+package com.stylefeng.guns.modular.system.controller.resp;
+
+import com.stylefeng.guns.modular.system.model.TDriver;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+public class TDriverCommissionResp extends TDriver {
+
+    // 所属代理商
+    @ApiModelProperty(value = "所属代理商")
+    private String agentName;
+    // 推广人数
+    @ApiModelProperty(value = "推广人数")
+    private Integer numberPromoters;
+    // 联人数
+    @ApiModelProperty(value = "关联人数")
+    private Integer connectedPersons;
+    // 累计获得佣金
+    @ApiModelProperty(value = "累计获得佣金")
+    private BigDecimal accumulatedCommission;
+    // 已提现金额
+    @ApiModelProperty(value = "已提现金额")
+    private BigDecimal withdrawnAmount;
+
+    @ApiModelProperty(value = "邀约人姓名")
+    private String inviterName;
+
+    @ApiModelProperty(value = "邀约人电话")
+    private String inviterPhone;
+
+    @Override
+    public String getInviterName() {
+        return inviterName;
+    }
+
+    @Override
+    public void setInviterName(String inviterName) {
+        this.inviterName = inviterName;
+    }
+
+    @Override
+    public String getInviterPhone() {
+        return inviterPhone;
+    }
+
+    @Override
+    public void setInviterPhone(String inviterPhone) {
+        this.inviterPhone = inviterPhone;
+    }
+
+    public String getAgentName() {
+        return agentName;
+    }
+
+    public void setAgentName(String agentName) {
+        this.agentName = agentName;
+    }
+
+    public Integer getNumberPromoters() {
+        return numberPromoters;
+    }
+
+    public void setNumberPromoters(Integer numberPromoters) {
+        this.numberPromoters = numberPromoters;
+    }
+
+    public Integer getConnectedPersons() {
+        return connectedPersons;
+    }
+
+    public void setConnectedPersons(Integer connectedPersons) {
+        this.connectedPersons = connectedPersons;
+    }
+
+    public BigDecimal getAccumulatedCommission() {
+        return accumulatedCommission;
+    }
+
+    public void setAccumulatedCommission(BigDecimal accumulatedCommission) {
+        this.accumulatedCommission = accumulatedCommission;
+    }
+
+    public BigDecimal getWithdrawnAmount() {
+        return withdrawnAmount;
+    }
+
+    public void setWithdrawnAmount(BigDecimal withdrawnAmount) {
+        this.withdrawnAmount = withdrawnAmount;
+    }
+}
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCouponMapper.xml b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCouponMapper.xml
index 445a099..1ba233f 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCouponMapper.xml
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCouponMapper.xml
@@ -6,7 +6,7 @@
     <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TCoupon">
         <id column="id" property="id" />
         <result column="user_id" property="userId" />
-        <result column="createtime" property="createtime" />
+        <result column="create_time" property="createTime" />
         <result column="coupon_name" property="couponName" />
         <result column="coupon_type" property="couponType" />
         <result column="coupon_code" property="couponCode" />
@@ -21,7 +21,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,user_id, createtime, coupon_name,coupon_type,coupon_code,coupon_status,coupon_service_type,coupon_conditional_amount,
+        id,user_id, create_time, coupon_name,coupon_type,coupon_code,coupon_status,coupon_service_type,coupon_conditional_amount,
             coupon_preferential_amount,coupon_validity,coupon_send_quantity,coupon_state
     </sql>
 
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java
index 1d04f01..d2b091b 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java
@@ -33,18 +33,20 @@
     /**
      * 创建时间
      */
-    private Date createtime;
+    @ApiModelProperty(value = "创建时间")
+    @TableField("create_time")
+    private Date createTime;
 
     @ApiModelProperty(value = "用户id")
     @TableField("user_id")
     private Integer userId;
 
     @ApiModelProperty(value = "代理商id")
-    @TableField("agentId")
+    @TableField("agent_id")
     private Integer agentId;
 
     @ApiModelProperty(value = "分公司id")
-    @TableField("branchOfficeId")
+    @TableField("branch_office_id")
     private Integer branchOfficeId;
 
     @ApiModelProperty(value = "优惠券名称")
@@ -191,12 +193,12 @@
         this.id = id;
     }
 
-    public Date getCreatetime() {
-        return createtime;
+    public Date getCreateTime() {
+        return createTime;
     }
 
-    public void setCreatetime(Date createtime) {
-        this.createtime = createtime;
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
     }
 
     public String getCouponName() {
@@ -215,9 +217,21 @@
     @Override
     public String toString() {
         return "TCoupon{" +
-        "id=" + id +
-        ", createtime=" + createtime +
-        ", couponName=" + couponName +
-        "}";
+                "id=" + id +
+                ", createTime=" + createTime +
+                ", userId=" + userId +
+                ", agentId=" + agentId +
+                ", branchOfficeId=" + branchOfficeId +
+                ", couponName='" + couponName + '\'' +
+                ", couponType=" + couponType +
+                ", couponCode='" + couponCode + '\'' +
+                ", couponStatus=" + couponStatus +
+                ", couponServiceType=" + couponServiceType +
+                ", couponConditionalAmount=" + couponConditionalAmount +
+                ", couponPreferentialAmount=" + couponPreferentialAmount +
+                ", couponValidity=" + couponValidity +
+                ", couponSendQuantity=" + couponSendQuantity +
+                ", couponState=" + couponState +
+                '}';
     }
 }
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriver.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriver.java
index 53dbfca..9434c9d 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriver.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TDriver.java
@@ -180,6 +180,31 @@
     @ApiModelProperty(value = "区域id")
     private String areaId;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "邀请人姓名")
+    private String inviterName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "邀请人电话")
+    private String inviterPhone;
+
+
+    public String getInviterName() {
+        return inviterName;
+    }
+
+    public void setInviterName(String inviterName) {
+        this.inviterName = inviterName;
+    }
+
+    public String getInviterPhone() {
+        return inviterPhone;
+    }
+
+    public void setInviterPhone(String inviterPhone) {
+        this.inviterPhone = inviterPhone;
+    }
+
     public BigDecimal getCommission() {
         return commission;
     }
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java
index 8da146e..7303cfc 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
 import com.stylefeng.guns.modular.system.controller.resp.TDriverResp;
 import com.stylefeng.guns.modular.system.model.TDriver;
 import com.baomidou.mybatisplus.service.IService;
@@ -53,7 +54,7 @@
      * 新增修改处理数据
      * @param tDriver
      */
-    void addOrUpdate(TDriver tDriver);
+    Object addOrUpdate(TDriver tDriver);
 
     /**
      * 查询佣金列表
@@ -64,4 +65,17 @@
      */
     EntityWrapper<TDriver> getCommissionPageList(String name, String phone, Integer status);
 
+    /**
+     * 封装佣金集合
+     * @param list
+     * @return
+     */
+    List<TDriverCommissionResp> getTDriverCommissionResp(List<TDriver> list);
+
+    /**
+     * 佣金详情
+     * @param tDriverId
+     * @param model
+     */
+    void driverCommissionDetail(Integer tDriverId, Model model);
 }
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java
index a3d2fd9..cf65d45 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java
@@ -2,7 +2,9 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.base.tips.SuccessTip;
 import com.stylefeng.guns.core.util.DateUtil;
+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.HttpUtils;
 import com.stylefeng.guns.modular.system.controller.util.UUIDUtil;
@@ -29,6 +31,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -190,18 +193,20 @@
             model.addAttribute("principal","");
         }
 
-        // 查询邀请人
-        if(Objects.nonNull(tDriver.getInviterType()) && 1 == tDriver.getInviterType()){
-            TAppUser tAppUser = tAppUserMapper.selectById(tDriver.getInviterId());
-            model.addAttribute("inviterName",tAppUser.getNickname());
-            model.addAttribute("inviterPhone",tAppUser.getPhone());
-        }else if(Objects.nonNull(tDriver.getInviterType()) && 2 == tDriver.getInviterType()){
-            TDriver tDriver1 = tDriverMapper.selectById(tDriver.getInviterId());
-            model.addAttribute("inviterName",tDriver1.getName());
-            model.addAttribute("inviterPhone",tDriver1.getPhone());
-        }else {
-            model.addAttribute("inviterName","");
-            model.addAttribute("inviterPhone","");
+        if(Objects.nonNull(tDriver.getInviterId())){
+            // 查询邀请人
+            if(Objects.nonNull(tDriver.getInviterType()) && 1 == tDriver.getInviterType()){
+                TAppUser tAppUser = tAppUserMapper.selectById(tDriver.getInviterId());
+                model.addAttribute("inviterName",tAppUser.getNickname());
+                model.addAttribute("inviterPhone",tAppUser.getPhone());
+            }else if(Objects.nonNull(tDriver.getInviterType()) && 2 == tDriver.getInviterType()){
+                TDriver tDriver1 = tDriverMapper.selectById(tDriver.getInviterId());
+                model.addAttribute("inviterName",tDriver1.getName());
+                model.addAttribute("inviterPhone",tDriver1.getPhone());
+            }else {
+                model.addAttribute("inviterName","");
+                model.addAttribute("inviterPhone","");
+            }
         }
 
         // 查询当前用户邀请了哪些人
@@ -247,7 +252,7 @@
     }
 
     @Override
-    public void addOrUpdate(TDriver tDriver) {
+    public Object addOrUpdate(TDriver tDriver) {
         // 对省市区做处理
         String[] split = tDriver.getAreaId().split("/");
         // 查询省市
@@ -271,36 +276,43 @@
         tDriver.setAreaName(area.getName());
         tDriver.setAreaCode(area.getCode());
 
-        tDriver.setCode(UUIDUtil.getNumberRandom(16));
-        tDriver.setBalance(BigDecimal.ZERO);
-        tDriver.setBackgroundBalance(BigDecimal.ZERO);
-
         // 通过省市查询代理商
         List<TAgent> tAgent = tAgentMapper.selectList(new EntityWrapper<TAgent>().eq("provinceCode", province.getCode())
                 .eq("cityCode", city.getCode())
+                .eq("status", 1)
                 .last("LIMIT 1"));
         if(!CollectionUtils.isEmpty(tAgent)){
             tDriver.setAgentId(tAgent.get(0).getId());
+        }else {
+            return new SuccessTip(500, "该区域代理商被冻结或不存在");
         }
-        // 查询邀约人(司机端)
-        List<TDriver> emergencyDriver = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("phone", tDriver.getEmergencyPhone())
-                .last("LIMIT 1"));
-        if(!CollectionUtils.isEmpty(emergencyDriver)){
-            tDriver.setInviterId(emergencyDriver.get(0).getId());
-            tDriver.setInviterType(2);
+        if(StringUtils.hasLength(tDriver.getInviterPhone())){
+            // 查询邀约人(司机端)
+            List<TDriver> emergencyDriver = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("phone", tDriver.getInviterPhone())
+                    .last("LIMIT 1"));
+            if(!CollectionUtils.isEmpty(emergencyDriver)){
+                tDriver.setInviterId(emergencyDriver.get(0).getId());
+                tDriver.setInviterType(2);
+            }else {
+                return new SuccessTip(500, "该邀约人:"+tDriver.getInviterName()+"不存在");
+            }
         }
         // 通过省市区查询分公司
         List<TBranchOffice> tBranchOffice = tBranchOfficeMapper.selectList(new EntityWrapper<TBranchOffice>().eq("provinceCode", province.getCode())
                 .eq("cityCode", city.getCode())
+                .eq("status", 1)
                 .eq("districtCode", area.getCode())
                 .last("LIMIT 1"));
         if(!CollectionUtils.isEmpty(tBranchOffice)){
             tDriver.setBranchOfficeId(tBranchOffice.get(0).getId());
+        }else {
+            return new SuccessTip(500, "该区域分公司被冻结或不存在");
         }
 
         // ocr识别
 //        JSONObject ocr = this.ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png");
 //        System.err.println(ocr);
+        return null;
     }
 
     @Override
@@ -321,4 +333,107 @@
         wrapper.orderBy(true,"approvalStatus");
         return wrapper;
     }
+
+    @Override
+    public List<TDriverCommissionResp> getTDriverCommissionResp(List<TDriver> drivers) {
+        List<TDriverCommissionResp> commissionRespList = new ArrayList<>(drivers.size());
+        for (TDriver driver : drivers) {
+            TDriverCommissionResp commissionResp = new TDriverCommissionResp();
+            BeanUtils.copyProperties(driver,commissionResp);
+
+            // 查询代理商
+            // 所属代理商
+            TAgent tAgent = tAgentMapper.selectById(driver.getAgentId());
+            if(Objects.nonNull(tAgent)){
+                commissionResp.setAgentName(tAgent.getPrincipal());
+            }
+
+            // 关联人数
+            AtomicInteger connectedPersons = new AtomicInteger(0);
+
+            List<TDriver> inviterTwoList = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("inviterId", driver.getId()));
+            if(!CollectionUtils.isEmpty(inviterTwoList)){
+                // 推广人数
+                commissionResp.setNumberPromoters(inviterTwoList.size());
+                List<Integer> inviterTwoIds = inviterTwoList.stream().map(TDriver::getId).collect(Collectors.toList());
+                connectedPersons.addAndGet(inviterTwoList.size());
+                // 查询三级
+                List<TDriver> inviterThreeList = tDriverMapper.selectList(new EntityWrapper<TDriver>().in("inviterId", inviterTwoIds));
+                if(!CollectionUtils.isEmpty(inviterThreeList)){
+                    List<Integer> inviterThreeIds = inviterThreeList.stream().map(TDriver::getId).collect(Collectors.toList());
+                    connectedPersons.addAndGet(inviterThreeList.size());
+                    // 查询四级
+                    List<TDriver> inviterFourList = tDriverMapper.selectList(new EntityWrapper<TDriver>().in("inviterId", inviterThreeIds));
+                    connectedPersons.addAndGet(inviterFourList.size());
+
+                }
+            }
+
+            commissionResp.setConnectedPersons(connectedPersons.get());
+
+            // 已提现佣金  查询该司机的佣金提现记录
+            commissionResp.setWithdrawnAmount(BigDecimal.ZERO);
+
+            // 累计佣金  可提现佣金+已提现佣金
+            commissionResp.setAccumulatedCommission(BigDecimal.ZERO);
+
+            commissionRespList.add(commissionResp);
+
+        }
+        return commissionRespList;
+    }
+
+    @Override
+    public void driverCommissionDetail(Integer tDriverId, Model model) {
+
+        // 查询司机
+        TDriver driver = tDriverMapper.selectById(tDriverId);
+
+        // 司机信息封装
+        model.addAttribute("driverId",tDriverId);
+        model.addAttribute("name",driver.getName());
+        model.addAttribute("phone",driver.getPhone());
+        model.addAttribute("sex",driver.getSex());
+        model.addAttribute("status",driver.getStatus());
+        model.addAttribute("commission",driver.getCommission());
+        model.addAttribute("startTimeToEndTime",new SimpleDateFormat("yyyy-MM-dd").format(driver.getCreateTime()).replace("-",".")+"-"+
+                new SimpleDateFormat("yyyy-MM-dd").format(new Date()).replace("-","."));
+
+        // 所属代理商
+        TAgent tAgent = tAgentMapper.selectById(driver.getAgentId());
+        if(Objects.nonNull(tAgent)){
+            model.addAttribute("agentName",tAgent.getPrincipal());
+        }else {
+            model.addAttribute("agentName","");
+        }
+
+        // 关联人数
+        AtomicInteger connectedPersons = new AtomicInteger(0);
+        // 推广人数
+        List<TDriver> inviterTwoList = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("inviterId", driver.getId()));
+        if(!CollectionUtils.isEmpty(inviterTwoList)){
+            model.addAttribute("numberPromoters",inviterTwoList.size());
+            List<Integer> inviterTwoIds = inviterTwoList.stream().map(TDriver::getId).collect(Collectors.toList());
+            connectedPersons.addAndGet(inviterTwoList.size());
+            // 查询三级
+            List<TDriver> inviterThreeList = tDriverMapper.selectList(new EntityWrapper<TDriver>().in("inviterId", inviterTwoIds));
+            if(!CollectionUtils.isEmpty(inviterThreeList)){
+                List<Integer> inviterThreeIds = inviterThreeList.stream().map(TDriver::getId).collect(Collectors.toList());
+                connectedPersons.addAndGet(inviterThreeList.size());
+                // 查询四级
+                List<TDriver> inviterFourList = tDriverMapper.selectList(new EntityWrapper<TDriver>().in("inviterId", inviterThreeIds));
+                connectedPersons.addAndGet(inviterFourList.size());
+            }
+        }else {
+            model.addAttribute("numberPromoters",0);
+        }
+        model.addAttribute("connectedPersons",connectedPersons.get());
+        // 已提现佣金  查询该司机的佣金提现记录
+        model.addAttribute("withdrawnAmount",BigDecimal.ZERO);
+//        commissionResp.setWithdrawnAmount(BigDecimal.ZERO);
+        // 累计佣金  可提现佣金+已提现佣金
+        model.addAttribute("accumulatedCommission",BigDecimal.ZERO);
+//        commissionResp.setAccumulatedCommission(BigDecimal.ZERO);
+
+    }
 }
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon.html
index 1882e6f..66473de 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon.html
@@ -10,7 +10,7 @@
                     <div class="col-sm-12">
                         <div class="row">
                             <div class="col-sm-3">
-                                <#TimeCon id="createtime" name="发布时间"/>
+                                <#TimeCon id="createTime" name="发布时间"/>
                             </div>
                             <div class="col-sm-2">
                                 <select class="input-group" id="couponType" style="width: 180px;height: 33px" name="couponType">
@@ -50,7 +50,7 @@
 <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon.js"></script>
 <script type="text/javascript">
     laydate.render({
-        elem: '#createtime',
+        elem: '#createTime',
         type: 'date',
         range: true
     });
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html
index 4f19113..9487e9f 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html
@@ -1,7 +1,7 @@
 @layout("/common/_container.html"){
 <div class="ibox float-e-margins">
     <div class="ibox-content">
-        <div class="form-horizontal" style="width: ">
+        <div class="form-horizontal">
 
             <div class="row">
                 <div class="col-sm-12">
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaAdd.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaAdd.html
new file mode 100644
index 0000000..0caa811
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaAdd.html
@@ -0,0 +1,45 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12" style="height: 100px;">
+
+                        <div class="col-sm-4 control-label">
+                            <label  class="col-sm-1" style="width: 20px;">省:</label>
+                            <select class="input-group col-sm-2 " onclick="TDriver.areaCity()" id="province" style="width: 200px;height: 33px" name="province">
+                                <option value="">请选择省</option>
+                                @for(i in provinceList){
+                                <option id="${i.id}" value="${i.name}"}>${i.name}</option>
+                                @}
+                            </select>
+                        </div>
+                        <div class="col-sm-4 control-label">
+                            <label  class="col-sm-1" style="width: 20px;">市:</label>
+                            <select class="input-group col-sm-2" onclick="TDriver.areaDistrict()" id="city" style="width: 200px;height: 33px" name="city">
+                                <option>请选择市</option>
+                            </select>
+                        </div>
+                        <div class="col-sm-4 control-label">
+                            <label  class="col-sm-1" style="width: 20px;">区:</label>
+                            <select class="input-group col-sm-2" id="district" style="width: 200px;height: 33px" name="district">
+                                <option>请选择区</option>
+                            </select>
+                        </div>
+                    </div>
+                        <div class="hidden-xs" id="TAppUserTableToolbar" role="group"  style="text-align:center">
+                            <#button name="取消" icon="fa-plus" clickFun="TDriverInfoDlg.close()" />
+                            <#button name="确定" icon="fa-plus" clickFun="TDriver.submitArea()"/>
+                        </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tDriver/tDriver.js"></script>
+<script src="${ctxPath}/static/modular/system/tDriver/tDriver_info.js"></script>
+<script type="text/javascript">
+</script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverArea.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaUpdate.html
similarity index 100%
rename from management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverArea.html
rename to management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverAreaUpdate.html
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetail.html
new file mode 100644
index 0000000..4500740
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetail.html
@@ -0,0 +1,116 @@
+@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">
+                        <input hidden id="driverId" value="${driverId}">
+
+                        <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>${startTimeToEndTime}</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>${name}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >手机号:</label>
+                                <label>${phone}</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(sex==1){
+                                <label>男</label>
+                                @}
+                                @if(sex==2){
+                                <label>女</label>
+                                @}
+                                @if(sex==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-3 control-label form-group"  >
+                                <label class="control-label" >推广人数:</label>
+                                <label>${numberPromoters}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">关联人数:</label>
+                                <label>${connectedPersons}</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>${accumulatedCommission}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >可提现佣金:</label>
+                                <label>${commission}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >已提现佣金:</label>
+                                <label>${withdrawnAmount}</label>
+                            </div>
+                        </div>
+
+                        <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/>
+                        <!--拒单记录表-->
+                        <#table id="TDriverCommissionConnectTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tDriver/tDriverCommission.js"></script>
+<script src="${ctxPath}/static/modular/system/tDriver/tDriverCommissionConnect.js"></script>
+<script type="text/javascript">
+    $(function () {
+        var queryData = {};
+        queryData['driverId'] = $("#driverId").val();
+        TDriverCommissionConnect.table.refresh({query: queryData});
+    });
+    laydate.render({
+        elem: '#createTime',
+        type: 'date',
+        range: true
+    });
+</script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetailConnect.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetailConnect.html
new file mode 100644
index 0000000..4932808
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverCommissionDetailConnect.html
@@ -0,0 +1,110 @@
+@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">
+                        <input hidden id="driverId" value="${driverId}">
+
+                        <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>${startTimeToEndTime}</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>${name}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >手机号:</label>
+                                <label>${phone}</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(sex==1){
+                                <label>男</label>
+                                @}
+                                @if(sex==2){
+                                <label>女</label>
+                                @}
+                                @if(sex==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-3 control-label form-group"  >
+                                <label class="control-label" >推广人数:</label>
+                                <label>${numberPromoters}</label>
+                            </div>
+                            <div class="initialLevel col-sm-2 control-label form-group" >
+                                <label class="control-label">关联人数:</label>
+                                <label>${connectedPersons}</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>${accumulatedCommission}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >可提现佣金:</label>
+                                <label>${commission}</label>
+                            </div>
+                            <div class="initialLevel col-sm-3 control-label form-group"  >
+                                <label class="control-label" >已提现佣金:</label>
+                                <label>${withdrawnAmount}</label>
+                            </div>
+                        </div>
+
+                        <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/>
+                        <!--拒单记录表-->
+                        <#table id="TOrderRefusalTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tDriver/tDriverCommission.js"></script>
+<script type="text/javascript">
+    $(function () {
+        var queryData = {};
+        queryData['driverId'] = $("#driverId").val();
+        TDriverCommissionConnect.table.refresh({query: queryData});
+    });
+</script>
+@}
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverDetail.html
index d77e2c5..112e499 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverDetail.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriverDetail.html
@@ -3,7 +3,7 @@
     <div class="col-sm-12">
         <div class="ibox float-e-margins">
             <div class="ibox-title">
-                <h5>管理</h5>
+                <h5>详情</h5>
             </div>
             <div class="ibox-content">
                 <div class="row row-lg">
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
index 90fb3a1..f65db61 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html
@@ -8,7 +8,8 @@
             <div class="ibox-content">
                 <div class="row row-lg">
                     <div class="col-sm-12">
-                        <input hidden id="areaId" value="${areaId}">
+                        <input hidden id="areaId">
+
                         <hr/>
                         <div class="initialLevel col-sm-12 control-label form-group"  >
                             <div style="background-color: gray;height: 35px;line-height: 35px">
@@ -58,7 +59,7 @@
                             <div class="initialLevel col-sm-3 control-label form-group"  >
                                 <span style="color:red">*</span>
                                 <label class="control-label" >服务区域:</label>
-                                <input id="area" onclick="TDriver.area()" name="area" placeholder="请选择" style="height: 30px" readonly required>
+                                <input id="area" onclick="TDriver.areaAdd()" name="area" placeholder="请选择" style="height: 30px" readonly required>
                             </div>
                         </div>
                         </div>
diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
index d2b958c..6bae198 100644
--- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
+++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html
@@ -59,7 +59,7 @@
                                 <div class="initialLevel col-sm-3 control-label form-group"  >
                                     <span style="color:red">*</span>
                                     <label class="control-label" >服务区域:</label>
-                                    <input id="area" value="${item.area}" onclick="TDriver.area()" name="area" placeholder="请选择" style="height: 30px" readonly required>
+                                    <input id="area" value="${item.area}" onclick="TDriver.areaUpdate()" name="area" placeholder="请选择" style="height: 30px" readonly required>
                                 </div>
                             </div>
                         </div>
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tAgent/tAgent_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tAgent/tAgent_info.js
index 3b61693..3077a02 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tAgent/tAgent_info.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tAgent/tAgent_info.js
@@ -69,11 +69,15 @@
 
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/tAgent/add", function(data){
+        if(data.code == 500){
+            Feng.error("添加失败!" + data.message + "!");
+            return false;
+        }
         Feng.success("添加成功!");
         window.parent.TAgent.table.refresh();
         TAgentInfoDlg.close();
     },function(data){
-        Feng.error("添加失败!" + data.responseJSON.message + "!");
+        Feng.error("添加失败!" + data.message + "!");
     });
     ajax.set(this.tAgentInfoData);
     ajax.start();
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js b/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js
index ba2c3b4..2041f60 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js
@@ -15,7 +15,7 @@
     return [
         {field: 'selectItem', radio: true},
             {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'},
-            {title: '创建时间', field: 'createtime', visible: true, align: 'center', valign: 'middle'},
+            {title: '创建时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'},
             {title: '优惠券名称', field: 'couponName', visible: true, align: 'center', valign: 'middle'},
             {title: '优惠券类型', field: 'couponType', visible: true, align: 'center', valign: 'middle',
                 formatter: function (value, row) {
@@ -29,20 +29,20 @@
             {title: '优惠券码', field: 'couponCode', visible: true, align: 'center', valign: 'middle'},
             {title: '优惠券状态', field: 'couponStatus', visible: true, align: 'center', valign: 'middle',
                 formatter: function (value, row) {
-                    if (row.couponType === 1){
+                    if (row.couponStatus === 1){
                         return '<span>未发放</span>'
-                    }else if (row.couponType === 2){
+                    }else if (row.couponStatus === 2){
                         return '<span>未使用</span>'
-                    }else if (row.couponType === 3){
+                    }else if (row.couponStatus === 3){
                         return '<span>已使用</span>'
-                    }else if (row.couponType === 4){
+                    }else if (row.couponStatus === 4){
                         return '<span>已过期</span>'
                     }
                 }
             },
             {title: '服务类型', field: 'couponServiceType', visible: true, align: 'center', valign: 'middle',
                 formatter: function (value, row) {
-                    if (row.couponType === 1){
+                    if (row.couponServiceType === 1){
                         return '<span>通用型</span>'
                     }
                 }
@@ -51,13 +51,23 @@
             {title: '优惠金额', field: 'couponPreferentialAmount', visible: true, align: 'center', valign: 'middle'},
             {title: '有效期', field: 'couponValidity', visible: true, align: 'center', valign: 'middle'},
             {title: '赠送数量', field: 'couponSendQuantity', visible: true, align: 'center', valign: 'middle'},
+            {title: '状态', field: 'couponState', visible: true, align: 'center', valign: 'middle',
+                formatter: function (value, row) {
+                    if (row.couponState === 1){
+                        return '<span>正常</span>'
+                    }else if (row.couponState === 2){
+                        return '<span>冻结</span>'
+                    }else if (row.couponState === 3){
+                        return '<span>已删除</span>'
+                    }
+                }},
             {title: '操作', visible: true, align: 'center', valign: 'middle',width:150,
                 formatter: function (value, row) {
-                    if (row.state === 1){
-                        return '<a href="#" onclick="TCoupon.stop('+row.id+','+row.status+')" style="color:red">停用</a>' +'&nbsp;' +
+                    if (row.couponState === 1){
+                        return '<a href="#" onclick="TCoupon.stop('+row.id+','+row.couponState+')" style="color:red">停用</a>' +'&nbsp;' +
                             '<a href="#" onclick="TCoupon.delete('+row.id+')" style="color:red">删除</a>'
-                    }else if (row.state === 2){
-                        return '<a href="#" onclick="TCoupon.start('+row.id+','+row.status+')" style="color:green">启用</a>' +'&nbsp;' +
+                    }else if (row.couponState === 2){
+                        return '<a href="#" onclick="TCoupon.start('+row.id+','+row.couponState+')" style="color:green">启用</a>' +'&nbsp;' +
                             '<a href="#" onclick="TCoupon.delete('+row.id+')" style="color:red">删除</a>'
                     }
                 }
@@ -134,7 +144,7 @@
     var queryData = {};
     queryData['couponType'] = $("#couponType").val();
     queryData['couponServiceType'] = $("#couponServiceType").val();
-    queryData['createtime'] = $("#createtime").val();
+    queryData['createTime'] = $("#createTime").val();
     TCoupon.table.refresh({query: queryData});
 };
 
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver.js b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver.js
index 84ef40e..add7c3d 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver.js
@@ -302,9 +302,9 @@
 };
 
 /**
- * 打开区域选择页面
+ * 打开区域选择页面编辑
  */
-TDriver.area = function () {
+TDriver.areaUpdate = function () {
 
     var area = $("#area").val();
     var areaId = $("#areaId").val();
@@ -315,7 +315,21 @@
         area: ['1000px', '270px'], //宽高
         fix: false, //不固定
         maxmin: true,
-        content: Feng.ctxPath + '/tDriver/areaPage?area='+area+'&areaId='+areaId
+        content: Feng.ctxPath + '/tDriver/areaPageUpdate?area='+area+'&areaId='+areaId
+    });
+    this.layerIndex = index;
+}
+/**
+ * 打开区域选择页面新增
+ */
+TDriver.areaAdd = function () {
+    var index = layer.open({
+        type: 2,
+        title: '区域选择',
+        area: ['1000px', '270px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tDriver/areaPageAdd'
     });
     this.layerIndex = index;
 }
@@ -383,10 +397,28 @@
 
     parent.$("#area").val(provinceName+'/'+cityName+'/'+districtName)
     parent.$("#areaId").val(provinceId+'/'+cityId+'/'+districtId)
+    console.log()
     TDriverInfoDlg.close();
 }
 
 /**
+ * 重置市区
+ */
+TDriver.resetArea = function () {
+
+    var city = document.getElementById('city');
+    var cityIndex= city.selectedIndex ;
+    console.log(city.options[cityIndex].innerText)
+    city.options[cityIndex].innerText = "请选择市";
+
+    var district = document.getElementById('district');
+    var districtIndex= district.selectedIndex ;
+    console.log(district.options[districtIndex].innerText)
+    district.options[districtIndex].innerText = "请选择区";
+
+}
+
+/**
  * 打开编辑页面
  */
 TDriver.updateInfo = function (id) {
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommission.js b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommission.js
index ac01992..f60041a 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommission.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommission.js
@@ -18,21 +18,11 @@
             {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
             {title: '手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'},
             {title: '所属代理商', field: 'agentName', visible: true, align: 'center', valign: 'middle'},
-            {title: '性别', field: 'sex', visible: false, align: 'center', valign: 'middle',
-                formatter: function (value, row) {
-                    if (row.sex === 1){
-                        return '<span>男</span>'
-                    }else if (row.sex === 2){
-                        return '<span>女</span>'
-                    }else {
-                        return '<span>未知</span>'
-                    }
-                }},
-            {title: '推广人数', field: 'cumulativeOrderCount', visible: true, align: 'center', valign: 'middle'},
-            {title: '关联人数', field: 'cumulativeOrderCount', visible: true, align: 'center', valign: 'middle'},
-            {title: '累计获得佣金', field: 'cumulativeOrderCount', visible: true, align: 'center', valign: 'middle'},
-            {title: '可提现佣金', field: 'monthOrderCount', visible: true, align: 'center', valign: 'middle'},
-            {title: '已提现金额', field: 'integral', visible: true, align: 'center', valign: 'middle'},
+            {title: '推广人数', field: 'numberPromoters', visible: true, align: 'center', valign: 'middle'},
+            {title: '关联人数', field: 'connectedPersons', visible: true, align: 'center', valign: 'middle'},
+            {title: '累计获得佣金', field: 'accumulatedCommission', visible: true, align: 'center', valign: 'middle'},
+            {title: '可提现佣金', field: 'commission', visible: true, align: 'center', valign: 'middle'},
+            {title: '已提现金额', field: 'withdrawnAmount', visible: true, align: 'center', valign: 'middle'},
             {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle',
                 formatter: function (value, row) {
                     if (row.status === 1){
@@ -45,11 +35,7 @@
                 }},
             {title: '操作', visible: true, align: 'center', valign: 'middle',width:150,
                 formatter: function (value, row) {
-                    if (row.status === 1){
-                        return '<a href="#" onclick="TDriverCommission.searchTDriverDetail('+row.id+')" style="color:green">详情</a>'
-                    }else if (row.status === 2){
-                        return '<a href="#" onclick="TDriverCommission.searchTDriverDetail('+row.id+')" style="color:green">详情</a>'
-                    }
+                    return '<a href="#" onclick="TDriverCommission.searchTDriverDetail('+row.id+')" style="color:green">详情</a>'
                 }
             }
     ];
@@ -111,7 +97,7 @@
         area: ['100%', '100%'], //宽高
         fix: false, //不固定
         maxmin: true,
-        content: Feng.ctxPath + '/tDriver/driverDetail?tDriverId=' + id
+        content: Feng.ctxPath + '/tDriver/commission/driverCommissionDetail?tDriverId=' + id
     });
     this.layerIndex = index;
 };
@@ -188,10 +174,10 @@
  * 司机信息导出
  */
 TDriverCommission.export=function(){
-    var createTime=$("#name").val()
+    var name=$("#name").val()
     var phone=$("#phone").val()
     var status=$("#status").val()
-    window.location.href=Feng.ctxPath + "/tDriver/export?name="+name
+    window.location.href=Feng.ctxPath + "/tDriver/export-commission?name="+name
         +"&status="+status
         +"&phone="+phone
     ;
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommissionConnect.js b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommissionConnect.js
new file mode 100644
index 0000000..c7ca600
--- /dev/null
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverCommissionConnect.js
@@ -0,0 +1,137 @@
+/**
+ * 管理初始化
+ */
+var TDriverCommissionConnect = {
+    id: "TDriverCommissionConnectTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TDriverCommissionConnect.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+            {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'},
+            {title: '关联层级', field: 'id', visible: false, align: 'center', valign: 'middle'},
+            {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
+            {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+            {title: '上级人员', field: 'inviterName', visible: true, align: 'center', valign: 'middle'},
+            {title: '上级人员电话', field: 'inviterPhone', visible: true, align: 'center', valign: 'middle'},
+            {title: '邀约人数', field: 'numberPromoters', visible: true, align: 'center', valign: 'middle'},
+            {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+                formatter: function (value, row) {
+                    if (row.status === 1){
+                        return '<span>正常</span>'
+                    }else if (row.status === 2){
+                        return '<span>冻结</span>'
+                    }else if (row.status === 3){
+                        return '<span>已删除</span>'
+                    }
+                }},
+        {title: '关联人数', field: 'connectedPersons', visible: true, align: 'center', valign: 'middle'},
+        {title: '操作', visible: true, align: 'center', valign: 'middle',width:150,
+                formatter: function (value, row) {
+                    return '<a href="#" onclick="TDriverCommissionConnect.searchTDriverDetail('+row.id+')" style="color:blue">查询</a>'
+                }
+            }
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TDriverCommissionConnect.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TDriverCommissionConnect.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加
+ */
+TDriverCommissionConnect.openAddTDriver = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tDriver/tDriver_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看详情
+ */
+TDriverCommissionConnect.openTDriverDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '详情',
+            area: ['100%', '100%'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/tDriver/tDriver_update/' + TDriver.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 打开查看详情(使用中)
+ */
+TDriverCommissionConnect.searchTDriverDetail = function (id) {
+    var index = layer.open({
+        type: 2,
+        title: '详情',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tDriver/commission/driverCommissionDetail?tDriverId=' + id
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 删除
+ */
+TDriverCommissionConnect.delete = function () {
+    if (this.check()) {
+        var ajax = new $ax(Feng.ctxPath + "/tDriver/delete", function (data) {
+            Feng.success("删除成功!");
+            TDriverCommissionConnect.table.refresh();
+        }, function (data) {
+            Feng.error("删除失败!" + data.responseJSON.message + "!");
+        });
+        ajax.set("tDriverId",this.seItem.id);
+        ajax.start();
+    }
+};
+
+
+/**
+ * 查询列表
+ */
+/*TDriverCommissionConnect.search = function () {
+    var queryData = {};
+    queryData['name'] = $("#name").val();
+    queryData['phone'] = $("#phone").val();
+    queryData['status'] = $("#status").val();
+    TDriverCommissionConnect.table.refresh({query: queryData});
+};*/
+
+$(function () {
+    var defaultColunms = TDriverCommissionConnect.initColumn();
+    var table = new BSTable(TDriverCommissionConnect.id, "/tDriver/commission/connect/list", defaultColunms);
+    table.setPaginationType("client");
+    TDriverCommissionConnect.table = table.init();
+});
diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js
index 00f7f6c..ab958df 100644
--- a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js
+++ b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js
@@ -66,6 +66,8 @@
     .set('idcardBack')
     .set('inviterType')
     .set('inviterId')
+    .set('inviterName')
+    .set('inviterPhone')
     .set('agentId')
     .set('branchOfficeId')
     .set('balance')
@@ -91,6 +93,10 @@
 
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/tDriver/add", function(data){
+        if(data.code == 500){
+            Feng.error("添加失败!" + data.message + "!");
+            return false;
+        }
         Feng.success("添加成功!");
         window.parent.TDriver.table.refresh();
         TDriverInfoDlg.close();
@@ -111,6 +117,10 @@
 
     //提交信息
     var ajax = new $ax(Feng.ctxPath + "/tDriver/update", function(data){
+        if(data.code == 500){
+            Feng.error("修改失败!" + data.message + "!");
+            return false;
+        }
         Feng.success("修改成功!");
         window.parent.TDriver.table.refresh();
         TDriverInfoDlg.close();

--
Gitblit v1.7.1