ebike-plus/ebike-feign/src/main/java/com/ebike/feign/clients/OperationsFeignClient.java

199 lines
6.2 KiB
Java

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<List<FeignEbikeDto>> userRadiusList(@Validated @RequestBody FeignEbikeBikeRadiusVo radiusVo);
/**
* 用户开锁
*
* @return 结果
*/
@GetMapping("/ebikeBikeInfo/api/openLock")
JsonResult<?> openLock(@RequestParam("bikeCode") String bikeCode);
/**
* 用户关锁
*
* @return 结果
*/
@PostMapping("/ebikeBikeInfo/api/lock")
JsonResult<FeignEbikeUserLockDto> lock(@RequestBody EbikeLockVo lockVo);
/**
* 用户获取车辆详情及其计费规则
*
* @return 结果
*/
@GetMapping("/ebikeBikeInfo/api/bikeInfo")
JsonResult<FeignEbikeUserBikeInfo> bikeInfo(@RequestParam("bikeCode") String bikeCode);
/**
* 根据EcuSn生成换电工单
*
* @return 结果
*/
@GetMapping("/ebikeBikeOrder/batterySwapOrder")
JsonResult<FeignEbikeUserBikeInfo> batterySwapOrder(@RequestParam("ecuSn") String ecuSn,@RequestParam("acceptOrder")Boolean acceptOrder);
/**
* 根据bikeCode生成巡检工单
*
* @return 结果
*/
@PostMapping("/ebikeBikeOrder/inspectionSwapOrder")
JsonResult<FeignEbikeUserBikeInfo> 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<List<FeignEbikeReportRecordVo>> getReportRecord(@RequestParam("userId") Long userId);
/**
* 获取当前位置所属运营区
*
* @param lng 经度
* @param lat 维度
* @return 运营区信息
*/
@GetMapping("/ebikeRegion/api/getRegionByLocation")
JsonResult<FeignEbikeRegionVo> getRegionByLocation(@RequestParam("lng") double lng,
@RequestParam("lat") double lat,
@RequestParam("radius") double radius);
/**
* 根据SN编号查询运营区
*
* @param ecuSn 编号
* @return 运营区信息
*/
@GetMapping("/ebikeRegion/api/getRegionByEcuSn")
JsonResult<FeignEbikeRegionDto> 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<FeignEbikeRefundReviewVo> 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<List<FeignEbikeSiteVo>> 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);
}