소스 검색

3.3.30 scan_paper_page 改为联合主键

ting.yin 1 년 전
부모
커밋
92466143d7

+ 1 - 2
distributed-print/install/mysql/init/teachcloud_db.sql

@@ -1982,7 +1982,6 @@ CREATE TABLE IF NOT EXISTS `scan_paper` (
 -- Table structure for scan_paper_page
 -- ----------------------------
 CREATE TABLE IF NOT EXISTS `scan_paper_page` (
-        `id` bigint NOT NULL,
         `paper_id` bigint NOT NULL,
         `page_index` int NOT NULL,
         `absent` text,
@@ -1995,7 +1994,7 @@ CREATE TABLE IF NOT EXISTS `scan_paper_page` (
         `updater_id` bigint DEFAULT NULL,
         `create_time` bigint DEFAULT NULL,
         `update_time` bigint DEFAULT NULL,
-        PRIMARY KEY (`id`) USING BTREE
+        PRIMARY KEY (`paper_id`,`page_index`) USING BTREE
         ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
 -- ----------------------------

+ 4 - 12
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/entity/ScanPaperPage.java

@@ -5,11 +5,11 @@ import java.io.Serializable;
 import org.apache.commons.collections4.CollectionUtils;
 
 import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
 import com.qmth.teachcloud.mark.bean.ArrayResult;
 import com.qmth.teachcloud.mark.bean.BoolResult;
 
@@ -28,11 +28,11 @@ import io.swagger.annotations.ApiModel;
 public class ScanPaperPage implements Serializable {
 
 	private static final long serialVersionUID = 1L;
-	@JsonSerialize(using = ToStringSerializer.class)
-	@TableId(value = "id")
-	private Long id;
+	@MppMultiId(value = "paper_id")
 	@JsonSerialize(using = ToStringSerializer.class)
 	private Long paperId;
+	
+	@MppMultiId(value = "page_index")
 	private Integer pageIndex;
 
 	@TableField(value = "absent", typeHandler = JacksonTypeHandler.class)
@@ -61,14 +61,6 @@ public class ScanPaperPage implements Serializable {
 
 	private Long updateTime;
 
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
 	public Long getPaperId() {
 		return paperId;
 	}

+ 2 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/ScanPaperPageMapper.java

@@ -4,7 +4,7 @@ import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
 import com.qmth.teachcloud.mark.bean.archivescore.ScanPaperPageVo;
 import com.qmth.teachcloud.mark.entity.ScanPaperPage;
 
@@ -16,7 +16,7 @@ import com.qmth.teachcloud.mark.entity.ScanPaperPage;
  * @author xf
  * @since 2023-09-22
  */
-public interface ScanPaperPageMapper extends BaseMapper<ScanPaperPage> {
+public interface ScanPaperPageMapper extends MppBaseMapper<ScanPaperPage> {
 
 	List<ScanPaperPageVo> listByStudentIds(@Param("studentIds")List<Long> studentIds);
 

+ 4 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/ScanPaperPageService.java

@@ -2,24 +2,25 @@ package com.qmth.teachcloud.mark.service;
 
 import java.util.List;
 
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
 import com.qmth.teachcloud.mark.bean.archivescore.ScanPaperPageVo;
 import com.qmth.teachcloud.mark.entity.ScanPaperPage;
 
 /**
  * <p>
- *  服务类
+ * 服务类
  * </p>
  *
  * @author xf
  * @since 2023-09-22
  */
-public interface ScanPaperPageService extends IService<ScanPaperPage> {
+public interface ScanPaperPageService extends IMppService<ScanPaperPage> {
 
 	ScanPaperPage findPaperIdAndIndex(Long paperId, Integer pageIndex);
 
 	List<ScanPaperPage> listByPaperId(Long paperId);
 
 	List<ScanPaperPage> listByPaperList(List<Long> paperIds);
+
 	List<ScanPaperPageVo> listByStudentIds(List<Long> studentIds);
 }

+ 40 - 40
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanPaperPageServiceImpl.java

@@ -6,7 +6,7 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
 import com.qmth.boot.core.exception.ParameterException;
 import com.qmth.teachcloud.mark.bean.archivescore.ScanPaperPageVo;
 import com.qmth.teachcloud.mark.entity.ScanPaperPage;
@@ -22,48 +22,48 @@ import com.qmth.teachcloud.mark.service.ScanPaperPageService;
  * @since 2023-09-22
  */
 @Service
-public class ScanPaperPageServiceImpl extends ServiceImpl<ScanPaperPageMapper, ScanPaperPage>
-        implements ScanPaperPageService {
+public class ScanPaperPageServiceImpl extends MppServiceImpl<ScanPaperPageMapper, ScanPaperPage>
+		implements ScanPaperPageService {
 
-    @Override
-    public ScanPaperPage findPaperIdAndIndex(Long paperId, Integer index) {
-        if (paperId == null) {
-            throw new ParameterException("paperId不能为空");
-        }
-        if (index == null) {
-            throw new ParameterException("index不能为空");
-        }
-        QueryWrapper<ScanPaperPage> wrapper = new QueryWrapper<>();
-        LambdaQueryWrapper<ScanPaperPage> lw = wrapper.lambda();
-        lw.eq(ScanPaperPage::getPaperId, paperId);
-        lw.eq(ScanPaperPage::getPageIndex, index);
-        return baseMapper.selectOne(wrapper);
-    }
+	@Override
+	public ScanPaperPage findPaperIdAndIndex(Long paperId, Integer index) {
+		if (paperId == null) {
+			throw new ParameterException("paperId不能为空");
+		}
+		if (index == null) {
+			throw new ParameterException("index不能为空");
+		}
+		QueryWrapper<ScanPaperPage> wrapper = new QueryWrapper<>();
+		LambdaQueryWrapper<ScanPaperPage> lw = wrapper.lambda();
+		lw.eq(ScanPaperPage::getPaperId, paperId);
+		lw.eq(ScanPaperPage::getPageIndex, index);
+		return this.getOne(wrapper);
+	}
 
-    @Override
-    public List<ScanPaperPage> listByPaperId(Long paperId) {
-        if (paperId == null) {
-            throw new ParameterException("paperId不能为空");
-        }
-        QueryWrapper<ScanPaperPage> wrapper = new QueryWrapper<>();
-        LambdaQueryWrapper<ScanPaperPage> lw = wrapper.lambda();
-        lw.eq(ScanPaperPage::getPaperId, paperId);
-        lw.orderByAsc(ScanPaperPage::getPageIndex);
-        return baseMapper.selectList(wrapper);
-    }
+	@Override
+	public List<ScanPaperPage> listByPaperId(Long paperId) {
+		if (paperId == null) {
+			throw new ParameterException("paperId不能为空");
+		}
+		QueryWrapper<ScanPaperPage> wrapper = new QueryWrapper<>();
+		LambdaQueryWrapper<ScanPaperPage> lw = wrapper.lambda();
+		lw.eq(ScanPaperPage::getPaperId, paperId);
+		lw.orderByAsc(ScanPaperPage::getPageIndex);
+		return baseMapper.selectList(wrapper);
+	}
 
-    @Override
-    public List<ScanPaperPage> listByPaperList(List<Long> paperIds) {
-        QueryWrapper<ScanPaperPage> wrapper = new QueryWrapper<>();
-        LambdaQueryWrapper<ScanPaperPage> lw = wrapper.lambda();
-        lw.in(ScanPaperPage::getPaperId, paperIds);
-        wrapper.orderByAsc("paper_id", "page_index");
-        return this.list(wrapper);
-    }
+	@Override
+	public List<ScanPaperPage> listByPaperList(List<Long> paperIds) {
+		QueryWrapper<ScanPaperPage> wrapper = new QueryWrapper<>();
+		LambdaQueryWrapper<ScanPaperPage> lw = wrapper.lambda();
+		lw.in(ScanPaperPage::getPaperId, paperIds);
+		wrapper.orderByAsc("paper_id", "page_index");
+		return this.list(wrapper);
+	}
 
-    @Override
-    public List<ScanPaperPageVo> listByStudentIds(List<Long> studentIds) {
-        return baseMapper.listByStudentIds(studentIds);
-    }
+	@Override
+	public List<ScanPaperPageVo> listByStudentIds(List<Long> studentIds) {
+		return baseMapper.listByStudentIds(studentIds);
+	}
 
 }

+ 4 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanPaperServiceImpl.java

@@ -85,13 +85,13 @@ public class ScanPaperServiceImpl extends ServiceImpl<ScanPaperMapper, ScanPaper
 //            if (!fileStore.exist(page.getSheetPath())) {
 //            	throw ExceptionResultEnum.ERROR.exception("原图不存在:" + page.getSheetPath());
 //            }
-            if (page.getId() == null) {
-                page.setId(SystemConstant.getDbUuid());
-            }
+//            if (page.getId() == null) {
+//                page.setId(SystemConstant.getDbUuid());
+//            }
             page.setPaperId(paper.getId());
         }
         // 保存page数据
-        paperPageService.saveOrUpdateBatch(pages);
+        paperPageService.saveOrUpdateBatchByMultiId(pages);
     }
 
     @Override

+ 2 - 3
teachcloud-mark/src/main/resources/mapper/ScanPaperPageMapper.xml

@@ -4,9 +4,8 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.qmth.teachcloud.mark.entity.ScanPaperPage">
-        <id column="id" property="id" />
-        <result column="paper_id" property="paperId" />
-        <result column="page_index" property="pageIndex" />
+        <id column="paper_id" property="paperId" />
+        <id column="page_index" property="pageIndex" />
         <result column="absent" property="absent" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
         <result column="breach" property="breach" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
         <result column="question" property="question"  jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>