完成学生批量导入的接口
This commit is contained in:
parent
2f97a3466c
commit
8dc7233645
|
|
@ -47,4 +47,20 @@ export default {
|
||||||
findClassStudentsByIdPage: (data) => request.post('/classes/findClassStudentsByIdPage', data),
|
findClassStudentsByIdPage: (data) => request.post('/classes/findClassStudentsByIdPage', data),
|
||||||
deleteClassStudentsById: (data) => request.post('/classes/deleteClassStudentsById', data),
|
deleteClassStudentsById: (data) => request.post('/classes/deleteClassStudentsById', data),
|
||||||
getUserAdd: (data) => request.post('/user/getUserAdd', data),
|
getUserAdd: (data) => request.post('/user/getUserAdd', data),
|
||||||
|
importClassStudents: (config, data) =>
|
||||||
|
request({
|
||||||
|
url: '/importClassStudentsFile/importClassStudents',
|
||||||
|
method: 'post',
|
||||||
|
responseType: 'blob',
|
||||||
|
headers: { 'Content-Type': 'multipart/form-data' },
|
||||||
|
params: config,
|
||||||
|
data: data,
|
||||||
|
}),
|
||||||
|
download: (config) =>
|
||||||
|
request({
|
||||||
|
url: '/downloadFile/download',
|
||||||
|
method: 'get',
|
||||||
|
responseType: 'blob',
|
||||||
|
params: config,
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
88
AES/pom.xml
88
AES/pom.xml
|
|
@ -109,6 +109,77 @@
|
||||||
<artifactId>jedis</artifactId>
|
<artifactId>jedis</artifactId>
|
||||||
<version>3.8.0</version>
|
<version>3.8.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- 文件上传-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-fileupload</groupId>
|
||||||
|
<artifactId>commons-fileupload</artifactId>
|
||||||
|
<version>1.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-io</groupId>
|
||||||
|
<artifactId>commons-io</artifactId>
|
||||||
|
<version>2.4</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 获取上传视频时长依赖 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>ws.schild</groupId>
|
||||||
|
<artifactId>jave-all-deps</artifactId>
|
||||||
|
<version>3.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 导入外部的包-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons.collections</groupId>
|
||||||
|
<artifactId>commons-collections</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}/src/main/WEB-INF/lib/commons-collections-3.1.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>it.sauronsoftware.java</groupId>
|
||||||
|
<artifactId>sauronsoftware-java</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}/src/main/WEB-INF/lib/jave-1.0.2.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>apache-poi</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}/src/main/WEB-INF/lib/poi-3.6-20091214.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-codec</groupId>
|
||||||
|
<artifactId>commons-codec</artifactId>
|
||||||
|
<version>1.9</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.csvreader</groupId>
|
||||||
|
<artifactId>csvreader</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${project.basedir}/src/main/WEB-INF/lib/javacsv.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.mail</groupId>
|
||||||
|
<artifactId>jakarta.mail-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-test</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.struts</groupId>
|
||||||
|
<artifactId>struts2-core</artifactId>
|
||||||
|
<version>2.5.29</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
@ -119,6 +190,23 @@
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.opensymphony</groupId>
|
||||||
|
<artifactId>xwork</artifactId>
|
||||||
|
<version>2.3.20</version> <!-- 请根据需要选择合适的版本 -->
|
||||||
|
</dependency>
|
||||||
|
<!-- 中文拼音 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.belerweb</groupId>
|
||||||
|
<artifactId>pinyin4j</artifactId>
|
||||||
|
<version>2.5.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.ws</groupId>
|
||||||
|
<artifactId>jaxws-api</artifactId>
|
||||||
|
<version>2.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,142 @@
|
||||||
|
package com.example.aes.user.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
|
||||||
|
import com.example.aes.global.model.RespBean;
|
||||||
|
import org.springframework.core.io.Resource;
|
||||||
|
import org.springframework.core.io.ResourceLoader;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.servlet.ServletOutputStream;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/downloadFile")
|
||||||
|
public class DownLoadFileController {
|
||||||
|
|
||||||
|
|
||||||
|
private final ResourceLoader resourceLoader;
|
||||||
|
|
||||||
|
public DownLoadFileController(ResourceLoader resourceLoader) {
|
||||||
|
this.resourceLoader = resourceLoader;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/download")
|
||||||
|
public RespBean download(String fileName, HttpServletResponse response) throws IOException {
|
||||||
|
|
||||||
|
ServletOutputStream outputStream = null;
|
||||||
|
try {
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));
|
||||||
|
outputStream = response.getOutputStream();
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// File file = new File(root + File.separator + fileName);
|
||||||
|
// System.out.println(root + File.separator + fileName);
|
||||||
|
//加载资源文件
|
||||||
|
Resource resource = resourceLoader.getResource("classpath:file" + File.separator + fileName);
|
||||||
|
InputStream inputStream = resource.getInputStream();
|
||||||
|
|
||||||
|
// 创建临时文件
|
||||||
|
File file = File.createTempFile(FileUtil.mainName(fileName), "."+FileUtil.extName(fileName));
|
||||||
|
|
||||||
|
// 将资源文件内容复制到临时文件中
|
||||||
|
try (FileOutputStream fileoutputStream = new FileOutputStream(file)) {
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int bytesRead;
|
||||||
|
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
||||||
|
fileoutputStream.write(buffer, 0, bytesRead);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载
|
||||||
|
if(file.exists()){
|
||||||
|
//从文件中读到的内容
|
||||||
|
InputStream fis = new FileInputStream(file);
|
||||||
|
// System.out.println("File存在");
|
||||||
|
BufferedInputStream bis = new BufferedInputStream(fis);
|
||||||
|
byte[] buff = new byte[1024];
|
||||||
|
int size;
|
||||||
|
while((size = bis.read(buff))!=-1){
|
||||||
|
outputStream.write(buff,0,size);
|
||||||
|
}
|
||||||
|
bis.close();
|
||||||
|
fis.close();
|
||||||
|
}else{
|
||||||
|
outputStream.write(new String("No Such File!").getBytes());
|
||||||
|
}
|
||||||
|
outputStream.flush();
|
||||||
|
outputStream.close();
|
||||||
|
return RespBean.ok("importClassStudentModel");
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/downloadTestOut")
|
||||||
|
public RespBean downloadTestOut(String fileNameOut, String fileNameIn, HttpServletResponse response) throws IOException{
|
||||||
|
String prefix = "dhuoj://";
|
||||||
|
String baseDirOut = "C:" + File.separator + "OJtemp" + File.separator + "testcaseOut" + File.separator;
|
||||||
|
String baseDirIn = "C:" + File.separator + "OJtemp" + File.separator + "testcaseIn" + File.separator;
|
||||||
|
|
||||||
|
File tempZipFile = File.createTempFile("download", ".zip");
|
||||||
|
|
||||||
|
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(tempZipFile))) {
|
||||||
|
// Add fileNameOut to ZIP
|
||||||
|
if (fileNameOut.startsWith(prefix)) {
|
||||||
|
String outputPath = baseDirOut + fileNameOut.substring(prefix.length());
|
||||||
|
addFileToZip(outputPath, "TestOut.txt", zos);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add fileNameIn to ZIP (assuming it also follows the same prefix and directory structure)
|
||||||
|
if (fileNameIn.startsWith(prefix)) {
|
||||||
|
String inputPath = baseDirIn + fileNameIn.substring(prefix.length());
|
||||||
|
addFileToZip(inputPath, "TestIn.txt", zos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("files.zip", "UTF-8"));
|
||||||
|
try (ServletOutputStream outputStream = response.getOutputStream();
|
||||||
|
FileInputStream fis = new FileInputStream(tempZipFile)) {
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int size;
|
||||||
|
while ((size = fis.read(buffer)) != -1) {
|
||||||
|
outputStream.write(buffer, 0, size);
|
||||||
|
}
|
||||||
|
outputStream.flush();
|
||||||
|
} finally {
|
||||||
|
// Clean up temporary file
|
||||||
|
tempZipFile.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
return RespBean.ok("AnswerTestOut");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addFileToZip(String filePath, String entryName, ZipOutputStream zos) throws IOException{
|
||||||
|
File file = new File(filePath);
|
||||||
|
|
||||||
|
if (file.exists()) {
|
||||||
|
try (FileInputStream fis = new FileInputStream(file);
|
||||||
|
BufferedInputStream bis = new BufferedInputStream(fis)) {
|
||||||
|
zos.putNextEntry(new ZipEntry(entryName));
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int size;
|
||||||
|
while ((size = bis.read(buffer)) != -1) {
|
||||||
|
zos.write(buffer, 0, size);
|
||||||
|
}
|
||||||
|
zos.closeEntry();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
zos.putNextEntry(new ZipEntry(entryName));
|
||||||
|
zos.write("No Such File!".getBytes());
|
||||||
|
zos.closeEntry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,378 @@
|
||||||
|
package com.example.aes.user.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import com.example.aes.global.model.RespBean;
|
||||||
|
import com.example.aes.user.dao.AdminusersDaoI;
|
||||||
|
import com.example.aes.user.dao.ClassesDaoI;
|
||||||
|
import com.example.aes.user.dao.ClassstudentsDaoI;
|
||||||
|
import com.example.aes.user.model.Adminusers;
|
||||||
|
import com.example.aes.user.model.Classes;
|
||||||
|
import com.example.aes.user.model.PMUser;
|
||||||
|
import com.example.aes.user.model.Users;
|
||||||
|
import com.example.aes.user.service.UserServiceI;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.*;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/importClassStudentsFile")
|
||||||
|
@Transactional
|
||||||
|
public class importClassStudentsFileController{
|
||||||
|
// private File upload;
|
||||||
|
// private String uploadContentType;
|
||||||
|
// private String uploadFileName;
|
||||||
|
// private String savePath;
|
||||||
|
// int classId;
|
||||||
|
@Autowired
|
||||||
|
private UserServiceI userService;
|
||||||
|
@Autowired
|
||||||
|
private ClassstudentsDaoI classstudentsDao;
|
||||||
|
@Resource
|
||||||
|
private ClassesDaoI classesDao;
|
||||||
|
@Autowired
|
||||||
|
private AdminusersDaoI adminusersDao;
|
||||||
|
|
||||||
|
// ApplicationHome home = new ApplicationHome(importClassStudentsFileController.class);
|
||||||
|
// String jarPath = home.getSource().getParentFile().toString();
|
||||||
|
|
||||||
|
// public void setSavePath(String value) {
|
||||||
|
// this.savePath = value;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// private String getSavePath() throws Exception {
|
||||||
|
// return ServletActionContext.getServletContext().getRealPath("/file/");
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public void setUpload(File upload) {
|
||||||
|
// this.upload = upload;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public File getUpload() {
|
||||||
|
// return this.upload;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public void setUploadContentType(String uploadContentType) {
|
||||||
|
// this.uploadContentType = uploadContentType;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public String getUploadContentType() {
|
||||||
|
// return this.uploadContentType;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public void setUploadFileName(String uploadFileName) {
|
||||||
|
// this.uploadFileName = uploadFileName;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// public String getUploadFileName() {
|
||||||
|
// return this.uploadFileName;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @PostMapping("/upload")
|
||||||
|
// @ResponseBody
|
||||||
|
// public RespBean upload(MultipartFile file) throws IOException {
|
||||||
|
// Calendar c = Calendar.getInstance();// 可以对每个时间域单独修改
|
||||||
|
// String year = String.valueOf(c.get(Calendar.YEAR));
|
||||||
|
// String month = String.valueOf(c.get(Calendar.MONTH));
|
||||||
|
// if (month.length() == 1)
|
||||||
|
// month = "0" + month;
|
||||||
|
// String date = String.valueOf(c.get(Calendar.DATE));
|
||||||
|
// if (date.length() == 1)
|
||||||
|
// date = "0" + date;
|
||||||
|
// String hour = String.valueOf(c.get(Calendar.HOUR_OF_DAY));
|
||||||
|
// if (hour.length() == 1)
|
||||||
|
// hour = "0" + hour;
|
||||||
|
// String minute = String.valueOf(c.get(Calendar.MINUTE));
|
||||||
|
// if (minute.length() == 1)
|
||||||
|
// minute = "0" + minute;
|
||||||
|
// String second = String.valueOf(c.get(Calendar.SECOND));
|
||||||
|
// if (second.length() == 1)
|
||||||
|
// second = "0" + second;
|
||||||
|
// String[] temp = uploadFileName.split("\\.");
|
||||||
|
// String ext = "." + temp[1]; // 得到文件后缀
|
||||||
|
// if (ext.equals(".csv") == false)
|
||||||
|
// return "FAIL";
|
||||||
|
// uploadFileName = year + "" + month + "" + date + "" + hour + ""
|
||||||
|
// + minute + "" + second + ext; // 以时间作为文件名
|
||||||
|
// FileOutputStream fos;
|
||||||
|
// try {
|
||||||
|
// fos = new FileOutputStream(getSavePath() + "\\"
|
||||||
|
// + getUploadFileName());
|
||||||
|
// FileInputStream fis = new FileInputStream(getUpload());
|
||||||
|
// byte[] buffer = new byte[1024];
|
||||||
|
// int len = 0;
|
||||||
|
// while ((len = fis.read(buffer)) > 0) {
|
||||||
|
// fos.write(buffer, 0, len);
|
||||||
|
// }
|
||||||
|
// fos.close();
|
||||||
|
// fis.close();
|
||||||
|
// boolean result = decodeFile(getSavePath() + "\\"
|
||||||
|
// + getUploadFileName()); // 解析文件
|
||||||
|
// if (result == false) {
|
||||||
|
// // System.out.println(getSavePath()+"\\"+getUploadFileName()+"文件格式不正确!");
|
||||||
|
// File file = new File(getSavePath() + "\\" + getUploadFileName());
|
||||||
|
// file.delete();
|
||||||
|
// return "FAIL";
|
||||||
|
// }
|
||||||
|
// // System.out.println(getSavePath()+"\\"+getUploadFileName()+"文件解析成功!");
|
||||||
|
// File file = new File(getSavePath() + "\\" + getUploadFileName()); // 删除文件
|
||||||
|
// file.delete();
|
||||||
|
// return "SUCCESS";
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// // System.out.println(getUploadFileName()+"上传失败!");
|
||||||
|
// return "FAIL";
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public String execute() {
|
||||||
|
// Calendar c = Calendar.getInstance();// 可以对每个时间域单独修改
|
||||||
|
// String year = String.valueOf(c.get(Calendar.YEAR));
|
||||||
|
// String month = String.valueOf(c.get(Calendar.MONTH));
|
||||||
|
// if (month.length() == 1)
|
||||||
|
// month = "0" + month;
|
||||||
|
// String date = String.valueOf(c.get(Calendar.DATE));
|
||||||
|
// if (date.length() == 1)
|
||||||
|
// date = "0" + date;
|
||||||
|
// String hour = String.valueOf(c.get(Calendar.HOUR_OF_DAY));
|
||||||
|
// if (hour.length() == 1)
|
||||||
|
// hour = "0" + hour;
|
||||||
|
// String minute = String.valueOf(c.get(Calendar.MINUTE));
|
||||||
|
// if (minute.length() == 1)
|
||||||
|
// minute = "0" + minute;
|
||||||
|
// String second = String.valueOf(c.get(Calendar.SECOND));
|
||||||
|
// if (second.length() == 1)
|
||||||
|
// second = "0" + second;
|
||||||
|
// String[] temp = uploadFileName.split("\\.");
|
||||||
|
// String ext = "." + temp[1]; // 得到文件后缀
|
||||||
|
// if (ext.equals(".csv") == false)
|
||||||
|
// return "FAIL";
|
||||||
|
// uploadFileName = year + "" + month + "" + date + "" + hour + ""
|
||||||
|
// + minute + "" + second + ext; // 以时间作为文件名
|
||||||
|
// FileOutputStream fos;
|
||||||
|
// try {
|
||||||
|
// fos = new FileOutputStream(getSavePath() + "\\"
|
||||||
|
// + getUploadFileName());
|
||||||
|
// FileInputStream fis = new FileInputStream(getUpload());
|
||||||
|
// byte[] buffer = new byte[1024];
|
||||||
|
// int len = 0;
|
||||||
|
// while ((len = fis.read(buffer)) > 0) {
|
||||||
|
// fos.write(buffer, 0, len);
|
||||||
|
// }
|
||||||
|
// fos.close();
|
||||||
|
// fis.close();
|
||||||
|
// boolean result = decodeFile(getSavePath() + "\\"
|
||||||
|
// + getUploadFileName()); // 解析文件
|
||||||
|
// if (result == false) {
|
||||||
|
// // System.out.println(getSavePath()+"\\"+getUploadFileName()+"文件格式不正确!");
|
||||||
|
// File file = new File(getSavePath() + "\\" + getUploadFileName());
|
||||||
|
// file.delete();
|
||||||
|
// return "FAIL";
|
||||||
|
// }
|
||||||
|
// // System.out.println(getSavePath()+"\\"+getUploadFileName()+"文件解析成功!");
|
||||||
|
// File file = new File(getSavePath() + "\\" + getUploadFileName()); // 删除文件
|
||||||
|
// file.delete();
|
||||||
|
// return "SUCCESS";
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
// // System.out.println(getUploadFileName()+"上传失败!");
|
||||||
|
// return "FAIL";
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
@PostMapping("/importClassStudents")
|
||||||
|
public RespBean importClassStudents(MultipartFile file, int classId) throws IOException{
|
||||||
|
// 获取文件原始名
|
||||||
|
String uploadFileName = file.getOriginalFilename();
|
||||||
|
|
||||||
|
// 获取主要名称
|
||||||
|
String mainName = FileUtil.mainName(uploadFileName);
|
||||||
|
// 获取文件后缀名
|
||||||
|
String extName = FileUtil.extName(uploadFileName);
|
||||||
|
// 用当前时间避免重复
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
|
||||||
|
Date date1 = new Date();
|
||||||
|
String timeStamp = formatter.format(date1);
|
||||||
|
|
||||||
|
// 获取时间戳
|
||||||
|
long timestamp = System.currentTimeMillis(); // 获取当前时间戳(单位:毫秒)
|
||||||
|
String timeStampStr = Long.toString(timestamp); // 将时间戳转换为字符串类型
|
||||||
|
|
||||||
|
Calendar c = Calendar.getInstance();// 可以对每个时间域单独修改
|
||||||
|
String year = String.valueOf(c.get(Calendar.YEAR));
|
||||||
|
String month = String.valueOf(c.get(Calendar.MONTH));
|
||||||
|
if (month.length() == 1)
|
||||||
|
month = "0" + month;
|
||||||
|
String date = String.valueOf(c.get(Calendar.DATE));
|
||||||
|
if (date.length() == 1)
|
||||||
|
date = "0" + date;
|
||||||
|
String hour = String.valueOf(c.get(Calendar.HOUR_OF_DAY));
|
||||||
|
if (hour.length() == 1)
|
||||||
|
hour = "0" + hour;
|
||||||
|
String minute = String.valueOf(c.get(Calendar.MINUTE));
|
||||||
|
if (minute.length() == 1)
|
||||||
|
minute = "0" + minute;
|
||||||
|
String second = String.valueOf(c.get(Calendar.SECOND));
|
||||||
|
if (second.length() == 1)
|
||||||
|
second = "0" + second;
|
||||||
|
String[] temp = uploadFileName.split("\\.");
|
||||||
|
String ext = "." + temp[1]; // 得到文件后缀
|
||||||
|
// 如果文件不是以csv结尾的
|
||||||
|
if (ext.equals(".csv") == false)
|
||||||
|
return RespBean.error("FAIL");
|
||||||
|
// 用来保存的文件名
|
||||||
|
uploadFileName = year + "" + month + "" + date + "" + hour + ""
|
||||||
|
+ minute + "" + second + ext; // 以时间作为文件名
|
||||||
|
|
||||||
|
try {
|
||||||
|
String root = System.getProperty("user.dir")+ File.separator + "upload";
|
||||||
|
|
||||||
|
String left = "classStudentFile" + File.separator + timeStamp + File.separator;
|
||||||
|
// 文件存储
|
||||||
|
String resultPath = root + File.separator + left;
|
||||||
|
|
||||||
|
if(!FileUtil.exist(resultPath))
|
||||||
|
FileUtil.mkdir(resultPath);
|
||||||
|
String decodeFileName = resultPath + mainName + timeStampStr + "." + extName;
|
||||||
|
|
||||||
|
// 存储文件到服务器
|
||||||
|
file.transferTo(new File(decodeFileName));
|
||||||
|
// 解析文件
|
||||||
|
boolean result = decodeFile(decodeFileName, classId);
|
||||||
|
|
||||||
|
if (result == false) {
|
||||||
|
File file1 = new File(decodeFileName);
|
||||||
|
file1.delete();
|
||||||
|
return RespBean.error("FAIL");
|
||||||
|
}
|
||||||
|
File file1 = new File(decodeFileName); // 删除文件
|
||||||
|
file1.delete();
|
||||||
|
return RespBean.ok("SUCCESS");
|
||||||
|
}catch (Exception e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
// System.out.println(getUploadFileName()+"上传失败!");
|
||||||
|
return RespBean.error("FAIL");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public boolean decodeFile(String fileName, int classId) // 解析csv文件
|
||||||
|
{
|
||||||
|
// String filePath = System.getProperty("user.dir")+"\\upload\\classStudentFile\\" + fileName;
|
||||||
|
File file = new File(fileName);
|
||||||
|
// File file = new File(fileName);
|
||||||
|
List<PMUser> userList = new ArrayList<PMUser>();
|
||||||
|
try {
|
||||||
|
// InputStream fis = new FileInputStream(file);
|
||||||
|
// FileReader in1 = new FileReader(file);
|
||||||
|
// BufferedReader in2 = new BufferedReader(in1);
|
||||||
|
FileInputStream fis = new FileInputStream(file);
|
||||||
|
InputStreamReader in1 = new InputStreamReader(fis, "GBK");
|
||||||
|
BufferedReader in2 = new BufferedReader(in1);
|
||||||
|
String s = "";
|
||||||
|
String row[];
|
||||||
|
s = in2.readLine();
|
||||||
|
row = s.split(",");
|
||||||
|
if (row[0].equals("学号") && row[1].equals("姓名")
|
||||||
|
&& row[2].equals("自然班级")) {
|
||||||
|
while ((s = in2.readLine()) != null) {
|
||||||
|
row = s.split(",");
|
||||||
|
if (row.length < 2)
|
||||||
|
return false;
|
||||||
|
String studentNo = row[0];
|
||||||
|
String chineseName = row[1];
|
||||||
|
String banji = row[2];
|
||||||
|
PMUser user = new PMUser(); // 将信息存储
|
||||||
|
user.setStudentNo(studentNo);
|
||||||
|
user.setChineseName(chineseName);
|
||||||
|
user.setBanji(banji);
|
||||||
|
userList.add(user);
|
||||||
|
}
|
||||||
|
Classes onclass = classesDao.get(Classes.class, classId);
|
||||||
|
if (onclass != null) {
|
||||||
|
int teacherId = onclass.getTeacherId();
|
||||||
|
Adminusers adminuser = adminusersDao.get(Adminusers.class,
|
||||||
|
teacherId);
|
||||||
|
if (adminuser != null) {
|
||||||
|
// int schoolId = adminuser.getSchoolId();
|
||||||
|
// 开始导入信息
|
||||||
|
for (int i = 0; i < userList.size(); i++) {
|
||||||
|
PMUser p = userList.get(i);
|
||||||
|
// p.setSchoolId(schoolId);
|
||||||
|
String studentNo = p.getStudentNo();
|
||||||
|
|
||||||
|
Users user = userService
|
||||||
|
.findUserByStudentNo(studentNo); // 用户信息
|
||||||
|
if (user != null) // users表中存在用户则只在classStudents表中插入数据并且更新学生班级
|
||||||
|
{
|
||||||
|
user.setBanji(p.getBanji());
|
||||||
|
boolean updateresult = userService.updateStudentBanji(user);
|
||||||
|
if(updateresult){
|
||||||
|
int id = user.getId();
|
||||||
|
boolean result = classstudentsDao
|
||||||
|
.findClassStudentByUserId(id, classId); // 如果为true则表明该学生已在表中
|
||||||
|
if (result == false){
|
||||||
|
result = classstudentsDao
|
||||||
|
.insertClassStudent(id, classId); // 将用户插入classstudents表
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
p = userList.get(i);
|
||||||
|
boolean result = userService.insertUser(p);
|
||||||
|
if (result == true) {
|
||||||
|
studentNo = p.getStudentNo();
|
||||||
|
user = userService
|
||||||
|
.findUserByStudentNo(
|
||||||
|
studentNo);
|
||||||
|
int id = user.getId();
|
||||||
|
result = classstudentsDao
|
||||||
|
.insertClassStudent(id, classId); // 将用户插入classstudents表
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 更新学生人数
|
||||||
|
int studentsNum = classstudentsDao
|
||||||
|
.getClassStudentsNum(classId);
|
||||||
|
boolean result = classesDao.updateClassStudentsNum(
|
||||||
|
classId, studentsNum);
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -414,7 +414,7 @@ public class UserServiceImpl implements UserServiceI {
|
||||||
String time = dateFormat.format(createDate);
|
String time = dateFormat.format(createDate);
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
String hql = "update Users set banji='" + user.getBanji()
|
String hql = "update Users set banji='" + user.getBanji()
|
||||||
+ "'where studentNo='" + user.getStudentNo();
|
+ "'where studentNo='" + user.getStudentNo()+"'";
|
||||||
int result = userDao.executeHql(hql);
|
int result = userDao.executeHql(hql);
|
||||||
if (result == 1)
|
if (result == 1)
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
学号,姓名,自然班级
|
||||||
|
Loading…
Reference in New Issue