package com.youzan.pfcase.web.my; import com.google.common.base.Function; import com.google.common.collect.Maps; import com.youzan.pfcase.domain.*; import com.youzan.pfcase.service.AccountService; import com.youzan.pfcase.service.CaselistService; import com.youzan.pfcase.service.TaskService; import com.youzan.pfcase.service.TaskcaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller @RequestMapping("/") public class MyController { private List<Task> allTask; @Autowired protected AccountService accountService; @Autowired protected TaskService taskService; @Autowired protected TaskcaseService taskcaseService; @Autowired protected CaselistService caselistService; @RequestMapping(value = "my", method = RequestMethod.GET) public String my(ModelMap model) throws Exception { UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); String username = userDetails.getAccount().getUsername(); String role = userDetails.getAccount().getRole(); if (role.equals("admin") || role.equals("cs")) { allTask = taskService.getAllTask(); } else { allTask = taskService.getAllTaskByUsername(username); } Map<String, Task> taskMap = Maps.uniqueIndex(allTask, new Function<Task, String>() { @Override public String apply(Task task) { return Integer.toString(task.getTaskid()); } }); model.addAttribute("taskMap", taskMap); // List<Taskcase> allTaskcase = taskcaseService.getAllTaskcase(); Map<String, List<Taskcase>> taskcaseMap = new HashMap<String, List<Taskcase>>(); for (Taskcase taskcase : allTaskcase) { String taskid = Integer.toString(taskcase.getTaskid()); if (taskcaseMap.containsKey(taskid)) { taskcaseMap.get(taskid).add(taskcase); } else { List taskcaseList = new ArrayList<Taskcase>(); taskcaseList.add(taskcase); taskcaseMap.put(Integer.toString(taskcase.getTaskid()), taskcaseList); } } model.addAttribute("taskcaseMap", taskcaseMap); // List<Caselist> allCaselist = caselistService.getAllCaselist(); Map<String, Caselist> caselistMap = Maps.uniqueIndex(allCaselist, new Function<Caselist, String>() { @Override public String apply(Caselist caselist) { return Integer.toString(caselist.getCaseid()); } }); model.addAttribute("caselistMap", caselistMap); model.addAttribute("active_my", true); return "my"; } }