package com.huiju.estateagents.property.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huiju.estateagents.base.ResponseBean;
import com.huiju.estateagents.center.taUser.entity.TaUser;
import com.huiju.estateagents.property.model.TaUserVerify;

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

/**
 * 审核 业务
 */
public interface ITaUserVerifyService extends IService<TaUserVerify> {

    /**
     * 查询 所有审核数据
     *
     * @param communityId
     * @param phone
     * @param userName
     * @param idCard
     * @param pageNum
     * @param pageSize
     * @param userElement
     * @return
     */
    ResponseBean selectAll(Integer communityId, String phone, String userName, String idCard, Integer pageNum, Integer pageSize, TaUser userElement);

    /**
     * 审核 用户
     * @param userElement
     * @param userVerifyId
     * @param verifyStatus
     * @param remark
     * @return
     */
    ResponseBean auditUser(TaUser userElement, Integer userVerifyId, Boolean verifyStatus, String remark);

    /**
     * 楼栋详情页面审核审核
     * @param userElement
     * @param userVerifyId
     * @param verifyStatus
     * @param remark
     * @return
     */
    ResponseBean verifyinfoAdd(TaUser userElement, Integer userVerifyId, String verifyStatus, String roleState, String remark);


    /**
     * 获取当前 一个房产审核数据 的数据
     * @param userVerifyId
     * @return
     */
    ResponseBean getToAuditNotApproved(Integer userVerifyId);

    /**
     * 添加 一个审核房产
     * @param personId
     * @param parameter
     * @return
     */
    ResponseBean addUserVerify(String personId, String parameter,Integer orgId);

    /**
     * 根据id 删除 审核表
     * @param userVerifyId
     * @return
     */
    ResponseBean deleteUserVerify(Integer userVerifyId);

    /**
     * 获取 当前用户绑定的房产列表
     * @param personId
     * @return
     */
    ResponseBean getByCurrentUser(String personId);

    /**
     * 根据房产id  删除当前用户的房产
     * @param userElement
     * @param userVerifyId
     * @return
     */
    ResponseBean deleteCurrentUserVerify(TaUser userElement, Integer userVerifyId);

    /**
     * 获取所有业主基础内容
     * @param orgId
     * @return
     */
    Page<Map<String, String>> getPropUserByPaged(Page<Map<String, String>> page, Integer orgId);

    /**
     * 获取所有指定生日的业主
     * @param orgId
     * @return
     */
    Page<Map<String, String>> getPropUserByBirday(Page<Map<String, String>> page, Integer orgId, String birthday);

    List<Map<String, Object>> getVerifyMapList(Integer orgId, Integer communityId, String startDate, String endDate);

    int getNoVerifyNum(Integer orgId, Integer communityId);

    IPage<TaUserVerify> getListWithPoints(IPage<TaUserVerify> page, Map<String, Object> params);
}
