教练管理

This commit is contained in:
PQZ 2025-01-16 21:06:43 +08:00
parent dc7a0a5ea8
commit 5ea1141cd8
15 changed files with 420 additions and 24 deletions

View File

@ -0,0 +1,91 @@
package cn.iocoder.yudao.module.base.controller.admin;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
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 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.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 驾校教练")
@RestController
@RequestMapping("/base/dl-drive-school-coach")
@Validated
public class DlDriveSchoolCoachController {
@Resource
private DlDriveSchoolCoachService dlDriveSchoolCoachService;
/**
* 驾校教练普通员工列表
*
* @param pageReqVO {@link DlDriveSchoolCoachPageReqVO}
* @param pageNo 分页参数第几页
* @param pageSize 分页参数每页多少条数据
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<com.baomidou.mybatisplus.core.metadata.IPage < ?>>
* @author PQZ
* @date 14:58 2025/1/16
**/
@GetMapping("/page")
@Operation(summary = "获得驾校教练分页")
public CommonResult<IPage<?>> getDlDriveSchoolCoachPage(DlDriveSchoolCoachPageReqVO pageReqVO,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
Page<DlDriveSchoolCoachRespVO> page = new Page<>(pageNo, pageSize);
return success(dlDriveSchoolCoachService.queryListPage(pageReqVO, page));
}
/**
* 新增驾校教练
*
* @param createReqVO {@link DlDriveSchoolCoachSaveReqVO}
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<java.lang.String>
* @author PQZ
* @date 16:19 2025/1/16
**/
@PostMapping("/create")
@Operation(summary = "创建驾校教练")
public CommonResult<Boolean> createDlDriveSchoolCoach(@Valid @RequestBody DlDriveSchoolCoachSaveReqVO createReqVO) {
dlDriveSchoolCoachService.createDlDriveSchoolCoach(createReqVO);
return success(true);
}
@PutMapping("/update")
@Operation(summary = "更新驾校教练")
public CommonResult<Boolean> updateDlDriveSchoolCoach(@Valid @RequestBody DlDriveSchoolCoachSaveReqVO updateReqVO) {
dlDriveSchoolCoachService.updateDlDriveSchoolCoach(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除驾校教练")
@Parameter(name = "id", description = "编号", required = true)
public CommonResult<Boolean> deleteDlDriveSchoolCoach(@RequestParam("id") String id) {
dlDriveSchoolCoachService.deleteDlDriveSchoolCoach(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得驾校教练")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<DlDriveSchoolCoachRespVO> getDlDriveSchoolCoach(@RequestParam("id") String id) {
DlDriveSchoolCoach dlDriveSchoolCoach = dlDriveSchoolCoachService.getDlDriveSchoolCoach(id);
return success(BeanUtils.toBean(dlDriveSchoolCoach, DlDriveSchoolCoachRespVO.class));
}
}

View File

@ -1,4 +0,0 @@
package cn.iocoder.yudao.module.base.controller.admin;
public class TestController {
}

View File

@ -0,0 +1,98 @@
package cn.iocoder.yudao.module.base.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/**
* 驾校教练 DO
*
* @author pqz
*/
@TableName("drive_school_coach")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DlDriveSchoolCoach extends TenantBaseDO {
/**
* 主键id
*/
@TableId(type = IdType.ASSIGN_UUID)
private String id;
/**
* 照片
*/
private String image;
/**
* 姓名
*/
private String name;
/**
* 年龄
*/
private Integer age;
/**
* 性别
*
*/
private String sex;
/**
* 联系电话
*/
private String phone;
/**
* 身份证号
*/
private String idNumber;
/**
* 车牌
*/
private String carId;
/**
* 户籍地址
*/
private String regAddress;
/**
* 家庭住址
*/
private String address;
/**
* 教龄
*/
private Integer seniority;
/**
* 个人简介
*/
private String instructorDesc;
/**
* 工作人员类型教练工作人员
*/
private String type;
/**
* 用户id
*/
private Integer userId;
/**
* 身份证
*/
private String idPhoto;
/**
* 生活照
*/
private String lifePhoto;
/**
* 驾驶证
*/
private String drivePhoto;
/**
* 其他证件
*/
private String otherPhoto;
}

View File

@ -1,4 +0,0 @@
package cn.iocoder.yudao.module.base.entity;
public class TestEntity {
}

View File

@ -0,0 +1,32 @@
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.member.vo.MemberLevelRespVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 驾校教练 Mapper
*
* @author pqz
*/
@Mapper
public interface DlDriveSchoolCoachMapper extends BaseMapper<DlDriveSchoolCoach> {
/**
* 驾校教练普通员工列表
*
* @param entity {@link DlDriveSchoolCoachPageReqVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO>
* @author PQZ
* @date 15:04 2025/1/16
**/
IPage<DlDriveSchoolCoachRespVO> queryListPage(@Param("entity") DlDriveSchoolCoachPageReqVO entity, Page<DlDriveSchoolCoachRespVO> page);
}

View File

@ -1,4 +0,0 @@
package cn.iocoder.yudao.module.base.mapper;
public class TestMapper {
}

View File

@ -0,0 +1,63 @@
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 com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.validation.Valid;
/**
* 驾校教练 Service 接口
*
* @author pqz
*/
public interface DlDriveSchoolCoachService extends IService<DlDriveSchoolCoach> {
/**
* 驾校教练普通员工列表
*
* @param pageReqVO {@link DlDriveSchoolCoachPageReqVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO>
* @author PQZ
* @date 15:02 2025/1/16
**/
IPage<DlDriveSchoolCoachRespVO> queryListPage(DlDriveSchoolCoachPageReqVO pageReqVO, Page<DlDriveSchoolCoachRespVO> page);
/**
* 创建驾校教练
*
* @param createReqVO {@link DlDriveSchoolCoachSaveReqVO}
* @author PQZ
* @date 2025/1/16
**/
void createDlDriveSchoolCoach(@Valid DlDriveSchoolCoachSaveReqVO createReqVO);
/**
* 更新驾校教练
*
* @param updateReqVO 更新信息
*/
void updateDlDriveSchoolCoach(@Valid DlDriveSchoolCoachSaveReqVO updateReqVO);
/**
* 删除驾校教练
*
* @param id 编号
*/
void deleteDlDriveSchoolCoach(String id);
/**
* 获得驾校教练
*
* @param id 编号
* @return 驾校教练
*/
DlDriveSchoolCoach getDlDriveSchoolCoach(String id);
}

View File

@ -1,4 +0,0 @@
package cn.iocoder.yudao.module.base.service;
public class TestService {
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.base.service.impl;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachMapper;
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 com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
/**
* 驾校教练 Service 实现类
*
* @author pqz
*/
@Service
@Validated
public class DlDriveSchoolCoachServiceImpl extends ServiceImpl<DlDriveSchoolCoachMapper, DlDriveSchoolCoach> implements DlDriveSchoolCoachService {
@Resource
private DlDriveSchoolCoachMapper dlDriveSchoolCoachMapper;
/**
* 驾校教练普通员工列表
*
* @param pageReqVO {@link DlDriveSchoolCoachPageReqVO}
* @param page 分页参数
* @return com.baomidou.mybatisplus.core.metadata.IPage<cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO>
* @author PQZ
* @date 15:02 2025/1/16
**/
@Override
public IPage<DlDriveSchoolCoachRespVO> queryListPage(DlDriveSchoolCoachPageReqVO pageReqVO, Page<DlDriveSchoolCoachRespVO> page) {
return dlDriveSchoolCoachMapper.queryListPage(pageReqVO,page);
}
@Override
public void createDlDriveSchoolCoach(DlDriveSchoolCoachSaveReqVO createReqVO) {
// 插入
DlDriveSchoolCoach dlDriveSchoolCoach = BeanUtils.toBean(createReqVO, DlDriveSchoolCoach.class);
dlDriveSchoolCoachMapper.insert(dlDriveSchoolCoach);
}
@Override
public void updateDlDriveSchoolCoach(DlDriveSchoolCoachSaveReqVO updateReqVO) {
// 校验存在
DlDriveSchoolCoach updateObj = BeanUtils.toBean(updateReqVO, DlDriveSchoolCoach.class);
dlDriveSchoolCoachMapper.updateById(updateObj);
}
@Override
public void deleteDlDriveSchoolCoach(String id) {
// 删除
dlDriveSchoolCoachMapper.deleteById(id);
}
@Override
public DlDriveSchoolCoach getDlDriveSchoolCoach(String id) {
return dlDriveSchoolCoachMapper.selectById(id);
}
}

View File

@ -1,4 +0,0 @@
package cn.iocoder.yudao.module.base.service.impl;
public class TestServiceImpl {
}

View File

@ -0,0 +1,15 @@
package cn.iocoder.yudao.module.base.vo;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 驾校教练分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DlDriveSchoolCoachPageReqVO extends DlDriveSchoolCoach {
}

View File

@ -0,0 +1,13 @@
package cn.iocoder.yudao.module.base.vo;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 驾校教练 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DlDriveSchoolCoachRespVO extends DlDriveSchoolCoach {
}

View File

@ -0,0 +1,11 @@
package cn.iocoder.yudao.module.base.vo;
import cn.iocoder.yudao.module.base.entity.DlDriveSchoolCoach;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 驾校教练新增/修改 Request VO")
@Data
public class DlDriveSchoolCoachSaveReqVO extends DlDriveSchoolCoach {
}

View File

@ -1,4 +0,0 @@
package cn.iocoder.yudao.module.base.vo;
public class TestVo {
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.base.mapper.DlDriveSchoolCoachMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="queryListPage" resultType="cn.iocoder.yudao.module.base.vo.DlDriveSchoolCoachRespVO">
SELECT
main.*
FROM
drive_school_coach main
<where>
main.deleted = 0
<if test="entity.type != null and entity.type != '' ">and main.type = #{entity.type}</if>
<if test="entity.name != null and entity.name != ''">and main.name like concat('%', #{entity.name}, '%')</if>
<if test="entity.phone != null and entity.phone != ''">and main.phone like concat('%', #{entity.phone}, '%')</if>
</where>
</select>
</mapper>