package cn.com.countrygarden.bi.main.dao.wcx;


import cn.com.countrygarden.bi.main.dto.wcx.WcxUserDto;
import cn.com.countrygarden.bi.main.model.wcx.ErpEmp;
import cn.com.countrygarden.bi.main.model.wcx.WcxUser;
import cn.com.countrygarden.bi.main.model.wcx.WcxUserNew;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.Date;
import java.util.List;


public interface WcxUserMapper extends Mapper<WcxUser> {

    /*List<WcxUser> listUser();

    WcxUser selectNumber(@Param("roleid") String roleid);

    int updateNumber(WcxUser wcxUser);

    List<WcxUser> selectrole(String roleid);

    int updateuser(@Param("openid") String openid);

    int updateuserrole(WcxUser wcxUser);

    int findlistcount();

    List<WcxUser> findlists();*/
    // 新
    List<WcxUserDto> selectPageData(WcxUserDto dto);

    int selectPageCount(WcxUserDto dto);

    /**
     * 更改对应人员对应角色
     * @param userId 人员id
     * @param roleId 角色id
     */
    void updateEmpRole(@Param("userId") String userId, @Param("roleId") String roleId);

    /**
     * 查询一时间段中参与人数
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    long selectAllJoinNumber(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    /**
     * 查询一时间段中参与人数 排除掉 baseline 7
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    long selectAllJoinNumberExclude(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    /**
     * 最佳点赞人信息
     * @param thumbNum
     * @return
     */
    List<WcxUserDto> findBestPutPoint(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("thumbNum") int thumbNum);

    /**
     * 最多创新人员信息
     * @param innNum
     * @return
     */
    List<WcxUserDto> findBestNumberInn(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("innNum") int innNum);

    /**
     * 查询奖单中的人员
     * @return
     */
    List<String> findUserIdsInPrizeItem();

    /**
     * 查询奖单中获奖的人员
     * @return
     */
    List<String> findUserIdsInPrizeItemOfStatus(String itemStatus);

    /**
     * 获取人员头像
     * @param userId
     * @return
     */
    String findHeadPicUrlByPrimaryKey(String userId);

    /**
     * 领导点赞次数的对应领导信息
     * @param startDate
     * @param endDate
     * @param thumbCountNumMax
     * @return
     */
    //List<WcxUserDto> findUserLeaderBestJoin(@Param("startDate")Date startDate,@Param("endDate") Date endDate,@Param("thumbCountNum") int thumbCountNum);

    /**
     * 领导点赞次数的对应领导信息
     * @param startDate
     * @param endDate
     * @param thumbThumbNumMin
     * @return
     */
    List<WcxUserDto> findUserLeaderBestJoin(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("thumbThumbNumMin") int thumbThumbNumMin);

    /**
     * 查询物业对应人员信息
     * @param param
     * @return
     */
    List<WcxUserDto> selectDocPageData(WcxUserDto param);

    /**
     * 查询物业对应人员信息数量
     * @param param
     * @return
     */
    Long selectDocPageCount(WcxUserDto param);

    /**
     * 根据身份证号查询对应人员
     * @param empCardId
     * @return
     */
    WcxUserDto findByEmpCardId(String empCardId);

    void insertOne(WcxUserNew wcxUserModel);

    ErpEmp selectEmpIdByNameAndCardId(@Param("employeeName") String employeeName, @Param("employeeCardId") String employeeCardId);

    String findRoleId();

    void updateUserSug(@Param("userId") String userId, @Param("nickName") String nickName);

    List<WcxUserDto> selectWcxUser(WcxUserDto dto);

    int selectWcxUserCount(WcxUserDto dto);

    String findRoleName(String roleCode);


    void deleteUserNickName(String empCardId);
}
