package cn.com.countrygarden.bi.main.service.twerp.hm;


import cn.com.countrygarden.bi.main.core.Result;
import cn.com.countrygarden.bi.main.core.Service;
import cn.com.countrygarden.bi.main.model.AccessToken;
import cn.com.countrygarden.bi.main.model.PageData;
import cn.com.countrygarden.bi.main.model.twerp.hm.TbSysDepartment;
import cn.com.countrygarden.bi.main.model.twerp.hm.TbSysOrgan;
import cn.com.countrygarden.bi.main.model.twerp.hm.TbSysUser;

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

public interface TbSysUserService extends Service<TbSysUser> {
    TbSysUser findByLogin(String loginCode, String passWord);

    Map<String, Object> login(String loginCode, String password);

    void logout();

    boolean validateAccessToken(String accessToken);

    TbSysUser findByUserCode(String userCode);

    TbSysUser findByUserCodeNew(String userCode);

    AccessToken getCurrentAccessToken();
    TbSysUser getCurrentSysUser();
    TbSysOrgan getSysOrgan();

    String suffixAccesstoken(String url, String basePath);

    String suffixAccesstoken(String url);

    List<TbSysDepartment> listDepartments();

    PageData findByDepartmentOrKey(String depCode, String searchKey,int page,int size);

    List<TbSysUser> findByUserCodes(List<String> userCodes);
    /**
     * 查询一批人员中有效的ERP人员编号
     * @param userCodes
     * @return java.util.List<cn.com.countrygarden.bi.main.model.twerp.hm.TbSysUser>
     */
    List<String> findByUserCodesOfEnable(List<String> userCodes);
    /**
     * 绩效权限搜索框按照用户名、登陆账号查询
     * @param userName 用户名
     * @param userCodes userCodes
     * @param pageCurrent 当前行号
     * @param pageSize 条数
     * @return List数据
     */
    List<TbSysUser> searchUser(String userName,List<String> userCodes,int pageCurrent,int pageSize);

    /**
     * 计算count  searchUser
     * @param userName 用户名
     * @param userCodes userCodes
     * @return 总条数
     */
    Long countSearchUser(String userName,List<String> userCodes);


    Result queryByUid(String search);
}
