|
@@ -11,23 +11,24 @@ import java.util.Set;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
-import net.sf.json.JSONObject;
|
|
|
-
|
|
|
import org.apache.commons.lang.StringEscapeUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
import cn.com.qmth.stmms.admin.dto.MarkerDTO;
|
|
|
import cn.com.qmth.stmms.admin.dto.SubjectUserDTO;
|
|
|
import cn.com.qmth.stmms.admin.exam.BaseExamController;
|
|
|
+import cn.com.qmth.stmms.biz.exam.bean.UserStudentVo;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
@@ -41,6 +42,7 @@ import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.UserExamService;
|
|
|
+import cn.com.qmth.stmms.biz.exam.service.UserStudentService;
|
|
|
import cn.com.qmth.stmms.biz.user.model.User;
|
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
|
import cn.com.qmth.stmms.biz.user.service.query.UserSearchQuery;
|
|
@@ -51,7 +53,9 @@ import cn.com.qmth.stmms.common.enums.Role;
|
|
|
import cn.com.qmth.stmms.common.enums.UserSource;
|
|
|
import cn.com.qmth.stmms.common.utils.EncryptUtils;
|
|
|
import cn.com.qmth.stmms.common.utils.ExportExcel;
|
|
|
+import cn.com.qmth.stmms.common.utils.ImportExcel;
|
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
|
|
|
@Controller
|
|
|
@RequestMapping("/admin/user")
|
|
@@ -88,6 +92,10 @@ public class UserController extends BaseExamController {
|
|
|
|
|
|
@Autowired
|
|
|
private ExamStudentService studentService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserStudentService userStudentService;
|
|
|
+
|
|
|
|
|
|
@Logging(menu = "查询用户", type = LogType.QUERY)
|
|
|
@RequestMapping("/list")
|
|
@@ -130,6 +138,10 @@ public class UserController extends BaseExamController {
|
|
|
view.addObject("examIdString", StringUtils.join(userExamService.findExamIds(user.getId()), SPLIT));
|
|
|
}
|
|
|
view.addObject("query", query);
|
|
|
+ if(user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
+ int studentCount=userStudentService.countByUserId(id);
|
|
|
+ view.addObject("studentCount", studentCount);
|
|
|
+ }
|
|
|
return view;
|
|
|
} else {
|
|
|
return new ModelAndView("redirect:/admin/user/list");
|
|
@@ -139,18 +151,20 @@ public class UserController extends BaseExamController {
|
|
|
@Logging(menu = "新增(修改)用户", type = LogType.UPDATE)
|
|
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
|
|
@RoleRequire(Role.SCHOOL_ADMIN)
|
|
|
- public String save(HttpServletRequest request, Model model, User user,
|
|
|
+ @Transactional
|
|
|
+ public String save(HttpServletRequest request,RedirectAttributes redirectAttributes, Model model, User user,
|
|
|
@RequestParam(required = false) String subjectCodeString,
|
|
|
@RequestParam(required = false) String examIdString,
|
|
|
@RequestParam(required = false, defaultValue = "1") int pageNumber,
|
|
|
@RequestParam(required = false) UserSource querySource, @RequestParam(required = false) Role queryRole,
|
|
|
@RequestParam(required = false) String queryLoginName, @RequestParam(required = false) String queryName,
|
|
|
- @RequestParam(required = false) Boolean queryEnable) {
|
|
|
+ @RequestParam(required = false) Boolean queryEnable,@RequestParam(required = false)MultipartFile studentFile) {
|
|
|
User current = RequestUtils.getWebUser(request).getUser();
|
|
|
User previous = null;
|
|
|
if (user.getId() != null) {
|
|
|
previous = userService.findById(user.getId());
|
|
|
}
|
|
|
+ Integer suc=null;
|
|
|
if (previous == null) {
|
|
|
String message = validate(user, subjectCodeString, examIdString);
|
|
|
if (message == null) {
|
|
@@ -166,6 +180,7 @@ public class UserController extends BaseExamController {
|
|
|
}
|
|
|
if (user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
userExamService.updateByUserId(user.getId(), getExamIdSet(examIdString));
|
|
|
+ subjectUserService.updateByUserId(user.getId(), getSubjectCodeSet(subjectCodeString));
|
|
|
}
|
|
|
if (user.getRole() == Role.COLLEGE_ADMIN) {
|
|
|
int examId = getSessionExamId(request);
|
|
@@ -173,9 +188,30 @@ public class UserController extends BaseExamController {
|
|
|
getSubjectCodeSetByCollege(examId, user.getDescription()));
|
|
|
userService.save(user);
|
|
|
}
|
|
|
+ if(user.getRole() == Role.SCHOOL_VIEWER&&!studentFile.isEmpty()) {
|
|
|
+ suc=addStudent(studentFile, user.getSchoolId(), user.getId());
|
|
|
+ }
|
|
|
} else {
|
|
|
model.addAttribute("user", user);
|
|
|
model.addAttribute("roleList", ROLE_LIST);
|
|
|
+ if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR
|
|
|
+ || user.getRole() == Role.COLLEGE_ADMIN|| user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
+ model.addAttribute("subjectCodeString",
|
|
|
+ StringUtils.join(subjectUserService.findSubjectCode(user.getId()), SPLIT));
|
|
|
+ model.addAttribute("examIdString", StringUtils.join(userExamService.findExamIds(user.getId()), SPLIT));
|
|
|
+ }
|
|
|
+ if(user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
+ int studentCount=userStudentService.countByUserId(user.getId());
|
|
|
+ model.addAttribute("studentCount", studentCount);
|
|
|
+ }
|
|
|
+ UserSearchQuery query = new UserSearchQuery();
|
|
|
+ query.setPageNumber(pageNumber);
|
|
|
+ query.setSource(querySource);
|
|
|
+ query.setRole(queryRole);
|
|
|
+ query.setLoginName(queryLoginName);
|
|
|
+ query.setName(queryName);
|
|
|
+ query.setEnable(queryEnable);
|
|
|
+ model.addAttribute("query", query);
|
|
|
model.addAttribute("message", message);
|
|
|
return "modules/user/userEdit";
|
|
|
}
|
|
@@ -208,6 +244,9 @@ public class UserController extends BaseExamController {
|
|
|
}
|
|
|
previous.setUpdatedTime(new Date());
|
|
|
userService.save(previous);
|
|
|
+ if(previous.getRole() == Role.SCHOOL_VIEWER&&!studentFile.isEmpty()) {
|
|
|
+ suc=addStudent(studentFile, previous.getSchoolId(), previous.getId());
|
|
|
+ }
|
|
|
} else {
|
|
|
model.addAttribute("user", previous);
|
|
|
model.addAttribute("roleList", ROLE_LIST);
|
|
@@ -220,15 +259,38 @@ public class UserController extends BaseExamController {
|
|
|
query.setName(queryName);
|
|
|
query.setEnable(queryEnable);
|
|
|
model.addAttribute("query", query);
|
|
|
+ if (user.getRole() == Role.SUBJECT_HEADER || user.getRole() == Role.INSPECTOR
|
|
|
+ || user.getRole() == Role.COLLEGE_ADMIN|| user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
+ model.addAttribute("subjectCodeString",
|
|
|
+ StringUtils.join(subjectUserService.findSubjectCode(user.getId()), SPLIT));
|
|
|
+ model.addAttribute("examIdString", StringUtils.join(userExamService.findExamIds(user.getId()), SPLIT));
|
|
|
+ }
|
|
|
+ if(user.getRole() == Role.SCHOOL_VIEWER) {
|
|
|
+ int studentCount=userStudentService.countByUserId(user.getId());
|
|
|
+ model.addAttribute("studentCount", studentCount);
|
|
|
+ }
|
|
|
return "modules/user/userEdit";
|
|
|
}
|
|
|
}
|
|
|
String enable = queryEnable == null ? "" : queryEnable.toString();
|
|
|
String role = queryRole == null ? "" : String.valueOf(queryRole.getValue());
|
|
|
String source = querySource == null ? "" : String.valueOf(querySource.getValue());
|
|
|
+ if(suc!=null) {
|
|
|
+ addMessage(redirectAttributes, "成功绑定考生"+suc+"条");
|
|
|
+ }
|
|
|
return "redirect:/admin/user/list?pageNumber=" + pageNumber + "&source=" + source + "&role=" + role
|
|
|
+ "&loginName=" + queryLoginName + "&name=" + queryName + "&enable=" + enable;
|
|
|
}
|
|
|
+
|
|
|
+ private int addStudent(MultipartFile file,Integer schoolId,Integer userId) {
|
|
|
+ try {
|
|
|
+ ImportExcel ei = new ImportExcel(file, 1, 0);
|
|
|
+ List<UserStudentVo> list = ei.getDataList(UserStudentVo.class);
|
|
|
+ return userStudentService.addStudent(list, schoolId, userId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
private String validate(User user, String subjectCodeString, String examIdString) {
|
|
|
String message = null;
|
|
@@ -489,4 +551,33 @@ public class UserController extends BaseExamController {
|
|
|
return "modules/exam/subjectSelect";
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @RequestMapping(value = "student/template")
|
|
|
+ public String importStudentTemplate(HttpServletResponse response,RedirectAttributes redirectAttributes) {
|
|
|
+ try {
|
|
|
+ String fileName = "绑定考生导入模板.xlsx";
|
|
|
+ String title = "绑定考生数据";
|
|
|
+ List<SubjectUser> list = new ArrayList<SubjectUser>();
|
|
|
+ list.add(new SubjectUser());
|
|
|
+ new ExportExcel(title, UserStudentVo.class, 2).setDataList(list).write(response, fileName).dispose();
|
|
|
+ return null;
|
|
|
+ } catch (Exception e) {
|
|
|
+ addMessage(redirectAttributes, "导入模板下载失败!失败信息:" + e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:/admin/user/edit";
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "student/clear")
|
|
|
+ public String studentClear(@RequestParam Integer id,
|
|
|
+ @RequestParam(required = false, defaultValue = "1") int pageNumber,
|
|
|
+ @RequestParam(required = false) UserSource querySource, @RequestParam(required = false) Role queryRole,
|
|
|
+ @RequestParam(required = false) String queryLoginName, @RequestParam(required = false) String queryName,
|
|
|
+ @RequestParam(required = false) Boolean queryEnable) {
|
|
|
+ userStudentService.clear(id);
|
|
|
+ String enable = queryEnable == null ? "" : queryEnable.toString();
|
|
|
+ String role = queryRole == null ? "" : String.valueOf(queryRole.getValue());
|
|
|
+ String source = querySource == null ? "" : String.valueOf(querySource.getValue());
|
|
|
+ return "redirect:/admin/user/list?pageNumber=" + pageNumber + "&source=" + source + "&role=" + role
|
|
|
+ + "&loginName=" + queryLoginName + "&name=" + queryName + "&enable=" + enable;
|
|
|
+ }
|
|
|
}
|