package com.cdzy.operations.service; import com.cdzy.common.model.request.PageParam; import com.cdzy.operations.model.dto.EbikeBikeInfoDto; import com.cdzy.operations.model.dto.EbikeDto; import com.cdzy.operations.model.dto.EbikeUserBikeInfo; import com.cdzy.operations.model.dto.EbikeUserLockDto; import com.cdzy.operations.model.entity.EbikeBikeInfo; import com.cdzy.operations.model.vo.EbikeBatchLaunchVo; import com.cdzy.operations.model.vo.EbikeBatchUnLaunchVo; import com.cdzy.operations.model.vo.EbikeBikeBindVo; import com.cdzy.operations.model.vo.EbikeBikeRadiusVo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import org.postgresql.geometric.PGpolygon; import java.util.List; /** * 服务层。 * * @author attiya * @since 2025-10-17 */ public interface EbikeBikeInfoService extends IService { /** * 整车绑定同时生成车辆编号 * @param bindVo 绑定信息 */ void bind(EbikeBikeBindVo bindVo); /** * 查询区域内车辆 * @param polygon 区域 * @return 列表 */ List list(PGpolygon polygon); /** * 上架车辆分页查询 * @param pageParam 分页参数 * @return 结果 */ Page launchPage(PageParam pageParam); /** * 未上架车辆分页查询 * @param pageParam 分页参数 * @return 结果 */ Page unLaunchPage(PageParam pageParam); /** * 批量上架 * @param launchVo 上架参数 */ void batchLaunch(EbikeBatchLaunchVo launchVo); /** * 批量下架 * @param launchVo 下架参数 */ void batchUnLaunch(EbikeBatchUnLaunchVo launchVo); /** * 车辆 * @param radiusVo 半径信息 * @return 车辆列表 */ List userRadiusList(EbikeBikeRadiusVo radiusVo); /** * 用户开锁 * @param bikeCode 车辆编号 */ void openLock(String bikeCode); /** * 用户获取车辆详情 * @param bikeCode 车辆编号 * @return 详情 */ EbikeUserBikeInfo bikeInfo(String bikeCode); /** * 用户关锁 * @param bikeCode 车辆编号 */ EbikeUserLockDto lock(String bikeCode); }