package com.ym.mec.biz.dal.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ym.mec.auth.api.entity.SysUser;
import com.ym.mec.biz.dal.entity.TenantProxyInfo;
import com.ym.mec.biz.dal.vo.ProxyUserVo;
import org.apache.ibatis.annotations.Param;

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

/**
 * 机构代理商信息表(TenantProxyInfo)表数据库访问层
 *
 * @author hgw
 * @since 2022-04-22 14:08:20
 */
public interface TenantProxyInfoDao extends BaseMapper<TenantProxyInfo> {

    int insertBatch(@Param("entities") List<TenantProxyInfo> entities);

    /**
     * 在sysuser表添加代理商人员信息
     */
    int insertProxySysUser(SysUser sysUser);

    /**
     * 冻结字段
     * 修改sysuser表 lock字段
     * 9 冻结 0解冻
     */
    int updateProxySysUserLock(@Param("id") Integer id, @Param("lock") Integer lock);

    /**
     * 修改sysUser表
     *
     * @param id    人员id
     * @param phone 手机号
     */
    int updateSysUserPhone(@Param("id") Integer id, @Param("phone") String phone, @Param("name") String name);

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

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

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

}

