package com.ruoyi.mall.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.mall.domain.MallSalesman;
import org.apache.ibatis.annotations.Param;

/**
 * 业务员Mapper接口
 *
 * @author ruoyi
 * @date 2022-06-29
 */
public interface MallSalesmanMapper
{
    /**
     * 查询业务员
     *
     * @param phone 业务员手机号
     * @return 业务员
     */
    public MallSalesman selectMallSalesmanByPhone(@Param("phone") String phone);

    /**
     * 业务员首页业绩
     *
     * @param id 业务员主键
     * @param type 时间筛选
     * @return 业务员
     */
    public Map<String,Object> indexData(@Param("id") Integer id, @Param("type") Integer type);

    /**
     * 业务员客户列表
     *
     * @return 业务员
     */
    public List<Map<String,Object>> salesmanCustomerList(Map<String,Object> param);

    /**
     * 已完成订单，成交金额
     *
     * @return 业务员
     */
    public Map<String,Object> finishedOrderData(@Param("salesmanId") Integer salesmanId,@Param("timeBegin") String timeBegin,@Param("timeEnd") String timeEnd);

    /**
     * 待完成订单，待结算金额
     *
     * @return 业务员
     */
    public Map<String,Object> toBeSettledOrderData(@Param("salesmanId") Integer salesmanId,@Param("timeBegin") String timeBegin,@Param("timeEnd") String timeEnd);

    /**
     * 查询业务员
     *
     * @param id 业务员主键
     * @return 业务员
     */
    public MallSalesman getSalesmanInfo(Integer id);

    /**
     * 查询业务员
     *
     * @param id 业务员主键
     * @return 业务员
     */
    public MallSalesman selectMallSalesmanById(Integer id);

    /**
     * 查询业务员列表
     *
     * @param mallSalesman 业务员
     * @return 业务员集合
     */
    public List<MallSalesman> selectMallSalesmanList(MallSalesman mallSalesman);

    /**
     * 新增业务员
     *
     * @param mallSalesman 业务员
     * @return 结果
     */
    public int insertMallSalesman(MallSalesman mallSalesman);

    /**
     * 修改业务员
     *
     * @param mallSalesman 业务员
     * @return 结果
     */
    public int updateMallSalesman(MallSalesman mallSalesman);

    /**
     * 删除业务员
     *
     * @param id 业务员主键
     * @return 结果
     */
    public int deleteMallSalesmanById(Integer id);

    /**
     * 批量删除业务员
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMallSalesmanByIds(Integer[] ids);

    /**
     * 查询业务员列表（用户数量排序）
     *
     * @return 业务员集合
     */
    public List<MallSalesman> selectMallSalesmanUserNumList();

    /**
     * 根据绑定用户ID查询业务员
     *
     * @param userId 定用户ID
     * @return 业务员
     */
    public MallSalesman selectMallSalesmanByUserId(Long userId);

    /**
     * 根据系统用户ID查询业务员
     *
     * @param sysUserId 系统用户ID
     * @return 业务员
     */
    public MallSalesman selectMallSalesmanBySysUserId(Long sysUserId);

    /**
     * 根据ID查询业务员系统用户ID
     *
     * @param ids 需要查询的数据主键集合
     * @return 结果
     */
    public Long[] selectMallSalesmanSysUserIdByIds(Integer[] ids);

}
