package org.hepx.tasksys.web.controller;
import org.hepx.tasksys.entity.Reply;
import org.hepx.tasksys.entity.Task;
import org.hepx.tasksys.service.ReplyService;
import org.hepx.tasksys.service.TaskService;
import org.hepx.tasksys.velocity.Functions;
import org.hepx.tasksys.web.ResponseResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import java.util.Date;
import java.util.Map;
/**
* User: hepanxi
* Date: 15-4-11
* Time: 上午9:48
*/
@Controller
@RequestMapping("/reply")
public class ReplyController {
private static Logger logger = LoggerFactory.getLogger(ReplyController.class);
@Autowired
private TaskService taskService;
@Autowired
private ReplyService replyService;
@RequestMapping(value = "/{taskId}",method = RequestMethod.GET)
public String list(@PathVariable("taskId")Long taskId,Model model){
model.addAttribute("task",taskService.findOne(taskId));
model.addAttribute("replys",replyService.findByTaskId(taskId));
return "task/reply";
}
@RequestMapping(value="/create",method = RequestMethod.POST)
public String create(Reply reply,@RequestParam("status")Task.TaskStaus status, RedirectAttributes redirectAttributes){
reply.setCreateTime(new Date());
reply.setUserId(Functions.getCurrentUserId());
replyService.createReply(reply);
//回复后任务状态变为时行中。
if(status.equals(Task.TaskStaus.CREATED)){
Task t =taskService.findOne(reply.getTaskId());
t.setStatus(Task.TaskStaus.DOING);
taskService.updateTask(t);
}
redirectAttributes.addFlashAttribute("msg", "回复成功");
return "redirect:/reply/"+reply.getTaskId();
}
@RequestMapping("/delete")
@ResponseBody
public Map delete(@PathVariable("replyId")Long replyId){
try {
replyService.deleteReply(replyId);
return ResponseResult.buildSuccessResult().toMap();
} catch (Exception e) {
logger.error(e.getMessage(), e);
return ResponseResult.buildFailResult().toMap();
}
}
}