package cn.com.countrygarden.bi.main.dao.twerp.hm;

import cn.com.countrygarden.bi.main.dto.tbsysuser.RtsUserQuery;
import cn.com.countrygarden.bi.main.dto.tbsysuser.SysUserDto;
import cn.com.countrygarden.bi.main.model.twerp.ErpCommunity;
import cn.com.countrygarden.bi.main.model.twerp.hm.TbSysUser;
import com.github.pagehelper.PageRowBounds;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.List;
import java.util.Map;

@Repository
@Transactional
public interface TbSysUserMapper {
    TbSysUser findByLogin(Map<String, Object> param);
    TbSysUser findByLoginCode(@Param("loginCode") String loginCode);
    TbSysUser findByUserCode(String userCode);

    TbSysUser findByUserCodeNew(String userCode);
    List<TbSysUser> findByDepartmentOrKey(@Param("depCode") String depCode, @Param("searchKey") String searchKey,
                                          PageRowBounds pageRowBounds);

    List<TbSysUser> findByUserCodes(@Param("userCodes") String userCodes);

    List<TbSysUser> searchUser(@Param("userName") String userName,@Param("userCodes") List<String> userCodes,
                               @Param("pageCurrent") int pageCurrent, @Param("pageSize") int pageSize);

    Long countSearchUser(@Param("userName") String userName,@Param("userCodes") List<String> userCodes);


    /**
     * @描述 查询项目总
     * @作者 李子民
     * @时间 2018年7月17日
     * @版本
     */
    String  queryRegionAvatarInfoName(String commId);

    List<String> selectIdList();
    List<SysUserDto> findByNameAndCode(@Param("userQuery")RtsUserQuery rtsUserQuery);
    /**
     * 查询所有正常可使用的用户
     * @param userCodes
     * @return java.util.List<java.lang.String>
     */
    List<String> findByUserCodesOfEnable(@Param("userCodes")String userCodes);

    List<TbSysUser> tbSysUsersList(@Param("search")String search);
    List<String> getUserName(@Param("userCodeList") List<String> userCodeList);
    List<ErpCommunity> getErpOrgList();

    List<TbSysUser> findByNameAndCodeInsuranceOrder(PageRowBounds page, @Param("userQuery") RtsUserQuery rtsUserQuery);

    List<TbSysUser> erpjiashuju();
}
