package com.xinquan.user.controller.client;
|
|
|
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.C;
|
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.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;
|
|
/**
|
* <p>
|
* 用户课程关系表 前端控制器
|
* </p>
|
*
|
* @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<List<AppUser>> getUserByCourseId(@PathVariable("courseId") Long courseId) {
|
List<Long> collect = appUserCourseService.lambdaQuery().eq(AppUserCourse::getCourseId, courseId).list()
|
.stream().map(AppUserCourse::getAppUserId).collect(Collectors.toList());
|
if (collect.isEmpty())collect.add(-1L);
|
// 批量查询用户头像
|
List<AppUser> collect1 = appUserService.lambdaQuery().in(!collect.isEmpty(), AppUser::getId, collect).list();
|
return R.ok(collect1);
|
}
|
@Autowired
|
private TokenService tokenService;
|
/**
|
* 远程调用 查询当前登录用户已购买课程
|
*
|
* @return 用户信息
|
* @see AppUserVO
|
*/
|
@GetMapping("/getPayCourse/{pageCurr}/{pageSize}/{id}")
|
public R<PageDTO<AppUserCourse>> getPayCourse(@PathVariable("pageCurr")Integer pageCurr
|
,@PathVariable("pageSize")Integer pageSize,@PathVariable("id")String id) {
|
Page<AppUserCourse> page = appUserCourseService.lambdaQuery()
|
.eq(AppUserCourse::getCourseId, id)
|
.orderByDesc(AppUserCourse::getCreateTime)
|
.page(new Page<>(pageCurr, pageSize));
|
if (CollUtils.isEmpty(page.getRecords())) {
|
PageDTO<AppUserCourse> empty = PageDTO.empty(page);
|
return R.ok(empty);
|
}
|
PageDTO<AppUserCourse> courseChapterPageDTO = PageDTO.of(page, AppUserCourse.class);
|
return R.ok(courseChapterPageDTO);
|
}
|
|
|
|
}
|