package org.hepx.ticket.web.controller; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.hepx.jgt.common.date.DateUtil; import org.hepx.jgt.common.json.JsonUtil; import org.hepx.ticket.entity.Ticket; import org.hepx.ticket.service.BankAccountService; import org.hepx.ticket.service.TicketService; import org.hepx.ticket.service.TradeService; import org.hepx.ticket.web.ResponseResult; import org.hepx.ticket.web.TicketVo; 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.*; /** * User: hepanxi * Date: 15-4-20 * Time: 下午4:48 */ @Controller @RequestMapping("/ticket") public class TicketerController { private static Logger logger = LoggerFactory.getLogger(TicketerController.class); @Autowired private TicketService ticketService; @Autowired private TradeService tradeService; @Autowired private BankAccountService bankAccountService; @RequiresPermissions("ticket:view") @RequestMapping(method = RequestMethod.GET) public String list(Model model) { model.addAttribute("ticketList", ticketService.findByStock()); return "ticket/list"; } @RequiresPermissions("ticket:create") @RequestMapping(value = "/create", method = RequestMethod.GET) public String showCreateForm(Model model) { model.addAttribute("op", "提交"); model.addAttribute("tradeNo", tradeService.getTradeNo()); model.addAttribute("bankAccounts",bankAccountService.findAll()); return "ticket/edit"; } @RequiresPermissions("ticket:create") @RequestMapping(value = "/create", method = RequestMethod.POST) public @ResponseBody Map create(@RequestBody String requestData) { try { TicketVo vo = JsonUtil.json2Object(requestData, TicketVo.class); tradeService.createTrade(vo); return ResponseResult.buildSuccessResult().toMap(); } catch (Exception e) { logger.error(e.getMessage(), e); return ResponseResult.buildFailResult().toMap(); } } @RequiresPermissions("ticket:update") @RequestMapping(value = "/{id}/update", method = RequestMethod.GET) public String showUpdateForm(@PathVariable("id") Long id, Model model) { model.addAttribute("ticket", ticketService.findOne(id)); model.addAttribute("op", "修改"); return "ticket/edit"; } @RequiresPermissions("ticket:update") @RequestMapping(value = "/{id}/update", method = RequestMethod.POST) public String update(Ticket ticket, RedirectAttributes redirectAttributes) { ticketService.updateTicket(ticket); redirectAttributes.addFlashAttribute("msg", "修改成功"); return "redirect:/ticket"; } @RequiresPermissions("ticket:delete") @RequestMapping(value = "/{id}/delete", method = RequestMethod.GET) @ResponseBody public Map delete(@PathVariable("id") Long id) { try { ticketService.deleteTicket(id); return ResponseResult.buildSuccessResult().toMap(); } catch (Exception e) { logger.error(e.getMessage(), e); return ResponseResult.buildFailResult().toMap(); } } @RequestMapping(value = "getTickets",method = RequestMethod.GET) @ResponseBody public String getTicketJson(@RequestParam("term")String term){ return JsonUtil.objectToJson(ticketService.findJsonByStock(term)); } /** * 票据盈利分析 * @param model * @return */ @RequiresPermissions("analysis:view") @RequestMapping(value = "/analysis",method = RequestMethod.GET) public String analysis(@RequestParam(value = "ticketNo",required = false) String ticketNo, @RequestParam(value = "ticketStatus", required = false)Ticket.TicketStatus ticketStatus, @RequestParam(value = "startTime",required = false) String startTime, @RequestParam(value = "endTime",required = false)String endTime,Model model){ if (startTime == null) { startTime = DateUtil.formateDate(new Date()); } if (endTime == null) { endTime = DateUtil.formateDate(new Date()); } Map<String,Object> paramMap = new HashMap<String, Object>(); paramMap.put("ticketNo",ticketNo); paramMap.put("ticketStatus",ticketStatus); paramMap.put("startTime",startTime); paramMap.put("endTime",endTime); List<Ticket> tickets = ticketService.findByCondition(paramMap); model.addAttribute("ticketList", tickets); model.addAttribute("ticket", paramMap); return "ticket/analysis"; } private String findByStatus(Ticket.TicketStatus ticketStatus) { //在库票据 List<Ticket> ticketList = ticketService.findByStatus(ticketStatus); //构建select格式数据 Map<Long, String> options = new HashMap<Long, String>(); options.put(0L, "请选择"); for (Ticket t : ticketList) { options.put(t.getId(), t.getTicketNo()); } Map<String, Object> map = new HashMap<String, Object>(); map.put("tickets", ticketList); map.put("ticketNos", options); return JsonUtil.objectToJson(map); } }