diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java index 7fbfb129..e9628772 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java @@ -91,6 +91,15 @@ public interface CompanyStaffService extends IService { **/ void resetPassword(CompanyStaffRespVO staffRespVO); + /** + * 通过手机号查询员工数据 + * @author PQZ + * @date 15:08 2025/2/21 + * @param phone 手机号 + * @return cn.iocoder.yudao.module.staff.entity.CompanyStaff + **/ + CompanyStaff queryByPhone(String phone); + /** * 验证工号是否重复 * @author 小李 diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java index edcbee0e..c9c97e46 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.log.Log; import cn.iocoder.yudao.common.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; @@ -439,11 +440,32 @@ public class CompanyStaffServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(BaseDO::getDeleted,0).eq(CompanyStaff::getTel,phone); + List list = list(lambdaQueryWrapper); + if (!list.isEmpty()) { + return list.get(0); + } else { + return null; + } + } + /** * 验证工号是否重复 * @@ -451,6 +473,7 @@ public class CompanyStaffServiceImpl extends ServiceImpl().and(item -> { item.eq(CompanyStaff::getWorkNo, workNo); diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java index 78ac273a..8fc6662e 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolCoachServiceImpl.java @@ -8,6 +8,9 @@ import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachMapper; import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService; import cn.iocoder.yudao.module.base.vo.*; import cn.iocoder.yudao.module.jx.utils.StringUtils; +import cn.iocoder.yudao.module.staff.entity.CompanyStaff; +import cn.iocoder.yudao.module.staff.service.CompanyStaffService; +import cn.iocoder.yudao.module.staff.service.UniqueCodeService; import cn.iocoder.yudao.module.system.api.permission.PermissionApi; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; @@ -44,7 +47,13 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl listSchoolCoach(DlDriveSchoolCoachPageReqVO pageReqVO) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(BaseDO::getDeleted,0).eq(DlDriveSchoolCoach::getType,"jl"); - if (StringUtils.isNotEmpty(pageReqVO.getName())){ - lambdaQueryWrapper.like(DlDriveSchoolCoach::getName,pageReqVO.getName()); + lambdaQueryWrapper.eq(BaseDO::getDeleted, 0).eq(DlDriveSchoolCoach::getType, "jl"); + if (StringUtils.isNotEmpty(pageReqVO.getName())) { + lambdaQueryWrapper.like(DlDriveSchoolCoach::getName, pageReqVO.getName()); } return list(lambdaQueryWrapper); } @@ -87,7 +96,7 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl pageStaffCoach(DlDriveSchoolStaffVO staffVO, Page page) { - return dlDriveSchoolCoachMapper.pageStaffCoach(staffVO,page); + return dlDriveSchoolCoachMapper.pageStaffCoach(staffVO, page); } /** @@ -100,36 +109,59 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl roleCodes = new HashSet<>(); - if ("jl".equals(createReqVO.getType())) { - roleCodes.add(SchoolRoleEnum.COACH.getCode()); - } else if ("yg".equals(createReqVO.getType())){ - roleCodes.add(SchoolRoleEnum.STAFF.getCode()); + userDTO = adminUserApi.getUserByUsername(createReqVO.getPhone()); + } + //定义用户id + Long userId = null; + if (StringUtils.isEmpty(createReqVO.getId())) { + /*2、 情况一:新增教练或员工时,员工表中无数据*/ + //员工表中无数据 + if (null == companyStaff) { + //用户表中无数据 + if (null == userDTO) { + UserDTO user = new UserDTO(); + //如果不存在创建用户; + user.setUsername(createReqVO.getPhone()); + user.setNickname(createReqVO.getName()); + //默认密码 + user.setPassword(PASSWORD_DEFAULT); + user.setMobile(createReqVO.getPhone()); + //用户类型员工 + user.setUserType(USER_TYPE_STAFF); + //用户表创建教练 + userId = adminUserApi.createUser(user); + //创建用户后为客户绑定角色 + Set roleCodes = new HashSet<>(); + if ("jl".equals(createReqVO.getType())) { + roleCodes.add(SchoolRoleEnum.COACH.getCode()); + } else if ("yg".equals(createReqVO.getType())) { + roleCodes.add(SchoolRoleEnum.STAFF.getCode()); + } + permissionApi.assignUserRole(userId, roleCodes); + } else { + //用户表中有数据 + userId = userDTO.getId(); } - permissionApi.assignUserRole(userId, roleCodes); + CompanyStaff newStaff = new CompanyStaff(); + newStaff.setUserId(userId); + newStaff.setName(createReqVO.getName()); + newStaff.setTel(createReqVO.getPhone()); + newStaff.setAddress(createReqVO.getAddress()); + newStaff.setSex(createReqVO.getSex()); + newStaff.setUniqueCode(uniqueCodeService.createUniqueCode()); + //保存到员工表 + companyStaffService.save(newStaff); } else { - userId = userDTO.getId(); + //员工表中有数据,则取用户id + userId = companyStaff.getUserId(); } dlDriveSchoolCoach.setUserId(userId); } @@ -191,10 +223,10 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() - .eq(DlDriveSchoolCoach::getUserId,userId); + .eq(DlDriveSchoolCoach::getUserId, userId); List list = this.list(queryWrapper); DlDriveSchoolCoachRespVO schoolCoach = null; - if(!list.isEmpty()){ + if (!list.isEmpty()) { schoolCoach = BeanUtils.toBean(list.get(0), DlDriveSchoolCoachRespVO.class); } return schoolCoach; diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java index 501cc197..d390882d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java @@ -56,7 +56,6 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl