From 370d23bdd53cc6dab3cfe0949b0e3a7746dfc110 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 07 八月 2025 20:42:15 +0800 Subject: [PATCH] 后台代码 --- ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java | 263 +++++++++++++++++ ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/driverIncomeData.html | 9 ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html | 46 +++ ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tIncome/balance.js | 135 +++++++++ ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java | 1 ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tPubWithdrawal/tPubWithdrawal.html | 3 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml | 38 + ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java | 9 ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html | 2 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java | 17 + ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html | 4 ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html | 4 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java | 4 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java | 8 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java | 4 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml | 40 ++ ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java | 10 ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js | 3 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java | 9 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java | 142 ++++++++- ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/yesDriver.js | 103 ++++++ ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverMapper.java | 4 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubTransactionDetails.java | 2 ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/report/tDriverIncomeTable.js | 23 - ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java | 1 25 files changed, 804 insertions(+), 80 deletions(-) diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java index 35b8d36..bf91ce1 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TIncomeController.java @@ -1,6 +1,7 @@ package com.stylefeng.guns.modular.system.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.common.constant.factory.PageFactory; @@ -8,8 +9,8 @@ import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ExcelExportUtil; import com.stylefeng.guns.core.util.SinataUtil; -import com.stylefeng.guns.modular.system.model.Income; -import com.stylefeng.guns.modular.system.service.IIncomeService; +import com.stylefeng.guns.modular.system.model.*; +import com.stylefeng.guns.modular.system.service.*; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -21,10 +22,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * 控制器 @@ -40,6 +41,14 @@ @Autowired private IIncomeService tIncomeService; + @Autowired + private ITOrderPrivateCarService orderPrivateCarService; + @Autowired + private ITPubTransactionDetailsService pubTransactionDetailsService; + @Autowired + private ITPubWithdrawalService pubWithdrawalService; + @Autowired + private ITDriverService driverService; /** * 跳转到首页 @@ -48,6 +57,11 @@ public String index(Integer id, Model model) { model.addAttribute("id", id); return PREFIX + "tIncome.html"; + } + @RequestMapping("/balance") + public String balance(Integer id, Model model) { + model.addAttribute("id", id); + return PREFIX + "balance.html"; } @RequestMapping("driverWork") @@ -101,6 +115,243 @@ page.setRecords(tIncomeService.getList(page,id)); return super.packForBT(page); } + + + /** + * 司机余额修改 + */ + @RequestMapping(value = "/changeMoney") + @ResponseBody + public Object oneChange(Integer id ,Integer type,String mount,String remark) { + TDriver tDriver = driverService.selectById(id); + TPubTransactionDetails tPubTransactionDetails = new TPubTransactionDetails(); + tPubTransactionDetails.setUserId(tDriver.getId()); + tPubTransactionDetails.setInsertTime(new Date()); + tPubTransactionDetails.setRemark(remark); + tPubTransactionDetails.setMoney(new BigDecimal(mount)); + tPubTransactionDetails.setState(type); + tPubTransactionDetails.setType(1); + tPubTransactionDetails.setUserType(2); + switch ( type){ + case 1: + tPubTransactionDetails.setOrderType(6); + break; + case 2: + tPubTransactionDetails.setOrderType(7); + break; + } + pubTransactionDetailsService.insert(tPubTransactionDetails); + // type=1增加 type=2减少 + switch (type){ + case 1: + BigDecimal bigDecimal = new BigDecimal(mount); + + BigDecimal add = tDriver.getBalance().add(bigDecimal); + tDriver.setBalance(add); + break; + case 2: + BigDecimal bigDecimal1 = new BigDecimal(mount); + BigDecimal subtract = tDriver.getBalance().subtract(bigDecimal1); + int comparisonResult = subtract.compareTo(BigDecimal.ZERO); + // 小于0 设置为0 不要为负数 + if (comparisonResult<0){ +// tDriver.setBalance(BigDecimal.ZERO); + + return 502; + }else{ + tDriver.setBalance(subtract); + } + break; + } + driverService.updateById(tDriver); + return SUCCESS_TIP; + } + /** + * 余额明细列表 + */ + @RequestMapping(value = "/listBalance") + @ResponseBody + public Object list(Integer id,String insertTime ,Integer handleType) { + String beginTime = null; + String endTime = null; + if (SinataUtil.isNotEmpty(insertTime)){ + String[] timeArray = insertTime.split(" - "); + beginTime = timeArray[0]; + endTime = timeArray[1]; + } + List<TOrderPrivateCar> tOrderPrivateCars = orderPrivateCarService.selectList(null); + + List<Map<String, Object>> res = new ArrayList<>(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + // 跑单收入 + if (handleType == null || handleType == 1){ + Wrapper<Income> eq = new EntityWrapper<Income>() + .eq("objectId", id) + .eq("type", 2) + .eq("userType", 2); + if (beginTime!=null){ + eq.ge("insertTime", beginTime); + eq.le("insertTime", endTime); + } + List<Income> incomes = tIncomeService.selectList(eq); + for (Income income : incomes) { + Map<String, Object> temp = new HashMap<>(); + String times = simpleDateFormat.format(income.getInsertTime()); + if (income.getIncomeId()!=null){ + TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCars.stream().filter(e -> e.getId() + .equals(income.getIncomeId())).findFirst().orElse(null); + temp.put("orderNumber",tOrderPrivateCar==null?null:tOrderPrivateCar.getOrderNum()); + temp.put("remark",tOrderPrivateCar.getRemark()); + } + temp.put("times",times); + temp.put("handleType","车费收入"); + temp.put("amount",income.getMoney()); + temp.put("withType","订单号"); + // todo 新增收入明细时 需要存储当前账户余额 + temp.put("balance",0); + res.add(temp); + } + } + // 司机专车订单ids + List<Integer> orderIds = orderPrivateCarService.selectList(new EntityWrapper<TOrderPrivateCar>() + .eq("driverId", id)).stream() + .map(TOrderPrivateCar::getId).collect(Collectors.toList()); + if (orderIds.isEmpty()){ + orderIds.add(-1); + } + // 车费平台手续费扣除 + if (handleType == null || handleType == 2){ + Wrapper<Income> eq = new EntityWrapper<Income>() + .eq("type", 2) + .in("incomeId",orderIds) + .eq("userType", 1); + if (beginTime!=null){ + eq.ge("insertTime", beginTime); + eq.le("insertTime", endTime); + } + List<Income> incomes = tIncomeService.selectList(eq); + for (Income income : incomes) { + Map<String, Object> temp = new HashMap<>(); + String times = simpleDateFormat.format(income.getInsertTime()); + if (income.getIncomeId()!=null){ + TOrderPrivateCar tOrderPrivateCar = tOrderPrivateCars.stream().filter(e -> e.getId() + .equals(income.getIncomeId())).findFirst().orElse(null); + temp.put("orderNumber",tOrderPrivateCar==null?null:tOrderPrivateCar.getOrderNum()); + temp.put("remark",tOrderPrivateCar==null?"":tOrderPrivateCar.getRemark()); + } + temp.put("times",times); + temp.put("handleType","车费平台手续费扣除"); + temp.put("amount",income.getMoney()); + temp.put("withType","订单号"); + // todo 新增收入明细时 需要存储当前账户余额 + temp.put("balance",0); + res.add(temp); + } + } + // 充值 + if (handleType == null || handleType == 3){ + Wrapper<TPubTransactionDetails> eq = new EntityWrapper<TPubTransactionDetails>() + .eq("userId", id) + .eq("orderType", 5) + .eq("userType", 2); + if (beginTime!=null){ + eq.ge("insertTime", beginTime); + eq.le("insertTime", endTime); + } + List<TPubTransactionDetails> pubTransactionDetails = pubTransactionDetailsService.selectList(eq); + for (TPubTransactionDetails details : pubTransactionDetails) { + Map<String, Object> temp = new HashMap<>(); + String times = simpleDateFormat.format(details.getInsertTime()); + temp.put("orderNumber",""); + temp.put("remark",""); + temp.put("times",times); + temp.put("handleType","充值"); + temp.put("amount",details.getMoney()); + temp.put("withType","交易流水号"); + // todo 新增收入明细时 需要存储当前账户余额 + temp.put("balance",0); + res.add(temp); + } + } + // 提现 + if (handleType == null || handleType == 4){ + Wrapper<TPubWithdrawal> eq = new EntityWrapper<TPubWithdrawal>() + .eq("userId", id) + .eq("state", 2) + .eq("userType", 2); + if (beginTime!=null){ + eq.ge("insertTime", beginTime); + eq.le("insertTime", endTime); + } + List<TPubWithdrawal> pubTransactionDetails = pubWithdrawalService.selectList(eq); + for (TPubWithdrawal details : pubTransactionDetails) { + Map<String, Object> temp = new HashMap<>(); + String times = simpleDateFormat.format(details.getInsertTime()); + temp.put("orderNumber",details.getOrderNumber()); + temp.put("remark",details.getRemark()); + temp.put("times",times); + temp.put("handleType","提现"); + temp.put("amount",details.getMoney()); + temp.put("withType","交易流水号"); + // todo 新增收入明细时 需要存储当前账户余额 + temp.put("balance",0); + res.add(temp); + } + } + // 平台充值 + if (handleType == null || handleType == 6){ + Wrapper<TPubTransactionDetails> eq = new EntityWrapper<TPubTransactionDetails>() + .eq("userId", id) + .eq("orderType", 6) + .eq("userType", 2); + if (beginTime!=null){ + eq.ge("insertTime", beginTime); + eq.le("insertTime", endTime); + } + List<TPubTransactionDetails> pubTransactionDetails = pubTransactionDetailsService.selectList(eq); + for (TPubTransactionDetails details : pubTransactionDetails) { + Map<String, Object> temp = new HashMap<>(); + String times = simpleDateFormat.format(details.getInsertTime()); + temp.put("orderNumber",""); + temp.put("remark",""); + temp.put("times",times); + temp.put("handleType","平台充值"); + temp.put("amount",details.getMoney()); + temp.put("withType","无"); + // todo 新增收入明细时 需要存储当前账户余额 + temp.put("balance",0); + res.add(temp); + } + } + // 平台扣除 + if (handleType == null || handleType == 7){ + Wrapper<TPubTransactionDetails> eq = new EntityWrapper<TPubTransactionDetails>() + .eq("userId", id) + .eq("orderType", 7) + .eq("userType", 2); + if (beginTime!=null){ + eq.ge("insertTime", beginTime); + eq.le("insertTime", endTime); + } + List<TPubTransactionDetails> pubTransactionDetails = pubTransactionDetailsService.selectList(eq); + for (TPubTransactionDetails details : pubTransactionDetails) { + Map<String, Object> temp = new HashMap<>(); + String times = simpleDateFormat.format(details.getInsertTime()); + + temp.put("orderNumber",""); + temp.put("remark",""); + temp.put("times",times); + temp.put("handleType","平台扣除"); + temp.put("amount",details.getMoney()); + temp.put("withType","无"); + // todo 新增收入明细时 需要存储当前账户余额 + temp.put("balance",0); + res.add(temp); + } + } + return res; + } @RequestMapping("/getExcel") @ResponseBody public void getExcel( diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java index 5191e45..f11c269 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/ReportController.java @@ -9,7 +9,9 @@ import com.stylefeng.guns.core.util.ExcelExportUtil; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.model.Income; import com.stylefeng.guns.modular.system.model.TCompany; +import com.stylefeng.guns.modular.system.model.TOrderPrivateCar; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -23,11 +25,13 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 报表控制器 @@ -52,6 +56,10 @@ @Autowired private ITDriverService driverService; + @Autowired + private IIncomeService incomeService; + @Autowired + private ITOrderPrivateCarService orderPrivateCarService; @@ -459,7 +467,7 @@ */ @ResponseBody @RequestMapping(value = "/queryDriverIncomeData", method = RequestMethod.POST) - public Object queryDriverIncomeData(Integer type, String time, Integer companyId){ + public Object queryDriverIncomeData(String driverName, String time, Integer companyId){ try { String start = null; String end = null; @@ -468,7 +476,53 @@ end = time.split(" - ")[1]; } Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); - page.setRecords(driverService.queryDriverIncomeData(page,type,start,end,companyId)); + List<Map<String, Object>> maps = driverService.queryDriverIncomeData(page, driverName, start, end, companyId); + EntityWrapper<Income> incomeEntityWrapper = new EntityWrapper<>(); + incomeEntityWrapper.eq("type",2); + incomeEntityWrapper.isNotNull("money"); + if (start!=null){ + incomeEntityWrapper.ge("insertTime", start); + incomeEntityWrapper.le("insertTime", end); + } + + List<Income> incomes = incomeService.selectList( + incomeEntityWrapper + ); + EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>(); + driverEntityWrapper.isNotNull("driverId"); + if (start!=null){ + driverEntityWrapper.ge("insertTime", start); + driverEntityWrapper.le("insertTime", end); + } + List<TOrderPrivateCar> tOrderPrivateCars = orderPrivateCarService.selectList(driverEntityWrapper); + + for (Map<String, Object> map : maps) { + Double driverMoney = 0.0; + Double platformMoney = 0.0; + + // 司机跑单收入 + List<Income> driver = incomes.stream().filter(e -> e.getUserType().equals(2) + &&map.get("id").toString().equals(e.getObjectId().toString())).collect(Collectors.toList()); + for (Income income : driver) { + driverMoney+=income.getMoney(); + } + String driverId = map.get("id").toString(); + // 查询司机订单 + List<Integer> orderIds = tOrderPrivateCars.stream().filter(e -> e.getDriverId().equals(Integer.parseInt(driverId))) + .map(TOrderPrivateCar::getId).collect(Collectors.toList()); + // 平台收入 + List<Income> platform = incomes.stream().filter(e -> e.getUserType().equals(1) + && orderIds.contains(e.getObjectId())).collect(Collectors.toList()); + for (Income income : platform) { + platformMoney+=income.getMoney(); + } + // driverMoney保留两位小数 + driverMoney = new BigDecimal(driverMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + platformMoney = new BigDecimal(platformMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + map.put("driverMoney", driverMoney); + map.put("platformMoney", platformMoney); + } + page.setRecords(maps); return super.packForBT(page); }catch (Exception e){ e.printStackTrace(); @@ -480,20 +534,66 @@ * 导出司机收益排行 * @author yxh * @date 2021/4/7 9:32 - * @param type + * @param driverName * @param time * @param companyId * @param response */ @RequestMapping(value = "/downloadDriverIncomeData", method = RequestMethod.GET) - public void downloadDriverIncomeData(Integer type, String time, Integer companyId, HttpServletRequest request, HttpServletResponse response){ + public void downloadDriverIncomeData(String driverName, String time, Integer companyId, HttpServletRequest request, HttpServletResponse response){ String start = null; String end = null; if(ToolUtil.isNotEmpty(time)){ start = time.split(" - ")[0]; end = time.split(" - ")[1]; } - List<Map<String, Object>> list = driverService.queryDriverIncomeDataNoPage(type,start,end,companyId); + List<Map<String, Object>> list = driverService.queryDriverIncomeDataNoPage(driverName,start,end,companyId); + EntityWrapper<Income> incomeEntityWrapper = new EntityWrapper<>(); + incomeEntityWrapper.eq("type",2); + incomeEntityWrapper.isNotNull("money"); + if (start!=null){ + incomeEntityWrapper.ge("insertTime", start); + incomeEntityWrapper.le("insertTime", end); + } + + List<Income> incomes = incomeService.selectList( + incomeEntityWrapper + ); + EntityWrapper<TOrderPrivateCar> driverEntityWrapper = new EntityWrapper<>(); + driverEntityWrapper.isNotNull("driverId"); + + if (start!=null){ + driverEntityWrapper.ge("insertTime", start); + driverEntityWrapper.le("insertTime", end); + } + List<TOrderPrivateCar> tOrderPrivateCars = orderPrivateCarService.selectList(driverEntityWrapper); + + for (Map<String, Object> map : list) { + Double driverMoney = 0.0; + Double platformMoney = 0.0; + + // 司机跑单收入 + List<Income> driver = incomes.stream().filter(e -> e.getUserType().equals(2) + &&map.get("id").toString().equals(e.getObjectId().toString())).collect(Collectors.toList()); + for (Income income : driver) { + driverMoney+=income.getMoney(); + } + String driverId = map.get("id").toString(); + // 查询司机订单 + List<Integer> orderIds = tOrderPrivateCars.stream().filter(e -> e.getDriverId().equals(Integer.parseInt(driverId))) + .map(TOrderPrivateCar::getId).collect(Collectors.toList()); + // 平台收入 + List<Income> platform = incomes.stream().filter(e -> e.getUserType().equals(1) + && orderIds.contains(e.getObjectId())).collect(Collectors.toList()); + for (Income income : platform) { + platformMoney+=income.getMoney(); + } + // driverMoney保留两位小数 + driverMoney = new BigDecimal(driverMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + platformMoney = new BigDecimal(platformMoney).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + map.put("driverMoney", driverMoney); + map.put("platformMoney", platformMoney); + } // 表格数据 List<List<String>> dataList = new ArrayList<>(); // 表头行 @@ -501,11 +601,11 @@ shellList.add("姓名"); shellList.add("账号/手机号"); shellList.add("所属分公司"); - shellList.add("订单总数"); - shellList.add("未支付订单数"); - shellList.add("取消订单数"); + shellList.add("已完成订单数"); shellList.add("订单总金额"); - shellList.add("未支付订金额"); + shellList.add("实付金额"); + shellList.add("司机收入"); + shellList.add("平台手续费"); dataList.add(shellList); for (Map<String, Object> map : list) { @@ -531,23 +631,23 @@ }else{ shellList.add("0"); } - if(SinataUtil.isNotEmpty(map.get("privateCarNotPayNum"))){ - shellList.add(map.get("privateCarNotPayNum").toString()); - }else{ - shellList.add("0"); - } - if(SinataUtil.isNotEmpty(map.get("privateCarcancelNum"))){ - shellList.add(map.get("privateCarcancelNum").toString()); - }else{ - shellList.add("0"); - } if(SinataUtil.isNotEmpty(map.get("privateCarTotalMoney"))){ shellList.add(map.get("privateCarTotalMoney").toString()); }else{ shellList.add("0"); } - if(SinataUtil.isNotEmpty(map.get("privateCarNotPayMoney"))){ - shellList.add(map.get("privateCarNotPayMoney").toString()); + if(SinataUtil.isNotEmpty(map.get("payMoney"))){ + shellList.add(map.get("payMoney").toString()); + }else{ + shellList.add("0"); + } + if(SinataUtil.isNotEmpty(map.get("driverMoney"))){ + shellList.add(map.get("driverMoney").toString()); + }else{ + shellList.add("0"); + } + if(SinataUtil.isNotEmpty(map.get("platformMoney"))){ + shellList.add(map.get("platformMoney").toString()); }else{ shellList.add("0"); } diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java index b5a041b..683b32e 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java @@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.system.controller.general; +import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; @@ -17,6 +18,7 @@ import com.stylefeng.guns.modular.system.service.ITSystemNoticeService; import com.stylefeng.guns.modular.system.util.HttpRequestUtil; import com.stylefeng.guns.modular.system.util.PushURL; +import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.alipay.AlipayUtils; import com.stylefeng.guns.modular.system.util.alipay.UUIDUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -137,8 +139,19 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId()); - System.err.println("支付宝提现返回信息"+AlipayUtils.aliWithdrawal(code,tPubWithdrawal.getMoney()+"",tPubWithdrawal.getCode(),tDriver.getIdCard())); - tPubWithdrawal.setOutOrderNo( code); + String s = AlipayUtils.aliWithdrawal(code, tPubWithdrawal.getMoney() + "", tPubWithdrawal.getCode(), tDriver.getIdCard()); + JSONObject res = JSONObject.parseObject(s); + JSONObject alipayFundTransUniTransferResponse = res.getJSONObject("alipay_fund_trans_uni_transfer_response"); + if (alipayFundTransUniTransferResponse!=null){ + if (alipayFundTransUniTransferResponse.getString("status").equals("Success")){ + String string = alipayFundTransUniTransferResponse.getString("order_id"); + tPubWithdrawal.setOrderNumber(string); + }else{ + return ResultUtil.error("提现失败:"+alipayFundTransUniTransferResponse.getString("msg")); + } + } + System.err.println("支付宝提现返回信息"+s); + tPubWithdrawal.setOutOrderNo(code); tPubWithdrawalService.updateById(tPubWithdrawal); }else if (3 == state){ //拒绝提现 stateObj = 2; diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java index fce77c8..4c185fd 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java @@ -109,6 +109,15 @@ /** * 跳转到修改专车订单 */ + @RequestMapping("/tOrderPrivateCar_orderDetailByOrderNumber/{orderNumber}") + public String tOrderPrivateCarUpdate(@PathVariable String orderNumber, Model model) { + Map<String, Object> item = tOrderPrivateCarService.getPrivateCarOrderDetailByOrderNumber(orderNumber); + model.addAttribute("item",item); + return PREFIX + "tOrderPrivateCar_orderDetail.html"; + } + /** + * 跳转到修改专车订单 + */ @RequestMapping("/toChangeMoney/{tOrderPrivateCarId}") public String toChangeMoney(@PathVariable Integer tOrderPrivateCarId, Model model) { Map<String, Object> item = tOrderPrivateCarService.getPrivateCarOrderDetailById(tOrderPrivateCarId); diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverMapper.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverMapper.java index a27bf1e..848dea4 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverMapper.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TDriverMapper.java @@ -118,7 +118,7 @@ * @param companyId * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> */ - List<Map<String, Object>> queryDriverIncomeData(@Param("page")Page<Map<String, Object>> page, @Param("type")Integer type, @Param("start")String start, @Param("end")String end, @Param("companyId")Integer companyId); + List<Map<String, Object>> queryDriverIncomeData(@Param("page")Page<Map<String, Object>> page, @Param("driverName")String driverName, @Param("start")String start, @Param("end")String end, @Param("companyId")Integer companyId); /** * @@ -130,7 +130,7 @@ * @param companyId * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> */ - List<Map<String, Object>> queryDriverIncomeDataNoPage(@Param("type")Integer type, @Param("start")String start, @Param("end")String end, @Param("companyId")Integer companyId); + List<Map<String, Object>> queryDriverIncomeDataNoPage(@Param("driverName")String driverName, @Param("start")String start, @Param("end")String end, @Param("companyId")Integer companyId); /** * 修改司机分组id diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java index 4fe0780..7742eed 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java @@ -60,6 +60,7 @@ * @return */ Map<String,Object> getPrivateCarOrderDetailById(@Param("orderId") Integer orderId); + Map<String,Object> getPrivateCarOrderDetailByOrderNumber(@Param("orderNumber") String orderNumber); List<Map<String,Object>> getPrivateCarOrderListNoPage( @Param("beginTime") String beginTime, diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml index 25a7bb1..0f24bf7 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TDriverMapper.xml @@ -341,21 +341,19 @@ td.`name` as driverName, tc1.name as companyName, tc2.name as franchiseeName, - <if test="1 == type"> topc1.num as privateCarTotalNum, IFNULL(topc2.num, 0) as privateCarNotPayNum, IFNULL(topc3.num, 0) as privateCarcancelNum, IFNULL(topc4.taxiMoney, 0) as privateCarTotalMoney, IFNULL(topc5.taxiMoney, 0) as privateCarNotPayMoney, - </if> + IFNULL(topc6.payMoney, 0) as payMoney, td.state as driverState, td.phone as driverPhone FROM t_driver td LEFT JOIN (SELECT id,name FROM t_company WHERE FIND_IN_SET(type, '1,2') AND flag != 3 ) AS tc1 ON td.companyId=tc1.id LEFT JOIN ( SELECT id,name FROM t_company WHERE type = 3 AND flag != 3 ) AS tc2 ON tc2.id = td.franchiseeId - <if test="1 == type"> - INNER JOIN ( SELECT COUNT(id) AS num, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '7,8,9,10,12') + INNER JOIN ( SELECT COUNT(id) AS num, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '8,9') <if test="null != start and '' != start and null != end and '' != end"> and DATE_FORMAT(travelTime, '%Y-%m-%d') between #{start} and #{end} </if> @@ -373,7 +371,7 @@ </if> GROUP BY driverId ) AS topc3 ON topc3.driverId = td.id - LEFT JOIN ( SELECT SUM(orderMoney) AS taxiMoney, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '7,8,9,12') + LEFT JOIN ( SELECT SUM(orderMoney) AS taxiMoney, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '8,9') <if test="null != start and '' != start and null != end and '' != end"> and DATE_FORMAT(travelTime, '%Y-%m-%d') between #{start} and #{end} </if> @@ -385,10 +383,19 @@ </if> GROUP BY driverId ) AS topc5 ON topc5.driverId = td.id - </if> + LEFT JOIN ( SELECT SUM(payMoney) AS payMoney, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '8,9') + <if test="null != start and '' != start and null != end and '' != end"> + and DATE_FORMAT(travelTime, '%Y-%m-%d') between #{start} and #{end} + </if> + GROUP BY driverId + ) AS topc6 ON topc6.driverId = td.id <where> <if test="null!= companyId and '' != companyId"> td.companyId=#{companyId} or td.franchiseeId=#{companyId} + </if> + + <if test="null!= driverName and '' != driverName"> + and td.name LIKE CONCAT('%',#{driverName},'%') </if> </where> </select> @@ -400,21 +407,19 @@ td.`name` as driverName, tc1.name as companyName, tc2.name as franchiseeName, - <if test="1 == type"> topc1.num as privateCarTotalNum, IFNULL(topc2.num, 0) as privateCarNotPayNum, IFNULL(topc3.num, 0) as privateCarcancelNum, IFNULL(topc4.taxiMoney, 0) as privateCarTotalMoney, IFNULL(topc5.taxiMoney, 0) as privateCarNotPayMoney, - </if> + IFNULL(topc6.payMoney, 0) as payMoney, td.state as driverState, td.phone as driverPhone FROM t_driver td LEFT JOIN (SELECT id,name FROM t_company WHERE FIND_IN_SET(type, '1,2') AND flag != 3 ) AS tc1 ON td.companyId=tc1.id LEFT JOIN ( SELECT id,name FROM t_company WHERE type = 3 AND flag != 3 ) AS tc2 ON tc2.id = td.franchiseeId - <if test="1 == type"> - INNER JOIN ( SELECT COUNT(id) AS num, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '7,8,9,10,12') + INNER JOIN ( SELECT COUNT(id) AS num, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '8,9') <if test="null != start and '' != start and null != end and '' != end"> and DATE_FORMAT(travelTime, '%Y-%m-%d') between #{start} and #{end} </if> @@ -432,7 +437,7 @@ </if> GROUP BY driverId ) AS topc3 ON topc3.driverId = td.id - LEFT JOIN ( SELECT SUM(orderMoney) AS taxiMoney, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '7,8,9,12') + LEFT JOIN ( SELECT SUM(orderMoney) AS taxiMoney, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '8,9') <if test="null != start and '' != start and null != end and '' != end"> and DATE_FORMAT(travelTime, '%Y-%m-%d') between #{start} and #{end} </if> @@ -444,14 +449,21 @@ </if> GROUP BY driverId ) AS topc5 ON topc5.driverId = td.id + LEFT JOIN ( SELECT SUM(payMoney) AS payMoney, driverId FROM t_order_private_car WHERE FIND_IN_SET(state, '8,9') + <if test="null != start and '' != start and null != end and '' != end"> + and DATE_FORMAT(travelTime, '%Y-%m-%d') between #{start} and #{end} </if> + GROUP BY driverId + ) AS topc6 ON topc6.driverId = td.id where 1=1 <if test="null!= companyId and '' != companyId"> and td.companyId=#{companyId} or td.franchiseeId=#{companyId} </if> - <if test="1 == type"> - order by privateCarTotalNum desc,privateCarTotalMoney desc + <if test="null!= driverName and '' != driverName"> + and td.name LIKE CONCAT('%',#{driverName},'%') </if> + order by privateCarTotalNum desc,privateCarTotalMoney desc + </select> diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml index cea6a78..19b8307 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml @@ -374,6 +374,46 @@ LEFT JOIN (SELECT * FROM t_income where userType = 2 and type = 2 and orderType = 1 GROUP BY incomeId) as income2 on income2.incomeId = ot.id where ot.id = #{orderId} </select> + <!--根据专车订单编号获取专车订单详情--> + <select id="getPrivateCarOrderDetailByOrderNumber" resultType="map"> + SELECT + DATE_FORMAT(ot.insertTime,'%Y-%m-%d %H:%i') as insertTimeStr, + DATE_FORMAT(ot.travelTime,'%Y-%m-%d %H:%i') as travelTimeStr, + DATE_FORMAT(ot.boardingTime,'%Y-%m-%d %H:%i') as boardingTimeStr, + DATE_FORMAT(ot.getoffTime,'%Y-%m-%d %H:%i') as getoffTimeStr, + case when ot.orderSource = 1 then 'APP下单' + when ot.orderSource = 2 then '扫码下单' + when ot.orderSource = 3 then '小程序下单' + when ot.orderSource = 4 then '司机下单' + when ot.orderSource = 5 then '调度下单' else '' end orderSourceStr, + ui.nickName as userName,ui.phone as userPhone, + case when ot.payType = 1 then '微信' + when ot.payType = 2 then '支付宝' + when ot.payType = 3 then '余额' else '' end as payTypeStr, + + case when ot.isFree = 2 then ot.orderMoney + when ot.freeMoney > ot.orderMoney then ot.orderMoney else ot.freeMoney end as freeMoney1, + sc.`name` as serverCarModel, + case when income1.type = 1 then income1.money else 0 end as platIncome, + case when income1.type = 2 then income1.money else 0 end as companyIncome, + case when income1.type = 3 then income1.money else 0 end as franchiseeIncome, + IFNULL(income2.money,0) as driverIncome, + CONCAT(di.`name`,'-',di.phone) as driver, + CONCAT(cb.`name`,'-',ci.carLicensePlate) as car, + cc.`name` as companyName,ot.* + FROM t_order_private_car as ot + LEFT JOIN t_user as ui on ui.id = ot.userId + LEFT JOIN t_driver as di on di.id = ot.driverId + LEFT JOIN t_car as ci on ci.id= ot.carId + LEFT JOIN t_car_brand as cb on cb.id = ci.carBrandId + LEFT JOIN t_company as cc on cc.id = ot.companyId + LEFT JOIN t_server_carmodel as sc on sc.id = ot.serverCarModelId + LEFT JOIN (SELECT ii.money,ii.incomeId,cc.type FROM t_income as ii + LEFT JOIN t_company as cc on ii.objectId = cc.id + where ii.userType = 1 and ii.type = 2 and ii.orderType = 1 GROUP BY ii.incomeId) as income1 on income1.incomeId = ot.id + LEFT JOIN (SELECT * FROM t_income where userType = 2 and type = 2 and orderType = 1 GROUP BY incomeId) as income2 on income2.incomeId = ot.id + where ot.orderNum = #{orderNumber} + </select> <!--根据条件查询专车订单列表noPage--> diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java index 357f65f..71a0d7e 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java @@ -56,6 +56,7 @@ * 订单号 */ private String orderNum; + private String remark; /** * 下单地点经度 */ @@ -996,4 +997,12 @@ public void setIsException(Integer isException) { this.isException = isException; } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } } diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubTransactionDetails.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubTransactionDetails.java index 90b830b..e04f67c 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubTransactionDetails.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubTransactionDetails.java @@ -55,7 +55,7 @@ */ private Integer userType; /** - * 订单类型(1=专车,2=出租车,3=城际,4=小件物流,5=余额充值) + * 订单类型(1=专车,2=出租车,3=城际,4=小件物流,5=余额充值 6平台充值 7平台扣除) */ private Integer orderType; /** diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java index 4a8680e..171614f 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TPubWithdrawal.java @@ -44,6 +44,8 @@ private BigDecimal money; // 提现订单号 private String outOrderNo; + // 提现流水号 + private String orderNumber; /** * 状态(1=待处理,2=成功,3=失败) */ @@ -213,4 +215,12 @@ public void setOutOrderNo(String outOrderNo) { this.outOrderNo = outOrderNo; } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber; + } } diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java index 001f8be..d2bb475 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITDriverService.java @@ -117,7 +117,7 @@ * @param companyId * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> */ - List<Map<String, Object>> queryDriverIncomeData(Page<Map<String, Object>> page, Integer type, String start,String end, Integer companyId); + List<Map<String, Object>> queryDriverIncomeData(Page<Map<String, Object>> page, String driverName, String start,String end, Integer companyId); /** * @@ -129,7 +129,7 @@ * @param companyId * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>> */ - List<Map<String, Object>> queryDriverIncomeDataNoPage(Integer type, String start, String end, Integer companyId); + List<Map<String, Object>> queryDriverIncomeDataNoPage(String driverName, String start, String end, Integer companyId); /** * 修改司机分组id diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java index 12f67f8..7c9a8b5 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java @@ -60,6 +60,7 @@ * @return */ Map<String,Object> getPrivateCarOrderDetailById(@Param("orderId") Integer orderId); + Map<String,Object> getPrivateCarOrderDetailByOrderNumber(@Param("orderNumber") String orderNumber); /** * 专车订单列表不分页 diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java index 36b17a4..e96d729 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TDriverServiceImpl.java @@ -67,13 +67,13 @@ } @Override - public List<Map<String, Object>> queryDriverIncomeData(Page<Map<String, Object>> page, Integer type, String start,String end, Integer companyId) { - return this.baseMapper.queryDriverIncomeData(page,type,start,end,companyId); + public List<Map<String, Object>> queryDriverIncomeData(Page<Map<String, Object>> page, String driverName, String start,String end, Integer companyId) { + return this.baseMapper.queryDriverIncomeData(page,driverName,start,end,companyId); } @Override - public List<Map<String, Object>> queryDriverIncomeDataNoPage(Integer type, String start, String end, Integer companyId) { - return this.baseMapper.queryDriverIncomeDataNoPage(type,start,end,companyId); + public List<Map<String, Object>> queryDriverIncomeDataNoPage(String driverName, String start, String end, Integer companyId) { + return this.baseMapper.queryDriverIncomeDataNoPage(driverName,start,end,companyId); } @Override diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java index 4223ebd..4d012c7 100644 --- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java +++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java @@ -36,6 +36,10 @@ public Map<String, Object> getPrivateCarOrderDetailById(Integer orderId) { return this.baseMapper.getPrivateCarOrderDetailById(orderId); } + @Override + public Map<String, Object> getPrivateCarOrderDetailByOrderNumber(String orderNumber) { + return this.baseMapper.getPrivateCarOrderDetailByOrderNumber(orderNumber); + } @Override public List<Map<String, Object>> getPrivateCarOrderListNoPage(String beginTime, String endTime, Integer roleType, Integer objectId, String orderNum, Integer orderSource, String userName, String userPhone, String passengers, String passengersPhone, Integer serverCarModelId, String driver, Integer state, diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/driverIncomeData.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/driverIncomeData.html index c97f7a8..a0b2837 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/driverIncomeData.html +++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/report/driverIncomeData.html @@ -10,13 +10,8 @@ <div class="col-sm-12"> <div class="row"> <div class="col-sm-3"> - <#SelectCon id="type" name="类别" > - <option value="1">专车</option> - <!--<option value="2">出租车</option> - <option value="3">跨城</option> - <option value="4">小件物流</option>--> - </#SelectCon> - </div> + <#NameCon id="driverName" name="司机名称" /> + </div> <div class="col-sm-3"> <#TimeCon id="time" name="起止时间" isTime="false"/> </div> diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html index af0e5e0..8f3b092 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html +++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/yesDriver.html @@ -98,6 +98,8 @@ <#button name="邀请信息" icon="fa-eye" clickFun="YesDriver.inviteInfo()" space="true"/> @} <#button name="收入明细" icon="fa-eye" clickFun="YesDriver.income()" space="true"/> + <#button name="余额明细" icon="fa-eye" clickFun="YesDriver.balance()" space="true"/> + <#button name="余额修改" icon="fa-edit" clickFun="YesDriver.changeMoney()" space="true"/> @if(shiro.hasPermission("/tDriver/updateTeamId")){ <input id="updateTeamId" type="hidden" /> @} diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html new file mode 100644 index 0000000..05714da --- /dev/null +++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tIncome/balance.html @@ -0,0 +1,46 @@ +@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"> + <input type="hidden" id="id" value="${id}"> + </div> + <div class="col-sm-3"> + <#TimeCon id="insertTime" name="日期范围" isTime="false"/> + </div> + <div class="col-sm-3"> + <#SelectCon id="handleType" name="操作类型" > + <option value="">全部</option> + <option value="1">车费收入</option> + <option value="2">车费平台手续费扣除</option> + <option value="3">充值</option> + <option value="4">提现</option> + <option value="5">平台充值</option> + <option value="6">平台扣除</option> + </#SelectCon> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TIncome.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TIncome.resetSearch()" space="true"/> + </div> + <#table id="TIncomeTable"/> + </div> + </div> + </div> + </div> + </div> +</div> +<script> + laydate.render({ + elem: '#insertTime' + ,range: true + }); +</script> +<script src="${ctxPath}/static/modular/system/tIncome/balance.js"></script> +@} diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html index 78b6e98..c973fd9 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html +++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_add.html @@ -61,7 +61,9 @@ </div> </div> </div> - + <div class="col-sm-3" > + <#input id="orderMagnitude" name="订单额度" value="" /> + </div> </div> </div> diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html index 34b6d9c..1cbbfa1 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html +++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tOpenCity/tOpenCity_edit.html @@ -77,7 +77,9 @@ </div> </div> </div> - + <div class="col-sm-3" > + <#input id="orderMagnitude" name="订单额度" value="${item.orderMagnitude}" /> + </div> </div> </div> diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tPubWithdrawal/tPubWithdrawal.html b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tPubWithdrawal/tPubWithdrawal.html index 1a15e62..a6c1f30 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tPubWithdrawal/tPubWithdrawal.html +++ b/ManagementZYTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tPubWithdrawal/tPubWithdrawal.html @@ -18,8 +18,7 @@ <div class="col-sm-3"> <#SelectCon id="withdrawalType" name="提现方式" > <option value="">全部</option> - <option value="1">银行卡</option> - <option value="2">线下</option> + <option value="1">支付宝</option> </#SelectCon> </div> <div class="col-sm-3"> diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/report/tDriverIncomeTable.js b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/report/tDriverIncomeTable.js index ac4007a..5843696 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/report/tDriverIncomeTable.js +++ b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/report/tDriverIncomeTable.js @@ -17,22 +17,11 @@ {title: '姓名', field: 'driverName', visible: true, align: 'center', valign: 'middle',width:'100px'}, {title: '账号/手机号', field: 'driverPhone', visible: true, align: 'center', valign: 'middle',width:'100px'}, {title: '所属分公司', field: 'companyName', visible: true, align: 'center', valign: 'middle',width:'100px'}, - {title: '订单总数', field: 'privateCarTotalNum', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, - {title: '未支付订单数', field: 'privateCarNotPayNum', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, - {title: '取消订单数', field: 'privateCarcancelNum', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, + {title: '已完成订单数', field: 'privateCarTotalNum', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, {title: '订单总金额', field: 'privateCarTotalMoney', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, - {title: '未支付订金额', field: 'privateCarNotPayMoney', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, - {title: '运营状态', field: 'driverState', visible: true, align: 'center', valign: 'middle',width:'100px',formatter: function (value,row) { - if(row.driverState=='3'){ - return '<span class="label label-primary">服务中</span>'; - }else if(row.driverState=='2'){ - return '<span class="label label-warning">听单中</span>'; - }else if(row.driverState=='1'){ - return '<span class="label label-error">离线</span>'; - }else{ - return '' - } - }}, + {title: '实付金额', field: 'payMoney', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, + {title: '司机收入', field: 'driverMoney', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, + {title: '平台手续费', field: 'platformMoney', visible: true,sortable : true, align: 'center', valign: 'middle',width:'100px'}, ] }; @@ -43,14 +32,14 @@ */ DriverIncomelData.search = function () { var queryData = {}; - queryData['type'] = $("#type").val(); + queryData['driverName'] = $("#driverName").val(); queryData['time'] = $("#time").val(); queryData['companyId'] = $("#company").val(); DriverIncomelData.table.refresh({query: queryData}); }; DriverIncomelData.resetSearch = function () { - $("#type").val("1"); + $("#driverName").val(""); $("#time").val(""); $("#company").val(""); DriverIncomelData.search(); diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/yesDriver.js b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/yesDriver.js index 76482c7..6200adb 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/yesDriver.js +++ b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/yesDriver.js @@ -617,6 +617,109 @@ } }; +YesDriver.balance=function(){ + if (this.check()) { + var index = layer.open({ + type: 2, + title: '余额明细', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tIncome/balance?id='+ YesDriver.seItem.id + }); + this.layerIndex = index; + + } +}; +/** + * 余额修改 + */ +YesDriver.changeMoney = function () { + if (this.check()) { + // 所选司机余额 + var balance = YesDriver.seItem.balance; + var index = layer.load(1,{ + type: 1 + , title: '余额修改' + , area: ['50%', '50%'] + , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset + , id: 'layerDemo' //防止重复弹出cge + , content: '<div class="form-horizontal">' + + ' <div class="col-sm-11" >' + + ' <div class="col-sm-11">' + + ' <div class="form-group">\n' + + ' <label class="col-sm-3 control-label">当前余额:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <label > '+balance+'元'+'</label> '+ + ' </div>\n' + + ' </div>\n' + + + ' <div class="form-group">\n' + + ' <label class="col-sm-3 control-label">操作类型:</label>\n' + + '<div class="col-sm-3">'+ + + '<select id = "type" class="form-control">'+ + '<option value="1">增加</option>'+ + '<option value="2">减少</option>'+ + '</select>'+ + '</div>\n'+ + '</div>\n'+ + ' <div class="form-group">\n' + + ' <label class="col-sm-3 control-label">变更金额:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input type="number" id="mount" value=""> 元 '+ + ' </div>\n' + + ' </div>\n' + + ' <div class="form-group">\n' + + ' <label class="col-sm-3 control-label">备注:</label>\n' + + ' <div class="col-sm-9">\n' + + ' <input type="text" id="remark" value=""> '+ + ' </div>\n' + + ' </div>\n' + + ' </div>' + + ' </div>' + + '</div>' + , btn: ['关闭', '保存'] + , btnAlign: 'c' //按钮居中 + , shade: 0.5 //不显示遮罩 + ,load:1 + , yes: function () { + layer.closeAll(); + }, + btn2:function () { + var id = YesDriver.seItem.id; + var mount = $("#mount").val(); + var type = $("#type").val(); + var ajax = new $ax(Feng.ctxPath + "/tDriver/changeMoney", function (data) { + if (data == 502){ + Feng.error("司机余额小于扣除的金额!"); + return; + } + if (data.code == 200) { + Feng.success("操作成功!"); + window.location.reload(); + window.parent.layer.closeAll(); + } + }, function (data) { + Feng.error("操作失败!") + window.location.reload(); + window.parent.layer.closeAll(); + return Feng.error("操作失败!"); + }); + ajax.set("id", id); + ajax.set("mount", mount); + ajax.set("type", type); + ajax.set("remark", remark); + ajax.start(); + layer.closeAll(); + } + }); + this.layerIndex = index; + } +}; + + + var agreement; $(function(){ agreement = new agreement(); diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tIncome/balance.js b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tIncome/balance.js new file mode 100644 index 0000000..7f68297 --- /dev/null +++ b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tIncome/balance.js @@ -0,0 +1,135 @@ +/** + * 管理初始化 + */ +var TIncome = { + id: "TIncomeTable", //表格id + seItem: null, //选中的条目 + table: null, + layerIndex: -1 +}; + +/** + * 初始化表格的列 + */ +TIncome.initColumn = function () { + return [ + {field: 'selectItem',visible: false, radio: true}, + {title: '日期', field: 'times', visible: true, align: 'center', valign: 'middle'}, + {title: '操作类型', field: 'handleType', visible: true, align: 'center', valign: 'middle'}, + {title: '金额', field: 'amount', visible: true, align: 'center', valign: 'middle'}, + {title: '关联类型', field: 'withType', visible: true, align: 'center', valign: 'middle'}, + {title: '关联订单号', field: 'orderNumber', visible: true, align: 'center', valign: 'middle', formatter: function(value, row, index) { + if (value) { + return '<a href="javascript:void(0)" onclick="TIncome.orderDetail(\'' + value + '\')">' + value + '</a>'; + } + return value; + }}, {title: '备注', field: 'remark', visible: true, align: 'center', valign: 'middle'}, + {title: '账户余额', field: 'balance', visible: true, align: 'center', valign: 'middle'}, + ]; +}; + +/** + * 检查是否选中 + */ +TIncome.check = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length == 0){ + Feng.info("请先选中表格中的某一记录!"); + return false; + }else{ + TIncome.seItem = selected[0]; + return true; + } +}; +/** + * 打开查看专车订单详情 + */ +TIncome.orderDetail = function (value) { + if (this.check()) { + var index = layer.open({ + type: 2, + title: '专车订单详情', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tOrderPrivateCar/tOrderPrivateCar_orderDetailByOrderNumber/' + value + }); + this.layerIndex = index; + } +}; +/** + * 点击添加 + */ +TIncome.openAddTIncome = function () { + var index = layer.open({ + type: 2, + title: '添加', + area: ['800px', '420px'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tIncome/tIncome_add' + }); + this.layerIndex = index; +}; + +/** + * 打开查看详情 + */ +TIncome.openTIncomeDetail = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title: '详情', + area: ['800px', '420px'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tIncome/tIncome_update/' + TIncome.seItem.id + }); + this.layerIndex = index; + } +}; + +/** + * 删除 + */ +TIncome.delete = function () { + if (this.check()) { + var ajax = new $ax(Feng.ctxPath + "/tIncome/delete", function (data) { + Feng.success("删除成功!"); + TIncome.table.refresh(); + }, function (data) { + Feng.error("删除失败!" + data.responseJSON.message + "!"); + }); + ajax.set("tIncomeId",this.seItem.id); + ajax.start(); + } +}; +TIncome.excel=function(){ + //$("#tOrderPrivateCarForm").submit(); + window.location.href=Feng.ctxPath + "/tIncome/getExcel?id="+$("#id").val(); +}; +/** + * 查询列表 + */ +TIncome.search = function () { + var queryData = {}; + queryData['insertTime'] = $("#insertTime").val(); + queryData['handleType'] = $("#handleType").val(); + queryData['id'] = $("#id").val(); + TIncome.table.refresh({query: queryData}); +}; +TIncome.resetSearch = function () { + $("#insertTime").val(""); + $("#handleType").val(""); + $("#id").val(""); + TIncome.search(); +}; +$(function () { + var defaultColunms = TIncome.initColumn(); + var table = new BSTable(TIncome.id, "/tIncome/listBalance", defaultColunms); + table.setPaginationType("client"); + var queryData = {}; + queryData['id'] = $("#id").val(); + table.setQueryParams(queryData); + TIncome.table = table.init(); +}); diff --git a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js index 7fa11db..1b85166 100644 --- a/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js +++ b/ManagementZYTravel/guns-admin/src/main/webapp/static/modular/system/tOpenCity/tOpenCity_info.js @@ -91,7 +91,8 @@ .set('insertTime') .set('insertUser') .set('updateTime') - .set('updateUser'); + .set('updateUser') + .set('orderMagnitude'); } /** * 提交添加 -- Gitblit v1.7.1