package com.stylefeng.guns.modular.crossCity.controller; import com.stylefeng.guns.modular.crossCity.server.ILineSiteService; import com.stylefeng.guns.modular.crossCity.warpper.LineSiteWarpper; import com.stylefeng.guns.modular.crossCity.warpper.LocationWarpper; import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; 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.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; /** * 线路排班控制器 */ @Api @RestController @RequestMapping("") public class LineSiteController { @Autowired private ILineSiteService lineSiteService; @Autowired private IDriverService driverService; /** * 根据线路id获取线路排班数据 * @param lineId * @param day * @param request * @return */ @ResponseBody @RequestMapping(value = "/api/lineSite/queryDriver", method = RequestMethod.POST) @ApiOperation(value = "根据线路id获取线路排班数据", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"), @ApiImplicitParam(value = "查询天(2020-09-03)", name = "day", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryDriver(Integer lineId, String day, HttpServletRequest request){ try { Integer driverId = driverService.getUserIdFormRedis(request); if(null == driverId){ return ResultUtil.tokenErr(); } List> list = lineSiteService.queryDriver(lineId, day, driverId); return ResultUtil.success(LineSiteWarpper.getLineSiteWarppers(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 根据司机的排班id获取剩余座位数据 * @param id * @return */ @ResponseBody @RequestMapping(value = "/api/lineSite/querySeat", method = RequestMethod.POST) @ApiOperation(value = "根据司机的排班id获取剩余座位数据", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "司机排班id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil querySeat(Integer id){ try { Map map = lineSiteService.querySeat(id); return ResultUtil.success(BaseWarpper.getBaseWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取所有站点 * @return */ @ResponseBody @RequestMapping(value = "/api/lineSite/querySite", method = RequestMethod.POST) @ApiOperation(value = "获取起点和终点的站点", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "起点站点id", name = "startSiteId", required = false, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> querySite(Integer startSiteId){ try { List list = lineSiteService.querySite(startSiteId); return ResultUtil.success(list); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @RequestMapping(value = "/api/lineSite/queryLocation", method = RequestMethod.POST) @ApiOperation(value = "根据站点id获取站点的区域范围数据(设置上车点和下车点)", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "站点id", name = "siteId", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryLocation(Integer siteId){ try { List> list = lineSiteService.queryLocation(siteId); return ResultUtil.success(LocationWarpper.getLocationWarppers(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 判断一个点是是否在区域范围内 * @param siteId * @param code * @param lonLat * @return */ @ResponseBody @RequestMapping(value = "/api/lineSite/areaMonitoring", method = RequestMethod.POST) @ApiOperation(value = "判断一个点是是否在区域范围内", tags = {"司机端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "站点id", name = "siteId", required = true, dataType = "int"), @ApiImplicitParam(value = "行政区域编号(510100)", name = "code", required = true, dataType = "int"), @ApiImplicitParam(value = "经纬度", name = "lonLat", required = true, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil areaMonitoring(Integer siteId, Integer code, String lonLat){ try { boolean b = lineSiteService.areaMonitoring(siteId, code, lonLat); return ResultUtil.success(b ? 1 : -1); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }