From 26249d6bda4001cbba8c276a089eb6514f4cf29a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 10 九月 2024 13:41:45 +0800
Subject: [PATCH] 课程代码
---
xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java | 8 +-
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserCourseController.java | 33 ++++++++++
xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java | 7 ++
xinquan-api/xinquan-api-course/src/main/java/com/xinquan/course/api/domain/Course.java | 5 -
xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java | 5 +
xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientTutorSpecialColumnController.java | 2
xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java | 45 ++++++++++++++-
xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java | 14 +++-
xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/vo/ClientCourseVO.java | 11 +++
9 files changed, 112 insertions(+), 18 deletions(-)
diff --git a/xinquan-api/xinquan-api-course/src/main/java/com/xinquan/course/api/domain/Course.java b/xinquan-api/xinquan-api-course/src/main/java/com/xinquan/course/api/domain/Course.java
index 749ffd3..7ceb6c7 100644
--- a/xinquan-api/xinquan-api-course/src/main/java/com/xinquan/course/api/domain/Course.java
+++ b/xinquan-api/xinquan-api-course/src/main/java/com/xinquan/course/api/domain/Course.java
@@ -4,10 +4,10 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.xinquan.common.core.utils.page.PageDTO;
import com.xinquan.common.core.web.domain.BaseModel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.xinquan.user.api.domain.AppUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
@@ -112,7 +112,4 @@
@TableField("latitude")
private Double latitude;
- @ApiModelProperty(value = "xx人已加入学习")
- @TableField(exist = false)
- private List<AppUser> listUser;
}
diff --git a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java
index 3b20b11..2419983 100644
--- a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java
+++ b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java
@@ -26,6 +26,11 @@
public RemoteAppUserService create(Throwable cause) {
return new RemoteAppUserService() {
@Override
+ public R<List<String>> getUserByCourseId(Long courseId) {
+ return R.fail("查询课程加入学习人数");
+ }
+
+ @Override
public R<AppUser> getUserByCondition(AppUserDTO dto, String source) {
return R.fail("获取用户信息失败。");
}
diff --git a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java
index 5024e8e..b715a68 100644
--- a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java
+++ b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java
@@ -13,10 +13,7 @@
import java.util.Collection;
import java.util.List;
import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
/**
* @author mitao
@@ -25,6 +22,9 @@
@FeignClient(contextId = "remoteAppUserService", value = ServiceNameConstants.APP_USER_SERVICE, fallbackFactory = RemoteAppUserFallbackFactory.class)
public interface RemoteAppUserService {
+ @GetMapping("/client/app-user-course/getUserByCourseId/{courseId}")
+ R<List<String>> getUserByCourseId(@PathVariable("courseId") Long courseId);
+
/**
* 获取未注销的用户信息
*
diff --git a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
index 774b4b8..ed40acf 100644
--- a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
+++ b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
@@ -1,21 +1,29 @@
package com.xinquan.course.controller.client;
+import com.alibaba.nacos.common.utils.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xinquan.common.core.constant.SecurityConstants;
import com.xinquan.common.core.domain.R;
+import com.xinquan.common.core.utils.page.BeanUtils;
+import com.xinquan.common.core.utils.page.CollUtils;
import com.xinquan.common.core.utils.page.PageDTO;
-import com.xinquan.course.domain.Course;
+import com.xinquan.course.api.domain.Course;
+import com.xinquan.course.domain.CourseChapter;
import com.xinquan.course.domain.vo.ClientCourseCategoryVO;
import com.xinquan.course.domain.vo.ClientCourseVO;
import com.xinquan.course.service.CourseCategoryService;
+import com.xinquan.course.service.CourseChapterService;
import com.xinquan.course.service.CourseService;
import com.xinquan.system.api.RemoteBannerService;
import com.xinquan.system.api.domain.vo.BannerVO;
+import com.xinquan.user.api.feign.RemoteAppUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
+import java.util.Objects;
import io.swagger.models.auth.In;
import lombok.RequiredArgsConstructor;
@@ -24,6 +32,8 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
/**
* <p>
@@ -42,6 +52,9 @@
private final CourseCategoryService courseCategoryService;
private final CourseService courseService;
private final RemoteBannerService remoteBannerService;
+ private final RemoteAppUserService appUserService;
+ @Resource
+ private CourseChapterService courseChapterService;
/**
* 获取轮播图列表
@@ -81,9 +94,35 @@
*/
@GetMapping("/getPayCourseInfoById")
@ApiOperation(value = "根据id获取课程详情-付费课程")
- public R<Course> getPayCourseInfoById(String id) {
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "课程id", name = "id", required = true, dataType = "String"),
+ @ApiImplicitParam(value = "分页参数,当前页码", name = "pageCurr", required = true, dataType = "Integer"),
+ @ApiImplicitParam(value = "分页参数,每页数量", name = "pageSize", required = true, dataType = "Integer")
+ })
+ public R<ClientCourseVO> getPayCourseInfoById(@RequestParam(value = "id")Long id,
+ @RequestParam(value = "pageCurr", defaultValue = "1") Integer pageCurr,
+ @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
+ Course byId = courseService.getById(id);
+ ClientCourseVO clientCourseVO = new ClientCourseVO();
+ BeanUtils.copyProperties(byId, clientCourseVO);
+ // 查询章节
+ Page<CourseChapter> page = courseChapterService.lambdaQuery()
+ .eq(CourseChapter::getCourseId, id)
+ .orderByDesc(CourseChapter::getSortNum)
+ .page(new Page<>(pageCurr, pageSize));
+ if (CollUtils.isEmpty(page.getRecords())) {
+ PageDTO<CourseChapter> empty = PageDTO.empty(page);
+ clientCourseVO.setList(empty);
+ }
+ // 查询学习人数和头像列表
+ List<String> data = appUserService.getUserByCourseId(id).getData();
+ if (data!=null){
+ clientCourseVO.setCount(data.size());
+ }
+ clientCourseVO.setHeaders(data);
+ // 查询推荐课程
- return R.ok(courseService.getById(id));
+ return R.ok(clientCourseVO);
}
/**
diff --git a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientTutorSpecialColumnController.java b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientTutorSpecialColumnController.java
index 417eafe..4e59057 100644
--- a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientTutorSpecialColumnController.java
+++ b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientTutorSpecialColumnController.java
@@ -7,7 +7,7 @@
import com.xinquan.common.core.utils.page.BeanUtils;
import com.xinquan.common.core.utils.page.CollUtils;
import com.xinquan.common.core.utils.page.PageDTO;
-import com.xinquan.course.domain.Course;
+import com.xinquan.course.api.domain.Course;
import com.xinquan.course.domain.TutorSpecialColumn;
import com.xinquan.course.domain.TutorSpecialColumnCourse;
import com.xinquan.course.domain.vo.ClientCourseVO;
diff --git a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/vo/ClientCourseVO.java b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/vo/ClientCourseVO.java
index f5c5113..b692514 100644
--- a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/vo/ClientCourseVO.java
+++ b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/domain/vo/ClientCourseVO.java
@@ -1,8 +1,12 @@
package com.xinquan.course.domain.vo;
+import com.xinquan.common.core.utils.page.PageDTO;
+import com.xinquan.course.domain.CourseChapter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
+import java.util.List;
+
import lombok.Data;
/**
@@ -72,4 +76,11 @@
@ApiModelProperty(value = "课程地址纬度")
private Double latitude;
+ @ApiModelProperty(value = "已学习人数")
+ private Integer count;
+ @ApiModelProperty(value = "头像列表")
+ private List<String> headers;
+ @ApiModelProperty(value = "章节列表")
+ private PageDTO<CourseChapter> list;
+
}
diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java
index 0fa0063..f3ecd59 100644
--- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java
+++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java
@@ -33,6 +33,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+
/**
* <p>
* 订单表 服务实现类
@@ -45,10 +47,14 @@
@RequiredArgsConstructor
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService {
- private final RemoteMeditationService remoteMeditationService;
- private final RemoteCourseService remoteCourseService;
- private final RemoteAppUserService remoteAppUserService;
- private final OrderPaymentRecordService orderPaymentRecordService;
+ @Resource
+ private RemoteMeditationService remoteMeditationService;
+ @Resource
+ private RemoteCourseService remoteCourseService;
+ @Resource
+ private RemoteAppUserService remoteAppUserService;
+ @Resource
+ private OrderPaymentRecordService orderPaymentRecordService;
/**
* 创建待支付订单
diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserCourseController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserCourseController.java
index 18a5730..69d4a53 100644
--- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserCourseController.java
+++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserCourseController.java
@@ -1,9 +1,18 @@
package com.xinquan.user.controller.client;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.xinquan.common.core.domain.R;
+import com.xinquan.user.api.domain.AppUser;
+import com.xinquan.user.domain.AppUserCourse;
+import com.xinquan.user.domain.vo.AppUserVO;
+import com.xinquan.user.service.AppUserCourseService;
+import com.xinquan.user.service.AppUserService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -16,6 +25,26 @@
@RestController
@RequestMapping("/client/app-user-course")
public class ClientAppUserCourseController {
+ @Resource
+ private AppUserService appUserService;
+ @Resource
+ private AppUserCourseService appUserCourseService;
+
+ /**
+ * 远程调用 根据课程id 查询拥有课程的用户
+ *
+ * @return 用户信息
+ * @see com.xinquan.user.domain.vo.AppUserVO
+ */
+ @GetMapping("/getUserByCourseId/{courseId}")
+ public R<List<String>> getUserByCourseId(@PathVariable("courseId") Long courseId) {
+ List<Long> collect = appUserCourseService.lambdaQuery().eq(AppUserCourse::getCourseId, courseId).list()
+ .stream().map(AppUserCourse::getAppUserId).collect(Collectors.toList());
+ // 批量查询用户头像
+ List<String> collect1 = appUserService.lambdaQuery().in(!collect.isEmpty(), AppUser::getId, collect).list()
+ .stream().map(AppUser::getAvatar).collect(Collectors.toList());
+ return R.ok(collect1);
+ }
}
diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java
index 7e3ea26..110f63a 100644
--- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java
+++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java
@@ -1,6 +1,7 @@
package com.xinquan.user.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.xinquan.common.core.domain.R;
import com.xinquan.system.api.model.AppCaptchaBody;
import com.xinquan.system.api.model.AppLoginUser;
import com.xinquan.system.api.model.AppVerifyCellPhoneBody;
@@ -10,6 +11,9 @@
import com.xinquan.user.domain.dto.UserAnswerDTO;
import com.xinquan.user.domain.vo.AppUserVO;
import com.xinquan.user.domain.vo.TagVO;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
import java.util.List;
import java.util.Optional;
@@ -22,6 +26,9 @@
* @since 2024-08-21
*/
public interface AppUserService extends IService<AppUser> {
+
+
+
/**
* 获取用户信息
*
--
Gitblit v1.7.1