package com.yifu.cloud.plus.v1.permission.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.permission.entity.SysUserPermission;
import com.yifu.cloud.plus.v1.yifu.permission.vo.SysDictVo;
import com.yifu.cloud.plus.v1.yifu.permission.vo.SysUserDeptVo;
import com.yifu.cloud.plus.v1.yifu.permission.vo.SysUserPermissionSearchVo;
import com.yifu.cloud.plus.v1.yifu.permission.vo.SysUserPermissionVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 新权限-用户权限表
 *
 * @author hyc
 * @date 2023-08-29 14:49:40
 */
@Mapper
public interface SysUserPermissionMapper extends BaseMapper<SysUserPermission> {
	/**
	 * 新权限-用户权限表简单分页查询
	 *
	 * @param sysUserPermission 新权限-用户权限表
	 * @return
	 */
	IPage<SysUserPermission> getSysUserPermissionPage(Page<SysUserPermission> page, @Param("sysUserPermission") SysUserPermissionSearchVo sysUserPermission);

	/**
	 * 导出查询数量
	 *
	 * @param sysUserPermission 新权限-用户权限表
	 * @return
	 */
	long userSelectCount(@Param("sysUserPermission") SysUserPermissionSearchVo sysUserPermission);

	/**
	 * 查询导出数据
	 *
	 * @param sysUserPermission 新权限-用户权限表
	 * @return
	 */
	List<SysUserPermissionVo> userSelectList(@Param("sysUserPermission") SysUserPermissionSearchVo sysUserPermission);

	/**
	 * 根据名称或者编码查询数据
	 * 单位权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectUnitVO(Page<SysUserDeptVo> page, @Param("name") String name);

	/**
	 * 根据名称或者编码查询数据
	 * 合同权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectContractVO(Page<SysUserDeptVo> page, @Param("name") String name);

	/**
	 * 根据名称或者编码查询数据
	 * 合同权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectContractSimpleVO(Page<SysUserDeptVo> page, @Param("loginName") String loginName, @Param("name") String name, @Param("type") String type);

	/**
	 * 根据名称或者编码查询数据
	 * 项目权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectSettleVO(Page<SysUserDeptVo> page, @Param("name") String name);

	/**
	 * 根据名称或者编码查询数据
	 * 商机权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectBusinessVO(Page<SysUserDeptVo> page, @Param("name") String name);

	/**
	 * 根据名称或者编码查询数据
	 * 报价单权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectQuotationVO(Page<SysUserDeptVo> page, @Param("name") String name);

	/**
	 * 根据名称或者编码查询数据
	 * 部门&&收入归属权限
	 * @param name 名称
	 * @return
	 */
	IPage<SysUserDeptVo> selectDeptVO(Page<SysUserDeptVo> page, @Param("name") String name);

	List<SysDictVo> selectDictByType(@Param("type") String type);
}

