diff --git a/src/main/java/com/subsidy/controller/ExerciseDoneResultController.java b/src/main/java/com/subsidy/controller/ExerciseDoneResultController.java
index 08c774e..3c7ef42 100644
--- a/src/main/java/com/subsidy/controller/ExerciseDoneResultController.java
+++ b/src/main/java/com/subsidy/controller/ExerciseDoneResultController.java
@@ -8,10 +8,8 @@ import com.subsidy.service.ExerciseDoneResultService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-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.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
/**
*
@@ -35,5 +33,10 @@ public class ExerciseDoneResultController {
return ResponseData.generateCreatedResponse(0,exerciseDoneResultService.getDoneDetail(exerciseDoneResultDO));
}
+ @PostMapping("importData")
+ public ResponseVO makedatas(@RequestParam("file") MultipartFile file){
+ exerciseDoneResultService.importData(file);
+ return null;
+ }
}
diff --git a/src/main/java/com/subsidy/dto/exercise/ImportHistory.java b/src/main/java/com/subsidy/dto/exercise/ImportHistory.java
new file mode 100644
index 0000000..1dc602b
--- /dev/null
+++ b/src/main/java/com/subsidy/dto/exercise/ImportHistory.java
@@ -0,0 +1,62 @@
+package com.subsidy.dto.exercise;
+
+import com.subsidy.util.excel.ExcelColumnUtil;
+import lombok.Data;
+
+@Data
+public class ImportHistory {
+ @ExcelColumnUtil(value = "id", col = 1)
+ private Long id;
+
+ /**
+ * 卷子id
+ */
+ @ExcelColumnUtil(value = "paper_id", col = 2)
+ private Long paperId;
+
+ /**
+ * 成员id
+ */
+ @ExcelColumnUtil(value = "member_id", col = 3)
+ private Long memberId;
+
+ /**
+ * 班级id
+ */
+ @ExcelColumnUtil(value = "class_id", col = 4)
+ private Long classId;
+
+ /**
+ * 课程id
+ */
+ @ExcelColumnUtil(value = "course_id", col = 5)
+ private Long courseId;
+
+ /**
+ * 正确个数
+ */
+ @ExcelColumnUtil(value = "right_counts", col = 5)
+ private Integer rightCounts;
+
+ /**
+ * 总共个数
+ */
+ @ExcelColumnUtil(value = "total_counts", col = 6)
+ private Integer totalCounts;
+
+ /**
+ * 测试分数
+ */
+ @ExcelColumnUtil(value = "score", col = 8)
+ private Integer score;
+
+ /**
+ * 是否合格 0:不合格 1:合格
+ */
+ @ExcelColumnUtil(value = "result", col = 9)
+ private String result;
+
+ @ExcelColumnUtil(value = "create_date", col = 10)
+ private String create_date;
+
+}
diff --git a/src/main/java/com/subsidy/service/ExerciseDoneResultService.java b/src/main/java/com/subsidy/service/ExerciseDoneResultService.java
index b29624d..9e10269 100644
--- a/src/main/java/com/subsidy/service/ExerciseDoneResultService.java
+++ b/src/main/java/com/subsidy/service/ExerciseDoneResultService.java
@@ -3,6 +3,7 @@ package com.subsidy.service;
import com.subsidy.model.ExerciseDoneResultDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.vo.exercise.GetDoneDetailVO;
+import org.springframework.web.multipart.MultipartFile;
/**
*
@@ -16,4 +17,5 @@ public interface ExerciseDoneResultService extends IService
@@ -18,8 +30,65 @@ import org.springframework.stereotype.Service;
@Service
public class ExerciseDoneResultServiceImpl extends ServiceImpl implements ExerciseDoneResultService {
+
+ @Autowired
+ private ExerciseDoneResultMapper exerciseDoneResultMapper;
+
+ @Autowired
+ private ExerciseDoneHistoryMapper exerciseDoneHistoryMapper;
+
public GetDoneDetailVO getDoneDetail(ExerciseDoneResultDO exerciseDoneResultDO){
return this.baseMapper.getDoneDetail(exerciseDoneResultDO.getId());
}
+ public void importData(MultipartFile multipartFile){
+
+ try {
+ ExcelUtil.readExcel(null, ImportHistory.class, multipartFile).forEach(s -> {
+
+ //找到相同卷子相同分数的人
+ List exerciseDoneResultDOS = exerciseDoneResultMapper.selectList(new QueryWrapper()
+ .lambda()
+ .eq(ExerciseDoneResultDO::getPaperId,s.getPaperId())
+ .eq(ExerciseDoneResultDO::getScore,s.getScore()));
+
+ //随机获取一个人
+ Random random = new Random();
+ ExerciseDoneResultDO exerciseDoneResultDO = exerciseDoneResultDOS.get(random.nextInt(exerciseDoneResultDOS.size()));
+
+ //找到这个人的答卷
+ List exerciseDoneHistoryDOS = exerciseDoneHistoryMapper.selectList(new QueryWrapper()
+ .lambda()
+ .eq(ExerciseDoneHistoryDO::getDoneId,exerciseDoneResultDO.getId())
+ .eq(ExerciseDoneHistoryDO::getMemberId,exerciseDoneResultDO.getMemberId())
+ .eq(ExerciseDoneHistoryDO::getPaperId,exerciseDoneResultDO.getPaperId()));
+
+ DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+ //遍历写入
+ for (ExerciseDoneHistoryDO exerciseDoneHistoryDO : exerciseDoneHistoryDOS){
+ ExerciseDoneHistoryDO ex = new ExerciseDoneHistoryDO();
+ BeanUtils.copyProperties(exerciseDoneHistoryDO,ex);
+ ex.setId(null);
+ ex.setMemberId(s.getMemberId());
+ ex.setDoneId(s.getId());
+ ex.setClassId(s.getClassId());
+ ex.setPaperId(s.getPaperId());
+ ex.setCreateDate(LocalDateTime.parse(s.getCreate_date(),df));
+ exerciseDoneHistoryMapper.insert(ex);
+ }
+
+// SignInRecordDO signInRecordDO = new SignInRecordDO();
+// signInRecordDO.setClassId(s.getClassId());
+// signInRecordDO.setMemberId(s.getMemberId());
+// signInRecordDO.setCreateDate(LocalDateTime.parse(s.getSignInDate().replace("2021-12-17","2021-12-26"),df));
+// signInRecordDO.setSignInDate(LocalDateTime.parse(s.getSignInDate().replace("2021-12-17","2021-12-26"),df));
+
+ });
+ }catch (Exception ex){
+ ex.printStackTrace();
+ }
+
+ }
+
}
diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties
index 82f67ed..7b03403 100644
--- a/src/main/resources/application-dev.properties
+++ b/src/main/resources/application-dev.properties
@@ -1,8 +1,8 @@
# 本地环境配置
# 数据源配置
-#spring.datasource.url=jdbc:mysql://47.97.19.66:3306/subsidy?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
-spring.datasource.url=jdbc:mysql://rm-uf67mjh19252z6yg4eo.mysql.rds.aliyuncs.com:3306/subsidy?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+spring.datasource.url=jdbc:mysql://47.97.19.66:3306/subsidy_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+#spring.datasource.url=jdbc:mysql://rm-uf67mjh19252z6yg4eo.mysql.rds.aliyuncs.com:3306/subsidy?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.datasource.username=ykadmin_new
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4186757..3fbe749 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -53,13 +53,13 @@ vod.region=ap-shanghai
vod.classId=848920
# quartz
# 数据持久化方式
-#spring.quartz.job-store-type=jdbc
-## 初始化后是否自动启动计划程序
-#spring.quartz.auto-startup=true
-## 初始化完成后启动计划程序的延迟时间
-#spring.quartz.startup-delay=10s
-## 配置的作业是否应覆盖现有的作业定义
-#spring.quartz.overwrite-existing-jobs=false
+spring.quartz.job-store-type=jdbc
+# 初始化后是否自动启动计划程序
+spring.quartz.auto-startup=true
+# 初始化完成后启动计划程序的延迟时间
+spring.quartz.startup-delay=10s
+# 配置的作业是否应覆盖现有的作业定义
+spring.quartz.overwrite-existing-jobs=false
# 自动建表,如果已经存在表请勿使用,会覆盖数据表
#spring.quartz.jdbc.initialize-schema=always
#spring.datasource.initialization-mode=embedded
@@ -82,9 +82,9 @@ spring.task.execution.thread-name-prefix=subsidy-
#spring.redis.lettuce.pool.max-active=32
#spring.redis.lettuce.pool.min-idle=8
-#spring.redis.host=47.97.19.66
-#spring.redis.password=Ykhl@208
-#spring.redis.port=6389
-#spring.redis.lettuce.pool.max-idle=16
-#spring.redis.lettuce.pool.max-active=32
-#spring.redis.lettuce.pool.min-idle=8
\ No newline at end of file
+spring.redis.host=47.97.19.66
+spring.redis.password=Ykhl@208
+spring.redis.port=6389
+spring.redis.lettuce.pool.max-idle=16
+spring.redis.lettuce.pool.max-active=32
+spring.redis.lettuce.pool.min-idle=8
\ No newline at end of file