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