package com.ebike.feign.clients; import com.cdzy.common.model.dto.EbikeTracking; import com.cdzy.common.model.response.JsonResult; import com.ebike.feign.component.FeignTokenInterceptor; import com.ebike.feign.config.ExampleFeignConfiguration; import com.ebike.feign.model.dto.FeignEbikeDto; import com.ebike.feign.model.dto.FeignEbikeReportRecordDto; import com.ebike.feign.model.dto.FeignEbikeUserBikeInfo; import com.ebike.feign.model.dto.FeignEbikeUserLockDto; import com.ebike.feign.model.vo.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; /** * @author attiya * @since 2025-11-7 17:18 */ @FeignClient(name = "ebike-operations", configuration = {ExampleFeignConfiguration.class, FeignTokenInterceptor.class}) public interface OperationsFeignClient { /** * 用户半径范围内车辆 * * @return 结果 */ @PostMapping("/ebikeBikeInfo/api/userRadiusList") JsonResult> userRadiusList(@Validated @RequestBody FeignEbikeBikeRadiusVo radiusVo); /** * 用户开锁 * * @return 结果 */ @GetMapping("/ebikeBikeInfo/api/openLock") JsonResult openLock(@RequestParam("bikeCode") String bikeCode); /** * 用户关锁 * * @return 结果 */ @PostMapping("/ebikeBikeInfo/api/lock") JsonResult lock(@RequestBody EbikeLockVo lockVo); /** * 用户获取车辆详情及其计费规则 * * @return 结果 */ @GetMapping("/ebikeBikeInfo/api/bikeInfo") JsonResult bikeInfo(@RequestParam("bikeCode") String bikeCode); /** * 根据EcuSn生成换电工单 * * @return 结果 */ @GetMapping("/ebikeBikeOrder/batterySwapOrder") JsonResult batterySwapOrder(@RequestParam("ecuSn") String ecuSn); /** * 根据bikeCode生成巡检工单 * * @return 结果 */ @PostMapping("/ebikeBikeOrder/inspectionSwapOrder") JsonResult inspectionSwapOrder(@RequestBody FeignInspectionSwapOrderVo inspectionSwapOrderVo); /** * 保存车辆轨迹。 * * @param ebikeTracking 车辆轨迹 * @return 结果数据 返回结果 */ @PostMapping("ebikeTracking/save") JsonResult saveEbikeTracking(@RequestBody EbikeTracking ebikeTracking); /** * 保存车辆最新位置 * * @param ecuSn 中控编号 * @param longitude 经度 * @param latitude 纬度 * @return 保存结果 */ @GetMapping("/ebikeBikeInfo/changeLocation") JsonResult changeLocation(@RequestParam("ecuSn") String ecuSn, @RequestParam("longitude") Double longitude, @RequestParam("latitude") Double latitude); /** * 保存用户上报 * * @param feignEbikeReportRecordDto 用户上报信息 */ @PostMapping("/ebikeReportRecord/saveReportRecord") JsonResult saveReportRecord(@RequestBody FeignEbikeReportRecordDto feignEbikeReportRecordDto); /** * 获取用户上报记录 * * @param userId 用户id * @return 用户上报记录 */ @GetMapping("/ebikeReportRecord/getReportRecord") JsonResult> getReportRecord(@RequestParam("userId") Long userId); /** * 获取当前位置所属运营区 * * @param lng 经度 * @param lat 维度 * @return 运营区信息 */ @GetMapping("/ebikeRegion/getRegionByLocation") JsonResult getRegionByLocation(@RequestParam("lng") double lng, @RequestParam("lat") double lat); }