浏览代码

Merge branch 'Test' into 'Release'

Test



See merge request !1378

xuexiaobo 4 年之前
父节点
当前提交
5d7dc4f5dc

+ 24 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/common/enums/ThemeType.java

@@ -0,0 +1,24 @@
+package cn.iselab.mooctest.site.common.enums;
+
+
+import lombok.Getter;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 12/14/20 3:53 PM
+ */
+
+public enum ThemeType {
+    COURSE(0),
+    THEME(1);
+
+    @Getter
+    private int value;
+
+
+    private ThemeType(int value){
+        this.value = value;
+    }
+
+}

+ 1 - 1
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/ThemeDetailDao.java

@@ -23,7 +23,7 @@ import java.util.List;
  **/
 @Transactional
 public interface ThemeDetailDao extends PagingAndSortingRepository<ThemeDetail,Long>, CrudRepository<ThemeDetail, Long>,JpaSpecificationExecutor<ThemeDetail>, UpdateAdapter<ThemeDetail,Long> {
-    Page<ThemeDetail> findAllBy(Pageable pageable);
+    Page<ThemeDetail> findAllByType(Pageable pageable, int type);
     List<ThemeDetail> findAll();
 
     Iterable<ThemeDetail> findAllByIdAndType(Iterable<Long> iterable, int type);

+ 12 - 6
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/ThemeServiceImpl.java

@@ -1,9 +1,8 @@
 package cn.iselab.mooctest.site.service.impl;
 
-import cn.iselab.mooctest.site.common.enums.EntityTypeEnum;
+import cn.iselab.mooctest.site.common.enums.*;
 import cn.iselab.mooctest.site.dao.*;
 import cn.iselab.mooctest.site.common.constant.OwningPartyConstants;
-import cn.iselab.mooctest.site.common.enums.CourseVisibility;
 import cn.iselab.mooctest.site.common.enums.EntityTypeEnum;
 import cn.iselab.mooctest.site.dao.CourseResourceDao;
 import cn.iselab.mooctest.site.common.enums.CourseVisibility;
@@ -92,7 +91,7 @@ public class ThemeServiceImpl implements ThemeService {
 
     @Override
     public Page<ThemeDetail> getThemeDetails(Pageable pageable) {
-        return themeDetailDao.findAllBy(pageable);
+        return themeDetailDao.findAllByType(pageable, ThemeType.THEME.getValue());
     }
 
     @Override
@@ -272,7 +271,7 @@ public class ThemeServiceImpl implements ThemeService {
 
     @Override
     public Page<ParticipantCourse> getCourseByParticipant(Long userId, Map<String, String> extraCondition, String keyword, Pageable pageable) {
-        Specifications<ParticipantCourse> where = Specifications.where(this.getWhereClause(ParticipantCourse.class,"participantId",userId,extraCondition,null,
+        Specifications<ParticipantCourse> where = Specifications.where(this.getWhereClause(ParticipantCourse.class,"participantId",userId, ThemeType.COURSE.getValue(),extraCondition,null,
                 keyword));
         return participantCourseDao.findAll(where, pageable);
     }
@@ -386,7 +385,7 @@ public class ThemeServiceImpl implements ThemeService {
     @Override
     public Page<ThemeDetail> getPlatformThemeDetails(Map<String, String> extraCondition, Map<String, String> excludeCondition,
                                                      Pageable pageable, String keyword) {
-        Specifications<ThemeDetail> where = Specifications.where(this.getWhereClause(ThemeDetail.class, null, null,
+        Specifications<ThemeDetail> where = Specifications.where(this.getWhereClause(ThemeDetail.class, null,null, ThemeType.COURSE.getValue(),
                 extraCondition, excludeCondition, keyword));
         return themeDetailDao.findAll(where,pageable);
     }
@@ -460,7 +459,7 @@ public class ThemeServiceImpl implements ThemeService {
         return status;
     }
 
-    private  <T> Specification<T> getWhereClause(Class<T> model, String joinedColumn, Long userId,
+    private  <T> Specification<T> getWhereClause(Class<T> model, String joinedColumn, Long userId, int type,
                                                  Map<String, String> extraCondition,Map<String, String> excludeCondition, String keyword) {
         return (root, query, builder) -> {
             Predicate predicate = builder.conjunction();
@@ -473,6 +472,13 @@ public class ThemeServiceImpl implements ThemeService {
                 //do nothing
             }
             try{
+                model.getDeclaredField("type");
+                predicate.getExpressions().add(
+                        builder.equal(root.get("type"), type)
+                );
+            }catch (NoSuchFieldException e){}
+
+            try{
                 model.getDeclaredField("released");
                 predicate.getExpressions().add(
                         builder.equal(root.<Long>get("released"), ThemeDetail.RELEASED)

+ 5 - 4
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/ThemeController.java

@@ -2,6 +2,7 @@ package cn.iselab.mooctest.site.web.ctrl;
 
 import cn.iselab.mooctest.site.common.constant.Constants;
 import cn.iselab.mooctest.site.common.constant.UrlConstants;
+import cn.iselab.mooctest.site.common.enums.ThemeType;
 import cn.iselab.mooctest.site.models.ThemeDetail;
 import cn.iselab.mooctest.site.web.data.*;
 import cn.iselab.mooctest.site.web.data.response.ResponseVO;
@@ -126,7 +127,7 @@ public class ThemeController extends BaseSearchController {
      * @param courseVO
      * @return
      */
-    @RequestMapping(value = UrlConstants.API + "theme/create", method = RequestMethod.POST)
+    @RequestMapping(value = UrlConstants.API + "course/create", method = RequestMethod.POST)
     @RequiresPermissions(value = "theme:create")
     public ResponseVO<CourseVO> createThemeCourse(@RequestBody CourseVO courseVO) {
         Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute("userId");
@@ -398,7 +399,7 @@ public class ThemeController extends BaseSearchController {
      * @param themeDetailVO
      * @return
      */
-    @RequestMapping(value = UrlConstants.API + "themes/create", method = RequestMethod.POST)
+    @RequestMapping(value = UrlConstants.API + "theme/create", method = RequestMethod.POST)
     @RequiresPermissions(value = "theme:create")
     public ResponseVO<ThemeDetailVO> createThemeDetails(@RequestBody ThemeDetailVO themeDetailVO) {
         Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute("userId");
@@ -505,7 +506,7 @@ public class ThemeController extends BaseSearchController {
     public ResponseVO<CourseVO> course(@PathVariable("courseId")Long courseId) {
         Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute("userId");
         CourseVO courseVO = themeLogic.getCourse(courseId, userId);
-        if(courseVO.getThemeDetailVO().getType() != 0) {
+        if(courseVO.getThemeDetailVO().getType() != ThemeType.COURSE.getValue()) {
             log.info("这个不是一个课程:{}, 访问用户为:{}",courseId ,userId);
             return new ResponseVO<>(ServerCode.ENTITY_NOT_A_COURSE,null);
         }
@@ -521,7 +522,7 @@ public class ThemeController extends BaseSearchController {
     public ResponseVO<CourseVO> getCourseByStudent(@PathVariable("courseId")Long courseId) {
         Long userId = (Long) SecurityUtils.getSubject().getSession().getAttribute("userId");
         CourseVO courseVO = themeLogic.getCourseByStudent(courseId, userId);
-        if(courseVO.getThemeDetailVO().getType() != 0) {
+        if(courseVO.getThemeDetailVO().getType() != ThemeType.COURSE.getValue()) {
             log.info("这个不是一个课程:{}, 访问用户为:{}",courseId ,userId);
             return new ResponseVO<>(ServerCode.ENTITY_NOT_A_COURSE,null);
         }

+ 3 - 4
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/ThemeLogicImpl.java

@@ -3,6 +3,7 @@ package cn.iselab.mooctest.site.web.logic.impl;
 import cn.iselab.mooctest.site.common.enums.CourseType;
 import cn.iselab.mooctest.site.common.enums.CourseVisibility;
 import cn.iselab.mooctest.site.common.enums.EntityTypeEnum;
+import cn.iselab.mooctest.site.common.enums.ThemeType;
 import cn.iselab.mooctest.site.models.*;
 import cn.iselab.mooctest.site.service.*;
 import cn.iselab.mooctest.site.service.common.PdfService;
@@ -104,10 +105,8 @@ public class ThemeLogicImpl implements ThemeLogic {
     @Override
     public ThemeDetailVO newThemeDetail(ThemeDetailVO themeDetailVO) {
         ThemeDetail themeDetail = themeVOWrapper.unWrapperThemeDetail(themeDetailVO);
-//        ThemeDetail themeDetailById = themeService.getThemeDetailById(themeDetailVO.getId());
-//        themeDetailById.setTitle(themeDetailVO.getTitle());
-//        themeDetailById.setIntroduce(themeDetailVO.getIntroduce());
-//        ThemeDetail themeDetail = themeService.createThemeDetail(themeDetailById);
+        themeDetail.setType(ThemeType.THEME.getValue());
+        themeDetail = themeService.createThemeDetail(themeDetail);
         return themeVOWrapper.wrapperThemeDetail(themeDetail);
     }