package com.xinquan.user.controller.client; import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.C; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xinquan.common.core.domain.R; import com.xinquan.common.core.utils.page.CollUtils; import com.xinquan.common.core.utils.page.PageDTO; import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.system.api.domain.AppUser; import com.xinquan.system.api.domain.AppUserCourse; import com.xinquan.system.api.domain.NoticeRecord; import com.xinquan.system.api.domain.vo.AppUserVO; import com.xinquan.user.service.AppUserCourseService; import com.xinquan.user.service.AppUserService; import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; /** *

* 用户课程关系表 前端控制器 *

* * @author mitao * @since 2024-08-21 */ @RestController @RequestMapping("/client/app-user-course") public class ClientAppUserCourseController { @Resource private AppUserService appUserService; @Resource private AppUserCourseService appUserCourseService; /** * 远程调用 购买课程后 增加课程与用户关系表 * * @return 用户信息 * @see AppUserVO */ @GetMapping("/addAppUserCourse/{courseId}/{appUserId}/{orderId}/{giftFlag}") public R addAppUserCourse(@PathVariable("courseId") Long courseId, @PathVariable("appUserId") Long appUserId, @PathVariable("orderId") Long orderId, @PathVariable("giftFlag") Integer giftFlag ) { AppUserCourse one = appUserCourseService.lambdaQuery().eq(AppUserCourse::getCourseId, courseId) .eq(AppUserCourse::getAppUserId, appUserId).one(); if (one==null){ one = new AppUserCourse(); one.setAppUserId(appUserId); one.setCourseId(courseId); one.setGiftFlag(giftFlag); one.setOrderId(orderId); one.setCreateTime(LocalDateTime.now()); appUserCourseService.save(one); } return R.ok(); } /** * 远程调用 根据课程id 查询拥有课程的用户 * * @return 用户信息 * @see AppUserVO */ @GetMapping("/getUserByCourseId/{courseId}") public R> getUserByCourseId(@PathVariable("courseId") Long courseId) { List collect = appUserCourseService.lambdaQuery().eq(AppUserCourse::getCourseId, courseId).list() .stream().map(AppUserCourse::getAppUserId).collect(Collectors.toList()); if (collect.isEmpty())collect.add(-1L); // 批量查询用户头像 List collect1 = appUserService.lambdaQuery().in(!collect.isEmpty(), AppUser::getId, collect).list(); return R.ok(collect1); } @GetMapping("/deleteAppUserCourse/{courseId}/{appUserId}") void deleteAppUserCourse(@PathVariable("courseId") Long courseId,@PathVariable("appUserId") Long appUserId){ appUserCourseService.remove(new LambdaQueryWrapper() .eq(AppUserCourse::getCourseId,courseId) .eq(AppUserCourse::getAppUserId,appUserId)); } @Autowired private TokenService tokenService; /** * 远程调用 查询当前登录用户已购买课程 * * @return 用户信息 * @see AppUserVO */ @GetMapping("/getPayCourse/{pageCurr}/{pageSize}/{id}") public R> getPayCourse(@PathVariable("pageCurr")Integer pageCurr ,@PathVariable("pageSize")Integer pageSize,@PathVariable("id")String id) { Page page = appUserCourseService.lambdaQuery() .eq(AppUserCourse::getAppUserId, id) .orderByDesc(AppUserCourse::getCreateTime) .page(new Page<>(pageCurr, pageSize)); if (CollUtils.isEmpty(page.getRecords())) { PageDTO empty = PageDTO.empty(page); return R.ok(empty); } PageDTO courseChapterPageDTO = PageDTO.of(page, AppUserCourse.class); return R.ok(courseChapterPageDTO); } }