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", "无效操作"); } } }