“mitao”
2026-03-06 dfbf37216f67ca34ecd87f53242881a441fd9332
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
package com.xiaopeng.map.controller;
 
 
import com.xiaopeng.api.dto.map.RouteAndFareDto;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.vo.operation.XpElectronicFenceVo;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.controller.BaseController;
import com.xiaopeng.common.core.web.domain.AjaxResult;
import com.xiaopeng.map.dto.WalkTimeDto;
import com.xiaopeng.map.service.XpElectronicFenceAreaService;
import com.xiaopeng.map.vo.IsInOperationAreaVo;
import com.xiaopeng.map.vo.WalkTimeVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
 
import javax.validation.Valid;
import java.util.List;
 
@Slf4j
@RestController
@RequestMapping("")
@Api(tags = "电子围栏")
public class XpElectronicFenceController extends BaseController {
 
    private final XpElectronicFenceAreaService xpElectronicFenceAreaService;
 
    public XpElectronicFenceController(XpElectronicFenceAreaService xpElectronicFenceAreaService) {
        this.xpElectronicFenceAreaService = xpElectronicFenceAreaService;
 
    }
 
 
    /**
     * 获取地图开放区域围栏
     * @return
     */
    @ApiOperation(value = "获取地图开放区域围栏",tags = {"小程序-获取地图开放区域围栏"},response = XpElectronicFenceVo.class)
    @GetMapping("/base/v1/mini-program/cities/list")
    public R<List<XpElectronicFenceVo>> citiesList(@RequestParam String cityCode) {
        return R.ok(xpElectronicFenceAreaService.citiesList(cityCode));
    }
 
    /**
     * 获取地图开放区域围栏
     * @return
     */
    @ApiOperation(value = "获取地图开放区域围栏",tags = {"运维APP-电子围栏"},response = XpElectronicFenceVo.class)
    @GetMapping("/api/v1/fence/listByCityCode")
    public R<List<XpElectronicFenceVo>> listByCityCode(@RequestParam String cityCode) {
        return R.ok(xpElectronicFenceAreaService.citiesList(cityCode));
    }
 
    @ApiOperation(value = "判断当前位置是否在运营区域内",tags = {"小程序-判断当前位置是否在运营区域内"})
    @PostMapping("/base/v1/mini-program/fence/check")
    public R<IsInOperationAreaVo> isInOperationArea(@RequestBody @Valid  LonLatDto dto) {
        return R.ok(xpElectronicFenceAreaService.isInOperationArea(dto));
    }
 
 
    @ApiOperation(value = "根据点位获取步行时间和距离",tags = {"小程序-根据点位获取步行时间和距离"})
    @PostMapping("/base/v1/mini-program/fence/walkTime")
    public R<WalkTimeVo> getWalkTime(@RequestBody @Valid WalkTimeDto dto) {
        return R.ok(xpElectronicFenceAreaService.getWalkTime(dto));
    }
 
 
 
    /**
     * 判断是否同一经营区域
     * @param dto
     * @return
     */
    @PostMapping("/base/v1/mini-program/fence/diagnosisArea")
    public R<Boolean> diagnosisArea(@RequestBody RouteAndFareDto dto){
        return R.ok(xpElectronicFenceAreaService.diagnosisArea(dto));
    }
 
}