This commit is contained in:
PQZ 2025-02-21 16:54:42 +08:00
parent 72c6b2904c
commit e55c597e16
4 changed files with 96 additions and 33 deletions

View File

@ -91,6 +91,15 @@ public interface CompanyStaffService extends IService<CompanyStaff> {
**/
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 小李

View File

@ -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<CompanyStaffMapper, Com
* @author 小李
* @date 16:21 2024/8/9
**/
@Override
public void resetPassword(CompanyStaffRespVO staffRespVO) {
// 修改员工密码
adminUserApi.resetPassword(staffRespVO.getUserId(), staffRespVO.getPassword());
}
/**
* 通过手机号查询员工数据
*
* @param phone 手机号
* @return cn.iocoder.yudao.module.staff.entity.CompanyStaff
* @author PQZ
* @date 15:08 2025/2/21
**/
@Override
public CompanyStaff queryByPhone(String phone) {
LambdaQueryWrapper<CompanyStaff> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(BaseDO::getDeleted,0).eq(CompanyStaff::getTel,phone);
List<CompanyStaff> list = list(lambdaQueryWrapper);
if (!list.isEmpty()) {
return list.get(0);
} else {
return null;
}
}
/**
* 验证工号是否重复
*
@ -451,6 +473,7 @@ public class CompanyStaffServiceImpl extends ServiceImpl<CompanyStaffMapper, Com
* @author 小李
* @date 14:03 2024/8/9
**/
@Override
public Boolean checkWorkNo(String workNo) {
return staffMapper.selectCount(new LambdaQueryWrapper<CompanyStaff>().and(item -> {
item.eq(CompanyStaff::getWorkNo, workNo);

View File

@ -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<DlDriveSchoolCoac
@Lazy
private AdminUserApi adminUserApi;
@Resource
@Lazy
private CompanyStaffService companyStaffService;
@Resource
private PermissionApi permissionApi;
@Resource
private UniqueCodeService uniqueCodeService;
/**
* 驾校教练普通员工列表
@ -71,9 +80,9 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
@Override
public List<DlDriveSchoolCoach> listSchoolCoach(DlDriveSchoolCoachPageReqVO pageReqVO) {
LambdaQueryWrapper<DlDriveSchoolCoach> 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<DlDriveSchoolCoac
**/
@Override
public IPage<DlDriveSchoolStaffVO> pageStaffCoach(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page) {
return dlDriveSchoolCoachMapper.pageStaffCoach(staffVO,page);
return dlDriveSchoolCoachMapper.pageStaffCoach(staffVO, page);
}
/**
@ -100,36 +109,59 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
@Override
@Transactional(rollbackFor = Exception.class)
public void saveSchoolCoach(DlDriveSchoolCoachSaveReqVO createReqVO) {
/*1、数据类型转换*/
/*1、基础数据准备*/
//数据类型转换
DlDriveSchoolCoach dlDriveSchoolCoach = BeanUtils.toBean(createReqVO, DlDriveSchoolCoach.class);
//初始化
CompanyStaff companyStaff = companyStaffService.queryByPhone(createReqVO.getPhone());
//查询用户
AdminUserRespDTO userDTO = new AdminUserRespDTO();
if (null == createReqVO.getUserId()) {
/*2、新增教练或编辑教练无用户id时同时插入一条用户数据*/
//通过手机号查询用户
AdminUserRespDTO userDTO = adminUserApi.getUserByUsername(createReqVO.getPhone());
Long userId;
//存在两种情况1用户存在2用户不存在
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<String> 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<String> 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<DlDriveSchoolCoac
@Override
public DlDriveSchoolCoachRespVO getDlDriveSchoolCoachByUserId(Long userId) {
LambdaQueryWrapper<DlDriveSchoolCoach> queryWrapper = new LambdaQueryWrapper<DlDriveSchoolCoach>()
.eq(DlDriveSchoolCoach::getUserId,userId);
.eq(DlDriveSchoolCoach::getUserId, userId);
List<DlDriveSchoolCoach> list = this.list(queryWrapper);
DlDriveSchoolCoachRespVO schoolCoach = null;
if(!list.isEmpty()){
if (!list.isEmpty()) {
schoolCoach = BeanUtils.toBean(list.get(0), DlDriveSchoolCoachRespVO.class);
}
return schoolCoach;

View File

@ -56,7 +56,6 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl<DlDriveSchoolSt
//学员基本信息
DlDriveSchoolStudent student = getById(id);
DlDriveSchoolStudentVO result = BeanUtils.toBean(student,DlDriveSchoolStudentVO.class);
return result;
}