This commit is contained in:
Vinjor 2025-02-06 18:42:49 +08:00
commit 8a11a4767a
14 changed files with 282 additions and 15 deletions

View File

@ -0,0 +1,48 @@
package cn.iocoder.yudao.module.base.controller.admin;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolStaffService;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 驾校人员管理通用Controller")
@RestController
@RequestMapping("/base/drive-school-staff")
@Validated
public class DlDriveSchoolStaffController {
@Resource
private DlDriveSchoolStaffService staffService;
/**
* 手机APP分页获取人员信息
*
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param pageNo 分页参数
* @param pageSize 分页参数
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<com.baomidou.mybatisplus.core.metadata.IPage < ?>>
* @author PQZ
* @date 13:49 2025/2/6
**/
@GetMapping("/pageStaff")
@Operation(summary = "分页获取人员信息")
public CommonResult<IPage<?>> pageStaff(DlDriveSchoolStaffVO staffVO,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
Page<DlDriveSchoolStaffVO> page = new Page<>(pageNo, pageSize);
return success(staffService.pageStaff(staffVO, page));
}
}

View File

@ -29,10 +29,22 @@ public class DlDriveSchoolCoachCourse extends TenantBaseDO {
* 教练id
*/
private String coachId;
/**
* 教练名称
*/
private String coachName;
/**
* 课程id
*/
private String courseId;
/**
* 课程名称
*/
private String courseName;
/**
* 课程类型
*/
private String courseType;
/**
* 科目
*/

View File

@ -29,17 +29,17 @@ public class DlDriveSchoolCourse extends TenantBaseDO {
private String id;
/**
* 车辆档位
*/
private String automatic;
/**
* 驾照类型
*/
private String license;
/**
* 驾驶证类型
* 课程类型驾证类型
* 1C1小型手动挡汽车
* 2C2小型自动档汽车
* 3B1中型客车
* 4B2大型货车
* 5A1大型客车
* 6A2牵引车
* 7A3城市公交车
* 8D三轮摩托车
* 9E两轮摩托车
* 10F轻便摩托车
*/
private String type;
@ -47,6 +47,10 @@ public class DlDriveSchoolCourse extends TenantBaseDO {
* 课程名字
*/
private String name;
/**
* 课程名字
*/
private String tittle;
/**
* 课程开始时间
@ -68,7 +72,7 @@ public class DlDriveSchoolCourse extends TenantBaseDO {
/**
* 课程简介
*/
private String describ;
private String remark;
/**
* 定金
*/

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.base.mapper;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachPageReqVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -28,4 +29,14 @@ public interface DlDriveSchoolCoachMapper extends BaseMapper<DlDriveSchoolCoach>
**/
IPage<DlDriveSchoolCoachRespVO> queryListPage(@Param("entity") DlDriveSchoolCoachPageReqVO entity, Page<DlDriveSchoolCoachRespVO> page);
/**
* 手机端查询人员信息
*
* @param entity {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
* @author PQZ
* @date 13:53 2025/2/6
**/
IPage<DlDriveSchoolStaffVO> pageStaffCoach(@Param("entity") DlDriveSchoolStaffVO entity, Page<DlDriveSchoolStaffVO> page);
}

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.base.mapper;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -36,4 +37,14 @@ public interface DlDriveSchoolStudentMapper extends BaseMapper<DlDriveSchoolStud
**/
List<DlDriveSchoolStudent> selectCanExamStudentList(@Param("courseId")String courseId,@Param("coachId")Long coachId
,@Param("subject")Integer subject,@Param("userName")String userName);
/**
* 手机端人员管理查询学员信息
* @author PQZ
* @date 14:48 2025/2/6
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
**/
IPage<DlDriveSchoolStaffVO> pageStaffStudent(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page);
}

View File

@ -1,9 +1,7 @@
package cn.iocoder.yudao.module.base.service;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachPageReqVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachSaveReqVO;
import cn.iocoder.yudao.module.base.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
@ -28,6 +26,15 @@ public interface DlDriveSchoolCoachService extends IService<DlDriveSchoolCoach>
**/
IPage<DlDriveSchoolCoachRespVO> queryListPage(DlDriveSchoolCoachPageReqVO pageReqVO, Page<DlDriveSchoolCoachRespVO> page);
/**
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
* @author PQZ
* @date 13:51 2025/2/6
**/
IPage<DlDriveSchoolStaffVO> pageStaffCoach(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page);
/**
* 保存驾校教练
*

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.base.service;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCourseVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* 驾校人员管理通用接口层
*
* @author pqz
*/
public interface DlDriveSchoolStaffService {
/**
* 分页获取人员信息
*
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
* @author PQZ
* @date 13:50 2025/2/6
**/
IPage<DlDriveSchoolStaffVO> pageStaff(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page);
}

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.base.service;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -75,4 +76,14 @@ public interface DlDriveSchoolStudentService extends IService<DlDriveSchoolStude
* @return List<DlDriveSchoolStudent>
**/
List<DlDriveSchoolStudent> getCanExamStudentList(String courseId, Integer subject,String userName);
/**
* 手机端获取学员
* @author PQZ
* @date 14:47 2025/2/6
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
**/
IPage<DlDriveSchoolStaffVO> pageStaffStudent(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page);
}

