package com.youzan.pfcase.web.task; import com.youzan.pfcase.domain.Account; import com.youzan.pfcase.domain.Rank; import com.youzan.pfcase.domain.Task; import com.youzan.pfcase.domain.UserDetails; import com.youzan.pfcase.service.AccountService; import com.youzan.pfcase.service.TaskService; import org.dozer.Mapper; 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.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.sql.Timestamp; import java.util.*; /** * Created by sunjun on 16/8/12. */ @Controller @RequestMapping("task") public class TaskController { private List<Task> chartTasks; @Autowired protected Mapper beanMapper; @Autowired protected AccountService accountService; @Autowired protected TaskService taskService; @ModelAttribute public TaskForm setUpForm() { return new TaskForm(); } // @RequestMapping("newTaskForm") public String newTaskForm(ModelMap model) { model.addAttribute("KFAccounts", accountService.getAllKFAccount()); model.addAttribute("active_newTask", true); return "task/NewTaskForm"; } @RequestMapping("newTask") public String newTask(@Valid TaskForm form, BindingResult result, ModelMap model) { if (result.hasErrors()) { model.addAttribute("KFAccounts", accountService.getAllKFAccount()); model.addAttribute("active_newTask", true); return "task/NewTaskForm"; } Task task = beanMapper.map(form, Task.class); UserDetails userDetails = (UserDetails) SecurityContextHolder .getContext().getAuthentication().getPrincipal(); Account account = userDetails.getAccount(); task.setCreator(account.getUsername()); task.setModifier(account.getUsername()); taskService.insertTask(task); return "redirect:/my"; } // @RequestMapping(value = "editTaskForm", method = RequestMethod.GET) public String getCaselist(@RequestParam("taskid") int taskid, @RequestParam("action") String action, ModelMap model) { Task task = taskService.getTaskByTaskid(taskid); model.addAttribute("task", task); model.addAttribute("action", action); model.addAttribute("KFAccounts", accountService.getAllKFAccount()); return "task/EditTaskForm"; } @RequestMapping("editTask") public String editTask(@Valid @ModelAttribute("task") Task task, BindingResult result, ModelMap model) { if (result.hasErrors()) { model.addAttribute("KFAccounts", accountService.getAllKFAccount()); return "task/EditTaskForm"; } UserDetails userDetails = (UserDetails) SecurityContextHolder .getContext().getAuthentication().getPrincipal(); Account account = userDetails.getAccount(); task.setModifier(account.getUsername()); Timestamp timestamp = new Timestamp(new Date().getTime()); task.setUpdatetime(timestamp); taskService.updateTask(task); return "redirect:/my"; } // @RequestMapping("delTask") @ResponseBody public String delTask(@RequestParam("taskid") int taskid) { UserDetails userDetails = (UserDetails) SecurityContextHolder .getContext().getAuthentication().getPrincipal(); String modifier = userDetails.getAccount().getUsername(); Timestamp updatetime = new Timestamp(new Date().getTime()); taskService.delTask(taskid, modifier, updatetime); return Integer.toString(taskid); } // @RequestMapping("taskscore") @ResponseBody public String getTaskscore(@RequestParam("taskid") int taskid) { int taskscore = taskService.getTaskscore(taskid); return Integer.toString(taskscore); } // @RequestMapping(value = "chart", method = RequestMethod.GET) public String getCaselist(ModelMap model) { model.addAttribute("active_chart", true); UserDetails userDetails = (UserDetails) SecurityContextHolder .getContext().getAuthentication().getPrincipal(); String username = userDetails.getAccount().getUsername(); String role = userDetails.getAccount().getRole(); if (role.equals("kf")) { chartTasks = taskService.getAllDoneTaskByUsername(username); } else { chartTasks = taskService.getAllDoneTask(); } Map<String, Integer> chartMap = new LinkedHashMap<>(); List<String> backgroundColor = new ArrayList<>(); List<String> borderColor = new ArrayList<>(); for (Task task : chartTasks) { chartMap.put("'" + task.getTaskname() + "'", task.getTaskscore()); backgroundColor.add("'rgba(54, 162, 235, 0.2)'"); borderColor.add("'rgba(54, 162, 235, 1)'"); } model.addAttribute("chartMap", chartMap); model.addAttribute("backgroundColor", backgroundColor); model.addAttribute("borderColor", borderColor); return "task/Chart"; } // @RequestMapping("rankForm") public String rankForm(@ModelAttribute("rank") Rank rank, ModelMap model) { model.addAttribute("KFAccounts", accountService.getAllKFAccount()); model.addAttribute("active_rank", true); model.addAttribute("totalScores", taskService.getTotalScores()); // model.addAttribute("exeTimes", taskService.getExeTimes()); return "task/RankForm"; } @RequestMapping("rank") public String rank(@Valid @ModelAttribute("rank") Rank rank, BindingResult result, ModelMap model) { if (result.hasErrors()) { model.addAttribute("KFAccounts", accountService.getAllKFAccount()); model.addAttribute("active_rank", true); model.addAttribute("totalScores", taskService.getTotalScores()); return "task/RankForm"; } taskService.insertRank(rank); return "redirect:/task/rankForm"; } }