package com.chinaweal.aiccs.aiccs.market.mapper;

import com.chinaweal.aiccs.aiccs.market.entity.AreaSlicePolygon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 片区围点表 Mapper 接口
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-11-27
 */
public interface AreaSlicePolygonMapper extends BaseMapper<AreaSlicePolygon> {

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

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

    /**
     * 保存片区围点wkt
     * @param gId   图形记录UUID
     * @param wkt   围点WKT
     * @param sliceId   片区id
     * @author lroyia
     * @since  2021年11月28日 19:28:51
     */
    void insertPolygonByWKT(@Param("gId") String gId, @Param("wkt") String wkt, @Param("sliceId") String sliceId);
}
