package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; 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.dao.TNoticesMapper; import com.stylefeng.guns.modular.system.dao.TUseMoneyMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.util.ALiSendSms; import com.stylefeng.guns.modular.system.util.PushUtil; import com.stylefeng.guns.modular.system.util.SMSUtil; 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 io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.*; /** * 司机控制器 */ @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; @Autowired private IInviteService inviteService; @Autowired private TNoticesMapper noticesMapper; @ResponseBody @PostMapping("/api/user/allert") @ApiOperation(value = "获取公告弹窗", tags = {"司机端-2.0新增"}, notes = "") public ResultUtil> allert(){ try { List tNotices = noticesMapper.selectList(new EntityWrapper() .eq("type", 2).eq("isDriver",2) .eq("isShow", 1).ne("flag", 3).eq("isAlert",1).eq("isDelete", 1) ); return ResultUtil.success(tNotices); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取用户邀请二维码 * @param request * @return */ @ResponseBody @PostMapping("/api/user/getCode") @ApiOperation(value = "获取用户邀请二维码", tags = {"司机端-2.0新增"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> getCode(HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Driver userInfo = driverService.selectById(uid); if (userInfo.getCode()==null){ userInfo = driverService.generateCode(userInfo); } driverService.generateCode(userInfo); Map res = new HashMap<>(); res.put("code",userInfo.getCode()); int i = inviteService.selectCount(new EntityWrapper() .eq("inviteUserId", uid) .eq("userType", 2)); res.put("inviteNumber",i+""); return ResultUtil.success(res); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/auser/testCode") @ApiOperation(value = "测试小程序二维码", tags = {"司机端-2.0新增"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil testCode(){ String s = driverService.generateQrCodeTemp(); return ResultUtil.success(s); } /** * 获取用户邀请二维码 * @param request * @return */ @ResponseBody @PostMapping("/api/user/inviteList") @ApiOperation(value = "获取司机邀请记录", tags = {"司机端-2.0新增"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "开始时间 yyyy-MM-dd", name = "startTime", required = false, dataType = "String"), @ApiImplicitParam(value = "结束时间 yyyy-MM-dd", name = "endTime", required = false, dataType = "String"), @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> inviteList(String startTime,String endTime,Integer pageNum,Integer size,HttpServletRequest request){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } if (StringUtils.hasLength(startTime)){ startTime = startTime + " 00:00:00"; endTime = endTime + " 23:59:59"; } pageNum = (pageNum - 1) * size; List invites = inviteService.inviteList(uid,startTime,endTime,pageNum,size); for (Invite invite : invites) { // 将手机号phone中间四位替换为* String phone = invite.getPhone(); if (phone != null && phone.length() > 4) { phone = phone.substring(0, 3) + "****" + phone.substring(7); invite.setPhone(phone); } } return ResultUtil.success(invites); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取短信验证码 * @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(); } } @Resource private ICompanyService companyService; @ResponseBody @PostMapping("/base/driver/companyList") @ApiOperation(value = "司机注册后完善个人信息-获取公司下拉列表", tags = {"司机端-注册"}, notes = "") public ResultUtil> companyList(){ try { List companies = companyService.selectList(new EntityWrapper() .eq("state", 0) .ne("flag", 3)); return ResultUtil.success(companies); }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_482775061";//身份验证 break; case 2: templateCode = "SMS_482775061";//登录确认 break; case 3: templateCode = "SMS_482775061";//用户注册 break; case 4: templateCode = "SMS_482775061";//修改密码 break; case 5: templateCode = "SMS_482775061";//司机注册成功 break; case 6: templateCode = "SMS_482775061";//司机注册失败 break; } // SMSUtil.send(driver.getPhone(), ); // 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(); } } @Autowired private TUseMoneyMapper useMoneyMapper; @Autowired private PushUtil pushUtil; /** * 司机上下班操作 * @param type * @param request * @return */ @ResponseBody @PostMapping("/api/driver/work") @ApiOperation(value = "司机上下班操作", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "上班的业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)多个已逗号分隔", 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=城际,4=小件物流-同城,5=小件物流-跨城)多个已逗号分隔", 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=城际,4=小件物流-同城,5=小件物流-跨城)", 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(value = "搜索", name = "searchName", required = false, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryMyCar(HttpServletRequest request,String searchName){ try { Integer uid = driverService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } Map map = carService.queryCars(uid,searchName); 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(); } } /** * 获取扣款明细 * @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 data = new ArrayList<>(); for(Map map : list){ BaseWarpper baseWarpper = new BaseWarpper(); baseWarpper.setAmount(Double.valueOf(String.valueOf(map.get("amount")))); baseWarpper.setName(String.valueOf(map.get("name"))); baseWarpper.setDay(String.valueOf(map.get("day"))); data.add(baseWarpper); } return ResultUtil.success(data); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取收益明细 * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryActivityIncome") @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> 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); } return ResultUtil.success(data); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取收入明细 * @param pageNum * @param size * @param request * @return */ @ResponseBody @PostMapping("/api/driver/queryTotalRevenue") @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> 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);//抽成 } 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);//抽成 } 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);//抽成 } 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);//抽成 } 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);//抽成 } 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(); } } }