package com.uas.search.console.controller; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.uas.search.console.core.util.ContextUtils; import com.uas.search.console.dao.OrderDetailSimpleInfoDao; import com.uas.search.console.dao.OrderInvoiceDetailSimpleInfoDao; import com.uas.search.console.dao.OrderInvoiceSimpleInfoDao; import com.uas.search.console.dao.OrderSimpleInfoDao; import com.uas.search.console.dao.PurchaseDetailSimpleInfoDao; import com.uas.search.console.dao.PurchaseInvoiceDetailSimpleInfoDao; import com.uas.search.console.dao.PurchaseInvoiceSimpleInfoDao; import com.uas.search.console.dao.PurchaseSimpleInfoDao; import com.uas.search.console.model.OrderDetailSimpleInfo; import com.uas.search.console.model.OrderInvoiceDetailSimpleInfo; import com.uas.search.console.model.OrderInvoiceSimpleInfo; import com.uas.search.console.model.OrderSimpleInfo; import com.uas.search.console.model.PurchaseDetailSimpleInfo; import com.uas.search.console.model.PurchaseInvoiceDetailSimpleInfo; import com.uas.search.console.model.PurchaseInvoiceSimpleInfo; import com.uas.search.console.model.PurchaseSimpleInfo; import com.uas.search.console.service.InnerOrderSearchService; import com.uas.search.console.service.impl.OrderSearchServiceImpl; import com.uas.search.console.util.SearchConstants; import com.uas.search.exception.SearchException; import com.uas.search.model.BaseOrder; import com.uas.search.model.PageParams; import com.uas.search.model.SPage; import com.uas.search.service.OrderSearchService.Table_name; import com.uas.search.utils.OrderSearchConstants; /** * 订单搜索请求 * * @author sunyj * @since 2016年10月14日 上午11:59:45 */ @Controller @RequestMapping("/search") public class OrderSearchController { @Autowired private OrderSearchServiceImpl orderSearchService; private InnerOrderSearchService innerOrderSearchService = ContextUtils.getApplicationContext() .getBean("orderSearchServiceImpl", InnerOrderSearchService.class); @Autowired private OrderSimpleInfoDao orderDao; @Autowired private OrderDetailSimpleInfoDao orderDetailDao; @Autowired private OrderInvoiceSimpleInfoDao orderInvoiceDao; @Autowired private OrderInvoiceDetailSimpleInfoDao orderInvoiceDetailDao; @Autowired private PurchaseSimpleInfoDao purchaseDao; @Autowired private PurchaseDetailSimpleInfoDao purchaseDetailDao; @Autowired private PurchaseInvoiceSimpleInfoDao purchaseInvoiceDao; @Autowired private PurchaseInvoiceDetailSimpleInfoDao purchaseInvoiceDetailDao; @RequestMapping("orderIds") @ResponseBody public SPage getOrderIdsWithDetail(String keyword, String tableName, Integer page, Integer size, String status, Long buyeruu, Long buyerenuu, Long sellerenuu, String mintime, String maxtime) { Table_name tbName = null; if (!StringUtils.isEmpty(tableName)) { tbName = Table_name.valueOf(tableName); } PageParams params = new PageParams(); if (page != null) { params.setPage(page); } if (size != null) { params.setSize(size); } Map filters = new HashMap<>(); if (!StringUtils.isEmpty(status)) { String[] strs = status.split(","); List statusList = new ArrayList<>(); for(String str : strs){ statusList.add(Integer.valueOf(str)); } filters.put(OrderSearchConstants.STATUS_KEY, statusList); } if (buyeruu != null) { filters.put(OrderSearchConstants.BUYER_UU_KEY, buyeruu); } if (buyerenuu != null) { filters.put(OrderSearchConstants.BUYER_EN_UU_KEY, buyerenuu); } if (sellerenuu != null) { filters.put(OrderSearchConstants.SELLER_EN_UU_KEY, sellerenuu); } if (mintime != null) { filters.put(SearchConstants.MIN_TIME_KEY, parseTime(mintime)); } if (maxtime != null) { filters.put(SearchConstants.MAX_TIME_KEY, parseTime(maxtime)); } params.setFilters(filters); return orderSearchService.getOrderIdsWithDetail(keyword, tbName, params); } /** * 将时间字符串转为long eg. 2016-10-10 1:12:20 * * @param str * 时间,eg. 2016-10-10 1:12:20 * @return long值 */ private Long parseTime(String str) { try { String[] strs = str.split("-"); int year = Integer.parseInt(strs[0]); int month = Integer.parseInt(strs[1]) - 1; String[] strs2 = strs[2].split(" "); int date = Integer.parseInt(strs2[0]); String[] strs3 = strs2[1].split(":"); int hour = Integer.parseInt(strs3[0]); int minute = Integer.parseInt(strs3[1]); int second = Integer.parseInt(strs3[2]); Calendar calendar = Calendar.getInstance(); // 月份减1 calendar.set(year, month, date, hour, minute, second); System.out.println(calendar.getTime().toString()); return calendar.getTimeInMillis(); } catch (Exception e) { throw new SearchException("时间格式错误,示例:'2016-10-10 1:12:20'," + e); } } @RequestMapping("findAllOrders") @ResponseBody public List orders(String ids) { if (StringUtils.isEmpty(ids)) { return orderDao.findAll(); } String[] strs = ids.split(","); List longIds = new ArrayList<>(); for (String str : strs) { longIds.add(Long.valueOf(str)); } return orderDao.findAll(longIds); } @RequestMapping("findAllOrderDetails") @ResponseBody public List orderDetails() { return orderDetailDao.findAll(); } @RequestMapping("findAllOrderInvoices") @ResponseBody public List orderInvoices() { return orderInvoiceDao.findAll(); } @RequestMapping("findAllOrderInvoiceDetails") @ResponseBody public List orderInvoiceDetails() { return orderInvoiceDetailDao.findAll(); } @RequestMapping("findAllPurchases") @ResponseBody public List purchases() { return purchaseDao.findAll(); } @RequestMapping("findAllPurchaseDetails") @ResponseBody public List purchaseDetails() { return purchaseDetailDao.findAll(); } @RequestMapping("findAllPurchaseInvoices") @ResponseBody public List purchaseInvoices() { return purchaseInvoiceDao.findAll(); } @RequestMapping("findAllPurchaseInvoiceDetails") @ResponseBody public List purchaseInvoiceDetails() { return purchaseInvoiceDetailDao.findAll(); } @RequestMapping("/order") @ResponseBody public OrderSimpleInfo getOrder(Long id) { return innerOrderSearchService.getOrder(id); } @RequestMapping("/orderDetail") @ResponseBody public OrderDetailSimpleInfo getOrderDetail(Long id) { return innerOrderSearchService.getOrderDetail(id); } @RequestMapping("/orderInvoice") @ResponseBody public OrderInvoiceSimpleInfo getOrderInvoice(Long id) { return innerOrderSearchService.getOrderInvoice(id); } @RequestMapping("/orderInvoiceDetail") @ResponseBody public OrderInvoiceDetailSimpleInfo getOrderDetailInvoice(Long id) { return innerOrderSearchService.getOrderInvoiceDetail(id); } @RequestMapping("/purchase") @ResponseBody public PurchaseSimpleInfo getPurchase(Long id) { return innerOrderSearchService.getPurchase(id); } @RequestMapping("/purchaseDetail") @ResponseBody public PurchaseDetailSimpleInfo getPurchaseDetail(Long id) { return innerOrderSearchService.getPurchaseDetail(id); } @RequestMapping("/purchaseInvoice") @ResponseBody public PurchaseInvoiceSimpleInfo getPurchaseInvoice(Long id) { return innerOrderSearchService.getPurchaseInvoice(id); } @RequestMapping("/purchaseInvoiceDetail") @ResponseBody public PurchaseInvoiceDetailSimpleInfo getPurchaseDetailInvoice(Long id) { return innerOrderSearchService.getPurchaseInvoiceDetail(id); } }