package com.dk.mdm.mapper.mst;

import com.dk.mdm.model.pojo.mst.Staff;
import com.dk.common.mapper.BaseMapper;
import com.dk.mdm.model.query.mst.StaffQuery;
import com.dk.common.model.response.mst.StaffResponse;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @desc   : 员工 Mapper
 * @author : 姜永辉
 * @date   : 2023/1/4 9:25
 */
@Repository
public interface StaffMapper extends BaseMapper<Staff>{
    /**
     * @desc   : 根据条件进行查询
     * @author : 姜宁
     * @date   : 2023/1/9 10:42
     */
    List<StaffResponse> selectByCond(StaffQuery staffQuery);

    /**
     * @desc   : 根据条件进行查询
     * @author : 姜永辉
     * @date   : 2023/1/9 10:42
     */
    List<StaffResponse> selectByCondByCode(StaffQuery staffQuery);

    /**
     * @desc   : 根据条件进行查询（数量）
     * @author : 姜宁
     * @date   : 2023/1/9 10:42
     */
    Long countByCond(StaffQuery staffQuery);

    /**
     * @desc   : 根据userId获取当前企业的员工信息
     * @author : 周兴
     * @date   : 2024/3/6 10:42
     */
    StaffResponse selectByUserId(String id,Integer cpId);

    /**
     * @desc   : 根据staffId获取当前企业的员工信息
     * @author : 周兴
     * @date   : 2024/3/6 10:42
     */
    StaffResponse selectById(@Param("id") String id);


    /**
     * @desc   : 根据名称查ID
     * @author : 常皓宁
     * @date   : 2024/6/12 8:38
     */
    StaffResponse selectByUuId(StaffQuery staffQuery);

    /**
     * @desc   : 删除幽灵标识数据
     * @author : 常皓宁
     * @date   : 2024/6/20 8:55
     */
    int deleteGhostStaff(StaffQuery staffQuery);

    /**
     * @desc : 通过商户号注销当前负责人
     * @author : 刘尧
     * @date : 2024/6/21 10:21
     */
    boolean updateFlgInit(Map<String, Object> params);

    /**
     * @desc : 更新员工的登录标识
     * @author : 姜永辉
     * @date : 2024/6/21 10:21
     */
    int updateFeignStaffFlgCanLogin(List<String> list);

    /**
     * @desc : 通过用户id更新负责人
     * @author : 刘尧
     * @date : 2024/6/21 10:43
     */
    boolean updateFlgInitById(String owner);
}