View File

@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachPageReqVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachSaveReqVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
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;
@ -57,6 +58,18 @@ public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoac
return dlDriveSchoolCoachMapper.queryListPage(pageReqVO, page);
}
/**
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
* @author PQZ
* @date 13:51 2025/2/6
**/
@Override
public IPage<DlDriveSchoolStaffVO> pageStaffCoach(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page) {
return dlDriveSchoolCoachMapper.pageStaffCoach(staffVO,page);
}
/**
* 保存驾校教练
*

View File

@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.base.service.impl;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolStaffService;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
/**
* 驾校人员管理通用接口实现类
*
* @author pqz
*/
@Service
@Validated
public class DlDriveSchoolStaffServiceImpl implements DlDriveSchoolStaffService {
@Resource
private DlDriveSchoolCoachService coachService;
@Resource
private DlDriveSchoolStudentService studentService;
/**
* 分页获取人员信息
*
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
* @author PQZ
* @date 13:50 2025/2/6
**/
@Override
public IPage<DlDriveSchoolStaffVO> pageStaff(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page) {
IPage<DlDriveSchoolStaffVO> staffVOIPage = null;
if ("student".equals(staffVO.getType())){
//学生
staffVOIPage = studentService.pageStaffStudent(staffVO,page);
} else {
//教练和员工
staffVOIPage = coachService.pageStaffCoach(staffVO,page);
}
return staffVOIPage;
}
}

View File

@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent;
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolStudentMapper;
import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO;
import cn.iocoder.yudao.module.base.vo.DlDriveSchoolStudentVO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -105,5 +106,19 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl<DlDriveSchoolSt
return dlDriveSchoolStudentMapper.selectCanExamStudentList(courseId,userId,subject,userName);
}
/**
* 手机端获取学员
*
* @param staffVO {@link DlDriveSchoolStaffVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO>
* @author PQZ
* @date 14:47 2025/2/6
**/
@Override
public IPage<DlDriveSchoolStaffVO> pageStaffStudent(DlDriveSchoolStaffVO staffVO, Page<DlDriveSchoolStaffVO> page) {
return dlDriveSchoolStudentMapper.pageStaffStudent(staffVO,page);
}
}

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.base.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "驾校人员-手机APP查询专用接口")
@Data
public class DlDriveSchoolStaffVO {
/**主键id*/
private String id;
/**人员类型*/
private String type;
/**人员姓名*/
private String name;
/**教龄*/
private Integer seniority;
/**车牌*/
private String carId;
/**联系电话*/
private String phone;
/**科目*/
private String subject;
/**课程类型*/
private String courseTypes;
}

View File

@ -24,4 +24,26 @@
</where>
order by main.create_time desc
</select>
<select id="pageStaffCoach" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO">
SELECT
main.id AS id,
main.name AS name,
main.type AS type,
main.seniority AS seniority,
main.car_id AS carId,
main.phone AS phone,
GROUP_CONCAT(dscc.course_type SEPARATOR ',') AS courseTypes
FROM
drive_school_coach main
LEFT JOIN drive_school_coach_course dscc ON main.id = dscc.coach_id
<where>
main.deleted = 0
<if test="entity.type != null and entity.type != ''">
AND main.type = #{entity.type}
</if>
</where>
GROUP BY
main.id,dscc.course_type
order by main.create_time desc
</select>
</mapper>

View File

@ -43,4 +43,17 @@
ORDER BY
dss.create_time DESC
</select>
<select id="pageStaffStudent" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO">
SELECT
main.id AS id,
main.name AS name,
main.type AS type,
main.phone AS phone
FROM
drive_school_student main
<where>
main.deleted = 0
</where>
order by main.create_time desc
</select>
</mapper>