xuhy
2025-11-27 51909b45d3d04b7bf667ba7bb52d7ea6353de3be
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/CourseController.java
@@ -33,8 +33,10 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
@RestController
@@ -83,8 +85,38 @@
    public R<Page<TCourseOrder>> getCourseOrderList(@RequestBody CourseOrderListQuery query) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        Page<TCourseOrder> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<TCourseOrder> courseOrderPage = courseOrderService.page(page, Wrappers.<TCourseOrder>lambdaQuery().eq(TCourseOrder::getAppUserId, userId).eq(Objects.nonNull(query.getPayStatus()),TCourseOrder::getPayStatus, query.getPayStatus()).orderByDesc(TCourseOrder::getCreateTime));
        Page<TCourseOrder> courseOrderPage = courseOrderService.page(page, Wrappers.<TCourseOrder>lambdaQuery()
                .eq(TCourseOrder::getAppUserId, userId)
                .eq(Objects.nonNull(query.getPayStatus()),TCourseOrder::getPayStatus, query.getPayStatus())
                .orderByDesc(TCourseOrder::getCreateTime));
        List<TCourseOrder> records = courseOrderPage.getRecords();
        if(!records.isEmpty()){
            List<String> courseIds = records.stream().map(TCourseOrder::getCourseId).collect(Collectors.toList());
            List<TCourse> tCourses = courseService.listByIds(courseIds);
            records.forEach(courseOrder -> {
                tCourses.forEach(course -> {
                    if(course.getId().equals(courseOrder.getCourseId())){
                        courseOrder.setCourse(course);
                    }
                });
            });
        }
        courseOrderPage.setRecords(records);
        return R.ok(courseOrderPage);
    }
    @GetMapping("/getCourseOrderDetail/{id}")
    @ApiOperation(value = "课程模块--订单详情",response =  TCourseOrder.class)
    public R<TCourseOrder> getCourseOrderList(@PathVariable String id) {
        String userId = tokenService.getLoginUserApplet().getUserId();
        TCourseOrder courseOrder = courseOrderService.getById(id);
        if(!courseOrder.getAppUserId().equals(userId)){
            return R.fail("无权限");
        }
        String courseId = courseOrder.getCourseId();
        TCourse course = courseService.getById(courseId);
        courseOrder.setCourse(course);
        return R.ok(courseOrder);
    }
    @PostMapping("/saveOrder")
@@ -104,23 +136,20 @@
        courseOrder.setOrderNumber(OrderNos.getDid());
        boolean save = courseOrderService.save(courseOrder);
        if (save) {
            Map<String, ? extends Object> maps =
                    new ImmutableMap.Builder<String, String>().
                            put("id", courseOrder.getId())
                            .build();
            QuartzManager.addJob(
                    OrderJob.class,
                    (OrderJob.name+courseOrder.getId()).toUpperCase(),
                    TimeJobType.CANCEL_ORDER,
                    DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(15)),
                    maps
            );
            Map<String, Object> result = wxV3Pay.jsApi(courseOrder.getOrderNumber(), course.getCourseCost().multiply(BigDecimal.valueOf(100)).longValue(), appUser.getOpenId(),"购买课程","");
            return R.ok(result);
        }
        Map<String, ? extends Object> maps =
                new ImmutableMap.Builder<String, String>().
                        put("id", courseOrder.getId())
                        .build();
        QuartzManager.addJob(
                OrderJob.class,
                (OrderJob.name+courseOrder.getId()).toUpperCase(),
                TimeJobType.CANCEL_ORDER,
                DateUtils.localDateTimeToDate(LocalDateTime.now().plusMinutes(15)),
                maps
        );
        return R.fail("报名失败");
    }
@@ -148,6 +177,8 @@
        courseOrder1.setRefundReason(courseOrder.getRefundReason());
        courseOrder1.setRefundReasonPictures(courseOrder.getRefundReasonPictures());
        courseOrder1.setPayStatus(6);
        courseOrder1.setRequestRefundTime(LocalDateTime.now());
        courseOrder1.setRefundMoney(courseOrder1.getPayMoney());
        if(!userId.equals(courseOrder1.getAppUserId())){
            return R.fail("无权限操作");