/**
 * Copyright 2018 人人开源 https://www.renren.io
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.UserWechatResultDTO;
import com.epmet.entity.UserBaseInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 用户基础信息
 *
 * @author generator generator@elink-cn.com
 * @since v1.0.0 2020-07-19
 */
@Mapper
public interface UserBaseInfoDao extends BaseDao {
    /**
     * @return com.epmet.dto.result.UserBaseInfoResultDTO
     * @param userId
     * @author yinzuomei
     * @description 根据用户id查询user_base_info基本信息
     * @Date 2020/7/22 9:46
     **/
    UserBaseInfoResultDTO selectListByUserIdList(String userId);
    /**
     * @return com.epmet.dto.result.UserWechatResultDTO
     * @param userId
     * @author yinzuomei
     * @description 根据用户id获取user_wechat表微信用户基本信息
     * @Date 2020/7/22 9:46
     **/
    UserWechatResultDTO selectUserWechatByUserId(String userId);
    /**
     * 获取用户基础信息
     *
     * @param userId
     * @return com.epmet.dto.result.ResiUserBaseInfoResultDTO
     * @Author zhangyong
     * @Date 15:20 2020-07-28
     **/
    ResiUserBaseInfoResultDTO selecUserBaseInfoByUserId(@Param("userId") String userId);
    /**
     * @Description 不覆盖更新
     * @param entity
     * @return
     * @author wangc
     * @date 2020.07.30 14:01
    **/
    void updateWithoutCover(UserBaseInfoEntity entity);
    /**
     * @Description 根据UserId查询是否存在基础信息
     * @param userId
     * @return ID   主键
     * @author wangc
     * @date 2020.07.30 19:16
     **/
    String selectIdByUserId(@Param("userId") String userId);
    List selectCommonIdNumUser(@Param("customerId") String customerId,
                                       @Param("idNum")String idNum);
    Integer selectCountIdNum(@Param("idNum") String idNum,
                             @Param("customerId")String customerId,
                             @Param("excludeUserId")String excludeUserId);
    String selectIdCard(String userId);
    UserBaseInfoEntity selectUserByMobile(@Param("customerId") String customerId, @Param("mobile")String mobile);
    List pageRegUser(@Param("customerId") String customerId,
                                                @Param("agencyId") String agencyId,
                                                @Param("gridId") String gridId,
                                                @Param("name") String name,
                                                @Param("regStartTime") String regStartTime,
                                                @Param("regEndTime") String regEndTime,
                                                @Param("userId") String userId);
}