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.*; import com.ebike.feign.model.vo.EbikeLockVo; import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo; import com.ebike.feign.model.vo.FeignEbikeRefundReviewVo; import com.ebike.feign.model.vo.FeignEbikeRegionVo; import com.ebike.feign.model.vo.FeignEbikeReportRecordVo; import com.ebike.feign.model.vo.FeignEbikeSiteVo; import com.ebike.feign.model.vo.FeignInspectionSwapOrderVo; 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,@RequestParam("acceptOrder")Boolean acceptOrder); /** * 根据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/api/saveReportRecord") JsonResult saveReportRecord(@RequestBody FeignEbikeReportRecordDto feignEbikeReportRecordDto); /** * 获取用户上报记录 * * @param userId 用户id * @return 用户上报记录 */ @GetMapping("/ebikeReportRecord/api/getReportRecord") JsonResult> getReportRecord(@RequestParam("userId") Long userId); /** * 获取当前位置所属运营区 * * @param lng 经度 * @param lat 维度 * @return 运营区信息 */ @GetMapping("/ebikeRegion/api/getRegionByLocation") JsonResult getRegionByLocation(@RequestParam("lng") double lng, @RequestParam("lat") double lat, @RequestParam("radius") double radius); /** * 根据SN编号查询运营区 * * @param ecuSn 编号 * @return 运营区信息 */ @GetMapping("/ebikeRegion/api/getRegionByEcuSn") JsonResult getRegionByEcuSn(@RequestParam("ecuSn") String ecuSn); /** * 生成退款审核单 * * @param dto 退款审核参数 */ @PostMapping("/ebikeRefundReview/api/save") JsonResult saveRefundReview(@RequestBody FeignRefundReviewDto dto); /** * 根据订单id查看退款订单详情 * * @param orderId 订单id * @return 退款订单审核详情 */ @GetMapping("/ebikeRefundReview/api/getRefundReviewByOrderId") JsonResult getRefundReviewByOrderId(@RequestParam("orderId") Long orderId); /** * 根据车辆编号获取寻车铃 * * @param bikeCode 车辆编号 * @return true 成功 false 失败 */ @GetMapping("/ebikeEcuInfo/api/findBikeByBikeCode") JsonResult findBikeByBikeCode(@RequestParam("bikeCode") String bikeCode); /** * 根据车辆编号获取该运营区所有站点 * @param bikeCode 车辆编号 * @return 所有站点 */ @GetMapping("/ebikeBikeInfo/api/getAllSiteByBikeCode") JsonResult> getAllSiteByBikeCode(@RequestParam("bikeCode") String bikeCode); /** * 临时停车 * @param bikeCode 车辆编号 */ @GetMapping("/ebikeBikeInfo/api/tempLock") JsonResult tempLock(@RequestParam("bikeCode") String bikeCode); /** * 临时停车继续骑行 * @param bikeCode 车辆编号 */ @GetMapping("/ebikeBikeInfo/api/tempLockResume") JsonResult tempLockResume(@RequestParam("bikeCode") String bikeCode); /** * 根据车辆编号查询电话 * * @param bikeCode 车辆编码 * @return 运营商电话 */ @GetMapping("/ebikeCarrierConfiguration/api/getPhoneByBikeCode") JsonResult getPhoneByBikeCode(@RequestParam("bikeCode") String bikeCode); }