package com.ym.mec.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ym.mec.auth.api.entity.SysUser;
import com.ym.mec.biz.dal.dao.TenantProxyInfoDao;
import com.ym.mec.biz.dal.dto.TenantProxyDto;
import com.ym.mec.biz.dal.entity.TenantProxyInfo;
import com.ym.mec.biz.dal.vo.ProxyUserVo;
import com.ym.mec.common.page.PageInfo;

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

/**
 * 机构代理商信息表(TenantProxyInfo)表服务接口
 *
 * @author hgw
 * @since 2022-04-22 14:08:20
 */
public interface TenantProxyInfoService extends IService<TenantProxyInfo> {

    TenantProxyInfoDao getDao();

    /**
     * 后台-添加代理商信息
     */
    void addProxyInfo(TenantProxyDto dto);

    /**
     * 添加代理商下面的员工
     */
    void addProxyStaff(TenantProxyDto dto);

    /**
     * 查询代理商下级人员数据
     *
     * @param userId 代理人id
     */
    List<ProxyUserVo> queryProxyUserStaff(Integer userId);

    /**
     * 分页查询代理商负责人数据
     *
     * @param param 传入参数
     *              <p> - state  状态 0正常 1冻结
     *              <p> - row 条数
     *              <p> - page 页数
     *              <p> - search 模糊搜索关键字
     */
    PageInfo<ProxyUserVo> queryProxyUser(Map<String, Object> param);

    /**
     * 冻结/解冻代理商
     *
     * @param userId 代理负责人id
     * @param state  状态 0正常 1冻结
     */
    void freezeProxy(Integer userId, Integer state);

    /**
     * 修改人员信息
     */
    void updateProxyUserInfo(TenantProxyDto dto);

    /**
     * 根据手机号/姓名模糊查询所有平台账号信息
     *
     * @param param 传入参数
     *              <p> - search 模糊搜索关键字
     */
    List<SysUser> queryUserList(Map<String, Object> param);

    /**
     * 根据token查询用户信息-代理商专用
     *
     * @return
     */
    SysUser queryUserList();
}

