Browse Source

Merge remote-tracking branch 'remotes/origin/dev_1.0.0' into release_1.0.0

xiatian 2 years ago
parent
commit
f3a9066f2a

+ 1 - 1
db/init.sql

@@ -149,7 +149,7 @@ CREATE TABLE `mps_paper_group_unit` (
   `detail_number` int NOT NULL,
   `detail_unit_number` int NOT NULL,
   PRIMARY KEY (`id`),
-  UNIQUE KEY `IDX_PAPER_GROUP_UNIT_01` (`paper_id`,`group_id`,`deatil_number`,`deatil_unit_number`)
+  UNIQUE KEY `IDX_PAPER_GROUP_UNIT_01` (`paper_id`,`group_id`,`detail_number`,`detail_unit_number`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
 
 -- ----------------------------

+ 1 - 1
src/main/java/cn/com/qmth/mps/dao/PaperDao.java

@@ -20,7 +20,7 @@ public interface PaperDao extends BaseMapper<PaperEntity> {
 
 	IPage<PaperVo> page(Page<PaperVo> page,@Param(value = "req") PaperQuery query);
 
-	List<PaperVo> list(@Param(value = "examId")Long examId,@Param(value = "userId")Long userId);
+	List<PaperVo> myPaperlist(@Param(value = "examId")Long examId,@Param(value = "userId")Long userId);
 
 	List<PaperStructInfoVo> subjectiveList(@Param(value = "req")PaperQuery query);
 

+ 6 - 1
src/main/java/cn/com/qmth/mps/service/impl/PaperGroupServiceImpl.java

@@ -28,6 +28,7 @@ import cn.com.qmth.mps.entity.PaperDetailEntity;
 import cn.com.qmth.mps.entity.PaperEntity;
 import cn.com.qmth.mps.entity.PaperGroupEntity;
 import cn.com.qmth.mps.enums.Role;
+import cn.com.qmth.mps.service.CourseService;
 import cn.com.qmth.mps.service.PaperDetailService;
 import cn.com.qmth.mps.service.PaperDetailUnitService;
 import cn.com.qmth.mps.service.PaperGroupService;
@@ -48,6 +49,9 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 	private PaperDetailService paperDetailService;
 	@Autowired
 	private PaperDetailUnitService paperDetailUnitService;
+	
+	@Autowired
+	private CourseService courseService;
 
 	@Override
 	public List<GroupCountVo> findGroupCount(List<Long> paperIds) {
@@ -124,7 +128,7 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 				StringBuilder nameSb = new StringBuilder();
 				for (Integer num : set) {
 					numSb.append(num).append(",");
-					nameSb.append(detailMap.get(num)).append(",");
+					nameSb.append(detailMap.get(num).getName()).append(",");
 				}
 				vo.setDetailNumbers(numSb.substring(0, numSb.length() - 1));
 				vo.setDetailNames(nameSb.substring(0, nameSb.length() - 1));
@@ -151,6 +155,7 @@ public class PaperGroupServiceImpl extends ServiceImpl<PaperGroupDao, PaperGroup
 		List<PaperDetail> pds=paperDetailService.getStructInfo(paperId);
 		Map<Long, List<PaperGroupUnit>> units = paperGroupUnitService.getGroupInfo(paperId);
 		vo.setStructInfo(getGroupInfo(pds,units.get(e.getId())));
+		vo.setCourseName(courseService.getById(paper.getCourseId()).getName());
 		return vo;
 	}
 	

+ 1 - 0
src/main/java/cn/com/qmth/mps/service/impl/PaperGroupUnitServiceImpl.java

@@ -46,6 +46,7 @@ public class PaperGroupUnitServiceImpl extends ServiceImpl<PaperGroupUnitDao, Pa
 		QueryWrapper<PaperGroupUnitEntity> wrapper = new QueryWrapper<>();
 		LambdaQueryWrapper<PaperGroupUnitEntity> lw = wrapper.lambda();
 		lw.eq(PaperGroupUnitEntity::getPaperId, paperId);
+		lw.orderByAsc(PaperGroupUnitEntity::getDetailNumber);
 		lw.orderByAsc(PaperGroupUnitEntity::getDetailUnitNumber);
 		return this.list(wrapper);
 	}

+ 22 - 1
src/main/java/cn/com/qmth/mps/service/impl/PaperServiceImpl.java

@@ -251,7 +251,28 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
 		if (!user.getRole().equals(Role.SUPER_ADMIN) && !user.getSchoolId().equals(exam.getSchoolId())) {
 			throw new StatusException("没有权限");
 		}
-		return this.baseMapper.list(examId,user.getId());
+		List<PaperVo> ret=this.baseMapper.myPaperlist(examId,user.getId());
+		if (CollectionUtils.isNotEmpty(ret)) {
+			new BatchSetDataUtil<PaperVo>() {
+
+				@Override
+				protected void setData(List<PaperVo> dataList) {
+					List<Long> paperIds = dataList.stream().map(dto -> dto.getId()).distinct()
+							.collect(Collectors.toList());
+					List<GroupCountVo> ret = paperGroupService.findGroupCount(paperIds);
+					if (ret != null && ret.size() > 0) {
+						Map<Long, Integer> countMap = new HashMap<>();
+						for (GroupCountVo item : ret) {
+							countMap.put(item.getPaperId(), item.getGroupCount());
+						}
+						for (PaperVo vo : dataList) {
+							vo.setGroupCount(countMap.get(vo.getId()));
+						}
+					}
+				}
+			}.setDataForBatch(ret, 20);
+		}
+		return ret;
 	}
 
 	@Override

+ 8 - 0
src/main/java/cn/com/qmth/mps/vo/paper/GroupInfoVo.java

@@ -6,6 +6,8 @@ import cn.com.qmth.mps.bean.PaperDetail;
 import io.swagger.annotations.ApiModelProperty;
 
 public class GroupInfoVo {
+	@ApiModelProperty("科目名称")
+	private String courseName;
 	@ApiModelProperty("分组序号")
 	private Integer number;
 	@ApiModelProperty("分组信息")
@@ -22,5 +24,11 @@ public class GroupInfoVo {
 	public void setStructInfo(List<PaperDetail> structInfo) {
 		this.structInfo = structInfo;
 	}
+	public String getCourseName() {
+		return courseName;
+	}
+	public void setCourseName(String courseName) {
+		this.courseName = courseName;
+	}
 	
 }

+ 1 - 1
src/main/resources/mapper/PaperGroupMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="cn.com.qmth.mps.dao.PaperGroupDao">
 
 	<select id="findGroupCount" resultType="cn.com.qmth.mps.vo.paper.GroupCountVo">
-		select t.paper_id,count(1) paperCount from mps_paper_group
+		select t.paper_id,count(1) groupCount from mps_paper_group
 		t
 		where 1=2
 		<foreach collection="paperIds" index="index" item="paperId">

+ 1 - 1
src/main/resources/mapper/PaperMapper.xml

@@ -43,7 +43,7 @@
 
 		order by t.update_time desc
 	</select>
-	<select id="list" resultType="cn.com.qmth.mps.vo.paper.PaperVo">
+	<select id="myPaperlist" resultType="cn.com.qmth.mps.vo.paper.PaperVo">
 		select t.*,c.name courseName,c.code
 		courseCode,e.name examName from mps_paper
 		t left join mps_course c on