| | |
| | | package cn.iocoder.yudao.module.hrm.dal.mysql.employee; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| | | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| | | import cn.iocoder.yudao.module.hrm.controller.admin.employee.vo.HrmEmployeePageReqVO; |
| | | import cn.iocoder.yudao.module.hrm.dal.dataobject.employee.HrmEmployeeDO; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 员工信息 Mapper |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | @Mapper |
| | | public interface HrmEmployeeMapper extends BaseMapperX<HrmEmployeeDO> { |
| | | |
| | | default HrmEmployeeDO selectByPhone(String phone) { |
| | | return selectOne(HrmEmployeeDO::getPhone, phone); |
| | | } |
| | | |
| | | /** |
| | | * 按手机号查询员工,<b>包含已软删除的记录</b> |
| | | * |
| | | * <p>用于释放「软删除但仍占用唯一索引」的历史手机号: |
| | | * hrm_employee.uk_phone 建在 phone 列上(不含 deleted), |
| | | * 而 {@link #selectByPhone(String)} 会被逻辑删除插件过滤掉 deleted=1 的行, |
| | | * 导致预校验查不到、写库时却撞唯一索引,最终抛 DuplicateKeyException 变成 500。</p> |
| | | */ |
| | | @Select("SELECT * FROM hrm_employee WHERE phone = #{phone} LIMIT 1") |
| | | HrmEmployeeDO selectByPhoneIncludeDeleted(@Param("phone") String phone); |
| | | |
| | | default HrmEmployeeDO selectByName(String name) { |
| | | return selectOne(HrmEmployeeDO::getName, name); |
| | | } |
| | | |
| | | default List<HrmEmployeeDO> selectListByName(String name) { |
| | | return selectList(HrmEmployeeDO::getName, name); |
| | | } |
| | | |
| | | default HrmEmployeeDO selectByEmployeeNo(String employeeNo) { |
| | |
| | | .orderByAsc(HrmEmployeeDO::getName)); |
| | | } |
| | | |
| | | default List<HrmEmployeeDO> selectListByTeamIds(Collection<Long> teamIds) { |
| | | return selectList(new LambdaQueryWrapperX<HrmEmployeeDO>() |
| | | .inIfPresent(HrmEmployeeDO::getTeamId, CollUtil.isNotEmpty(teamIds) ? teamIds : null) |
| | | .orderByAsc(HrmEmployeeDO::getName)); |
| | | } |
| | | |
| | | } |