package com.community.huiju.dao;

import com.community.huiju.model.TpSysMenu;
import com.community.huiju.model.TpSysRole;
import com.community.huiju.model.TpSysRoleMenu;
import com.community.huiju.model.TpUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TpUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(TpUser record);

    int insertSelective(TpUser record);

    TpUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TpUser record);

    int updateByPrimaryKey(TpUser record);
    
    TpUser selectByTel(@Param("communityId") Integer communityId,@Param("loginName") String loginName);
    
    int updateByTel(@Param("id") Integer id,@Param("loginName") String loginName,@Param("userName") String userName,@Param("oldTel") String oldTel);
	
	int insertUserRole(@Param("userId") Integer userId, @Param("roleId") int roleId,@Param("communityId") int communityId);

    /**
     * 根据 userId 和 roleId 进行删除用户角色关联
     * @param userId
     * @param roleId
     * @return
     */
	int deleteUserRole(@Param("userId") Integer userId, @Param("roleId") int roleId);

    /**
     * 根据 userId 和 roleId 查询是否有数据存在
     *
     *      大于 0 表示存在,小于等于0表示不存
     *
     * @param userId
     * @param roleId
     * @return
     */
	int countUserRole(@Param("userId") Integer userId, @Param("roleId") int roleId,@Param("communityId") int communityId);

    TpUser selectByLoginName(@Param("loginName") String loginName);
	
	/**
	 * 维护新小区的权限
	 * @param tpSysRole
	 * @return
	 */
	int insertCommunityRole(TpSysRole tpSysRole);
	
	
	List<TpSysMenu> selectMenuList();
	
	int batchInsertRoleMenu(List<TpSysRoleMenu> tpSysRoleMenuList);
}