学生管理系统作业
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

66 lines
2.7 KiB

package com.student.servlet.admin;
import com.student.service.ImportService;
import com.student.servlet.BaseServlet;
import com.student.util.IpUtil;
import com.student.util.ParamUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 管理员 - 导入预览(G-03)
*/
@WebServlet("/admin/importPreview")
public class ImportPreviewServlet extends BaseServlet {
private final ImportService importService = new ImportService();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String batchId = ParamUtil.getString(request, "batchId");
if (batchId.isEmpty()) {
Object lastBatch = request.getSession().getAttribute("lastImportBatchId");
if (lastBatch instanceof String && !((String) lastBatch).isEmpty()) {
batchId = (String) lastBatch;
}
}
if (batchId.isEmpty()) {
request.setAttribute("msg", "请先上传 CSV 文件");
request.getRequestDispatcher("/admin/user_upload.jsp").forward(request, response);
return;
}
request.setAttribute("batchId", batchId);
request.setAttribute("importList", importService.preview(batchId));
request.getRequestDispatcher("/admin/import_preview.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String batchId = ParamUtil.getString(request, "batchId");
String action = ParamUtil.getString(request, "action");
if (batchId.isEmpty()) {
redirectWithMsg(response, request, "/admin/importPreview", "批次ID无效");
return;
}
if ("confirm".equals(action)) {
int count = importService.confirm(batchId);
request.getSession().removeAttribute("lastImportBatchId");
logOperation(getLoginUser(request), "admin", "确认导入:" + count + "条", IpUtil.getClientIp(request));
redirectWithMsg(response, request, "/admin/userList", "成功导入 " + count + " 条记录");
} else if ("cancel".equals(action)) {
importService.rollback(batchId);
request.getSession().removeAttribute("lastImportBatchId");
redirectWithMsg(response, request, "/admin/importPreview", "已取消导入");
} else {
redirectWithMsg(response, request, "/admin/importPreview", "无效操作");
}
}
}