package com.artfess.uc.dao; import com.artfess.base.constants.SQLConst; import com.artfess.uc.model.User; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; import java.time.LocalDateTime; import java.util.List; import java.util.Map; /** * *
 
 * 描述:用户表 DAO接口
 * 构建组:x5-bpmx-platform
 * 作者:ray
 * 邮箱:zhangyg@jee-soft.cn
 * 日期:2016-06-30 10:26:50
 * 版权:广州宏天软件有限公司
 * 
*/ public interface UserDao extends BaseMapper{ /** *删除所有已逻辑删除的实体(物理删除) * */ Integer removePhysical(); /** * 根据Account取定义对象。 * @param account * @return */ User getByAccount(@Param("account") String account); /** * 根据account获取记录数 * @param account * @return */ Integer getCountByAccount(@Param("account")String account); /** * 根据mobile取定义对象。 * @param mobile * @return */ User getByMobile(@Param("mobile") String mobile); /** * 不含用户组织关系 */ List getUserListByOrgId(@Param("orgId") String orgId); /** * 不含用户组织关系 * @param wrapper * @return */ List queryOrgUser(@Param(Constants.WRAPPER) Wrapper wrapper); /** * 含组织用户关系表数据 * @param wrapper * @return */ @SuppressWarnings("rawtypes") List queryOrgUserRel(@Param(Constants.WRAPPER)Wrapper wrapper); /** * 根据岗位编码获取用户列表 * @param postCode * @return */ List getListByPostCode(@Param("postCode") String postCode); /** * 根据岗位ID获取用户列表 * @param postId * @return */ List getListByPostId(@Param("postId") String postId); /** * 根据角色ID获取用户列表 * @param roleId * @return */ List getUserListByRoleId(@Param("roleId") String roleId); /** * 根据角色Code获取用户列表 * @param roleCode * @return */ List getUserListByRoleCode(@Param("roleCode") String roleCode); /** * 获取角色用户(含分页) * @param iPage * @param params * @return */ IPage getUserListByRoleCodeMap(IPage iPage,@Param(Constants.WRAPPER) Wrapper params); /** * 获取用户列表(分页) * @param iPage * @param wrapper * @return */ IPage getUserListByOrgQuery(IPage iPage,@Param(Constants.WRAPPER) Wrapper wrapper); /** * 根据 email查询用户 * @param email * @return */ List getByUserEmail(@Param("email") String email); /** * 获取用户的所有上级 * @param underUserId * @return */ List getUpUsersByUserId(@Param("underUserId") String underUserId); /** * 获取用户某组织下的上级 * @param underUserId * @param orgId * @return */ User getUpUserByUserIdAndOrgId(@Param("underUserId") String underUserId,@Param("orgId") String orgId); /** * 获取用户的所有下级 * @param upUserId * @return */ List getUnderUsersByUserId(@Param("upUserId") String upUserId); /** * 获取用户某组织下的下级用户 * @param upUserId * @param orgId * @return */ List getUnderUserByUserIdAndOrgId(@Param("upUserId") String upUserId,@Param("orgId") String orgId); /** * 根据工号取定义对象。 * @param userNumber * @return */ User getByNumber(@Param("userNumber") String userNumber); /** * 获取组织下人员 * @param map * @return */ List getOrgUsers(Map map); /** * 根据组织编码、职务编码获取 * @param orgCode * @param jobCode * @return */ List getByJobCodeAndOrgCode(@Param("orgCode") String orgCode,@Param("jobCode") String jobCode); /** * 通过岗位编码获取用户 * @param postCode * @return */ List getUserByPost(@Param("postCode") String postCode); /** * 通过岗位编码获取用户 * @param postCodes * @return */ List getUserByPosts(@Param("postCodes") List postCodes); /** * 通过账号批量设置用户状态 * @param status * @param accounts */ void updateStatusByAccounts(@Param("status")Integer status, @Param("accounts")List accounts,@Param("updateTime")LocalDateTime updateTime); /** * 获取指定群组下人员分页信息 * @param convert2iPage * @param params * @return */ IPage getGroupUsersPage(IPage convert2iPage, @Param(SQLConst.QUERY_FILTER) Map params); /** * 根据多维sql获取用户 * @param wrapper * @return */ List queryByDim(@Param(Constants.WRAPPER)Wrapper wrapper); /** * 查询账号是否已存在 * @param account * @return */ Integer queryByAccount(String account); /** * 查询工号是否已存在 * @param userNumber * @return */ Integer queryByUserNumber(@Param("account")String account, @Param("userNumber")String userNumber); /** * 获取维度下的用户 * @param iPage * @param params * @return * @throws Exception */ IPage getDemUserQuery(IPage iPage,@Param(Constants.WRAPPER) Wrapper params) throws Exception; /** * 获取组织下的用户 * @param iPage * @param params * @return * @throws Exception */ IPage getUserByOrgQuery(IPage iPage,@Param(Constants.WRAPPER) Wrapper params) throws Exception; /** * 根据帐号获取已被逻辑删除的数据 * @param account * @return * @throws Exception */ User getDelDataByAccount(@Param("account") String account) throws Exception; IPage queryByType(IPage iPage, @Param(Constants.WRAPPER)Wrapper convert2Wrapper); /** * 通过组织中的下属设置获取上级人员 * @param params * @return * @throws Exception */ List getSuperFromUnder(Map params)throws Exception; List getSuperiorFromUnder(Map params) throws Exception; /** * 根据userid查询姓名及组织 * @param userId * @return */ Map getUserDetailed(@Param("userId")String userId); /** * 模糊查询用户信息 * @param query * @return */ List getUserByName(@Param("query")String query); /** * 根据openId查询用户信息 * @param openId * @return */ User getUserByOpenId(@Param("openId") String openId); IPage selectShiftUser(IPage iPage, @Param(Constants.WRAPPER) Wrapper convert2Wrapper); /** * 获取还没进行企业微信同步的用户 * @return */ List getUsersNotYetSyncWxWork(); /** * 根据微信通讯录的userid获取绑定的用户的用户信息 * @param wxWorkId * @return */ User getUserByWxWorkId(@Param("wxWorkId") String wxWorkId); /** * 获取还没进行钉钉同步的用户 * @return */ List getUsersNotYetSyncDingtalk(); /** * 根据钉钉通讯录的userid获取绑定的用户的用户信息 * @param dingtalkId * @return */ User getUserByDingtalkId(@Param("dingtalkId") String dingtalkId); /** * 根据组织编码、角色编码获取 * @param orgCode * @param roleCode * @return */ List getByOrgCodeAndroleCode(@Param("orgCode") String orgCode,@Param("roleCode") String roleCode); /** * 根据Account列表取定义对象。 * @param list * @return */ List getByAccounts(@Param("list")List list); /** * 批量插入 * @param list * @return */ boolean insertBatch(@Param("list")List list); /** * 批量更新 * @param list * @return */ boolean updateBatch(@Param("list")List list); /** * 获取已删除账号列表 * @return */ List getDelAccountDatas(); /** * 根据组织编码获取用户 (包含子组织的用户) * @param orgCode * @return */ List getUserListByOrgCode(String orgCode); /** * 根据Account取定义对象(包括逻辑删除了的)。 * @param account * @return */ User getAllDataByAccount(@Param("account") String account); /** * 通过id恢复删除的人员数据 * @param status * @param accounts */ void restoreDeletedUser(@Param("id")String id); }