package com.ruoyi.mall.service;

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

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.ApiResult;
import com.ruoyi.mall.domain.MallSalesman;

/**
 * 业务员Service接口
 *
 * @author ruoyi
 * @date 2022-06-29
 */
public interface IMallSalesmanService
{
    /**
     * 业务员登陆
     *
     * @return 业务员
     */
    public ApiResult salesmanLogin(Map<String,Object> param);

    /**
     * 业务员注销登陆
     *
     * @return 业务员
     */
    public ApiResult salesmanLogout(Map<String,Object> param);

    /**
     * 业务员修改头像名称
     *
     * @return 业务员
     */
    public ApiResult salesmanEdit(Map<String,Object> param);

    /**
     * 业务员首页业绩
     *
     * @return 业务员
     */
    public ApiResult indexData(Map<String,Object> param);

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

    /**
     * 创建客户
     *
     * @return 业务员
     */
    public ApiResult createMemberUser(Map<String,Object> param);

    /**
     * 业绩
     *
     * @return 业务员
     */
    public ApiResult salesmanAchievement(Map<String,Object> param);

    /**
     * 订单列表
     *
     * @return 业务员
     */
    public ApiResult salesmanOrderList(Map<String,Object> param);

    /**
     * 订单详情
     *
     * @return 业务员
     */
    public ApiResult salesmanOrderDetail(Map<String,Object> param);

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

    /**
     * 后台重置业务员密码
     * @return 业务员
     */
    public AjaxResult resetPassword(Map<String,Object> param);

    /**
     * 查询业务员
     *
     * @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 ids 需要删除的业务员主键集合
     * @return 结果
     */
    public int deleteMallSalesmanByIds(Integer[] ids);

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

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

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

    /**
     * 新增业务员、分公司管理系统用户信息
     *
     * @param mallSalesman 业务员、分公司管理
     * @return 结果
     */
    public int insertSysUserMallSalesman(MallSalesman mallSalesman);

    /**
     * 查看业务员二维码
     * @param mallSalesman 业务员
     * @return 结果
     */
    public JSONObject getSalesmanQrCode(MallSalesman mallSalesman);

    MallSalesman selectMallSalesmanBysysUserId(Long userId);
}
