|
|
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
|
|
+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.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
@@ -16,6 +17,7 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.base.entity.BaseClassCourse;
|
|
|
import com.xjrsoft.module.base.entity.BaseCourseSubject;
|
|
|
import com.xjrsoft.module.student.entity.BaseClassMajorSet;
|
|
|
+import com.xjrsoft.module.student.service.IBaseClassMajorSetService;
|
|
|
import com.xjrsoft.module.textbook.dto.*;
|
|
|
import com.xjrsoft.module.textbook.entity.Textbook;
|
|
|
import com.xjrsoft.module.textbook.entity.TextbookClassRelation;
|
|
|
@@ -54,6 +56,9 @@ public class TextbookController {
|
|
|
|
|
|
private final ITextbookStudentClaimService textbookStudentClaimService;
|
|
|
|
|
|
+
|
|
|
+ private final IBaseClassMajorSetService baseClassMajorSetService;
|
|
|
+
|
|
|
@GetMapping(value = "/page")
|
|
|
@ApiOperation(value="教材管理列表(分页)")
|
|
|
@SaCheckPermission("textbook:detail")
|
|
|
@@ -78,21 +83,33 @@ public class TextbookController {
|
|
|
.select(Textbook::getId)
|
|
|
.selectAs(Textbook::getId,TextbookSubscriptionListVo::getTextbookId)
|
|
|
.selectAs(BaseCourseSubject::getName, TextbookSubscriptionListVo::getCourseName)
|
|
|
- .selectSum(BaseClassMajorSet::getTotalStudent, TextbookSubscriptionListVo::getStudentSubscriptionNumber)
|
|
|
.select(Textbook.class, x -> VoToColumnUtil.fieldsToColumns(TextbookSubscriptionListVo.class).contains(x.getProperty()))
|
|
|
.leftJoin(BaseClassCourse.class, BaseClassCourse::getCourseId, Textbook::getCourseSubjectId)
|
|
|
- .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, BaseClassCourse::getClassId)
|
|
|
.leftJoin(BaseCourseSubject.class, BaseCourseSubject::getId, Textbook::getCourseSubjectId)
|
|
|
.eq(dto.getBaseSemesterId() != null && dto.getBaseSemesterId() > 0, BaseClassCourse::getBaseSemesterId, dto.getBaseSemesterId())
|
|
|
.in(!classIdList.isEmpty(),BaseClassCourse::getClassId, classIdList)
|
|
|
.groupBy(Textbook::getId)
|
|
|
;
|
|
|
IPage<TextbookSubscriptionListVo> page = textbookService.selectJoinListPage(ConventPage.getPage(dto),TextbookSubscriptionListVo.class,textbookMPJLambdaWrapper);
|
|
|
+
|
|
|
+ //获取所有班级的总人数
|
|
|
+ LambdaQueryWrapper<BaseClassMajorSet> baseClassMajorSetLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ baseClassMajorSetLambdaQueryWrapper
|
|
|
+ .in(!classIdList.isEmpty(), BaseClassMajorSet::getClassId, classIdList)
|
|
|
+ ;
|
|
|
+ List<BaseClassMajorSet> baseClassMajorSetList = baseClassMajorSetService.list();
|
|
|
+
|
|
|
+ int studentSubscriptionNumber = 0;
|
|
|
+ for (BaseClassMajorSet baseClassMajorSet : baseClassMajorSetList){
|
|
|
+ studentSubscriptionNumber += baseClassMajorSet.getTotalStudent();
|
|
|
+ }
|
|
|
+
|
|
|
for(TextbookSubscriptionListVo t : page.getRecords()){
|
|
|
t.setClassIds(dto.getClassIds());
|
|
|
- if(t.getTextbookType() != null && !t.getTextbookType().equals("")){
|
|
|
+ if(t.getTextbookType() != null && !("").equals(t.getTextbookType())){
|
|
|
t.setTextbookTypeCn(TextbookTypeEnum.getValue(t.getTextbookType()));
|
|
|
}
|
|
|
+ t.setStudentSubscriptionNumber(studentSubscriptionNumber);
|
|
|
}
|
|
|
PageOutput<TextbookSubscriptionListVo> pageOutput = ConventPage.getPageOutput(page, TextbookSubscriptionListVo.class);
|
|
|
return RT.ok(pageOutput);
|
|
|
@@ -126,7 +143,7 @@ public class TextbookController {
|
|
|
@GetMapping(value = "/List-subscription")
|
|
|
@ApiOperation(value="教材管理列表(不分页,教材征订用)")
|
|
|
@SaCheckPermission("textbook:detail")
|
|
|
- public RT<List<TextbookSubscriptionListVo>> ListSubscription(@Valid TextbookSubscriptionListDto dto){
|
|
|
+ public RT<List<TextbookSubscriptionListVo>> listSubscription(@Valid TextbookSubscriptionListDto dto){
|
|
|
List<String> classIdList = new ArrayList<>();
|
|
|
if(dto.getClassIds() != null && !dto.getClassIds().equals("")){
|
|
|
String[] classIdArr = dto.getClassIds().split(",");
|