package com.fs.company.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.company.domain.CompanyUserChangeApply;
import com.fs.company.vo.CompanyUserChangeApplyVO;

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

public interface ICompanyUserChangeApplyService extends IService<CompanyUserChangeApply> {

    /**
     * 申请更换会员归属
     *
     * @param from      原归属
     * @param to        新归属
     * @param type      类型  0全部 1部分
     * @param ids       会员
     * @param companyId 公司ID
     * @param userName  操作用户
     */
    void apply(Long from, Long to, Integer type, List<Long> ids, Long companyId, String userName);

    /**
     * 查询申请列表
     * @param map 条件
     * @return  list
     */
    List<CompanyUserChangeApplyVO> selectApplyListByMap(Map<String, Object> map);

    /**
     * 查询申请详情
     * @param id    申请记录ID
     * @return  CompanyUserChangeApplyVO
     */
    CompanyUserChangeApplyVO selectApplyDetailById(Long id);

    /**
     * 申请记录审核
     * @param id        申请记录ID
     * @param status    审核状态 1通过 2拒绝
     * @param reason    拒绝理由
     * @param username  审核人
     */
    void audit(Long id, Integer status, String reason, String username);
}
