diff --git a/pom.xml b/pom.xml index a66ca1aaaf6da9b697e665f2438e96b2f689c4c3..c3f2f823d6ae240c70886a2f81d17042363a0957 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/JpaRepositoryD/AdminJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/AdminJpaRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..607ddb8418c3ad046466afc053de8769433244b9 --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/AdminJpaRepository.java @@ -0,0 +1,20 @@ +package com.gongjian.JpaRepositoryD; + +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/JpaRepositoryD/ExToQuJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/ExToQuJpaRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..560e91a30aa48e1594de2cd08136ccf24b44794d --- /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 0000000000000000000000000000000000000000..371e3659fd524f644fe31e0cb4c2d77d8ebdf106 --- /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/OptionsJpaRepository.java b/src/main/java/com/gongjian/JpaRepositoryD/OptionsJpaRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..19c67dca1dce0ccf3f86a68940364b25cf3a842c --- /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 0000000000000000000000000000000000000000..c8685c051477dc54fbd221c19b32340ebe396fc5 --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/QuestionbankJpaRepository.java @@ -0,0 +1,22 @@ +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 0000000000000000000000000000000000000000..366fd4d5a038f9e9c53a70e60502efea278a4dab --- /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 0000000000000000000000000000000000000000..e04ca90a9843adb3c0e37447cf20eb8f04786636 --- /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 new file mode 100644 index 0000000000000000000000000000000000000000..ae4719d77eab01c5c83541fd5c8cdeee2bbe9769 --- /dev/null +++ b/src/main/java/com/gongjian/JpaRepositoryD/StudentJpaReposittory.java @@ -0,0 +1,12 @@ +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 { + + + StudentEntity findByStudentIdAndStPass(int studentId ,String stPass); + +} 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 0000000000000000000000000000000000000000..e4dda5c0f4ab6ff64343e3ff7bd6f6b85482f665 --- /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 0000000000000000000000000000000000000000..a10fb0c3afc271217a96d99c649b410987f8dfaa --- /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 { + + TeacherEntity findByWorkNumberAndTePass(int workNumber,String tePass); +} 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 8ccfb6894ccb78ffa2962ea83eebad1199a4d374..4527ab7b48beb162909b94b9b84b2351aff46231 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/OnlineExaminationApplication.java b/src/main/java/com/gongjian/OnlineExaminationApplication.java index 669676cea274cc7ca3e99f1f3cefcd1b641546b8..fe6a0089c35aedcc7b88d8554081e266f1fbe554 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/controlD/Admin.java b/src/main/java/com/gongjian/controlD/Admin.java new file mode 100644 index 0000000000000000000000000000000000000000..35f628f9590d7ac072a28ae351fa03e26bf00a4c --- /dev/null +++ b/src/main/java/com/gongjian/controlD/Admin.java @@ -0,0 +1,62 @@ +package com.gongjian.controlD; + + +import com.gongjian.JpaRepositoryD.AdminJpaRepository; +import com.gongjian.JpaRepositoryD.SubjectJpaRepository; +import com.gongjian.daoD.AdminDao; +import com.gongjian.entity.AdminEntity; +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.*; + +import javax.servlet.http.HttpSession; + +@RestController +public class Admin { + + @Autowired + private AdminJpaRepository adminJpaRepository; + + @Autowired + private SubjectJpaRepository subjectJpaRepository; + + @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, "登录成功"); + 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); + 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/controlD/Examinationpaper.java b/src/main/java/com/gongjian/controlD/Examinationpaper.java new file mode 100644 index 0000000000000000000000000000000000000000..0359b4e41b03ee133bbf3258c6e8f8cf4eb0483e --- /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 new file mode 100644 index 0000000000000000000000000000000000000000..d1a054ed6db9f1f27abd1fcc92f38db0f4d2bd70 --- /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.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; +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(2001, " IOException").toString(); + } catch (NullPointerException e) { + return new Json(2002, " 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);//获取Excel 页 + 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/controlD/Student.java b/src/main/java/com/gongjian/controlD/Student.java new file mode 100644 index 0000000000000000000000000000000000000000..ae0b4238eb8079747b9e6cf5fd37aa5cb4c01caa --- /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 0000000000000000000000000000000000000000..d3a3cf9def9a497f7f8ec0970fbb11c3b4aac3bc --- /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/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 2f1b815b42d4c347c41b5bae42b69522d762307b..bcd1258685f7e160bece0c8a3f6b2ee2187f668d 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/daoD/AdminDao.java b/src/main/java/com/gongjian/daoD/AdminDao.java new file mode 100644 index 0000000000000000000000000000000000000000..61bacf3c7f2a4305c2af59342f91b10d7a3ae138 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/AdminDao.java @@ -0,0 +1,37 @@ +package com.gongjian.daoD; + +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, SubjectJpaRepository subjectJpaRepository) { + this.adminJpaRepository = adminJpaRepository; + this.subjectJpaRepository = subjectJpaRepository; + } + + + 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/daoD/ExToQuDao.java b/src/main/java/com/gongjian/daoD/ExToQuDao.java new file mode 100644 index 0000000000000000000000000000000000000000..a88c8a64ad7533048133a69a7ac5da0af2cfa3d2 --- /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 0000000000000000000000000000000000000000..b1e7050dc028758b53e21ae1508636d648827e61 --- /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/OptionsDao.java b/src/main/java/com/gongjian/daoD/OptionsDao.java new file mode 100644 index 0000000000000000000000000000000000000000..514343d241ae9fbc24354d983530d5536af66197 --- /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 0000000000000000000000000000000000000000..6baae9ca248dab3b870a2f27243e37fce6fabee0 --- /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/Qusetion.java b/src/main/java/com/gongjian/daoD/Qusetion.java new file mode 100644 index 0000000000000000000000000000000000000000..b33462938b280846510770c911fae4006ec3a9c3 --- /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 new file mode 100644 index 0000000000000000000000000000000000000000..7a206f4d3489ead2c43fe3c3027b2c95249254a1 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/StudentDao.java @@ -0,0 +1,38 @@ +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; + } + + 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/SubjectDao.java b/src/main/java/com/gongjian/daoD/SubjectDao.java new file mode 100644 index 0000000000000000000000000000000000000000..b299be7f2b49ec5bebeb9fefae26d0dccb27ebb0 --- /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 0000000000000000000000000000000000000000..9e5c81e1bcd9a9f1f42b907a0709cb1477afe3b1 --- /dev/null +++ b/src/main/java/com/gongjian/daoD/TeacherDao.java @@ -0,0 +1,28 @@ +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; + } + + + + public TeacherEntity login(int workNumber,String tePass){ + return teacherJpaReposittory.findByWorkNumberAndTePass(workNumber,tePass); + } +} 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 1e7c4e1ebfdd0fa2948a2119309d5375f7684234..3025af9441a74ecb8f0216072e38effc23005740 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/ExToQuEntity.java b/src/main/java/com/gongjian/entity/ExToQuEntity.java index 46bc4a61dfcaa86515be965bc7d2602d3fd2056e..ebd71af56a6f36f3c0afd41e6b58a7a406c79471 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 322161a86c267102ebdc0dca6ed9a74e638974cf..3828106059e1f91b0ae9b56d22981cf3de400afc 100644 --- a/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java +++ b/src/main/java/com/gongjian/entity/ExaminationpaperEntity.java @@ -1,8 +1,12 @@ package com.gongjian.entity; +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 @@ -22,6 +26,7 @@ public class ExaminationpaperEntity { @Id @Column(name = "ex_id", nullable = false) + @GeneratedValue(strategy = GenerationType.IDENTITY) public int getExId() { return exId; } @@ -130,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/OptionsEntity.java b/src/main/java/com/gongjian/entity/OptionsEntity.java index 581297df627e9ee44c81cd014278dc652e6ee23a..95d91cb0d7005c34ace37326a63ee3a82b1302ab 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 1aad505e4138b6b75f9b0751aaae39cc799868fe..6890764dcb48b140f9051289d0626a2ee4f668a7 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; @@ -22,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/ScoreEntity.java b/src/main/java/com/gongjian/entity/ScoreEntity.java index e338506ecaa8c4d876c7d690c3995ed823f2a7cd..a5f2e514b74974bd0525796da43db4991cbc1ae3 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/entity/StudentEntity.java b/src/main/java/com/gongjian/entity/StudentEntity.java index 7fc53e4a3f8216a6d08660bd9bcb9ab6ef956659..e532f67e154fbc30dbae9491cb7160a0bfd8c5d1 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 782b7257adccb190bbb3afe92d39da23ba421dc5..11e6b3cd83b4f9113cef255e9e91826761e545d1 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 a29193a29b342fdced02355763a6f8f6f891f289..abdab30ee5d8ec15f41775e721acf54909cbf33e 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/filter/fieter.java b/src/main/java/com/gongjian/filter/fieter.java index 8bec5878fb61989b9eac0df3d181d0b954bbca69..78ff77856474e58586507d03b0614973b58387d5 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/utilD/CreatExcel.java b/src/main/java/com/gongjian/utilD/CreatExcel.java new file mode 100644 index 0000000000000000000000000000000000000000..779495edc8b5916de12ed22bab04f56d33a37bbe --- /dev/null +++ b/src/main/java/com/gongjian/utilD/CreatExcel.java @@ -0,0 +1,9 @@ +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 50ca68c2842dfaf75e761077e5006bf723813987..898ee2a3573f2ddcfd80937e3a9476d25eb6f4f1 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 51% rename from src/main/java/com/gongjian/util/Json.java rename to src/main/java/com/gongjian/utilD/Json.java index faf847959e014bd4fb01b51a24308c5a731fc7c8..9d1dececfe370e4510579c25cef064e04ac420bb 100644 --- a/src/main/java/com/gongjian/util/Json.java +++ b/src/main/java/com/gongjian/utilD/Json.java @@ -1,24 +1,22 @@ -package com.gongjian.util; +package com.gongjian.utilD; 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/java/com/gongjian/utilD/Poi.java b/src/main/java/com/gongjian/utilD/Poi.java new file mode 100644 index 0000000000000000000000000000000000000000..5491d10e5a37e05fac6a32cf15ee24145c88908f --- /dev/null +++ b/src/main/java/com/gongjian/utilD/Poi.java @@ -0,0 +1,61 @@ +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.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/main/java/com/gongjian/utilD/Static.java b/src/main/java/com/gongjian/utilD/Static.java new file mode 100644 index 0000000000000000000000000000000000000000..8121efcc57c8e60a4890bfccf278ca2a3801f307 --- /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; +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d1f0e2742bacb35ea6658b59d9a560d2821cc935..3997b144e4d7cf3116b62487f86434952cee12ea 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 0000000000000000000000000000000000000000..8835cb51ed21f673902a98148318e3dcc7dc4632 --- /dev/null +++ b/src/test/java/com/gongjian/testPOI.java @@ -0,0 +1,63 @@ +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; + +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("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"); + } + } + +}