package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSON; 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.Income; import com.stylefeng.guns.modular.system.util.ALiSendSms; //import com.stylefeng.guns.modular.system.util.ICBCPayUtil; import com.stylefeng.guns.modular.system.util.HuaWeiSMSUtil; import com.stylefeng.guns.modular.system.warpper.ActivityWarpper; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.OrderPosition; 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 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; /** * 获取短信验证码 * @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 = "8212979ba98f4918823986481ae2e104";//身份验证 break; case 2: templateCode = "08b2c59bdce945549c0ee6bbe46252f8";//登录确认 break; case 3: templateCode = "c39681463441496aaa4d96a642ff4227";//用户注册 break; case 4: templateCode = "c230a6b92504473c97c17741e1cc0b9d";//修改密码 break; case 5: templateCode = "2d1ebdfbe1e440459afd98498fc1fda4";//司机注册成功 break; case 6: templateCode = "a8af3c2972db4c9e91add990dff22f65";//司机注册失败 break; } // HuaWeiSMSUtil.sendSms("", driver.getPhone(), "8822061324669", templateCode); String s = aLiSendSms.sendSms(driver.getPhone(), "SMS_485340165", "{}"); 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=城际,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(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(); } } /** * 获取扣款明细 * @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(); } } /** * 注销账号 * @param request * @return */ @ResponseBody @PostMapping("/api/driver/cancelAccount") @ApiOperation(value = "注销账号", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil cancelAccount(HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } Driver driver = driverService.selectById(driverId); driver.setFlag(3); driverService.updateById(driver); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }