From 9cca670aa5dd88191646379a0065217ba2b3dbd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=96donting?= <596643891@qq.com> Date: Fri, 28 Dec 2018 16:23:50 +0800 Subject: [PATCH 1/3] errr --- pom.xml | 19 +++- .../JpaRepository/AdminJpaRepository.java | 20 ++++ .../OnlineExaminationApplication.java | 6 ++ src/main/java/com/gongjian/control/Admin.java | 93 +++++++++++++++++++ src/main/java/com/gongjian/dao/AdminDao.java | 24 +++++ .../entity/ExaminationpaperEntity.java | 2 + .../gongjian/entity/QuestionbankEntity.java | 2 + src/main/java/com/gongjian/filter/fieter.java | 4 +- src/main/java/com/gongjian/util/Json.java | 12 +-- src/main/resources/application.properties | 8 +- src/test/java/com/gongjian/testPOI.java | 56 +++++++++++ 11 files changed, 236 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java create mode 100644 src/main/java/com/gongjian/control/Admin.java create mode 100644 src/main/java/com/gongjian/dao/AdminDao.java create mode 100644 src/test/java/com/gongjian/testPOI.java diff --git a/pom.xml b/pom.xml index a66ca1a..c3f2f82 100644 --- a/pom.xml +++ b/pom.xml @@ -39,11 +39,13 @@ spring-boot-starter-test test + mysql mysql-connector-java - + 5.1.13 + com.vaadin.external.google android-json @@ -51,6 +53,21 @@ compile + + + + org.apache.poi + poi + RELEASE + + + + org.apache.poi + poi-ooxml + RELEASE + + + diff --git a/src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java b/src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java new file mode 100644 index 0000000..b3bb4f1 --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java @@ -0,0 +1,20 @@ +package com.gongjian.JpaRepository; + +import com.gongjian.entity.AdminEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + +import javax.transaction.Transactional; + +public interface AdminJpaRepository extends JpaRepository { + + + AdminEntity findByAdNameAndAdPass(String adName,String adPass); + + @Transactional + @Modifying + @Query(nativeQuery = true, value = "update subject set is_visible=0 where su_id=1 ") + int ooo(); + +} diff --git a/src/main/java/com/gongjian/OnlineExaminationApplication.java b/src/main/java/com/gongjian/OnlineExaminationApplication.java index 669676c..fe6a008 100644 --- a/src/main/java/com/gongjian/OnlineExaminationApplication.java +++ b/src/main/java/com/gongjian/OnlineExaminationApplication.java @@ -2,12 +2,15 @@ package com.gongjian; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.MultipartConfigFactory; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.Bean; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; +import javax.servlet.MultipartConfigElement; + @SpringBootApplication @ServletComponentScan public class OnlineExaminationApplication { @@ -20,6 +23,8 @@ public class OnlineExaminationApplication { corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); + corsConfiguration.setAllowCredentials(true);//这两句不加不能跨域上传文件, + corsConfiguration.setMaxAge(3600l);//加上去就可以了 return corsConfiguration; } @@ -39,5 +44,6 @@ public class OnlineExaminationApplication { } + } diff --git a/src/main/java/com/gongjian/control/Admin.java b/src/main/java/com/gongjian/control/Admin.java new file mode 100644 index 0000000..3e6dd89 --- /dev/null +++ b/src/main/java/com/gongjian/control/Admin.java @@ -0,0 +1,93 @@ +package com.gongjian.control; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gongjian.JpaRepository.AdminJpaRepository; +import com.gongjian.dao.AdminDao; +import com.gongjian.entity.AdminEntity; +import com.gongjian.util.Json; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +@RestController +public class Admin { + + @Autowired + private AdminJpaRepository adminJpaRepository; + + @RequestMapping("/admin/login") + public String login(String adName, String adPass, HttpSession session) { + + AdminDao adminDao = new AdminDao(adminJpaRepository); + AdminEntity adminEntity = adminDao.login(adName, adPass); + if (adminEntity != null) { + Json json = new Json(200, "登录成功"); + // ObjectMapper mapper = new ObjectMapper(); + try { + // String date=mapper.writeValueAsString(adminEntity); + JSONObject admin = new JSONObject(); + admin.put("adName", adminEntity.getAdName()); + admin.put("adId", adminEntity.getAdId()); + //admin.put("adName",adminEntity.getAdName()); + session.setAttribute("user", admin); + json.put("data", admin); + return json.toString(); + } catch (JSONException e) { + Json error = new Json(2002, "JSONException"); + e.printStackTrace(); + return error.toString(); + } + } else { + Json json = new Json(400, "登录失败"); + return json.toString(); + } + + + } + + + /** + * 上传科目 + * @param file + * @return + */ + @PostMapping("/admin/upload/addSubject") + @ResponseBody + public String upload(@RequestParam("file") MultipartFile file) { + if (file.isEmpty()) { + + + return new Json(9001,"上传失败,请选择文件").toString(); + } + + String fileName = file.getOriginalFilename(); + // String filePath = "/Users/itinypocket/workspace/temp/"; + String filePath = "H:\\考试系统文件上传\\"; + File dest = new File(filePath + fileName); + try { + file.transferTo(dest); + + + + // LOGGER.info("上传成功"); + return new Json(200," 上传成功").toString() + ; + } catch (IOException e) { + // LOGGER.error(e.toString(), e); + return new Json(200," IOException").toString(); + } + } + + +} diff --git a/src/main/java/com/gongjian/dao/AdminDao.java b/src/main/java/com/gongjian/dao/AdminDao.java new file mode 100644 index 0000000..6339521 --- /dev/null +++ b/src/main/java/com/gongjian/dao/AdminDao.java @@ -0,0 +1,24 @@ +package com.gongjian.dao; + +import com.gongjian.JpaRepository.AdminJpaRepository; +import com.gongjian.entity.AdminEntity; + +public class AdminDao { + private AdminJpaRepository adminJpaRepository; + + public AdminDao(AdminJpaRepository adminJpaRepository) { + this.adminJpaRepository = adminJpaRepository; + } + + + public AdminEntity login(String adName,String adPass){ + return adminJpaRepository.findByAdNameAndAdPass(adName,adPass); + + } + + public void dee(){ + adminJpaRepository.ooo(); + } + + +} diff --git a/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java b/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java index 322161a..a9b9ce9 100644 --- a/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java +++ b/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java @@ -1,5 +1,7 @@ package com.gongjian.entity; +import com.fasterxml.jackson.annotation.JsonFormat; + import javax.persistence.*; import java.sql.Timestamp; import java.util.Date; diff --git a/src/main/java/com/gongjian/entity/QuestionbankEntity.java b/src/main/java/com/gongjian/entity/QuestionbankEntity.java index 1aad505..4608fbc 100644 --- a/src/main/java/com/gongjian/entity/QuestionbankEntity.java +++ b/src/main/java/com/gongjian/entity/QuestionbankEntity.java @@ -1,5 +1,7 @@ package com.gongjian.entity; +import com.fasterxml.jackson.annotation.JsonFormat; + import javax.persistence.*; import java.util.Date; diff --git a/src/main/java/com/gongjian/filter/fieter.java b/src/main/java/com/gongjian/filter/fieter.java index 8bec587..78ff778 100644 --- a/src/main/java/com/gongjian/filter/fieter.java +++ b/src/main/java/com/gongjian/filter/fieter.java @@ -24,7 +24,9 @@ public class fieter implements Filter { HttpServletResponse response = (HttpServletResponse) servletResponse; response.setHeader("Access-Control-Allow-Credentials", " true"); response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")); - filterChain.doFilter(request, response); + + System.out.println("1321231"); + filterChain.doFilter(servletRequest, servletResponse); } @Override diff --git a/src/main/java/com/gongjian/util/Json.java b/src/main/java/com/gongjian/util/Json.java index faf8479..267e8f8 100644 --- a/src/main/java/com/gongjian/util/Json.java +++ b/src/main/java/com/gongjian/util/Json.java @@ -5,20 +5,18 @@ import org.json.JSONException; import org.json.JSONObject; public class Json extends JSONObject { - private JSONObject json; + // private JSONObject json; public Json(int code, String messg) { - json = new JSONObject(); + try { - json.put("messg", messg); - json.put("code", code); + this.put("messg", messg); + this.put("code", code); } catch (JSONException e) { e.printStackTrace(); } } - public String toString() { - return json.toString(); - } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d1f0e27..3997b14 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,8 +1,14 @@ spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true +# ϴļֵܵ +spring.servlet.multipart.max-request-size=10MB +# ļֵ +spring.servlet.multipart.max-file-size=10MB spring.datasource.url=jdbc:mysql://localhost:3306/examination_system?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8 spring.datasource.username=user spring.datasource.password=123456 -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver \ No newline at end of file +spring.datasource.driver-class-name:com.mysql.jdbc.Driver + + diff --git a/src/test/java/com/gongjian/testPOI.java b/src/test/java/com/gongjian/testPOI.java new file mode 100644 index 0000000..d3f20e1 --- /dev/null +++ b/src/test/java/com/gongjian/testPOI.java @@ -0,0 +1,56 @@ +package com.gongjian; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.util.List; + +public class testPOI { + + private static final String EXCEL_XLS = "xls"; + private static final String EXCEL_XLSX = "xlsx"; + + public static void main(String[] args) throws Exception { + + File excelFile = new File("d:/product.xlsx"); // 创建文件对象 + FileInputStream in = new FileInputStream(excelFile); // 文件流 + checkExcelVaild(excelFile); + Workbook workbook = getWorkbok(in,excelFile); + + + } + + + /** + * 判断Excel的版本,获取Workbook + * @param in + * @return + * @throws IOException + */ + public static Workbook getWorkbok(InputStream in, File file) throws IOException{ + Workbook wb = null; + if(file.getName().endsWith(EXCEL_XLS)){ //Excel 2003 + wb = new HSSFWorkbook(in); + }else if(file.getName().endsWith(EXCEL_XLSX)){ // Excel 2007/2010 + wb = new XSSFWorkbook(in); + } + return wb; + } + + /** + * 判断文件是否是excel + * @throws Exception + */ + public static void checkExcelVaild(File file) throws Exception{ + if(!file.exists()){ + throw new Exception("文件不存在"); + } + if(!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))){ + throw new Exception("文件不是Excel"); + } + } + +} -- Gitee From b6b11420aa06177bc31d8d5fd8d4ff59a5db8bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=96donting?= <596643891@qq.com> Date: Sat, 29 Dec 2018 11:31:04 +0800 Subject: [PATCH 2/3] 12/29 11:30 --- .../AdminJpaRepository.java | 2 +- .../JpaRepositoryD/OptionsJpaRepository.java | 12 + .../QuestionbankJpaRepository.java | 12 + .../JpaRepositoryD/StudentJpaReposittory.java | 10 + .../JpaRepositoryD/SubjectJpaRepository.java | 11 + .../JpaRepositoryD/TeacherJpaReposittory.java | 9 + .../test.java | 2 +- .../gongjian/{control => controlD}/Admin.java | 47 +-- src/main/java/com/gongjian/controlD/File.java | 272 ++++++++++++++++++ .../gongjian/{control => controlD}/test.java | 2 +- .../com/gongjian/{dao => daoD}/AdminDao.java | 19 +- .../java/com/gongjian/daoD/OptionsDao.java | 24 ++ .../com/gongjian/daoD/QuestionbankDao.java | 25 ++ .../java/com/gongjian/daoD/StudentDao.java | 28 ++ .../java/com/gongjian/daoD/SubjectDao.java | 35 +++ .../java/com/gongjian/daoD/TeacherDao.java | 22 ++ .../java/com/gongjian/{dao => daoD}/test.java | 2 +- .../com/gongjian/entity/OptionsEntity.java | 1 + .../gongjian/entity/QuestionbankEntity.java | 1 + .../com/gongjian/entity/StudentEntity.java | 1 + .../com/gongjian/entity/SubjectEntity.java | 1 + .../com/gongjian/entity/TeacherEntity.java | 1 + .../java/com/gongjian/util/CreatExcel.java | 9 + src/main/java/com/gongjian/util/Poi.java | 62 ++++ src/test/java/com/gongjian/testPOI.java | 65 +++-- 25 files changed, 599 insertions(+), 76 deletions(-) rename src/main/java/com/gongjian/{JpaRepository => JpaRepositoryD}/AdminJpaRepository.java (93%) create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/OptionsJpaRepository.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/SubjectJpaRepository.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java rename src/main/java/com/gongjian/{JpaRepository => JpaRepositoryD}/test.java (38%) rename src/main/java/com/gongjian/{control => controlD}/Admin.java (54%) create mode 100644 src/main/java/com/gongjian/controlD/File.java rename src/main/java/com/gongjian/{control => controlD}/test.java (42%) rename src/main/java/com/gongjian/{dao => daoD}/AdminDao.java (40%) create mode 100644 src/main/java/com/gongjian/daoD/OptionsDao.java create mode 100644 src/main/java/com/gongjian/daoD/QuestionbankDao.java create mode 100644 src/main/java/com/gongjian/daoD/StudentDao.java create mode 100644 src/main/java/com/gongjian/daoD/SubjectDao.java create mode 100644 src/main/java/com/gongjian/daoD/TeacherDao.java rename src/main/java/com/gongjian/{dao => daoD}/test.java (46%) create mode 100644 src/main/java/com/gongjian/util/CreatExcel.java create mode 100644 src/main/java/com/gongjian/util/Poi.java diff --git a/src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/AdminJpaRepository.java similarity index 93% rename from src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java rename to src/main/java/com/gongjian/JpaRepositoryD/AdminJpaRepository.java index b3bb4f1..607ddb8 100644 --- a/src/main/java/com/gongjian/JpaRepository/AdminJpaRepository.java +++ b/src/main/java/com/gongjian/JpaRepositoryD/AdminJpaRepository.java @@ -1,4 +1,4 @@ -package com.gongjian.JpaRepository; +package com.gongjian.JpaRepositoryD; import com.gongjian.entity.AdminEntity; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/gongjian/JpaRepositoryD/OptionsJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/OptionsJpaRepository.java new file mode 100644 index 0000000..19c67dc --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/OptionsJpaRepository.java @@ -0,0 +1,12 @@ +package com.gongjian.JpaRepositoryD; + + +import com.gongjian.entity.OptionsEntity; +import com.gongjian.entity.QuestionbankEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface OptionsJpaRepository extends JpaRepository { + + + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java new file mode 100644 index 0000000..7e1cd8b --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java @@ -0,0 +1,12 @@ +package com.gongjian.JpaRepositoryD; + + +import com.gongjian.entity.QuestionbankEntity; +import com.gongjian.entity.SubjectEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface QuestionbankJpaRepository extends JpaRepository { + + + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java b/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java new file mode 100644 index 0000000..31338dc --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java @@ -0,0 +1,10 @@ +package com.gongjian.JpaRepositoryD; + +import com.gongjian.entity.StudentEntity; +import com.gongjian.entity.TeacherEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface StudentJpaReposittory extends JpaRepository { + + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/SubjectJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/SubjectJpaRepository.java new file mode 100644 index 0000000..e4dda5c --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/SubjectJpaRepository.java @@ -0,0 +1,11 @@ +package com.gongjian.JpaRepositoryD; + + +import com.gongjian.entity.SubjectEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface SubjectJpaRepository extends JpaRepository { + + + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java b/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java new file mode 100644 index 0000000..643233a --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java @@ -0,0 +1,9 @@ +package com.gongjian.JpaRepositoryD; + +import com.gongjian.entity.TeacherEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TeacherJpaReposittory extends JpaRepository { + + +} diff --git a/src/main/java/com/gongjian/JpaRepository/test.java b/src/main/java/com/gongjian/JpaRepositoryD/test.java similarity index 38% rename from src/main/java/com/gongjian/JpaRepository/test.java rename to src/main/java/com/gongjian/JpaRepositoryD/test.java index 8ccfb68..4527ab7 100644 --- a/src/main/java/com/gongjian/JpaRepository/test.java +++ b/src/main/java/com/gongjian/JpaRepositoryD/test.java @@ -1,4 +1,4 @@ -package com.gongjian.JpaRepository; +package com.gongjian.JpaRepositoryD; public class test { } diff --git a/src/main/java/com/gongjian/control/Admin.java b/src/main/java/com/gongjian/controlD/Admin.java similarity index 54% rename from src/main/java/com/gongjian/control/Admin.java rename to src/main/java/com/gongjian/controlD/Admin.java index 3e6dd89..a5b2db0 100644 --- a/src/main/java/com/gongjian/control/Admin.java +++ b/src/main/java/com/gongjian/controlD/Admin.java @@ -1,10 +1,9 @@ -package com.gongjian.control; +package com.gongjian.controlD; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.gongjian.JpaRepository.AdminJpaRepository; -import com.gongjian.dao.AdminDao; +import com.gongjian.JpaRepositoryD.AdminJpaRepository; +import com.gongjian.JpaRepositoryD.SubjectJpaRepository; +import com.gongjian.daoD.AdminDao; import com.gongjian.entity.AdminEntity; import com.gongjian.util.Json; import org.json.JSONException; @@ -12,13 +11,8 @@ import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; @RestController public class Admin { @@ -26,6 +20,9 @@ public class Admin { @Autowired private AdminJpaRepository adminJpaRepository; + @Autowired + private SubjectJpaRepository subjectJpaRepository; + @RequestMapping("/admin/login") public String login(String adName, String adPass, HttpSession session) { @@ -57,37 +54,7 @@ public class Admin { } - /** - * 上传科目 - * @param file - * @return - */ - @PostMapping("/admin/upload/addSubject") - @ResponseBody - public String upload(@RequestParam("file") MultipartFile file) { - if (file.isEmpty()) { - - - return new Json(9001,"上传失败,请选择文件").toString(); - } - - String fileName = file.getOriginalFilename(); - // String filePath = "/Users/itinypocket/workspace/temp/"; - String filePath = "H:\\考试系统文件上传\\"; - File dest = new File(filePath + fileName); - try { - file.transferTo(dest); - - - // LOGGER.info("上传成功"); - return new Json(200," 上传成功").toString() - ; - } catch (IOException e) { - // LOGGER.error(e.toString(), e); - return new Json(200," IOException").toString(); - } - } } diff --git a/src/main/java/com/gongjian/controlD/File.java b/src/main/java/com/gongjian/controlD/File.java new file mode 100644 index 0000000..e3fa669 --- /dev/null +++ b/src/main/java/com/gongjian/controlD/File.java @@ -0,0 +1,272 @@ +package com.gongjian.controlD; + +import com.gongjian.JpaRepositoryD.*; +import com.gongjian.daoD.*; +import com.gongjian.entity.*; +import com.gongjian.util.Json; +import com.gongjian.util.Poi; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +@RestController +public class File { + @Autowired + private SubjectJpaRepository subjectJpaRepository; + @Autowired + private StudentJpaReposittory studentJpaReposittory; + @Autowired + private TeacherJpaReposittory teacherJpaReposittory; + @Autowired + private QuestionbankJpaRepository questionbankJpaRepository; + @Autowired + private OptionsJpaRepository optionsJpaRepository; + /** + * 上传科目 |科目名| + * @param file + * @return + */ + @PostMapping("/file/upload/addSubject") + @ResponseBody + public String addSubject(@RequestParam("file") MultipartFile file) { + if (file.isEmpty()) { + return new Json(9001, "上传失败,请选择文件").toString(); + } + String fileName = file.getOriginalFilename(); + // File dest = new File(filePath + fileName); + try { + InputStream inputStream = file.getInputStream();//文件流 + // file.transferTo(dest);保存文件 + Poi poi = new Poi(inputStream, fileName); + Sheet sheet = poi.getSheet(0); + List subjectEntities = new ArrayList<>(); + SubjectDao subjectDao = new SubjectDao(subjectJpaRepository); + + + for (Row row : sheet) { + SubjectEntity subjectEntity = new SubjectEntity(); + subjectEntity.setSuName(row.getCell(0).toString()); + // System.out.println(row.getCell(0).toString()); + subjectEntity.setIsVisible(1); + subjectEntity.setNote("121"); + //subjectEntity.setSuId(0); + subjectEntities.add(subjectEntity); + } + subjectDao.importSubject(subjectEntities); + + inputStream.close(); + + // LOGGER.info("上传成功"); + return new Json(200, " 上传成功").toString() + ; + } catch (IOException e) { + // LOGGER.error(e.toString(), e); + return new Json(200, " IOException").toString(); + } catch (NullPointerException e) { + return new Json(200, " NullPointerException:" + e.getMessage()).toString(); + } + + } + + + + /** + * 导入老师 |工号|name|科目ID|权限int| + * @param file + * @return + */ + @PostMapping("/file/upload/addTeacher") + @ResponseBody + public String addTeacher(@RequestParam("file") MultipartFile file) { + + if (file.isEmpty()) { + return new Json(9001, "上传失败,请选择文件").toString(); + } + + String fileName = file.getOriginalFilename(); + // File dest = new File(filePath + fileName); + try { + InputStream inputStream = file.getInputStream();//文件流 + // file.transferTo(dest);保存文件 + Poi poi = new Poi(inputStream, fileName); + Sheet sheet = poi.getSheet(0); + List teacherEntities=new ArrayList<>(); + for (Row row : sheet) { + TeacherEntity teacherEntity=new TeacherEntity(); + System.out.println((int)row.getCell(0).getNumericCellValue()); + teacherEntity.setWorkNumber((int)row.getCell(0).getNumericCellValue()); + teacherEntity.setTeName(row.getCell(1).toString()); + teacherEntity.setTePass("123456"); + teacherEntity.setSubjectsId((int)row.getCell(2).getNumericCellValue()); + teacherEntity.setTePermission((int)row.getCell(3).getNumericCellValue()); + teacherEntities.add(teacherEntity); + } + TeacherDao teacherDao=new TeacherDao(teacherJpaReposittory); + teacherDao.addTeacher(teacherEntities); + inputStream.close(); + + // LOGGER.info("上传成功"); + return new Json(200, " 上传成功").toString() + ; + } catch (IOException e) { + // LOGGER.error(e.toString(), e); + return new Json(9004, " IOException").toString(); + } catch (NullPointerException e) { + return new Json(9005, " NullPointerException:" + e.getMessage()+"文档不完整").toString(); + } + catch (Exception e){ + e.printStackTrace(); + return new Json(9006, " Exception:" + e.getMessage()).toString(); + } + } + + + /** + * 导入学生 |学号|name| + * @param file + * @return + */ + @PostMapping("/file/upload/addStudent") + @ResponseBody + public String addStudent(@RequestParam("file") MultipartFile file) { + + if (file.isEmpty()) { + return new Json(9001, "上传失败,请选择文件").toString(); + } + + String fileName = file.getOriginalFilename(); + // File dest = new File(filePath + fileName); + try { + InputStream inputStream = file.getInputStream();//文件流 + // file.transferTo(dest);保存文件 + Poi poi = new Poi(inputStream, fileName); + Sheet sheet = poi.getSheet(0); + List studentEntities=new ArrayList<>(); + for (Row row : sheet) { + + StudentEntity studentEntity=new StudentEntity(); + studentEntity.setIsVisible(1); + studentEntity.setStudentId((int)row.getCell(0).getNumericCellValue()); + studentEntity.setStName(row.getCell(1).getStringCellValue()); + studentEntity.setStPass("123456"); + studentEntities.add(studentEntity); + + } + + StudentDao studentDao=new StudentDao(studentJpaReposittory); + studentDao.importSubject(studentEntities); + inputStream.close(); + + // LOGGER.info("上传成功"); + return new Json(200, " 上传成功").toString() + ; + } catch (IOException e) { + // LOGGER.error(e.toString(), e); + return new Json(9004, " IOException").toString(); + } catch (NullPointerException e) { + return new Json(9005, " NullPointerException:" + e.getMessage()+"文档不完整").toString(); + } + catch (Exception e){ + e.printStackTrace(); + return new Json(9006, " Exception:" + e.getMessage()).toString(); + } + } + + + /** + * 导入题库 + * @param file + * @return + */ + @PostMapping("/file/upload/addQuestionbank") + @ResponseBody + public String addQuestionbank(@RequestParam("file") MultipartFile file) { + + if (file.isEmpty()) { + return new Json(9001, "上传失败,请选择文件").toString(); + } + + String fileName = file.getOriginalFilename(); + // File dest = new File(filePath + fileName); + try { + InputStream inputStream = file.getInputStream();//文件流 + // file.transferTo(dest);保存文件 + Poi poi = new Poi(inputStream, fileName); + Sheet sheet = poi.getSheet(0); + List questionbankEntities=new ArrayList<>(); + List optionsEntities=new ArrayList<>(); + for (Row row : sheet) { + QuestionbankEntity questionbankEntity=new QuestionbankEntity(); + questionbankEntity.setQuTitle(row.getCell(0).getStringCellValue()); + questionbankEntity.setSubjectsId((int)row.getCell(1).getNumericCellValue()); + questionbankEntity.setQuAnswer(row.getCell(2).getStringCellValue()); + questionbankEntity.setAddTime(new Date()); + questionbankEntity.setModifyTime(new Date()); + OptionsEntity o1=new OptionsEntity(); + o1.setOpKey(row.getCell(3).getStringCellValue()); + o1.setOpValue(row.getCell(4).getStringCellValue()); + + OptionsEntity o2=new OptionsEntity(); + o2.setOpKey(row.getCell(5).getStringCellValue()); + o2.setOpValue(row.getCell(6).getStringCellValue()); + + OptionsEntity o3=new OptionsEntity(); + o3.setOpKey(row.getCell(7).getStringCellValue()); + o3.setOpValue(row.getCell(8).getStringCellValue()); + + OptionsEntity o4=new OptionsEntity(); + o4.setOpKey(row.getCell(9).getStringCellValue()); + o4.setOpValue(row.getCell(10).getStringCellValue()); + + optionsEntities.add(o1); + optionsEntities.add(o2); + optionsEntities.add(o3); + optionsEntities.add(o4); + questionbankEntities.add(questionbankEntity); + } + QuestionbankDao questionbankDao=new QuestionbankDao(questionbankJpaRepository); + List questionbankEntityList= questionbankDao.addTeacher(questionbankEntities); + + int i=0; + + for (QuestionbankEntity q: questionbankEntities + ) { + int qid=q.getQuId(); + for(int j=0;j<4;j++,i++){ + optionsEntities.get(i).setQuestionBankId(qid); + } + } + + OptionsDao optionsDao=new OptionsDao(optionsJpaRepository); + optionsDao.addOptions(optionsEntities); + + inputStream.close(); + + // LOGGER.info("上传成功"); + return new Json(200, " 上传成功").toString() + ; + } catch (IOException e) { + // LOGGER.error(e.toString(), e); + return new Json(9004, " IOException").toString(); + } catch (NullPointerException e) { + return new Json(9005, " NullPointerException:" + e.getMessage()+"文档不完整").toString(); + } + catch (Exception e){ + e.printStackTrace(); + return new Json(9006, " Exception:" + e.getMessage()).toString(); + } + } + +} diff --git a/src/main/java/com/gongjian/control/test.java b/src/main/java/com/gongjian/controlD/test.java similarity index 42% rename from src/main/java/com/gongjian/control/test.java rename to src/main/java/com/gongjian/controlD/test.java index 2f1b815..bcd1258 100644 --- a/src/main/java/com/gongjian/control/test.java +++ b/src/main/java/com/gongjian/controlD/test.java @@ -1,4 +1,4 @@ -package com.gongjian.control; +package com.gongjian.controlD; public class test { } diff --git a/src/main/java/com/gongjian/dao/AdminDao.java b/src/main/java/com/gongjian/daoD/AdminDao.java similarity index 40% rename from src/main/java/com/gongjian/dao/AdminDao.java rename to src/main/java/com/gongjian/daoD/AdminDao.java index 6339521..61bacf3 100644 --- a/src/main/java/com/gongjian/dao/AdminDao.java +++ b/src/main/java/com/gongjian/daoD/AdminDao.java @@ -1,12 +1,24 @@ -package com.gongjian.dao; +package com.gongjian.daoD; -import com.gongjian.JpaRepository.AdminJpaRepository; +import com.gongjian.JpaRepositoryD.AdminJpaRepository; +import com.gongjian.JpaRepositoryD.SubjectJpaRepository; import com.gongjian.entity.AdminEntity; +import org.springframework.beans.factory.annotation.Autowired; public class AdminDao { + @Autowired private AdminJpaRepository adminJpaRepository; + @Autowired + private SubjectJpaRepository subjectJpaRepository; - public AdminDao(AdminJpaRepository adminJpaRepository) { + public AdminDao(AdminJpaRepository adminJpaRepository, SubjectJpaRepository subjectJpaRepository) { + this.adminJpaRepository = adminJpaRepository; + this.subjectJpaRepository = subjectJpaRepository; + } + + + public AdminDao(AdminJpaRepository adminJpaRepository) + { this.adminJpaRepository = adminJpaRepository; } @@ -21,4 +33,5 @@ public class AdminDao { } + } diff --git a/src/main/java/com/gongjian/daoD/OptionsDao.java b/src/main/java/com/gongjian/daoD/OptionsDao.java new file mode 100644 index 0000000..514343d --- /dev/null +++ b/src/main/java/com/gongjian/daoD/OptionsDao.java @@ -0,0 +1,24 @@ +package com.gongjian.daoD; + +import com.gongjian.JpaRepositoryD.OptionsJpaRepository; +import com.gongjian.JpaRepositoryD.TeacherJpaReposittory; +import com.gongjian.entity.OptionsEntity; +import com.gongjian.entity.TeacherEntity; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +public class OptionsDao { + @Autowired + private OptionsJpaRepository optionsJpaRepository; + public OptionsDao(OptionsJpaRepository optionsJpaRepository) + { + this.optionsJpaRepository=optionsJpaRepository; + } + + + public boolean addOptions(List teacherEntities){ + optionsJpaRepository.saveAll(teacherEntities); + return true; + } +} diff --git a/src/main/java/com/gongjian/daoD/QuestionbankDao.java b/src/main/java/com/gongjian/daoD/QuestionbankDao.java new file mode 100644 index 0000000..6baae9c --- /dev/null +++ b/src/main/java/com/gongjian/daoD/QuestionbankDao.java @@ -0,0 +1,25 @@ +package com.gongjian.daoD; + +import com.gongjian.JpaRepositoryD.QuestionbankJpaRepository; +import com.gongjian.entity.QuestionbankEntity; +import com.gongjian.entity.TeacherEntity; +import org.springframework.beans.factory.annotation.Autowired; + + +import java.util.List; + +public class QuestionbankDao { + @Autowired + private QuestionbankJpaRepository questionbankJpaRepository; + + public QuestionbankDao(QuestionbankJpaRepository questionbankJpaRepository) { + this.questionbankJpaRepository=questionbankJpaRepository; + } + + + public List addTeacher(List questionbankEntities){ + return questionbankJpaRepository.saveAll(questionbankEntities); + + + } +} diff --git a/src/main/java/com/gongjian/daoD/StudentDao.java b/src/main/java/com/gongjian/daoD/StudentDao.java new file mode 100644 index 0000000..abbd4a6 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/StudentDao.java @@ -0,0 +1,28 @@ +package com.gongjian.daoD; + +import com.gongjian.JpaRepositoryD.AdminJpaRepository; +import com.gongjian.JpaRepositoryD.StudentJpaReposittory; +import com.gongjian.entity.StudentEntity; +import com.gongjian.entity.SubjectEntity; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +public class StudentDao { + @Autowired + private StudentJpaReposittory studentJpaReposittory; + + public StudentDao(StudentJpaReposittory studentJpaReposittory) { + this.studentJpaReposittory=studentJpaReposittory; + } + + + public boolean importSubject( List studentEntities){ + + + studentJpaReposittory.saveAll(studentEntities); + + // System.out.println(subj.size()+"===00000"); + return true; + } +} diff --git a/src/main/java/com/gongjian/daoD/SubjectDao.java b/src/main/java/com/gongjian/daoD/SubjectDao.java new file mode 100644 index 0000000..b299be7 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/SubjectDao.java @@ -0,0 +1,35 @@ +package com.gongjian.daoD; + +import com.gongjian.JpaRepositoryD.SubjectJpaRepository; +import com.gongjian.entity.SubjectEntity; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +public class SubjectDao { + @Autowired + private SubjectJpaRepository subjectJpaRepository; + + public SubjectDao(SubjectJpaRepository subjectJpaRepository) { + this.subjectJpaRepository = subjectJpaRepository; + } + + public boolean importSubject( List subjectEntities){ + + + for (SubjectEntity s:subjectEntities + ) { + subjectJpaRepository.save(s); + } + // System.out.println(subj.size()+"===00000"); + return true; + } + public boolean save(SubjectEntity subjectEntities){ + + + + subjectJpaRepository.save(subjectEntities); + // System.out.println(subj.size()+"===00000"); + return true; + } +} diff --git a/src/main/java/com/gongjian/daoD/TeacherDao.java b/src/main/java/com/gongjian/daoD/TeacherDao.java new file mode 100644 index 0000000..6eda374 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/TeacherDao.java @@ -0,0 +1,22 @@ +package com.gongjian.daoD; + +import com.gongjian.JpaRepositoryD.SubjectJpaRepository; +import com.gongjian.JpaRepositoryD.TeacherJpaReposittory; +import com.gongjian.entity.TeacherEntity; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +public class TeacherDao { + @Autowired + private TeacherJpaReposittory teacherJpaReposittory; + public TeacherDao(TeacherJpaReposittory teacherJpaReposittory) { + this.teacherJpaReposittory=teacherJpaReposittory; + } + + + public boolean addTeacher(List teacherEntities){ + teacherJpaReposittory.saveAll(teacherEntities); + return true; + } +} diff --git a/src/main/java/com/gongjian/dao/test.java b/src/main/java/com/gongjian/daoD/test.java similarity index 46% rename from src/main/java/com/gongjian/dao/test.java rename to src/main/java/com/gongjian/daoD/test.java index 1e7c4e1..3025af9 100644 --- a/src/main/java/com/gongjian/dao/test.java +++ b/src/main/java/com/gongjian/daoD/test.java @@ -1,4 +1,4 @@ -package com.gongjian.dao; +package com.gongjian.daoD; public class test { } diff --git a/src/main/java/com/gongjian/entity/OptionsEntity.java b/src/main/java/com/gongjian/entity/OptionsEntity.java index 581297d..95d91cb 100644 --- a/src/main/java/com/gongjian/entity/OptionsEntity.java +++ b/src/main/java/com/gongjian/entity/OptionsEntity.java @@ -13,6 +13,7 @@ public class OptionsEntity { @Id @Column(name = "op_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getOpId() { return opId; } diff --git a/src/main/java/com/gongjian/entity/QuestionbankEntity.java b/src/main/java/com/gongjian/entity/QuestionbankEntity.java index 4608fbc..6890764 100644 --- a/src/main/java/com/gongjian/entity/QuestionbankEntity.java +++ b/src/main/java/com/gongjian/entity/QuestionbankEntity.java @@ -24,6 +24,7 @@ public class QuestionbankEntity { @Id @Column(name = "qu_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getQuId() { return quId; } diff --git a/src/main/java/com/gongjian/entity/StudentEntity.java b/src/main/java/com/gongjian/entity/StudentEntity.java index 7fc53e4..e532f67 100644 --- a/src/main/java/com/gongjian/entity/StudentEntity.java +++ b/src/main/java/com/gongjian/entity/StudentEntity.java @@ -15,6 +15,7 @@ public class StudentEntity { @Id @Column(name = "st_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getStId() { return stId; } diff --git a/src/main/java/com/gongjian/entity/SubjectEntity.java b/src/main/java/com/gongjian/entity/SubjectEntity.java index 782b725..11e6b3c 100644 --- a/src/main/java/com/gongjian/entity/SubjectEntity.java +++ b/src/main/java/com/gongjian/entity/SubjectEntity.java @@ -13,6 +13,7 @@ public class SubjectEntity { @Id @Column(name = "su_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getSuId() { return suId; } diff --git a/src/main/java/com/gongjian/entity/TeacherEntity.java b/src/main/java/com/gongjian/entity/TeacherEntity.java index a29193a..abdab30 100644 --- a/src/main/java/com/gongjian/entity/TeacherEntity.java +++ b/src/main/java/com/gongjian/entity/TeacherEntity.java @@ -15,6 +15,7 @@ public class TeacherEntity { @Id @Column(name = "te_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getTeId() { return teId; } diff --git a/src/main/java/com/gongjian/util/CreatExcel.java b/src/main/java/com/gongjian/util/CreatExcel.java new file mode 100644 index 0000000..15d1371 --- /dev/null +++ b/src/main/java/com/gongjian/util/CreatExcel.java @@ -0,0 +1,9 @@ +package com.gongjian.util; + +public class CreatExcel { + + + + + +} diff --git a/src/main/java/com/gongjian/util/Poi.java b/src/main/java/com/gongjian/util/Poi.java new file mode 100644 index 0000000..7f16cdc --- /dev/null +++ b/src/main/java/com/gongjian/util/Poi.java @@ -0,0 +1,62 @@ +package com.gongjian.util; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +public class Poi { + + InputStream inputStream;//文件流 + String name; + private static final String EXCEL_XLS = "xls"; + private static final String EXCEL_XLSX = "xlsx"; + + public Poi(InputStream inputStream,String name) { + this.inputStream = inputStream; +this.name=name; + + } + /** + * 判断Excel的版本,获取Workbook + * @param + * @return + * @throws IOException + */ + public Workbook getWorkbok() throws IOException{ + Workbook wb = null; + if(name.endsWith(EXCEL_XLS)){ //Excel 2003 + wb = new HSSFWorkbook(inputStream); + }else if(name.endsWith(EXCEL_XLSX)){ // Excel 2007/2010 + wb = new XSSFWorkbook(inputStream); + } + return wb; + } + + /** + * 获取页 + * @param i + * @return + * @throws IOException + */ + public Sheet getSheet(int i) throws IOException,NullPointerException{ + + try { + return getWorkbok().getSheetAt(i); + + }catch (NullPointerException e){ + throw new NullPointerException("不是exle"); + } + catch (IOException e){ + throw new NullPointerException("IOException"); + } + + + } + + +} diff --git a/src/test/java/com/gongjian/testPOI.java b/src/test/java/com/gongjian/testPOI.java index d3f20e1..8835cb5 100644 --- a/src/test/java/com/gongjian/testPOI.java +++ b/src/test/java/com/gongjian/testPOI.java @@ -1,6 +1,8 @@ package com.gongjian; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.web.multipart.MultipartFile; @@ -15,42 +17,47 @@ public class testPOI { public static void main(String[] args) throws Exception { - File excelFile = new File("d:/product.xlsx"); // 创建文件对象 + File excelFile = new File("C:\\Users\\董浩\\Desktop\\新建Microsoft Excel 工作表.xlsx"); // 创建文件对象 FileInputStream in = new FileInputStream(excelFile); // 文件流 checkExcelVaild(excelFile); Workbook workbook = getWorkbok(in,excelFile); - - - } + Sheet sheet = workbook.getSheetAt(0); // 遍历第1个Sheet + for (Row row : sheet) {//行 + System.out.println(row.getCell(0).toString()); - /** - * 判断Excel的版本,获取Workbook - * @param in - * @return - * @throws IOException - */ - public static Workbook getWorkbok(InputStream in, File file) throws IOException{ - Workbook wb = null; - if(file.getName().endsWith(EXCEL_XLS)){ //Excel 2003 - wb = new HSSFWorkbook(in); - }else if(file.getName().endsWith(EXCEL_XLSX)){ // Excel 2007/2010 - wb = new XSSFWorkbook(in); } - return wb; - } - /** - * 判断文件是否是excel - * @throws Exception - */ - public static void checkExcelVaild(File file) throws Exception{ - if(!file.exists()){ - throw new Exception("文件不存在"); - } - if(!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))){ - throw new Exception("文件不是Excel"); - } } + + /** + * 判断Excel的版本,获取Workbook + * @param in + * @return + * @throws IOException + */ + public static Workbook getWorkbok(InputStream in, File file) throws IOException{ + Workbook wb = null; + if(file.getName().endsWith(EXCEL_XLS)){ //Excel 2003 + wb = new HSSFWorkbook(in); + }else if(file.getName().endsWith(EXCEL_XLSX)){ // Excel 2007/2010 + wb = new XSSFWorkbook(in); + } + return wb; + } + + /** + * 判断文件是否是excel + * @throws Exception + */ + public static void checkExcelVaild(File file) throws Exception{ + if(!file.exists()){ + throw new Exception("文件不存在"); + } + if(!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))){ + throw new Exception("文件不是Excel"); + } + } + } -- Gitee From 4184ac696f89be8664ab5c049583bf8f02be928d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=96donting?= <596643891@qq.com> Date: Fri, 4 Jan 2019 23:05:15 +0800 Subject: [PATCH 3/3] popop --- .../JpaRepositoryD/ExToQuJpaRepository.java | 11 + .../ExaminationpaperRepository.java | 86 ++++ .../QuestionbankJpaRepository.java | 10 + .../JpaRepositoryD/ScoreJpaRepository.java | 14 + .../JpaRepositoryD/StToSuJpaRepository.java | 15 + .../JpaRepositoryD/StudentJpaReposittory.java | 2 + .../JpaRepositoryD/TeacherJpaReposittory.java | 2 +- .../java/com/gongjian/controlD/Admin.java | 4 +- .../gongjian/controlD/Examinationpaper.java | 101 ++++ src/main/java/com/gongjian/controlD/File.java | 20 +- .../java/com/gongjian/controlD/Student.java | 115 +++++ .../java/com/gongjian/controlD/Teacher.java | 53 +++ .../java/com/gongjian/daoD/ExToQuDao.java | 11 + .../gongjian/daoD/ExaminationpaperDao.java | 445 ++++++++++++++++++ src/main/java/com/gongjian/daoD/Qusetion.java | 17 + .../java/com/gongjian/daoD/StudentDao.java | 10 + .../java/com/gongjian/daoD/TeacherDao.java | 6 + .../com/gongjian/entity/ExToQuEntity.java | 1 + .../entity/ExaminationpaperEntity.java | 5 + .../java/com/gongjian/entity/ScoreEntity.java | 3 +- .../gongjian/{util => utilD}/CreatExcel.java | 2 +- .../com/gongjian/{util => utilD}/DbtoUp.java | 2 +- .../com/gongjian/{util => utilD}/Json.java | 2 +- .../com/gongjian/{util => utilD}/Poi.java | 3 +- src/main/java/com/gongjian/utilD/Static.java | 5 + 25 files changed, 927 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/ExToQuJpaRepository.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/ExaminationpaperRepository.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/ScoreJpaRepository.java create mode 100644 src/main/java/com/gongjian/JpaRepositoryD/StToSuJpaRepository.java create mode 100644 src/main/java/com/gongjian/controlD/Examinationpaper.java create mode 100644 src/main/java/com/gongjian/controlD/Student.java create mode 100644 src/main/java/com/gongjian/controlD/Teacher.java create mode 100644 src/main/java/com/gongjian/daoD/ExToQuDao.java create mode 100644 src/main/java/com/gongjian/daoD/ExaminationpaperDao.java create mode 100644 src/main/java/com/gongjian/daoD/Qusetion.java rename src/main/java/com/gongjian/{util => utilD}/CreatExcel.java (54%) rename src/main/java/com/gongjian/{util => utilD}/DbtoUp.java (98%) rename src/main/java/com/gongjian/{util => utilD}/Json.java (92%) rename src/main/java/com/gongjian/{util => utilD}/Poi.java (96%) create mode 100644 src/main/java/com/gongjian/utilD/Static.java diff --git a/src/main/java/com/gongjian/JpaRepositoryD/ExToQuJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/ExToQuJpaRepository.java new file mode 100644 index 0000000..560e91a --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/ExToQuJpaRepository.java @@ -0,0 +1,11 @@ +package com.gongjian.JpaRepositoryD; + +import com.gongjian.entity.ExToQuEntity; + +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface ExToQuJpaRepository extends JpaRepository { + + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/ExaminationpaperRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/ExaminationpaperRepository.java new file mode 100644 index 0000000..371e365 --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/ExaminationpaperRepository.java @@ -0,0 +1,86 @@ +package com.gongjian.JpaRepositoryD; + +import com.gongjian.entity.AdminEntity; +import com.gongjian.entity.ExaminationpaperEntity; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.transaction.Transactional; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public interface ExaminationpaperRepository extends JpaRepository { + + ExaminationpaperEntity findByExId(int exId); + + + +/* + @Query(value = "select ex.*,qu.qu_id,qu.qu_title,qu.qu_answer,op.* From examinationpaper as ex \n" + + "left join ex_to_qu as etq on ex.ex_id=etq.ex_id \n" + + "left join questionbank as qu on qu.qu_id=etq.qu_id\n" + + "right join `options` as op on op.question_bank_id=qu.qu_id\n" + + "where ex.ex_id=:exId\n" + + "order by etq.exq_id,op.op_id asc",nativeQuery = true) + public List> showExaminationpaper(int exId); +*/ +@Query(value = "select ex.*,qu.qu_title,qu.qu_id,qu.qu_answer,op.*,su.su_name,su.su_id,te.te_name From examinationpaper as ex\n" + + " left join ex_to_qu as etq on ex.ex_id=etq.ex_id \n" + + " left join questionbank as qu on qu.qu_id=etq.qu_id\n" + + " right join `options` as op on op.question_bank_id=qu.qu_id\n" + + " left join subject as su on ex.subjects_id=su.su_id\n" + + " left join teacher as te on ex.teacher_id=te.te_id\n" + + " where ex.ex_id=:exId \n" + + " order by etq.exq_id,op.op_id asc",nativeQuery = true) +public List> showExaminationpaper(int exId); + + + @Query(value =" select su_name,te_name from examinationpaper as ex left join subject as su\n" + + " on su.su_id=ex.subjects_id left join teacher as te on ex.teacher_id=te.te_id\n" + + " where ex.is_visible=1 and ex.ex_id=:exId",nativeQuery = true) + public Map ExaminationpaperDe(int exId); + + + @Query(value = "select ex.*,su_name,te_name from examinationpaper as ex left join subject as su\n" + + "on su.su_id=ex.subjects_id left join teacher as te on ex.teacher_id=te.te_id\n" + + "where ex.is_visible=1",nativeQuery = true) + List> findAllPage(Pageable pageable); + + @Query(value = "select count(*) from examinationpaper " + + "where is_visible=1",nativeQuery = true) + int findAllCount(); + + + @Modifying + @Transactional + @Query(value = "update examinationpaper set is_visible=0 where ex_id=:exId",nativeQuery = true) + int deleteOne(int exId); + + + List findBySubjectsId(int subjectsId); + + +//考试 + @Query(value = " select ex.ex_id,ex.ex_name,su.su_name,ex.ex_countdown,su.su_id FROM examinationpaper as ex left join subject as su on su.su_id=ex.subjects_id,st_to_su as sts \n" + + " where ex.subjects_id=sts.su_id \n" + + " and ex.ex_id NOT IN (SELECT examination_paper_id FROM score\n" + + "WHERE student_id=:studentId)",nativeQuery = true) + List> showExmaintion(int studentId,Pageable pageable); + @Query(value = " select count(*) FROM examinationpaper as ex,st_to_su as sts\n" + + " where ex.subjects_id=sts.su_id \n" + + " and ex.ex_id NOT IN (SELECT examination_paper_id FROM score\n" + + " WHERE student_id=:studentId)",nativeQuery = true) + int countShowExmaintion(int studentId); + + + @Query(value = " select etq.*,op.*,qu.qu_title,qu.qu_answer FROM ex_to_qu AS etq left JOIN `options` AS op ON etq.qu_id=op.question_bank_id \n" + + "left JOIN questionbank qu on etq.qu_id=qu.qu_id\n" + + " WHERE etq.ex_id=6 order by etq.exq_id,op.op_id asc",nativeQuery = true) + List> findExmaAll(int exId); +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java index 7e1cd8b..c8685c0 100644 --- a/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java +++ b/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java @@ -3,10 +3,20 @@ package com.gongjian.JpaRepositoryD; import com.gongjian.entity.QuestionbankEntity; import com.gongjian.entity.SubjectEntity; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; +import java.util.Map; public interface QuestionbankJpaRepository extends JpaRepository { + List findBySubjectsId(int SubjectsId); + + + + // List> } diff --git a/src/main/java/com/gongjian/JpaRepositoryD/ScoreJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/ScoreJpaRepository.java new file mode 100644 index 0000000..366fd4d --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/ScoreJpaRepository.java @@ -0,0 +1,14 @@ +package com.gongjian.JpaRepositoryD; + +import com.gongjian.entity.ScoreEntity; +import com.gongjian.entity.StToSuEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface ScoreJpaRepository extends JpaRepository { + + List findByStudentId(int studentId); + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/StToSuJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/StToSuJpaRepository.java new file mode 100644 index 0000000..e04ca90 --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/StToSuJpaRepository.java @@ -0,0 +1,15 @@ +package com.gongjian.JpaRepositoryD; + +import com.gongjian.entity.ExToQuEntity; +import com.gongjian.entity.StToSuEntity; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + + +public interface StToSuJpaRepository extends JpaRepository { + + + List findByStId(int stId); + +} diff --git a/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java b/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java index 31338dc..ae4719d 100644 --- a/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java +++ b/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java @@ -7,4 +7,6 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface StudentJpaReposittory extends JpaRepository { + StudentEntity findByStudentIdAndStPass(int studentId ,String stPass); + } diff --git a/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java b/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java index 643233a..a10fb0c 100644 --- a/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java +++ b/src/main/java/com/gongjian/JpaRepositoryD/TeacherJpaReposittory.java @@ -5,5 +5,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface TeacherJpaReposittory extends JpaRepository { - + TeacherEntity findByWorkNumberAndTePass(int workNumber,String tePass); } diff --git a/src/main/java/com/gongjian/controlD/Admin.java b/src/main/java/com/gongjian/controlD/Admin.java index a5b2db0..35f628f 100644 --- a/src/main/java/com/gongjian/controlD/Admin.java +++ b/src/main/java/com/gongjian/controlD/Admin.java @@ -5,7 +5,7 @@ import com.gongjian.JpaRepositoryD.AdminJpaRepository; import com.gongjian.JpaRepositoryD.SubjectJpaRepository; import com.gongjian.daoD.AdminDao; import com.gongjian.entity.AdminEntity; -import com.gongjian.util.Json; +import com.gongjian.utilD.Json; import org.json.JSONException; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; @@ -30,12 +30,14 @@ public class Admin { AdminEntity adminEntity = adminDao.login(adName, adPass); if (adminEntity != null) { Json json = new Json(200, "登录成功"); + session.setAttribute("user",adminEntity); // ObjectMapper mapper = new ObjectMapper(); try { // String date=mapper.writeValueAsString(adminEntity); JSONObject admin = new JSONObject(); admin.put("adName", adminEntity.getAdName()); admin.put("adId", adminEntity.getAdId()); + //admin.put("adName",adminEntity.getAdName()); session.setAttribute("user", admin); json.put("data", admin); diff --git a/src/main/java/com/gongjian/controlD/Examinationpaper.java b/src/main/java/com/gongjian/controlD/Examinationpaper.java new file mode 100644 index 0000000..0359b4e --- /dev/null +++ b/src/main/java/com/gongjian/controlD/Examinationpaper.java @@ -0,0 +1,101 @@ +package com.gongjian.controlD; + + +import com.gongjian.JpaRepositoryD.ExToQuJpaRepository; +import com.gongjian.JpaRepositoryD.ExaminationpaperRepository; +import com.gongjian.JpaRepositoryD.QuestionbankJpaRepository; +import com.gongjian.daoD.ExaminationpaperDao; +import com.gongjian.entity.ExaminationpaperEntity; +import com.gongjian.utilD.Json; +import org.json.JSONException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; + +@RestController +public class Examinationpaper { + + @Autowired + private ExaminationpaperRepository examinationpaperRepository; +@Autowired +private QuestionbankJpaRepository questionbankJpaRepository; +@Autowired +private ExToQuJpaRepository exToQuJpaRepository; + + + /** + * ex_countdown,ex_name,subjects_id 生成试卷 + * @param examinationpaperEntity + * @return + */ + @RequestMapping("/examinationpaper/CreateExaminationpaper") + public String CreateExaminationpaper(ExaminationpaperEntity examinationpaperEntity){ + + System.out.println(examinationpaperEntity.getExCountdown()+"---'"); + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(questionbankJpaRepository,examinationpaperRepository); + examinationpaperDao.exToQuJpaRepository=exToQuJpaRepository; + examinationpaperEntity.setAddTime(new Date()); + examinationpaperEntity.setModifyTime(new Date()); + examinationpaperEntity.setIsVisible(1); + examinationpaperEntity.setTeacherId(1); + + + return examinationpaperDao.CreateExaminationpaper(examinationpaperEntity); + +} + + /** + * 显示试卷 + * @param exId + * @return + */ + @RequestMapping("/examinationpaper/showExaminationpaper") + public String showExaminationpaper(int exId) throws JSONException { + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + String json=examinationpaperDao.showExaminationpaper(exId); + + + + + return json; + + } + + + @RequestMapping("/examinationpaper/modify") + public String modify(int exId,int exCountdown,int suId,String exName){ + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + ExaminationpaperEntity examinationpaperEntity=examinationpaperDao.findone(exId); + examinationpaperEntity.setExCountdown(exCountdown); + examinationpaperEntity.setSubjectsId(suId); + examinationpaperEntity.setExName(exName); + examinationpaperEntity.setModifyTime(new Date()); + examinationpaperDao.examinationpaperRepository.save(examinationpaperEntity); + + + return new Json(200,"Ok").toString(); + } + + + @RequestMapping("/examinationpaper/findAllPage") + public String findAllPage(int page){ + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + return examinationpaperDao.findAllPage(page); + } + + + @RequestMapping("/examinationpaper/delete") + public String delete(int exId){ + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + examinationpaperDao.delete(exId); + return new Json(200,"ok").toString(); + } + + + + + + +} diff --git a/src/main/java/com/gongjian/controlD/File.java b/src/main/java/com/gongjian/controlD/File.java index e3fa669..d1a054e 100644 --- a/src/main/java/com/gongjian/controlD/File.java +++ b/src/main/java/com/gongjian/controlD/File.java @@ -3,8 +3,8 @@ package com.gongjian.controlD; import com.gongjian.JpaRepositoryD.*; import com.gongjian.daoD.*; import com.gongjian.entity.*; -import com.gongjian.util.Json; -import com.gongjian.util.Poi; +import com.gongjian.utilD.Json; +import com.gongjian.utilD.Poi; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.springframework.beans.factory.annotation.Autowired; @@ -73,9 +73,9 @@ public class File { ; } catch (IOException e) { // LOGGER.error(e.toString(), e); - return new Json(200, " IOException").toString(); + return new Json(2001, " IOException").toString(); } catch (NullPointerException e) { - return new Json(200, " NullPointerException:" + e.getMessage()).toString(); + return new Json(2002, " NullPointerException:" + e.getMessage()).toString(); } } @@ -152,13 +152,13 @@ public class File { InputStream inputStream = file.getInputStream();//文件流 // file.transferTo(dest);保存文件 Poi poi = new Poi(inputStream, fileName); - Sheet sheet = poi.getSheet(0); + Sheet sheet = poi.getSheet(0);//获取Excel 页 List studentEntities=new ArrayList<>(); - for (Row row : sheet) { + for (Row row : sheet) {//遍历行 StudentEntity studentEntity=new StudentEntity(); studentEntity.setIsVisible(1); - studentEntity.setStudentId((int)row.getCell(0).getNumericCellValue()); + studentEntity.setStudentId((int)row.getCell(0).getNumericCellValue());//获取行的单元格 studentEntity.setStName(row.getCell(1).getStringCellValue()); studentEntity.setStPass("123456"); studentEntities.add(studentEntity); @@ -167,7 +167,7 @@ public class File { StudentDao studentDao=new StudentDao(studentJpaReposittory); studentDao.importSubject(studentEntities); - inputStream.close(); + inputStream.close();//关闭流 // LOGGER.info("上传成功"); return new Json(200, " 上传成功").toString() @@ -208,12 +208,13 @@ public class File { List questionbankEntities=new ArrayList<>(); List optionsEntities=new ArrayList<>(); for (Row row : sheet) { - QuestionbankEntity questionbankEntity=new QuestionbankEntity(); + QuestionbankEntity questionbankEntity=new QuestionbankEntity(); questionbankEntity.setQuTitle(row.getCell(0).getStringCellValue()); questionbankEntity.setSubjectsId((int)row.getCell(1).getNumericCellValue()); questionbankEntity.setQuAnswer(row.getCell(2).getStringCellValue()); questionbankEntity.setAddTime(new Date()); questionbankEntity.setModifyTime(new Date()); + //选项 OptionsEntity o1=new OptionsEntity(); o1.setOpKey(row.getCell(3).getStringCellValue()); o1.setOpValue(row.getCell(4).getStringCellValue()); @@ -229,7 +230,6 @@ public class File { OptionsEntity o4=new OptionsEntity(); o4.setOpKey(row.getCell(9).getStringCellValue()); o4.setOpValue(row.getCell(10).getStringCellValue()); - optionsEntities.add(o1); optionsEntities.add(o2); optionsEntities.add(o3); diff --git a/src/main/java/com/gongjian/controlD/Student.java b/src/main/java/com/gongjian/controlD/Student.java new file mode 100644 index 0000000..ae0b423 --- /dev/null +++ b/src/main/java/com/gongjian/controlD/Student.java @@ -0,0 +1,115 @@ +package com.gongjian.controlD; + + +import com.gongjian.JpaRepositoryD.ExaminationpaperRepository; +import com.gongjian.JpaRepositoryD.ScoreJpaRepository; +import com.gongjian.JpaRepositoryD.StToSuJpaRepository; +import com.gongjian.JpaRepositoryD.StudentJpaReposittory; +import com.gongjian.daoD.ExaminationpaperDao; +import com.gongjian.daoD.StudentDao; +import com.gongjian.entity.StudentEntity; +import com.gongjian.utilD.Json; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpSession; + +@RestController +public class Student { + + @Autowired + private StudentJpaReposittory studentJpaReposittory; + + + + @Autowired + private ExaminationpaperRepository examinationpaperRepository; + @Autowired + private StToSuJpaRepository stToSuJpaRepository; + @Autowired + private ScoreJpaRepository scoreJpaRepository; + +@RequestMapping("/student/login") + public String login(int studentId , String stPass, HttpSession session){ + + + StudentDao studentDao=new StudentDao(studentJpaReposittory); + StudentEntity studentEntity=studentDao.login(studentId,stPass); + + + if(studentEntity!=null){ + Json json= new Json(200,"OK"); + JSONObject data=new JSONObject(); + try { + data.put("stName",studentEntity.getStName()); + data.put("studentId",studentEntity.getStudentId()); + data.put("stId",studentEntity.getStId()); + session.setAttribute("user",studentEntity); + json.put("data",data); + } catch (JSONException e) { + e.printStackTrace(); + } + return json.toString(); + } + else return new Json(40021,"错误").toString(); + + } + + + @RequestMapping("/student/showExamination") + public String showExamination(HttpSession session,int page){ + + StudentEntity studentEntity=(StudentEntity) session.getAttribute("user"); + + if(studentEntity==null){ + return new Json(201,"未登录").toString(); + } + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + examinationpaperDao.stToSuJpaRepository=stToSuJpaRepository; + examinationpaperDao.scoreJpaRepository=scoreJpaRepository; + return examinationpaperDao.showExamination(studentEntity.getStId(),page); + // return examinationpaperDao.showExamination(2,page); + + + + + } + + /** + * 开始考试 + * @param exId + * @return + */ + @RequestMapping("/student/beginExam") + public String beginExam(int exId,HttpSession session){ + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + return examinationpaperDao.beginExam(exId,session); + + + } + + /** + * 开始考试后获取试题 + * @param index 试题编号 + * @param anserIndex 答案编号 + * @param answer 答案 + * @param session + * @return + */ + @RequestMapping("/student/getExam") + public String getExma(int index,int anserIndex,String answer,HttpSession session){ + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + return examinationpaperDao.getExam(index,anserIndex,answer,session); + + } + + @RequestMapping("/student/commitExam") + public String commitExma(HttpSession session){ + ExaminationpaperDao examinationpaperDao=new ExaminationpaperDao(examinationpaperRepository); + examinationpaperDao.scoreJpaRepository=scoreJpaRepository; + return examinationpaperDao.commitExma(session); + } +} diff --git a/src/main/java/com/gongjian/controlD/Teacher.java b/src/main/java/com/gongjian/controlD/Teacher.java new file mode 100644 index 0000000..d3a3cf9 --- /dev/null +++ b/src/main/java/com/gongjian/controlD/Teacher.java @@ -0,0 +1,53 @@ +package com.gongjian.controlD; + + +import com.gongjian.JpaRepositoryD.TeacherJpaReposittory; +import com.gongjian.daoD.TeacherDao; +import com.gongjian.entity.TeacherEntity; +import com.gongjian.utilD.Json; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpSession; + +@RestController() +public class Teacher { + + @Autowired + private TeacherJpaReposittory teacherJpaReposittory; + + @RequestMapping("/teacher/login") + public String login(int workNumber, String tePass, HttpSession session){ + + TeacherDao teacherDao=new TeacherDao(teacherJpaReposittory); + TeacherEntity teacher=teacherDao.login(workNumber,tePass); + if (teacher != null) { + Json json = new Json(200, "登录成功"); + session.setAttribute("user",teacher); + // ObjectMapper mapper = new ObjectMapper(); + try { + // String date=mapper.writeValueAsString(adminEntity); + JSONObject admin = new JSONObject(); + admin.put("teId", teacher.getTeId()); + admin.put("teName", teacher.getTeName()); + admin.put("subjectsId", teacher.getSubjectsId()); + //admin.put("adName",adminEntity.getAdName()); + session.setAttribute("user", admin); + json.put("data", admin); + return json.toString(); + } catch (JSONException e) { + Json error = new Json(2002, "JSONException"); + e.printStackTrace(); + return error.toString(); + } + } else { + Json json = new Json(400, "登录失败"); + return json.toString(); + } + + } + +} diff --git a/src/main/java/com/gongjian/daoD/ExToQuDao.java b/src/main/java/com/gongjian/daoD/ExToQuDao.java new file mode 100644 index 0000000..a88c8a6 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/ExToQuDao.java @@ -0,0 +1,11 @@ +package com.gongjian.daoD; + +import com.gongjian.JpaRepositoryD.OptionsJpaRepository; +import com.gongjian.entity.OptionsEntity; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +public class ExToQuDao { + +} diff --git a/src/main/java/com/gongjian/daoD/ExaminationpaperDao.java b/src/main/java/com/gongjian/daoD/ExaminationpaperDao.java new file mode 100644 index 0000000..b1e7050 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/ExaminationpaperDao.java @@ -0,0 +1,445 @@ +package com.gongjian.daoD; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gongjian.JpaRepositoryD.*; +import com.gongjian.entity.*; +import com.gongjian.utilD.DbtoUp; +import com.gongjian.utilD.Json; +import com.gongjian.utilD.Static; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; + +import javax.servlet.http.HttpSession; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; + + +public class ExaminationpaperDao { + + + private QuestionbankJpaRepository questionbankJpaRepository; + public ExaminationpaperRepository examinationpaperRepository; + public ExToQuJpaRepository exToQuJpaRepository; + public ScoreJpaRepository scoreJpaRepository; + public StToSuJpaRepository stToSuJpaRepository; + + public ExaminationpaperDao(QuestionbankJpaRepository questionbankJpaRepository, ExaminationpaperRepository examinationpaperRepository) { + this.questionbankJpaRepository = questionbankJpaRepository; + this.examinationpaperRepository = examinationpaperRepository; + } + + public ExaminationpaperDao(QuestionbankJpaRepository questionbankJpaRepository) { + this.questionbankJpaRepository = questionbankJpaRepository; + } + + public ExaminationpaperDao(ExaminationpaperRepository examinationpaperRepository) { + this.examinationpaperRepository = examinationpaperRepository; + } + + + + + public String CreateExaminationpaper(ExaminationpaperEntity examinationpaperEntity){ + + //生成一张试卷 + ExaminationpaperEntity createExaminationpaperEntity= examinationpaperRepository.save(examinationpaperEntity); + + // System.out.println(CreateExaminationpaperEntity.getExId()+"=====798798"); + + //生成10到题 + int subjectID=examinationpaperEntity.getSubjectsId();//获取需要生成题目的id + + //获取题库里面指定科目的所有试题 + List questionbankEntities=questionbankJpaRepository.findBySubjectsId(subjectID); + + Random random = new Random(); + List exToQuEntities=new ArrayList<>();//存放卷子里的试题 + //循环十次 + + for(int i=10;i>0;i--){ + int s; + try { + s= random.nextInt(questionbankEntities.size()-1);//获取[0-(size-1)]的随机数 + } + catch (IllegalArgumentException e){ + + return new Json(50001,"该科目题库题量不足").toString(); + } + QuestionbankEntity questionbankEntity=questionbankEntities.get(s); + questionbankEntities.remove(s); + ExToQuEntity exToQuEntity=new ExToQuEntity(); + exToQuEntity.setQuId(questionbankEntity.getQuId());//题目id + exToQuEntity.setExId(createExaminationpaperEntity.getExId());//试卷id + exToQuEntities.add(exToQuEntity); + } + exToQuJpaRepository.saveAll(exToQuEntities); + + + + return new Json(200,"Ok").toString(); + + + } + + + + public String showExaminationpaper(int exID) throws JSONException { + List> all=examinationpaperRepository.showExaminationpaper(exID); + // return examinationpaperRepository.findByExId(exID); + all= DbtoUp.formatHumpNameForList(all); + + Json json=new Json(200,"ok"); + JSONObject data=new JSONObject(); + data.put("exName",all.get(0).get("exName")); + data.put("exId",all.get(0).get("exId")); + data.put("exCountdown",all.get(0).get("exCountdown")); + data.put("teName",all.get(0).get("teName")); + data.put("suName",all.get(0).get("suName")); + data.put("suId",all.get(0).get("suId")); + JSONArray list=new JSONArray(); + for (int i=0;i> pa = examinationpaperRepository.findAllPage(pageable); + // System.out.println( pa.getTotalPages()+"一共"); + pa= DbtoUp.formatHumpNameForList(pa); + int count = examinationpaperRepository.findAllCount();; + int countPage =0; + + if (count % pagesize == 0) { + countPage = count / pagesize; + } else { + countPage = count / pagesize + 1; + } + + if (page > countPage || count <= 0) { + return new Json(4001, "页码不在范围:" + page).toString(); + } + + + ObjectMapper mapper = new ObjectMapper(); + DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//多态 + mapper.setDateFormat(bf); + try { + String j = mapper.writeValueAsString(pa); + JSONObject json = new JSONObject(); + + + try { + // JSONObject jss = new JSONObject(j); + + json.put("count", count); + json.put("countpage", countPage); + json.put("page", page); + + json.put("messg", "ok"); + json.put("code", 200); + + JSONArray ja = new JSONArray(j); + + json.put("data", ja); + return json.toString(); + } catch (JSONException e) { + e.printStackTrace(); + return new Json(4002, "").toString(); + } + + + } catch (JsonProcessingException e) { + e.printStackTrace(); + return new Json(4003, "").toString(); + } + + + } + + + public ExaminationpaperEntity findone(int exId){ + + return examinationpaperRepository.findByExId(exId); + + } + + public boolean delete(int exId){ + examinationpaperRepository.deleteOne(exId); + return true; + + } + + public String showExamination(int stId,int page) { + + +/* + //学生选择的科目 + List stToSuEntities=stToSuJpaRepository.findByStId(stId); + //学生考过的 + List scoreEntities=scoreJpaRepository.findByStudentId(stId); + + //对应学生选择的科目试卷 + List examinationpaperEntities=new ArrayList<>(); + for (StToSuEntity se:stToSuEntities + ) { + + List exas=examinationpaperRepository.findBySubjectsId(se.getSuId()); + // List exas=examinationpaperRepository.findBySubjectsId(2); + examinationpaperEntities.addAll(exas); + } + + //去掉考试过的 + for (int i=0;i> pa = examinationpaperRepository.showExmaintion(stId,pageable); + // System.out.println( pa.getTotalPages()+"一共"); + pa= DbtoUp.formatHumpNameForList(pa); + int count = examinationpaperRepository.countShowExmaintion(stId); + int countPage =0; + + if (count % pagesize == 0) { + countPage = count / pagesize; + } else { + countPage = count / pagesize + 1; + } + + if (page > countPage || count <= 0) { + return new Json(4001, "页码不在范围:" + page).toString(); + } + + + ObjectMapper mapper = new ObjectMapper(); + DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//多态 + mapper.setDateFormat(bf); + try { + String j = mapper.writeValueAsString(pa); + JSONObject json = new JSONObject(); + + + try { + JSONObject js2222s = new JSONObject(); + + json.put("count", count); + json.put("countpage", countPage); + json.put("page", page); + + json.put("messg", "ok"); + json.put("code", 200); + + JSONArray ja = new JSONArray(j); + + json.put("data", ja); + return json.toString(); + } catch (JSONException e) { + e.printStackTrace(); + return new Json(4002, "").toString(); + } + + + } catch (JsonProcessingException e) { + e.printStackTrace(); + return new Json(4003, "").toString(); + } + + + + + + } + + public String beginExam(int exId, HttpSession session){ + System.out.printf(session.getId()); + ExaminationpaperEntity examinationpaperEntity=examinationpaperRepository.findByExId(exId); + + session.setAttribute("examinationpaperEntity",examinationpaperEntity); + + List> ops=examinationpaperRepository.findExmaAll(exId); + //每一道题 + List qusetionList=new ArrayList<>(); + ops= DbtoUp.formatHumpNameForList(ops); + for(int i=0;i op=new ArrayList<>(); + for(int j=i;j qusetionList=(List)session.getAttribute("qusetionList"); + Json json=new Json(200,""); + JSONObject data=new JSONObject(); + try { + data.put("quTitle",qusetionList.get(index).title); + data.put("selectAnswer",qusetionList.get(index).seleteAnser); + JSONArray op=new JSONArray(); + String[] xuan={"A","B","C","D"}; + List ops= qusetionList.get(index).ops; + for(int i=0;i<4;i++){ + JSONObject o=new JSONObject(); + o.put("opKey",xuan[i]); + o.put("opValue",ops.get(i)); + op.put(o); + } + // JSONObject opss=new JSONObject(); + data.put("options",op); + json.put("data",data); + + + } catch (JSONException e) { + e.printStackTrace(); + } + + if(anserIndex!=-1){ + qusetionList.get(anserIndex).seleteAnser=answer; + } + + return json.toString(); + + } + + /** + * 提交答卷 + * @param session + * @return + */ + public String commitExma(HttpSession session) { + System.out.printf(session.getId()); + List qusetionList=(List)session.getAttribute("qusetionList"); + + double scon=0; + for (Qusetion qusetion:qusetionList + ) { + if(qusetion.seleteAnser.equals(qusetion.answer)){ + scon++; + } + + } + scon*=10; + session.removeAttribute("qusetionList"); + Json json=new Json(200,""); + //写入数据库 + ExaminationpaperEntity examinationpaperEntity= (ExaminationpaperEntity)session.getAttribute("examinationpaperEntity"); + ScoreEntity scoreEntity=new ScoreEntity(); + scoreEntity.setExaminationPaperId(examinationpaperEntity.getExId()); + scoreEntity.setScScore(scon); + scoreEntity.setStudentId(((StudentEntity)session.getAttribute("user")).getStId()); + scoreEntity.setSubjectsId(examinationpaperEntity.getSubjectsId()); + scoreEntity.setScTestTime(new Date()); +scoreJpaRepository.save(scoreEntity); + + JSONObject data=new JSONObject(); + try { + data.put("score",scon); + json.put("data",data); + } catch (JSONException e) { + e.printStackTrace(); + } + + return json.toString(); + } +} diff --git a/src/main/java/com/gongjian/daoD/Qusetion.java b/src/main/java/com/gongjian/daoD/Qusetion.java new file mode 100644 index 0000000..b334629 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/Qusetion.java @@ -0,0 +1,17 @@ +package com.gongjian.daoD; + +import java.util.List; +import java.util.Map; + +public class Qusetion { + + public String seleteAnser;//用户选择的答案 + public String answer; + public String title; + public List ops; + + public Qusetion(){ + seleteAnser="0"; + } + +} diff --git a/src/main/java/com/gongjian/daoD/StudentDao.java b/src/main/java/com/gongjian/daoD/StudentDao.java index abbd4a6..7a206f4 100644 --- a/src/main/java/com/gongjian/daoD/StudentDao.java +++ b/src/main/java/com/gongjian/daoD/StudentDao.java @@ -25,4 +25,14 @@ public class StudentDao { // System.out.println(subj.size()+"===00000"); return true; } + + public StudentEntity login(int studentId ,String stPass){ + + + return studentJpaReposittory.findByStudentIdAndStPass(studentId,stPass); + + // System.out.println(subj.size()+"===00000"); + + } + } diff --git a/src/main/java/com/gongjian/daoD/TeacherDao.java b/src/main/java/com/gongjian/daoD/TeacherDao.java index 6eda374..9e5c81e 100644 --- a/src/main/java/com/gongjian/daoD/TeacherDao.java +++ b/src/main/java/com/gongjian/daoD/TeacherDao.java @@ -19,4 +19,10 @@ public class TeacherDao { teacherJpaReposittory.saveAll(teacherEntities); return true; } + + + + public TeacherEntity login(int workNumber,String tePass){ + return teacherJpaReposittory.findByWorkNumberAndTePass(workNumber,tePass); + } } diff --git a/src/main/java/com/gongjian/entity/ExToQuEntity.java b/src/main/java/com/gongjian/entity/ExToQuEntity.java index 46bc4a6..ebd71af 100644 --- a/src/main/java/com/gongjian/entity/ExToQuEntity.java +++ b/src/main/java/com/gongjian/entity/ExToQuEntity.java @@ -32,6 +32,7 @@ public class ExToQuEntity { @Id @Column(name = "exq_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getExqId() { return exqId; } diff --git a/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java b/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java index a9b9ce9..3828106 100644 --- a/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java +++ b/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import javax.persistence.*; import java.sql.Timestamp; import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.Objects; @Entity @@ -24,6 +26,7 @@ public class ExaminationpaperEntity { @Id @Column(name = "ex_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getExId() { return exId; } @@ -132,4 +135,6 @@ public class ExaminationpaperEntity { public int hashCode() { return Objects.hash(exId, subjectsId, note, teacherId, addTime, modifyTime, exName, exCountdown, isVisible); } + + } diff --git a/src/main/java/com/gongjian/entity/ScoreEntity.java b/src/main/java/com/gongjian/entity/ScoreEntity.java index e338506..a5f2e51 100644 --- a/src/main/java/com/gongjian/entity/ScoreEntity.java +++ b/src/main/java/com/gongjian/entity/ScoreEntity.java @@ -3,7 +3,8 @@ package com.gongjian.entity; import com.fasterxml.jackson.annotation.JsonFormat; import javax.persistence.*; -import java.sql.Date; + +import java.util.Date; import java.util.Objects; @Entity diff --git a/src/main/java/com/gongjian/util/CreatExcel.java b/src/main/java/com/gongjian/utilD/CreatExcel.java similarity index 54% rename from src/main/java/com/gongjian/util/CreatExcel.java rename to src/main/java/com/gongjian/utilD/CreatExcel.java index 15d1371..779495e 100644 --- a/src/main/java/com/gongjian/util/CreatExcel.java +++ b/src/main/java/com/gongjian/utilD/CreatExcel.java @@ -1,4 +1,4 @@ -package com.gongjian.util; +package com.gongjian.utilD; public class CreatExcel { diff --git a/src/main/java/com/gongjian/util/DbtoUp.java b/src/main/java/com/gongjian/utilD/DbtoUp.java similarity index 98% rename from src/main/java/com/gongjian/util/DbtoUp.java rename to src/main/java/com/gongjian/utilD/DbtoUp.java index 50ca68c..898ee2a 100644 --- a/src/main/java/com/gongjian/util/DbtoUp.java +++ b/src/main/java/com/gongjian/utilD/DbtoUp.java @@ -1,4 +1,4 @@ -package com.gongjian.util; +package com.gongjian.utilD; import java.util.*; diff --git a/src/main/java/com/gongjian/util/Json.java b/src/main/java/com/gongjian/utilD/Json.java similarity index 92% rename from src/main/java/com/gongjian/util/Json.java rename to src/main/java/com/gongjian/utilD/Json.java index 267e8f8..9d1dece 100644 --- a/src/main/java/com/gongjian/util/Json.java +++ b/src/main/java/com/gongjian/utilD/Json.java @@ -1,4 +1,4 @@ -package com.gongjian.util; +package com.gongjian.utilD; import org.json.JSONException; diff --git a/src/main/java/com/gongjian/util/Poi.java b/src/main/java/com/gongjian/utilD/Poi.java similarity index 96% rename from src/main/java/com/gongjian/util/Poi.java rename to src/main/java/com/gongjian/utilD/Poi.java index 7f16cdc..5491d10 100644 --- a/src/main/java/com/gongjian/util/Poi.java +++ b/src/main/java/com/gongjian/utilD/Poi.java @@ -1,11 +1,10 @@ -package com.gongjian.util; +package com.gongjian.utilD; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/gongjian/utilD/Static.java b/src/main/java/com/gongjian/utilD/Static.java new file mode 100644 index 0000000..8121efc --- /dev/null +++ b/src/main/java/com/gongjian/utilD/Static.java @@ -0,0 +1,5 @@ +package com.gongjian.utilD; + +public class Static { + public static int pagesize=10; +} -- Gitee