package com.project.zcustom.service.service.property;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import com.project.zcustom.controller.core.PageParamVo;
import com.project.zcustom.domain.property.PlatProperty;

import java.util.List;
import java.util.Map;

/**
 * 共享驿站Service接口
 *
 * @author change
 * @date 2024-10-21
 */
public interface IPlatPropertyService extends IService<PlatProperty> {

    /**
     * 分页查询共享驿站列表
     *
     * @param platProperty 共享驿站
     * @return 共享驿站集合
     */
    public IPage<PlatProperty> pagingPlatPropertyList(PlatProperty platProperty);

    /**
     * 分页查询共享驿站列表
     *
     * @param lqw
     * @return 共享驿站集合
     */
    public IPage<PlatProperty> pagingPlatPropertyList(PageParamVo pageParamVo, LambdaQueryWrapper<PlatProperty> lqw);

    /**
     * 查询共享驿站列表
     *
     * @param platProperty 共享驿站
     * @return 共享驿站集合
     */
    public List<PlatProperty> selectPlatPropertyList(PlatProperty platProperty);

    /**
     * 查询共享驿站列表
     *
     * @param platProperty 共享驿站
     * @return 共享驿站集合
     */
    public List<PlatProperty> selectPlatPropertyList(PlatProperty platProperty,Long limitNum);

    /**
     * 根据指定字段查询信息
     *
     * @param field 字段名称
     * @param filedValue 字段值
     * @return 共享驿站
     */
    public PlatProperty getPlatPropertyByField(String field, String filedValue);

    /**
     * 根据指定字段查询信息
     *
     * @param field      字段名称
     * @param filedValue 字段值
     * @return 共享驿站
     */
    public PlatProperty getPlatPropertyByField(String field, String filedValue,String fieldString);

    /**
     * 根据指定字段查询信息列表
     *
     * @param field 字段名称
     * @param filedValue 字段值
     * @return 共享驿站
     */
    public List<PlatProperty> selectPlatPropertyListByField(String field, String filedValue);

    /**
     * 根据指定字段查询信息列表
     *
     * @param field 字段名称
     * @param filedValue 字段值
     * @return 共享驿站
     */
    public List<PlatProperty> selectPlatPropertyListByField(String field, String filedValue,Long limitNum);

    /**
     *判断指定字段值是否存在
     *
     * @param field 字段名称
     * @param filedValue 字段值
     */
    public void checkFieldExist(String field, String filedValue,String tips,Long id);

    /**
     *  真删接口
     */
    public void reallyDeletePlatProperty(LambdaQueryWrapper<PlatProperty> lqw);

    /**
     * 添加共享驿站
     */
    public void addPlatProperty(String appOrg,Map<String, Object> mapField);

    /**
     * 建设完成达标率
     * @param appOrg
     * @return
     */
    public Map<String, Object> getOverviewData(String appOrg);
}
