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