package com.ssm.manage.service;

import com.github.pagehelper.PageInfo;
import com.ssm.core.service.BaseService;
import com.ssm.manage.entity.BaseStaff;
import com.ssm.manage.entity.SmsException;
import com.ssm.manage.query.CourseAccountRequest;
import com.ssm.manage.query.MemberRequest;
import com.ssm.manage.query.StaffRequest;
import com.ssm.manage.response.PersonZBResponse;
import com.ssm.manage.response.StaffResponse;
import com.ssm.manage.response.StaffTemporaryVo;

import java.util.List;

public interface SsmBaseStaffService extends BaseService<BaseStaff> {
    PageInfo<StaffResponse> selectPage(StaffRequest staffRequest);
    PageInfo<StaffResponse> selectPageNew(StaffRequest staffRequest);
    PageInfo<StaffResponse> parentsStaff(StaffRequest staffRequest);
    PageInfo<StaffResponse> selectPagestaff(StaffRequest staffRequest);

    int addStaff(StaffRequest staffRequest, String phone) throws SmsException;
    int addStaffTransition(StaffRequest staffRequest) throws SmsException;
    int addStaff(BaseStaff baseStaff);
    int updateStaff(StaffRequest staffRequest, String phone) throws SmsException;
    int updateStaffStore(StaffRequest staffRequest);

    BaseStaff selectOne(StaffRequest staffRequest);

    int setMonthjob(StaffRequest staffRequest);

    int staffLeave(StaffRequest staffRequest);
    int staffStop(StaffRequest staffRequest);

    int staffReinstated(StaffRequest staffRequest) throws SmsException;

    PageInfo<StaffResponse> staffMemberPage(StaffRequest staffRequest);

    List<BaseStaff> selectList(StaffRequest staffRequest);
    List<BaseStaff> selectListtype(StaffRequest staffRequest);
    int start(StaffRequest staffRequest) throws SmsException;

    int insertBatch(List<BaseStaff> list);

    List<PersonZBResponse> selectPersonZB(CourseAccountRequest request);
    //校验，查询当前当前门店是否有这个员工
    List<StaffRequest> selectCheck(BaseStaff baseStaff);

    List<BaseStaff> selectByAllSalemans();

    void staffAddRole(StaffRequest staffRequest);

    StaffTemporaryVo staffLoginAndAddByWeChat(StaffRequest staffRequest) throws SmsException;

    StaffTemporaryVo staffAddByWeChat(StaffRequest staffRequest) throws SmsException;
    StaffTemporaryVo staffAddByPc(StaffRequest staffRequest) throws SmsException;
    StaffTemporaryVo staffAddByWeChatNew(StaffRequest staffRequest) throws SmsException;

    StaffTemporaryVo staffLogin(StaffRequest staffRequest) throws SmsException;

    StaffTemporaryVo uniPhoneLogin(MemberRequest memberRequest) throws SmsException;
    StaffTemporaryVo uniPhoneLoginNew(MemberRequest memberRequest) throws SmsException;

    Boolean staffSelect(StaffRequest staffRequest);
}
