diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java new file mode 100644 index 00000000..5f1bfb7e --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/controller/admin/SchoolCourseOrderController.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.course.controller.admin; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; +import cn.iocoder.yudao.module.course.service.SchoolCourseOrderService; +import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; +import cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO; +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("/drive/school-course-order") +@Validated +public class SchoolCourseOrderController { + + @Resource + private SchoolCourseOrderService schoolCourseOrderService; + + @PostMapping("/create") + @Operation(summary = "创建驾照报名订单") + public CommonResult createSchoolCourseOrder(@Valid @RequestBody SchoolCourseOrderVO createReqVO) { + return success(schoolCourseOrderService.createSchoolCourseOrder(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新驾照报名订单") + public CommonResult updateSchoolCourseOrder(@Valid @RequestBody SchoolCourseOrderVO updateReqVO) { + schoolCourseOrderService.updateSchoolCourseOrder(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除驾照报名订单") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult deleteSchoolCourseOrder(@RequestParam("id") String id) { + schoolCourseOrderService.deleteSchoolCourseOrder(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得驾照报名订单") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getSchoolCourseOrder(@RequestParam("id") String id) { + SchoolCourseOrder schoolCourseOrder = schoolCourseOrderService.getSchoolCourseOrder(id); + return success(BeanUtils.toBean(schoolCourseOrder, SchoolCourseOrderVO.class)); + } + + + /** + * 获得驾照报名订单分页 + * + * @param pageReqVO {@link SchoolCourseOrderVO} + * @param pageNo 分页参数 + * @param pageSize 分页参数 + * @return cn.iocoder.yudao.framework.common.pojo.CommonResult> + * @author PQZ + * @date 10:08 2025/2/25 + **/ + @GetMapping("/page") + @Operation(summary = "获得驾照报名订单分页") + public CommonResult> getSchoolCourseOrderPage(SchoolCourseOrderVO pageReqVO, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return success(schoolCourseOrderService.queryPage(page,pageReqVO)); + } + +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java new file mode 100644 index 00000000..95a5aab8 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/entity/SchoolCourseOrder.java @@ -0,0 +1,109 @@ +package cn.iocoder.yudao.module.course.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.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 驾照报名订单 DO + * + * @author 若依 + */ +@TableName("drive_school_course_order") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SchoolCourseOrder extends TenantBaseDO { + + /** + * 主键id + */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + /** + * 订单号 + */ + private String orderNo; + /** + * 用户id + */ + private Integer userId; + /** + * 用户姓名 + */ + private String userName; + /** + * 用户手机号 + */ + private String userPhone; + /** + * 用户身份证号 + */ + private String userNo; + /** + * 用户性别 + */ + private String userSex; + /** + * 课程id + */ + private String courseId; + /** + * 课程名字 + */ + private String courseName; + /** + * 主负责教练ID + */ + private Integer coachUserId; + /** + * 主负责教练姓名 + */ + private String coachUserName; + /** + * 订金金额 + */ + private BigDecimal reserveMoney; + /** + * 课程类型 + */ + private String courseType; + /** + * 是否终止(0 未终止|1已终止) + */ + private Boolean ifEnd; + /** + * 终止原因 + */ + private String endReason; + /** + * 终止时间 + */ + private LocalDateTime endTime; + /** + * 订单状态 0:待支付 1:已取消 :2:已支付(已报名) 3:待面签 4:已面签 5:已完成 6: 申请退款 7:退款中 8:退款成功 + */ + private String paymentStatus; + /** + * 是否已面签 0:否 1: 是 + */ + private Integer isSign; + /** + * 尾款 + */ + private BigDecimal restMoney; + /** + * 支付类型 1:定金 2:全款 + */ + private String payType; + + +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java new file mode 100644 index 00000000..065b35cb --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/mapper/SchoolCourseOrderMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.course.mapper; + +import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; +import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; +import cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO; +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 若依 + */ +@Mapper +public interface SchoolCourseOrderMapper extends BaseMapper { + + /** + * 获得驾照报名订单分页 + * + * @param entity {@link SchoolCourseOrderVO} + * @param page 分页参数 + * @return com.baomidou.mybatisplus.core.metadata.IPage + * @author PQZ + * @date 10:11 2025/2/25 + **/ + IPage queryPage(@Param("entity")SchoolCourseOrderVO entity, Page page); +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java new file mode 100644 index 00000000..2c0f9e36 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/SchoolCourseOrderService.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.course.service; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.course.entity.SchoolCommission; +import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; +import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; +import cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO; +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 若依 + */ +public interface SchoolCourseOrderService extends IService { + + /** + * 创建驾照报名订单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + String createSchoolCourseOrder(@Valid SchoolCourseOrderVO createReqVO); + + /** + * 更新驾照报名订单 + * + * @param updateReqVO 更新信息 + */ + void updateSchoolCourseOrder(@Valid SchoolCourseOrderVO updateReqVO); + + /** + * 删除驾照报名订单 + * + * @param id 编号 + */ + void deleteSchoolCourseOrder(String id); + + /** + * 获得驾照报名订单 + * + * @param id 编号 + * @return 驾照报名订单 + */ + SchoolCourseOrder getSchoolCourseOrder(String id); + + + /** + * 获得驾照报名订单分页 + * + * @param page 分页参数 + * @param pageReqVO SchoolCourseOrderVO + * @return com.baomidou.mybatisplus.core.metadata.IPage + * @author PQZ + * @date 10:10 2025/2/25 + **/ + IPage queryPage(Page page, SchoolCourseOrderVO pageReqVO); +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java new file mode 100644 index 00000000..348112f6 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/SchoolCourseOrderServiceImpl.java @@ -0,0 +1,73 @@ +package cn.iocoder.yudao.module.course.service.impl; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; +import cn.iocoder.yudao.module.course.mapper.SchoolCourseOrderMapper; +import cn.iocoder.yudao.module.course.service.SchoolCourseOrderService; +import cn.iocoder.yudao.module.course.vo.SchoolCommissionVO; +import cn.iocoder.yudao.module.course.vo.SchoolCourseOrderVO; +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 若依 + */ +@Service +@Validated +public class SchoolCourseOrderServiceImpl extends ServiceImpl implements SchoolCourseOrderService { + + @Resource + private SchoolCourseOrderMapper schoolCourseOrderMapper; + + @Override + public String createSchoolCourseOrder(SchoolCourseOrderVO createReqVO) { + // 插入 + SchoolCourseOrder schoolCourseOrder = BeanUtils.toBean(createReqVO, SchoolCourseOrder.class); + schoolCourseOrderMapper.insert(schoolCourseOrder); + // 返回 + return schoolCourseOrder.getId(); + } + + @Override + public void updateSchoolCourseOrder(SchoolCourseOrderVO updateReqVO) { + // 更新 + SchoolCourseOrder updateObj = BeanUtils.toBean(updateReqVO, SchoolCourseOrder.class); + schoolCourseOrderMapper.updateById(updateObj); + } + + @Override + public void deleteSchoolCourseOrder(String id) { + // 删除 + schoolCourseOrderMapper.deleteById(id); + } + + + @Override + public SchoolCourseOrder getSchoolCourseOrder(String id) { + return schoolCourseOrderMapper.selectById(id); + } + + + /** + * 获得驾照报名订单分页 + * + * @param page 分页参数 + * @param pageReqVO SchoolCourseOrderVO + * @return com.baomidou.mybatisplus.core.metadata.IPage + * @author PQZ + * @date 10:10 2025/2/25 + **/ + @Override + public IPage queryPage(Page page, SchoolCourseOrderVO pageReqVO) { + return schoolCourseOrderMapper.queryPage(pageReqVO,page); + } + +} \ No newline at end of file diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/SchoolCourseOrderVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/SchoolCourseOrderVO.java new file mode 100644 index 00000000..0d95cf11 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/vo/SchoolCourseOrderVO.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.course.vo; + +import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; +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 SchoolCourseOrderVO extends SchoolCourseOrder { + +} \ No newline at end of file diff --git a/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml b/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml new file mode 100644 index 00000000..8816c4ae --- /dev/null +++ b/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file