package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity; import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.util.ALiSendSms; import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * 司机控制器 */ @Api @CrossOrigin @RestController @RequestMapping("") public class DriverController { @Autowired private IDriverService driverService; @Autowired private IOrderPositionService orderPositionService; @Autowired private ISmsrecordService smsrecordService; @Autowired private IDriverOrdersService driverOrdersService; @Autowired private ICarService carService; @Autowired private ALiSendSms aLiSendSms; @Autowired private IOrderTaxiService orderTaxiService; @Autowired private IIncomeService incomeService; @Autowired private IOrderPrivateCarService orderPrivateCarService; @Autowired private IOrderCrossCityService orderCrossCityService; @Autowired private IOrderLogisticsService orderLogisticsService; /** * 获取短信验证码 * @param phone * @return */ @ResponseBody @PostMapping("/base/driver/queryCaptcha") @ApiOperation(value = "获取短信验证码", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "场景类型(1=身份验证,2=登录确认,3=用户注册,4=修改密码)", name = "type", required = true, dataType = "String") }) public ResultUtil queryCaptcha(String phone, Integer type){ if(ToolUtil.isNotEmpty(phone)){ try { return driverService.queryCaptcha(phone, type); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } }else{ return ResultUtil.paranErr(); } } /** * 验证短信验证码 * @param phone * @param code * @return */ @ResponseBody @PostMapping("/base/driver/checkCaptcha") @ApiOperation(value = "验证短信验证码", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String") }) public ResultUtil checkCaptcha(String phone, String code){ try { boolean b = driverService.checkCaptcha(phone, code); if(b){ Driver driver = driverService.queryByPhone(phone); smsrecordService.saveData(null == driver ? 5 : 8, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!"); } return b ? ResultUtil.success() : ResultUtil.error("验证码无效"); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机提交注册申请 * @return */ @ResponseBody @PostMapping("/base/driver/registeredDriver") @ApiOperation(value = "司机提交注册申请", tags = {"分享专用"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"), @ApiImplicitParam(value = "密码", name = "password", required = true, dataType = "String"), @ApiImplicitParam(value = "分享的用户id", name = "uid", required = true, dataType = "int"), @ApiImplicitParam(value = "用户类型(1=用户,2=司机)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "注册类型(1=司机注册,2=用户注册)", name = "userType", required = true, dataType = "int") }) public ResultUtil registeredDriver(String phone, String code, String password, Integer uid, Integer type, Integer userType){ try { return driverService.registeredDriver(phone, code, password, uid, type, userType); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机注册 * @param phone * @param code * @param password * @return */ @ResponseBody @PostMapping("/base/driver/registeredDriver_") @ApiOperation(value = "司机提交注册申请", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"), @ApiImplicitParam(value = "密码", name = "password", required = true, dataType = "String") }) public ResultUtil registeredDriver_(String phone, String code, String password){ try { return driverService.registeredDriver(phone, code, password); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/base/driver/queryNeedCertificate") @ApiOperation(value = "注册完善个人信息根据选择的从业地判断是否需要网约车资格证", tags = {"司机端-注册"}, notes = "0=城市未开通,1=是,2=否") @ApiImplicitParams({ @ApiImplicitParam(value = "城市行政编号", name = "code", required = true, dataType = "String") }) public ResultUtil queryNeedCertificate(String code){ try { Integer integer = driverService.queryNeedCertificate(code); return ResultUtil.success(integer == null ? 0 : integer); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机注册后完善个人信息 * @param registeredWarpper * @return */ @ResponseBody @PostMapping("/base/driver/updateDriver") @ApiOperation(value = "司机注册后完善个人信息", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "司机id", name = "uid", required = true, dataType = "int") }) public ResultUtil updateDriver(RegisteredWarpper registeredWarpper, Integer uid){ try { return driverService.updateDriver(registeredWarpper, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机注册审核后的短信 * @param uid * @param type * @return */ @ResponseBody @PostMapping("/base/driver/sendsms") public ResultUtil sendsms(Integer uid, Integer type){ try { Driver driver = driverService.selectById(uid); String templateCode = null; switch (type){ case 1: templateCode = "SMS_229648175";//身份验证 break; case 2: templateCode = "SMS_229613335";//登录确认 break; case 3: templateCode = "SMS_229613333";//用户注册 break; case 4: templateCode = "SMS_229613329";//修改密码 break; case 5: templateCode = "SMS_229648168";//司机注册成功 break; case 6: templateCode = "SMS_229613326";//司机注册失败 break; } String s = aLiSendSms.sendSms(driver.getPhone(), templateCode, "{}"); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 忘记密码操作 * @param phone * @param code * @param password * @return */ @ResponseBody @PostMapping("/base/driver/resetPassword") @ApiOperation(value = "忘记密码操作", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"), @ApiImplicitParam(value = "新密码", name = "password", required = true, dataType = "String") }) public ResultUtil resetPassword(String phone, String code, String password){ try { return driverService.resetPassword(phone, code, password); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取忘记密码页面的电话 * @return */ @ResponseBody @PostMapping("/base/driver/queryPhone") @ApiOperation(value = "获取忘记密码页面的电话", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "当前定位城市行政编号(510100)", name = "code", required = true, dataType = "String") }) public ResultUtil queryPhone(String code){ try { Map map = driverService.queryPhone(code); return ResultUtil.success(map); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机登录操作 * @param phone * @param password * @return */ @ResponseBody @PostMapping("/base/driver/driverLogin") @ApiOperation(value = "登录操作", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "密码", name = "password", required = true, dataType = "String") }) public ResultUtil driverLogin(String phone, String password){ try { return driverService.driverLogin(phone, password); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取首页统计数据 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryHomeData") @ApiOperation(value = "获取首页统计数据", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryHomeData(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Map map = driverService.queryHomeData(uid); return ResultUtil.success(HomeWarpper.getHomeWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 司机上下班操作 * @param type * @param request * @return */ @ResponseBody @PostMapping("/api/driver/work") @ApiOperation(value = "司机上下班操作", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "上班的业务类型(1=专车/快车,2=出租车,3=机场专线,7=景区直通车,8=公务出行)多个已逗号分隔", name = "type", required = false, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil work(String type, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return driverService.work(uid, type); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/driver/work2") @ApiOperation(value = "司机上下班操作,同时设置接单类型", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "上班的业务类型(1=专车/快车,2=出租车,3=机场专线,7=景区直通车,8=公务出行)多个已逗号分隔", name = "type", required = false, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil work2(String type, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return driverService.work2(uid, type); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/driver/queryHomeNum") @ApiOperation(value = "获取首页统计数据", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryHomeNum(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Map map = driverService.queryHomeNum(uid); return ResultUtil.success(map); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 上班时选择的业务类型 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryMyBusiness") @ApiOperation(value = "上班时选择的业务类型", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryMyBusiness(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } // TODO: 2020/7/21 修改为个人中心中设置的接单业务类型。 List list = driverService.queryMyBusiness(uid); List integers = driverOrdersService.queryOrders(uid); List data = new ArrayList<>(); for(BaseWarpper baseWarpper : list){ if(integers.contains(baseWarpper.getId())){ data.add(baseWarpper); } } return ResultUtil.success(data); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 存储订单服务中的司机位置 * @param orderPosition * @return */ @ResponseBody @PostMapping("/base/savePosition") public String savePosition(OrderPosition orderPosition){ try { orderPositionService.saveData(orderPosition); return JSON.toJSONString(ResultUtil.success()); }catch (Exception e){ e.printStackTrace(); return JSON.toJSONString(ResultUtil.runErr()); } } @ResponseBody @PostMapping("/base/driver/queryInfo_") @ApiOperation(value = "根据用户id获取数据", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "司机id", name = "uid", required = true, dataType = "int"), }) public ResultUtil queryInfo_(Integer uid){ try { Map map = driverService.queryInfo(uid); return ResultUtil.success(DriverInfoWarpper.getDriverInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取个人中心详情 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryInfo") @ApiOperation(value = "获取个人中心详情", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryInfo(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Map map = driverService.queryInfo(uid); return ResultUtil.success(DriverInfoWarpper.getDriverInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 修改手机号码 * @param phone * @param code * @param request * @return */ @ResponseBody @PostMapping("/api/driver/updatePhone") @ApiOperation(value = "修改手机号码", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "新电话号码", name = "phone", required = true, dataType = "String"), @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil updatePhone(String phone, String code, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return driverService.updatePhone(phone, code, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 修改密码 * @param password * @param request * @return */ @ResponseBody @PostMapping("/api/driver/updatePassword") @ApiOperation(value = "修改密码", tags = {"司机端-个人中心"}, notes = "修改前需要验证短信验证码") @ApiImplicitParams({ @ApiImplicitParam(value = "新密码", name = "password", required = true, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil updatePassword(String password, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } driverService.updatePassword(password, uid); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取设置接单的业务类型列表 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/querySetOrders") @ApiOperation(value = "获取设置接单的业务类型列表", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> querySetOrders(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List list = driverService.queryMyBusiness(uid); List integers = driverOrdersService.queryOrders(uid); List data = new ArrayList<>(); for(BaseWarpper b : list){ OrdersWarpper ordersWarpper = new OrdersWarpper(); ordersWarpper.setType(b.getId()); ordersWarpper.setName(b.getName()); ordersWarpper.setState(integers.contains(b.getId()) ? 2 : 1); data.add(ordersWarpper); } return ResultUtil.success(data); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 设置接单规则 * @param type * @param request * @return */ @ResponseBody @PostMapping("/api/driver/updateOrders") @ApiOperation(value = "设置接单规则", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单类型(1=专车/快车,2=出租车,3=机场专线,7=景区直通车,8=公务出行)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil updateOrders(Integer type, HttpServletRequest request){ try{ Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return driverOrdersService.updateOrders(uid, type); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取当前车辆及空闲车辆 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryMyCar") @ApiOperation(value = "获取当前车辆及空闲车辆", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryMyCar(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Map map = carService.queryCars(uid); return ResultUtil.success(map); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 更换车辆 * @param carId * @param request * @return */ @ResponseBody @PostMapping("/api/driver/replaceCar") @ApiOperation(value = "更换车辆", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "车辆id", name = "carId", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil replaceCar(Integer carId, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return driverService.replaceCar(carId, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取客服电话 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryPhone") @ApiOperation(value = "获取客服电话", tags = {"司机端-个人中心"}, notes = "车队=franchisee,分公司=branch,平台=platform") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryPhone(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Map map = driverService.queryPhone(uid); return ResultUtil.success(map); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @Autowired private IReassignService reassignService; @Autowired private ITimeOutAppealService timeOutAppealService; @Autowired private ITComplaintDeductmoneyService complaintDeductmoneyService; /** * 获取扣款明细 * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryPenalties") @ApiOperation(value = "获取扣款明细", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryPenalties(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } // List> list = driverService.queryPenalties(pageNum, size, uid); List list1 = reassignService.selectList(new EntityWrapper().eq("originalDriverId",uid)); List data = new ArrayList<>(); /// 存入改派处罚扣款 for (Reassign reassign : list1) { BaseWarpper baseWarpper = new BaseWarpper(); String insertTime = DateUtil.format(reassign.getInsertTime(),"yyyy-MM-dd HH:mm"); baseWarpper.setAmount(reassign.getMoney()); baseWarpper.setName("改派处罚"); baseWarpper.setDay(insertTime); data.add(baseWarpper); } // List list2 = timeOutAppealService.selectList(new EntityWrapper().eq("driverId",uid)); List list2 = orderLogisticsService.selectList(new EntityWrapper().eq("driverId",uid).gt("timeOutMoney",0)); for (OrderLogistics timeOutAppeal : list2) { BaseWarpper baseWarpper = new BaseWarpper(); String insertTime = DateUtil.format(timeOutAppeal.getEndServiceTime(),"yyyy-MM-dd HH:mm"); baseWarpper.setDay(insertTime); baseWarpper.setName("小件物流超时扣款"); baseWarpper.setAmount(timeOutAppeal.getTimeOutMoney()); data.add(baseWarpper); } List list3 = complaintDeductmoneyService.selectList(new EntityWrapper().eq("driverId",uid)); for (TComplaintDeductmoney tComplaintDeductmoney : list3) { BaseWarpper baseWarpper = new BaseWarpper(); String insertTime = DateUtil.format(tComplaintDeductmoney.getCreateTime(),"yyyy-MM-dd HH:mm"); baseWarpper.setDay(insertTime); baseWarpper.setName("投诉扣款"); baseWarpper.setAmount(tComplaintDeductmoney.getMoney()); data.add(baseWarpper); } List collect = data.stream().sorted(Comparator.comparing(BaseWarpper::getDay).reversed()).collect(Collectors.toList()); List data1 = new ArrayList<>(); // 手动分页 for (int i=(pageNum-1)*size; i> queryActivityIncome(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } // List> list = driverService.queryActivityIncome(uid, pageNum, size); // List data = new ArrayList<>(); // for(Map map : list){ // BaseWarpper baseWarpper = new BaseWarpper(); // baseWarpper.setDay(String.valueOf(null != map.get("time") ? map.get("time") : "")); // baseWarpper.setAmount(Double.valueOf(String.valueOf(null != map.get("money") ? map.get("money") : 0))); // baseWarpper.setName("活动奖励"); // data.add(baseWarpper); // } List list1 = incomeService.selectList(new EntityWrapper().eq("userType",2).eq("objectId",uid)); List data = new ArrayList<>(); /// 存入改派处罚扣款 for (Income income : list1) { BaseWarpper baseWarpper = new BaseWarpper(); String insertTime = DateUtil.format(income.getInsertTime(),"yyyy-MM-dd HH:mm"); baseWarpper.setDay(insertTime); baseWarpper.setAmount(income.getMoney()); if (income.getType() == 1){ baseWarpper.setName("活动奖励"); data.add(baseWarpper); } // else if (income.getType() == 2){ // baseWarpper.setName("跑单收入"); // }else if (income.getType() == 6){ // baseWarpper.setName("感谢费"); // } data.add(baseWarpper); } List list2 = timeOutAppealService.selectList(new EntityWrapper().eq("driverId",uid)); for (TimeOutAppeal timeOutAppeal : list2) { BaseWarpper baseWarpper = new BaseWarpper(); String insertTime = DateUtil.format(timeOutAppeal.getCreateTime(),"yyyy-MM-dd HH:mm"); baseWarpper.setDay(insertTime); baseWarpper.setName("小件物流超时退款"); if (timeOutAppeal.getState() == 2){ baseWarpper.setAmount(timeOutAppeal.getReturnMoney()); data.add(baseWarpper); } } List collect = data.stream().sorted(Comparator.comparing(BaseWarpper::getDay).reversed()).collect(Collectors.toList()); List data1 = new ArrayList<>(); // 手动分页 for (int i=(pageNum-1)*size; i> queryTotalRevenue(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = driverService.queryTotalRevenue(uid, pageNum, size); List data = new ArrayList<>(); for(Map map : list){ BaseWarpper baseWarpper = new BaseWarpper(); baseWarpper.setDay(String.valueOf(null != map.get("time") ? map.get("time") : "")); baseWarpper.setAmount(Double.valueOf(String.valueOf(null != map.get("money") ? map.get("money") : 0))); switch (Integer.valueOf(String.valueOf(null != map.get("orderType") ? map.get("orderType") : 0))){ case 1: baseWarpper.setName("快车"); break; case 2: baseWarpper.setName("出租车"); break; case 3: baseWarpper.setName("城际出行"); break; case 4: baseWarpper.setName("同城小件物流"); break; case 5: baseWarpper.setName("跨城小件物流"); break; } Map map1 = new HashMap<>(); switch (Integer.valueOf(map.get("orderType").toString())){ case 1: OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(map.get("incomeId").toString()); if(null != orderPrivateCar){ List incomes = incomeService.queryData(1, null, 2, orderPrivateCar.getId(), 1); map1.put("travelMoney", null != orderPrivateCar.getOrderMoney() ? orderPrivateCar.getOrderMoney() : 0);//行程费 map1.put("parkMoney", null != orderPrivateCar.getParkMoney() ? orderPrivateCar.getParkMoney() : 0);//停车费 map1.put("tipMoney", 0);//小费 map1.put("roadTollMoney", null != orderPrivateCar.getRoadTollMoney() ? orderPrivateCar.getRoadTollMoney() : 0);//过路费 map1.put("rakeMoney", incomes.size() > 0 ? incomes.get(0).getMoney() : 0);//抽成 map1.put("thankYouFee", null != orderPrivateCar.getThankYouFee() ? orderPrivateCar.getThankYouFee() : 0);//感谢费 map1.put("returnMoney", 0);//超时退款金额 } break; case 2: OrderTaxi orderTaxi = orderTaxiService.selectById(map.get("incomeId").toString()); if(null != orderTaxi){ List incomes1 = incomeService.queryData(1, null, 2, orderTaxi.getId(), 2); map1.put("travelMoney", null != orderTaxi.getTravelMoney() ? orderTaxi.getTravelMoney() : 0);//行程费 map1.put("parkMoney", null != orderTaxi.getParkMoney() ? orderTaxi.getParkMoney() : 0);//停车费 map1.put("tipMoney", null != orderTaxi.getTipMoney() ? orderTaxi.getTipMoney(): 0);//小费 map1.put("roadTollMoney", null != orderTaxi.getRoadTollMoney() ? orderTaxi.getRoadTollMoney() : 0);//过路费 map1.put("rakeMoney", incomes1.size() > 0 ? incomes1.get(0).getMoney() : 0);//抽成 map1.put("thankYouFee", null != orderTaxi.getThankYouFee() ? orderTaxi.getThankYouFee() : 0);//感谢费 map1.put("returnMoney", 0);//超时退款金额 } break; case 3: OrderCrossCity orderCrossCity = orderCrossCityService.selectById(map.get("incomeId").toString()); if(null != orderCrossCity){ List incomes2 = incomeService.queryData(1, null, 2, orderCrossCity.getId(), 3); map1.put("travelMoney", null != orderCrossCity.getOrderMoney() ? orderCrossCity.getOrderMoney() : 0);//行程费 map1.put("parkMoney", 0);//停车费 map1.put("tipMoney", 0);//小费 map1.put("roadTollMoney", 0);//过路费 map1.put("rakeMoney", incomes2.size() > 0 ? incomes2.get(0).getMoney() : 0);//抽成 map1.put("thankYouFee", null != orderCrossCity.getThankYouFee() ? orderCrossCity.getThankYouFee() : 0);//感谢费 map1.put("returnMoney", 0);//超时退款金额 } break; case 4: OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString()); if(null != orderLogistics){ List incomes3 = incomeService.queryData(1, null, 2, orderLogistics.getId(), 4); map1.put("travelMoney", null != orderLogistics.getTravelMoney() ? orderLogistics.getTravelMoney() : 0);//行程费 map1.put("parkMoney", 0);//停车费 map1.put("tipMoney", null != orderLogistics.getTipMoney() ? orderLogistics.getTipMoney() : 0);//小费 map1.put("roadTollMoney", 0);//过路费 map1.put("rakeMoney", incomes3.size() > 0 ? incomes3.get(0).getMoney() : 0);//抽成 map1.put("thankYouFee", null != orderLogistics.getThankYouFee() ? orderLogistics.getThankYouFee() : 0);//感谢费 /// 小件物流超时退款 List list1 = incomeService.selectList(new EntityWrapper().eq("userType",2) .eq("orderType",4).eq("type",9) .eq("objectId",orderLogistics.getDriverId()).eq("incomeId",orderLogistics.getId())); double returnMoney = 0; if (ToolUtil.isNotEmpty(list1)){ for (Income income : list1) { returnMoney += income.getMoney(); } } map1.put("returnMoney", BigDecimal.valueOf(returnMoney).setScale(2,BigDecimal.ROUND_HALF_UP)); } break; case 5: OrderLogistics orderLogistics1 = orderLogisticsService.selectById(map.get("incomeId").toString()); if(null != orderLogistics1){ List incomes4 = incomeService.queryData(1, null, 2, orderLogistics1.getId(), 5); map1.put("travelMoney", null != orderLogistics1.getTravelMoney() ? orderLogistics1.getTravelMoney() : 0);//行程费 map1.put("parkMoney", 0);//停车费 map1.put("tipMoney", orderLogistics1.getTipMoney());//小费 map1.put("roadTollMoney", 0);//过路费 map1.put("rakeMoney", incomes4.size() > 0 ? incomes4.get(0).getMoney() : 0);//抽成 map1.put("thankYouFee", null != orderLogistics1.getThankYouFee() ? orderLogistics1.getThankYouFee() : 0);//感谢费 /// 小件物流超时退款 List list1 = incomeService.selectList(new EntityWrapper().eq("userType",2) .eq("orderType",5).eq("type",9) .eq("objectId",orderLogistics1.getDriverId()).eq("incomeId",orderLogistics1.getId())); double returnMoney = 0; if (ToolUtil.isNotEmpty(list1)){ for (Income income : list1) { returnMoney += income.getMoney(); } } map1.put("returnMoney", BigDecimal.valueOf(returnMoney).setScale(2,BigDecimal.ROUND_HALF_UP)); } break; } baseWarpper.setData(map1); data.add(baseWarpper); } return ResultUtil.success(data); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取当前有效的活动列表 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryMyActivity") @ApiOperation(value = "获取当前有效的活动列表", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryMyActivity(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return ResultUtil.success(driverService.queryMyActivity(uid, new Date())); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取历史活动列表 * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryHistoryActivity") @ApiOperation(value = "获取历史活动列表", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryHistoryActivity(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = driverService.queryHistory(uid, pageNum, size); return ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取历史日期中的活动内容 * @param time * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryHistoryActivityInfo") @ApiOperation(value = "获取历史日期中的活动内容", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "查询的给定日期", name = "time", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryHistoryActivityInfo(String time, HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); List activityWarppers = driverService.queryMyActivity(uid, sdf.parse(time)); return ResultUtil.success(activityWarppers); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 工号登录(仅出租车) * @param jobNum * @return */ @ResponseBody @PostMapping("/base/driver/loginByJobNumber") @ApiOperation(value = "工号登录", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "工号", name = "jobNum", required = true, dataType = "String"), }) public ResultUtil loginByJobNumber(String jobNum){ try { return driverService.loginByJobNumber(jobNum); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 身份证号码登录 * @param identification * @return */ @ResponseBody @PostMapping("/base/driver/loginByIdentification") @ApiOperation(value = "身份证号码登录", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "身份证号码", name = "identification", required = true, dataType = "String"), }) public ResultUtil loginByIdentification(String identification){ try { return driverService.loginByIdentification(identification); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 出租车资格证号码登录 * @param taxiAptitudeCard * @return */ @ResponseBody @PostMapping("/base/driver/loginByTaxiAptitudeCard") @ApiOperation(value = "出租车资格证号登录", tags = {"司机端-登录"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "出租车资格证号", name = "taxiAptitudeCard", required = true, dataType = "String"), }) public ResultUtil loginByTaxiAptitudeCard(String taxiAptitudeCard){ try { return driverService.loginByTaxiAptitudeCard(taxiAptitudeCard); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 验证登录密码是否有效 * @param password * @param request * @return */ @ResponseBody @PostMapping("/api/driver/verificationPassword") @ApiOperation(value = "验证登录密码是否有效", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "登录密码", name = "password", required = true, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil verificationPassword(String password, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } return driverService.verificationPassword(password, driverId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 设置提现密码 * @param withdrawPassword * @param request * @return */ @ResponseBody @PostMapping("/api/driver/setWithdrawPassword") @ApiOperation(value = "设置提现密码", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "提现密码", name = "withdrawPassword", required = true, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil setWithdrawPassword(String withdrawPassword, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } return driverService.setWithdrawPassword(withdrawPassword, driverId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 验证提现密码是否有效 * @param withdrawPassword * @param request * @return */ @ResponseBody @PostMapping("/api/driver/verificationWithdrawPassword") @ApiOperation(value = "验证提现密码是否有效", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "提现密码", name = "withdrawPassword", required = true, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil verificationWithdrawPassword(String withdrawPassword, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } return driverService.verificationWithdrawPassword(withdrawPassword, driverId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 退出登录 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/loginOut") @ApiOperation(value = "退出登录", tags = {"司机端-车载端"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil loginOut(HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } return driverService.loginOut(driverId); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @Autowired private ITimeOutAppealService appealService; /** * 历史申诉 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/appealHistory") @ApiOperation(value = "历史申诉", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> appealHistory(Integer pageNum, Integer size, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } List> list = appealService.selectMaps(new EntityWrapper().eq("driverId",driverId).orderBy("id",false).last("limit " + (pageNum-1)*size+ "," + pageNum*size)); for (Map map : list) { OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("orderId").toString()); map.put("timeOutMoney",orderLogistics.getTimeOutMoney()); map.put("travelTime",DateUtil.getTimes(orderLogistics.getTravelTime())); map.put("endServiceTime",DateUtil.getTimes(orderLogistics.getEndServiceTime())); map.put("timeOut", DateUtil.CalTime(DateUtil.getTime(orderLogistics.getEndServiceTime()),DateUtil.getTime(orderLogistics.getArriveTimeExpect()))); map.put("createTime",DateUtil.getTimeMunite((Date) map.get("createTime"))); if (ToolUtil.isNotEmpty(map.get("dealTime"))){ map.put("dealTime",DateUtil.getTimeMunite((Date) map.get("dealTime"))); }else { map.put("dealTime",""); } } return ResultUtil.success(AppealWrapper.getAppealListWrapper(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }