diff --git a/safety-cedu-service/pom.xml b/safety-cedu-service/pom.xml
index f91c0568..10f4b7c8 100644
--- a/safety-cedu-service/pom.xml
+++ b/safety-cedu-service/pom.xml
@@ -44,6 +44,11 @@
provided
+
+ org.qinan
+ safety-eval-client
+
+
org.mapstruct
@@ -56,6 +61,10 @@
${mapstruct.version}
provided
+
+ org.qinan
+ safety-eval-infrastructure
+
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseManagementController.java b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseManagementController.java
index 6a13ee68..ae26b343 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseManagementController.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseManagementController.java
@@ -5,18 +5,13 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.qinan.cedu.model.dto.CourseManagementDTO;
-import org.qinan.cedu.model.query.CourseManagementPageQuery;
import org.qinan.cedu.model.dto.CourseManagementVO;
-import org.qinan.cedu.model.dto.PageResponse;
-import org.qinan.cedu.model.dto.SingleResponse;
+import org.qinan.cedu.model.query.CourseManagementPageQuery;
import org.qinan.cedu.service.CourseManagementService;
+import org.qinan.safetyeval.client.dto.PageResponse;
+import org.qinan.safetyeval.client.dto.SingleResponse;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
/**
* 课程管理
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseRelCoursewareController.java b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseRelCoursewareController.java
index 12e67765..1ed3e798 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseRelCoursewareController.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CourseRelCoursewareController.java
@@ -6,16 +6,11 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.qinan.cedu.model.dto.CourseRelCoursewareDTO;
import org.qinan.cedu.model.dto.CourseRelCoursewareVO;
-import org.qinan.cedu.model.dto.PageResponse;
-import org.qinan.cedu.model.dto.SingleResponse;
import org.qinan.cedu.service.CourseRelCoursewareService;
+import org.qinan.safetyeval.client.dto.PageResponse;
+import org.qinan.safetyeval.client.dto.SingleResponse;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CoursewareManagementController.java b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CoursewareManagementController.java
index 2a75e75c..468cee67 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CoursewareManagementController.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/controller/CoursewareManagementController.java
@@ -5,18 +5,13 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.qinan.cedu.model.dto.CoursewareManagementDTO;
-import org.qinan.cedu.model.query.CoursewareManagementPageQuery;
import org.qinan.cedu.model.dto.CoursewareManagementVO;
-import org.qinan.cedu.model.dto.PageResponse;
-import org.qinan.cedu.model.dto.SingleResponse;
+import org.qinan.cedu.model.query.CoursewareManagementPageQuery;
import org.qinan.cedu.service.CoursewareManagementService;
+import org.qinan.safetyeval.client.dto.PageResponse;
+import org.qinan.safetyeval.client.dto.SingleResponse;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
/**
* 课件管理
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementDTO.java b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementDTO.java
index c94473c2..ee69f4e5 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementDTO.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementDTO.java
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
+import java.util.List;
/**
* 课程管理
@@ -64,4 +65,7 @@ public class CourseManagementDTO{
*/
@ApiModelProperty("是否已被使用(0-未使用,1-已使用)")
private Integer used;
+
+ @ApiModelProperty("归属课件")
+ private List courseRelCoursewareDTOList;
}
\ No newline at end of file
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementVO.java b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementVO.java
index 15797d62..befea116 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementVO.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CourseManagementVO.java
@@ -5,6 +5,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
+import java.util.List;
/**
* 课程管理
@@ -61,4 +62,7 @@ public class CourseManagementVO extends BaseVO {
*/
@ApiModelProperty("是否已被使用(0-未使用,1-已使用)")
private Integer used;
+
+ @ApiModelProperty("归属课件")
+ private List courseRelCoursewareVOList;
}
\ No newline at end of file
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CoursewareManagementVO.java b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CoursewareManagementVO.java
index f09fcb26..57450f9d 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CoursewareManagementVO.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/CoursewareManagementVO.java
@@ -73,4 +73,7 @@ public class CoursewareManagementVO extends BaseVO {
*/
@ApiModelProperty("课件描述")
private String coursewareDescription;
+
+ @ApiModelProperty("习题数")
+ private Integer exerciseCount;
}
\ No newline at end of file
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/PageResponse.java b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/PageResponse.java
deleted file mode 100644
index c3eb36bb..00000000
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/PageResponse.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.qinan.cedu.model.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.List;
-
-/**
- * 通用分页响应体
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class PageResponse extends SingleResponse> {
-
- @ApiModelProperty(value = "总条数")
- private Long total;
-
- public static PageResponse of(List list, Long total) {
- PageResponse response = new PageResponse<>();
- response.setSuccess(true);
- response.setCode("0");
- response.setData(list);
- response.setTotal(total);
- return response;
- }
-}
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/SingleResponse.java b/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/SingleResponse.java
deleted file mode 100644
index 36280a07..00000000
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/model/dto/SingleResponse.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.qinan.cedu.model.dto;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * 通用单条数据响应体
- */
-@Data
-public class SingleResponse {
-
- @ApiModelProperty(value = "是否成功")
- private boolean success;
-
- @ApiModelProperty(value = "响应码")
- private String code;
-
- @ApiModelProperty(value = "响应消息")
- private String message;
-
- @ApiModelProperty(value = "错误响应消息")
- private String errMessage;
-
- @ApiModelProperty(value = "响应数据")
- private T data;
-
- public static SingleResponse success(T data) {
- SingleResponse response = new SingleResponse<>();
- response.setSuccess(true);
- response.setCode("0");
- response.setData(data);
- return response;
- }
-
- public static SingleResponse success() {
- SingleResponse response = new SingleResponse<>();
- response.setSuccess(true);
- response.setCode("0");
- return response;
- }
-
- public static SingleResponse error(String code, String message) {
- SingleResponse response = new SingleResponse<>();
- response.setSuccess(false);
- response.setCode(code);
- response.setMessage(message);
- response.setErrMessage(message);
- return response;
- }
-}
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseManagementServiceImpl.java b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseManagementServiceImpl.java
index bb22f894..7124423f 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseManagementServiceImpl.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseManagementServiceImpl.java
@@ -1,21 +1,28 @@
package org.qinan.cedu.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.qinan.cedu.convertor.CourseManagementConvertor;
+import org.qinan.cedu.convertor.CourseRelCoursewareConvertor;
+import org.qinan.cedu.enums.DeleteEnum;
+import org.qinan.cedu.mapper.CourseManagementMapper;
+import org.qinan.cedu.mapper.CourseRelCoursewareMapper;
import org.qinan.cedu.model.dto.CourseManagementDTO;
import org.qinan.cedu.model.query.CourseManagementPageQuery;
import org.qinan.cedu.model.dto.CourseManagementVO;
import org.qinan.cedu.model.entity.CourseManagementDO;
-import org.qinan.cedu.enums.DeleteEnum;
-import org.qinan.cedu.mapper.CourseManagementMapper;
+import org.qinan.cedu.model.entity.CourseRelCoursewareDO;
import org.qinan.cedu.service.CourseManagementService;
+import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
+import java.util.List;
/**
* 课程管理服务实现
@@ -26,18 +33,30 @@ public class CourseManagementServiceImpl extends ServiceImpl pageQuery(CourseManagementPageQuery query) {
- long current = query.getCurrent() == null ? 1L : query.getCurrent();
- long size = query.getSize() == null ? 10L : query.getSize();
IPage page = this.lambdaQuery()
.eq(CourseManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
.like(StringUtils.hasText(query.getCourseName()), CourseManagementDO::getCourseName, query.getCourseName())
.eq(query.getStatus() != null, CourseManagementDO::getStatus, query.getStatus())
+ .eq(query.getTrainingType() != null, CourseManagementDO::getTrainingType, query.getTrainingType())
.orderByDesc(CourseManagementDO::getCreateTime)
- .page(new Page<>(current, size));
- return page.convert(courseManagementConvertor::convertEToVo);
+ .page(new Page<>(query.getCurrent(), query.getSize()));
+ IPage convert = page.convert(courseManagementConvertor::convertEToVo);
+ convert.getRecords().forEach(vo -> {
+ vo.setCourseRelCoursewareVOList(courseRelCoursewareConvertor.convertEListToVoList(
+ courseRelCoursewareMapper.selectList(new LambdaQueryWrapper()
+ .eq(CourseRelCoursewareDO::getCourseId, vo.getId())
+ .orderByAsc(CourseRelCoursewareDO::getSort))
+ ));
+ });
+ return convert;
}
@Override
@@ -46,27 +65,48 @@ public class CourseManagementServiceImpl extends ServiceImpl()
+ .eq(CourseRelCoursewareDO::getCourseId, courseManagementVO.getId())
+ .orderByAsc(CourseRelCoursewareDO::getSort))
+ ));
+ return courseManagementVO;
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean saveCourse(CourseManagementDTO dto) {
CourseManagementDO entity = courseManagementConvertor.convertDtoToE(dto);
+ InsertFieldDefaults.applyIgnoreOrgId(entity);
LocalDateTime now = LocalDateTime.now();
- entity.setCreateTime(now);
entity.setUpdateTime(now);
- entity.setVersion(0);
if (entity.getUsed() == null) {
entity.setUsed(0);
}
- return this.save(entity);
+ this.save(entity);
+ List courseRelCoursewareDOS = courseRelCoursewareConvertor.convertDtoListToEList(dto.getCourseRelCoursewareDTOList());
+ for (CourseRelCoursewareDO courseRelCoursewareDO : courseRelCoursewareDOS) {
+ courseRelCoursewareDO.setCourseId(entity.getId());
+ courseRelCoursewareMapper.insert(courseRelCoursewareDO);
+ }
+ return true;
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean updateCourse(CourseManagementDTO dto) {
CourseManagementDO entity = courseManagementConvertor.convertDtoToE(dto);
- entity.setUpdateTime(LocalDateTime.now());
- return this.updateById(entity);
+ InsertFieldDefaults.applyForUpdateIgnoreOrgId(entity);
+ this.updateById(entity);
+ courseRelCoursewareMapper.delete(new LambdaQueryWrapper()
+ .eq(CourseRelCoursewareDO::getCourseId, entity.getId()));
+ List courseRelCoursewareDOS = courseRelCoursewareConvertor.convertDtoListToEList(dto.getCourseRelCoursewareDTOList());
+ for (CourseRelCoursewareDO courseRelCoursewareDO : courseRelCoursewareDOS) {
+ courseRelCoursewareDO.setCourseId(entity.getId());
+ courseRelCoursewareMapper.insert(courseRelCoursewareDO);
+ }
+ return true;
}
@Override
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseRelCoursewareServiceImpl.java b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseRelCoursewareServiceImpl.java
index 3ea91ef3..bf3e07cf 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseRelCoursewareServiceImpl.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CourseRelCoursewareServiceImpl.java
@@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.qinan.cedu.convertor.CourseRelCoursewareConvertor;
+import org.qinan.cedu.mapper.CourseRelCoursewareMapper;
import org.qinan.cedu.model.dto.CourseRelCoursewareDTO;
import org.qinan.cedu.model.dto.CourseRelCoursewareVO;
import org.qinan.cedu.model.entity.CourseRelCoursewareDO;
-import org.qinan.cedu.mapper.CourseRelCoursewareMapper;
import org.qinan.cedu.service.CourseRelCoursewareService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CoursewareManagementServiceImpl.java b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CoursewareManagementServiceImpl.java
index e71df819..3cdfbe77 100644
--- a/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CoursewareManagementServiceImpl.java
+++ b/safety-cedu-service/src/main/java/org/qinan/cedu/service/impl/CoursewareManagementServiceImpl.java
@@ -11,6 +11,7 @@ import org.qinan.cedu.model.entity.CoursewareManagementDO;
import org.qinan.cedu.enums.DeleteEnum;
import org.qinan.cedu.mapper.CoursewareManagementMapper;
import org.qinan.cedu.service.CoursewareManagementService;
+import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@@ -29,15 +30,19 @@ public class CoursewareManagementServiceImpl extends ServiceImpl pageQuery(CoursewareManagementPageQuery query) {
- long current = query.getCurrent() == null ? 1L : query.getCurrent();
- long size = query.getSize() == null ? 10L : query.getSize();
IPage page = this.lambdaQuery()
.eq(CoursewareManagementDO::getDeleteEnum, DeleteEnum.FALSE.getCode())
.like(StringUtils.hasText(query.getCoursewareName()), CoursewareManagementDO::getCoursewareName, query.getCoursewareName())
.eq(query.getStatus() != null, CoursewareManagementDO::getStatus, query.getStatus())
+ .eq(query.getTrainingType() != null, CoursewareManagementDO::getTrainingType, query.getTrainingType())
.orderByDesc(CoursewareManagementDO::getCreateTime)
- .page(new Page<>(current, size));
- return page.convert(coursewareManagementConvertor::convertEToVo);
+ .page(new Page<>(query.getCurrent(), query.getSize()));
+ IPage convert = page.convert(coursewareManagementConvertor::convertEToVo);
+ for (CoursewareManagementVO record : convert.getRecords()) {
+ // todo 统计课件题数
+ record.setExerciseCount(1);
+ }
+ return convert;
}
@Override
@@ -46,23 +51,22 @@ public class CoursewareManagementServiceImpl extends ServiceImpl