package com.chinaweal.aiccs.aiccs.market.service;

import com.chinaweal.aiccs.aiccs.market.entity.AreaSlicePolygon;
import com.chinaweal.aiccs.common.enums.SliceTypeEnums;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseService;

import java.util.List;

/**
 * <p>
 * 片区围点表 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-11-27
 */
public interface AreaSlicePolygonService extends BaseService<AreaSlicePolygon> {

    /**
     * 查询与指定点在固定距离内的面
     * @param x 给定点的x坐标
     * @param y 给定点的y坐标
     * @param distance  距离
     * @param excludeIds 排除的数据id
     * @param pSliceId  父片区id
     * @param sliceType 片区类型
     * @return  结果
     * @author lroyia
     * @since  2021年11月27日 17:50:49
     */
    List<AreaSlicePolygon> getPolygonInDistance(double x, double y,
                                                Double distance, List<String> excludeIds, String pSliceId, SliceTypeEnums sliceType);

    /**
     * 通过wkt更新多边形信息
     * @param wkt   wkt
     * @param gId   记录id
     * @author lroyia
     * @since  2021年11月28日 17:03:18
     */
    void updatePolygonByWKT(String wkt, String gId);

    /**
     * 通过wkt保存多边形信息
     * @param wkt   wkt字串
     * @param sliceId   片区id
     * @return  保存结果
     * @author lroyia
     * @since  2021年11月28日 19:27:11
     */
    String savePolygonByWKT(String wkt, String sliceId);
}
