package com.dgtly.system.mapper;

import com.dgtly.system.domain.SysUserExt;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户销售信息扩展Mapper接口
 * 
 * @author qxp
 * @date 2020-07-29
 */
public interface SysUserExtMapper
{
    /**
     * 查询用户销售信息扩展
     * 
     * @param userId 用户销售信息扩展ID
     * @return 用户销售信息扩展
     */
    public SysUserExt selectSysUserExtById(Long userId);

    /**
     * 查询经销商人员列表除导购，门店经销商用户
     * **/
    public SysUserExt selectSysUserCustomerExtById(Long userId);

    /**
     * 查询用户销售信息扩展列表
     * 
     * @param sysUserExt 用户销售信息扩展
     * @return 用户销售信息扩展集合
     */
    public List<SysUserExt> selectSysUserExtList(SysUserExt sysUserExt);

    /**
     * 新增用户销售信息扩展
     * 
     * @param sysUserExt 用户销售信息扩展
     * @return 结果
     */
    public int insertSysUserExt(SysUserExt sysUserExt);

    /**
     * 根据领导EmployeeId查询所有下属用户id
     *
     * @param bossEmployeeId 领导EmployeeId
     * @return 结果
     */
    public List<String> selectEmployeeIdsByBossEmployeeId(String bossEmployeeId);

    /**
     * 修改用户销售信息扩展
     * 
     * @param sysUserExt 用户销售信息扩展
     * @return 结果
     */
    public int updateSysUserExt(SysUserExt sysUserExt);

    /**
     * 删除用户销售信息扩展
     * 
     * @param userId 用户销售信息扩展ID
     * @return 结果
     */
    public int deleteSysUserExtById(Long userId);

    /**
     * 批量删除用户销售信息扩展
     * 
     * @param userIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysUserExtByIds(String[] userIds);

    /**
     * 插入或更新用户销售信息扩展
     *
     * @param sysUserExt 用户销售信息扩展
     * @return 结果
     */
    public int insertOrUpSysUserExt(SysUserExt sysUserExt);

    /**
     * @description: 根据userid查询多经销商列表
     * @param: [userId]
     * @return: java.util.List<com.dgtly.system.domain.SysUserExt>
     * @author: qxm
     * @date: 2021/4/9 9:39
     */
    List<SysUserExt> selectSysUserExtListByUserId(Long userId);

    /**
     * @description: 切换经销商
     * @param: [userId, customerCode, orgName]
     * @return: com.dgtly.system.domain.SysUserExt
     * @author: qxm
     * @date: 2021/4/9 9:39
     */
    int switchCustomer(@Param("userId") String userId, @Param("orgCode") String orgCode, @Param("orgName") String orgName);


    int selectSysUserExtBySapEmployeeId(@Param("sapEmployeeId") String sapEmployeeId);

    List<SysUserExt> selectUserExtList();
}
