puzhibing
2023-03-15 79962435853baf5a28e08461f46a831fffa1a4b0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
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<List<LineSiteWarpper>> queryDriver(Integer lineId, String day, HttpServletRequest request){
        try {
            Integer driverId = driverService.getUserIdFormRedis(request);
            if(null == driverId){
                return ResultUtil.tokenErr();
            }
            List<Map<String, Object>> 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<BaseWarpper> querySeat(Integer id){
        try {
            Map<String, Object> 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<List<SiteWarpper>> querySite(Integer startSiteId){
        try {
            List<SiteWarpper> 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<List<LocationWarpper>> queryLocation(Integer siteId){
        try {
            List<Map<String, Object>> 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, String 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();
        }
    }
 
}