package cn.com.ty.lift.system.user.service;

import cn.com.ty.lift.system.user.dao.entity.UserApplication;
import cn.com.ty.lift.system.user.dao.entity.model.UserApplyRequest;
import cn.com.xwy.boot.web.dto.RestResponse;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * <p>
 * 用户申请表 服务类
 * </p>
 *
 * @author wang-hai-cheng
 * @since 2019-12-13
 */
public interface IUserApplicationService extends IService<UserApplication> {

    /**
     * @param userApplyRequest
     * @param applyType        申请类型
     * @return
     * @description 申请加入团队
     * @date 2019-12-13 16:42
     */
    RestResponse apply(UserApplyRequest userApplyRequest, int applyType);

    /**
     * @param
     * @return
     * @description 团队成员审核通过
     * @date 2019-12-13 17:19
     */
    RestResponse applyPass(UserApplyRequest userApplyRequest);

    /**
     * @param
     * @return
     * @description 审核不通过
     * @date 2019-12-13 17:30
     */
    RestResponse applyFail(UserApplyRequest userApplyRequest);

    /**
     * @param
     * @return
     * @description 获取用户申请列表
     * @date 2019-12-17 22:38
     */
    RestResponse applyList(UserApplyRequest userApplyRequest);

    /**
     * @param applyResultList 结果集合
     * @param applyStatusArray 申请状态数组
     * @param statusField 状态字段
     * @return
     * @description 封装不同申请状态的条数
     * @date 2020-01-06 22:27
     */
    Map<Integer, Long> getApplyStatusToCountMap(List applyResultList, int[] applyStatusArray, String statusField);
}
