package org.hepx.ticket.web.controller; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.hepx.jgt.common.date.DateUtil; import org.hepx.ticket.entity.Trade; import org.hepx.ticket.service.PaymentService; import org.hepx.ticket.service.TicketService; import org.hepx.ticket.service.TradeService; import org.hepx.ticket.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 java.util.Date; import java.util.List; import java.util.Map; /** * User: hepx * Date: 15-5-1 * Time: 下午3:23 */ @Controller @RequestMapping("/trade") public class TradeController { private static Logger logger = LoggerFactory.getLogger(TradeController.class); @Autowired private TradeService tradeService; @Autowired private TicketService ticketService; @Autowired private PaymentService paymentService; @RequiresPermissions("trade:view") @RequestMapping(method = RequestMethod.GET) public String list(@RequestParam(value = "ticketNo", required = false) String ticketNo, @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()); } List<Trade> tradeList = tradeService.findByCondition(ticketNo,startTime,endTime); model.addAttribute("ticketNo",ticketNo); model.addAttribute("startTime", startTime); model.addAttribute("endTime",endTime); model.addAttribute("tradeList", tradeList); return "trade/list"; } @RequiresPermissions("trade:view") @RequestMapping(value = "/{id}/detail", method = RequestMethod.GET) public String getOne(@PathVariable("id") Long id, Model model) { model.addAttribute("trade", tradeService.findOne(id)); model.addAttribute("inTickets", ticketService.findInTicketByTradeId(id)); model.addAttribute("outTickets", ticketService.findOutTicketByTradeId(id)); model.addAttribute("payments",paymentService.findByTradeId(id)); return "trade/detail"; } @RequiresPermissions("trade:update") @RequestMapping(value="/{id}/check",method = RequestMethod.GET) @ResponseBody public Map update(@PathVariable("id")Long id){ try { Trade trade = tradeService.findOne(id); if(trade != null){ trade.setTradeStatus(Trade.TradeStatus.CHECKED); tradeService.updateTrade(trade); return ResponseResult.buildSuccessResult().toMap(); }else{ throw new Exception("交易不存在!"); } } catch (Exception e) { logger.error(e.getMessage(),e); return ResponseResult.buildFailResult().toMap(); } } }