package com.sobey.cmop.mvc.web.department; import java.util.Map; import javax.servlet.ServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; 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.servlet.mvc.support.RedirectAttributes; import com.sobey.cmop.mvc.comm.BaseController; import com.sobey.cmop.mvc.entity.Department; import com.sobey.framework.utils.Servlets; /** * DepartmentController负责部门的管理 * * @author liukai * */ @Controller @RequestMapping(value = "/department") public class DepartmentController extends BaseController { private static final String REDIRECT_SUCCESS_URL = "redirect:/department/"; @RequestMapping(value = { "list", "" }) public String list(@RequestParam(value = "page", defaultValue = "1") int pageNumber, @RequestParam(value = "page.size", defaultValue = PAGE_SIZE) int pageSize, Model model, ServletRequest request) { Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, REQUEST_PREFIX); model.addAttribute("page", comm.departmentService.getDepartmentPageable(searchParams, pageNumber, pageSize)); return "department/departmentList"; } @RequestMapping(value = "/save", method = RequestMethod.GET) public String createForm(Model model) { model.addAttribute("department", new Department()); return "department/departmentForm"; } @RequestMapping(value = "/save", method = RequestMethod.POST) public String save(Department department, RedirectAttributes redirectAttributes) { comm.departmentService.saveOrUpdateDepartment(department); redirectAttributes.addFlashAttribute("message", "创建部门 " + department.getName() + " 成功"); return REDIRECT_SUCCESS_URL; } @RequestMapping(value = "/update/{id}", method = RequestMethod.GET) public String updateForm(@PathVariable("id") Integer id, Model model) { model.addAttribute("department", comm.departmentService.getDepartment(id)); return "department/departmentForm"; } @RequestMapping(value = "/update", method = RequestMethod.POST) public String update(@ModelAttribute("department") Department department, RedirectAttributes redirectAttributes) { comm.departmentService.saveOrUpdateDepartment(department); redirectAttributes.addFlashAttribute("message", "修改部门 " + department.getName() + " 成功"); return REDIRECT_SUCCESS_URL; } @RequestMapping(value = "/delete/{id}") public String delete(@PathVariable("id") Integer id, RedirectAttributes redirectAttributes) { Department department = comm.departmentService.getDepartment(id); if (department.getUsers().size() > 0) { redirectAttributes.addFlashAttribute("message", "部门使用中,无法删除"); } else { comm.departmentService.deleteDepartment(id); redirectAttributes.addFlashAttribute("message", "删除部门成功"); } return REDIRECT_SUCCESS_URL; } }