@RequestMapping(value = "/order/search/integral") public void searchUserIntegralByOrder(String orderNoes, HttpServletResponse response) throws IOException { String[] orderNoArray = orderNoes.split("\\n"); Map<Integer, UserIntegralAndCoupon> uicMap = new LinkedHashMap<Integer, UserIntegralAndCoupon>(); StringBuilder sbd = new StringBuilder(); for (String orderNo : orderNoArray) { if (StringUtils.isBlank(orderNo) || NumberUtils.toLong(orderNo) <= 0) continue; long no = NumberUtils.toLong(orderNo.trim()); Order order = tradeCenterBossClient.queryOrderByOrderNo(no); if (order == null) continue; User user = userService.getUserById(order.getUserId()); if (user == null || uicMap.get(user.getId()) != null) continue; UserIntegralAndCoupon uic = new UserIntegralAndCoupon(); uic.setUserId(user.getId()); uic.setUserName(user.getUserName()); uic.setPhone(StringUtils.isNotBlank(user.getPhone()) ? user.getPhone() : ""); uic.setEmail(StringUtils.isNotBlank(user.getEmail()) ? user.getEmail() : ""); uic.setIntegral(user.getCurrency()); List<Coupon> coupons = couponService.queryCouponByUserId(order.getUserId()); sbd.delete(0, sbd.length()); int i = 0; String str = ""; for (Coupon coupon : coupons) { sbd.append(coupon.getCode()); if (coupon.isUsed()) str = "已使用"; else if (coupon.isExpire()) str = "已过期"; if (StringUtils.isNotBlank(str)) sbd.append("(").append(str).append(")"); if (i != coupons.size() - 1) sbd.append(", "); i++; } uic.setCoupon(sbd.toString()); sbd.delete(0, sbd.length()); // 从地址中去寻找 List<Address> addresses = addressService.queryAllAddress(order.getUserId()); i = 0; for (Address address : addresses) { sbd.append(address.getName()).append("/").append(address.getMobile()).append("/"); sbd.append(address.getProvince()).append(address.getLocation()); if (address.isDefaultAddress()) sbd.append("<span style='color:red;'>(默认地址)</span>"); if (i != addresses.size() - 1) sbd.append("\n"); } uic.setAddress(sbd.toString()); uicMap.put(user.getId(), uic); } new JsonResult(true).addData("orderList", uicMap.values()).toJson(response); }
/** * 后台订单的筛选地址 * * @param orderQuery * @param response * @throws IOException */ @RequestMapping(value = "/order/search") public void searchOrder(OrderQuery orderQuery, HttpServletResponse response) throws IOException { List<OrderDetail> list = new ArrayList<OrderDetail>(); Page<Order> orderPage = tradeCenterBossClient.searchOrderByQuery(orderQuery); for (Order order : orderPage.getResult()) { OrderDetail orderDetail = new OrderDetail(); orderDetail.setUserId(order.getUserId()); orderDetail.setUserName(order.getUserName()); orderDetail.setOrderId(order.getId()); orderDetail.setOrderNo(order.getOrderNo()); orderDetail.setAccountType(order.getAccountType()); if (order.getOrderState() == OrderState.Success) { orderDetail.setEndDate( DateUtils.formatDate(order.getEndDate(), DateUtils.DateFormatType.DATE_FORMAT_STR)); } orderDetail.setStartDate( DateUtils.formatDate(order.getCreateDate(), DateUtils.DateFormatType.DATE_FORMAT_STR)); orderDetail.setInvoice(order.getInvoiceInfo().isInvoice()); orderDetail.setOrderState(order.getOrderState().toString()); orderDetail.setOrderStateDesc(order.getOrderState().serviceDesc()); Logistics logistics = tradeCenterBossClient.queryLogisticsByOrderId(order.getId()); orderDetail.setGoodToUserName(logistics.getName()); list.add(orderDetail); } new JsonResult(true) .addData("totalCount", orderPage.getTotalCount()) .addData("result", list) .toJson(response); }
/** * 显示订单的收货信息,客服可修改,修改的和原来的用-隔开 * * @param orderId * @param response * @throws IOException */ @RequestMapping(value = "/order/addressInfo/{orderId}") public void addressInfoGrid(@PathVariable("orderId") long orderId, HttpServletResponse response) throws IOException { AddressInfo addressInfo = new AddressInfo(); Logistics logistics = tradeCenterBossClient.queryLogisticsByOrderId(orderId); LogisticsRedundancy logisticsRedundancy = tradeCenterBossClient.queryLogisticsRedundancy(logistics.getId()); Order order = tradeCenterBossClient.queryOrderById(orderId); List<AddressInfo> list = new LinkedList<AddressInfo>(); if (order != null) { addressInfo.setOrderState(order.getOrderState().toString()); String[] province = (logistics.getProvince()).split(","); if (province.length == 2) { addressInfo.setProvince(province[0]); addressInfo.setCity(province[0]); addressInfo.setDistricts(province[1]); } else { addressInfo.setProvince(province[0]); addressInfo.setCity(province[1]); addressInfo.setDistricts(province[2]); } addressInfo.setConsignee(logistics.getName()); addressInfo.setLocation(logistics.getLocation()); addressInfo.setMobile(logistics.getMobile()); addressInfo.setZipCode(logistics.getZipCode()); if (StringUtils.isNotEmpty(logisticsRedundancy.getNameRewrite())) { addressInfo.setConsignee( addressInfo.getConsignee() + Old_New_Gap + logisticsRedundancy.getNameRewrite()); } if (StringUtils.isNotEmpty(logisticsRedundancy.getLocationRewrite())) { addressInfo.setLocation( addressInfo.getLocation() + Old_New_Gap + logisticsRedundancy.getLocationRewrite()); } if (StringUtils.isNotEmpty(logisticsRedundancy.getMobileRewrite())) { addressInfo.setMobile( addressInfo.getMobile() + Old_New_Gap + logisticsRedundancy.getMobileRewrite()); } if (StringUtils.isNotEmpty(logisticsRedundancy.getZipCodeRewrite())) { addressInfo.setZipCode( addressInfo.getZipCode() + Old_New_Gap + logisticsRedundancy.getZipCodeRewrite()); } String provinceRewrite = logisticsRedundancy.getProvinceRewrite(); if (StringUtils.isNotEmpty(provinceRewrite)) { String[] newProvince = (logisticsRedundancy.getProvinceRewrite()).split(","); addressInfo.setProvince(addressInfo.getProvince() + Old_New_Gap + newProvince[0]); addressInfo.setCity(addressInfo.getCity() + Old_New_Gap + newProvince[1]); addressInfo.setDistricts(addressInfo.getDistricts() + Old_New_Gap + newProvince[2]); } list.add(addressInfo); } new JsonResult(true).addData("totalCount", 1).addData("result", list).toJson(response); }
/** * 根据订单Id查询Sku列表 * * @param orderId * @return */ @RequestMapping(value = "/order/sku/{orderId}") public void skuGrid(@PathVariable("orderId") int orderId, HttpServletResponse response) throws IOException { List<OrderItem> orderItems = tradeCenterBossClient.queryOrderItemWithoutBackingNumberByOrderId(orderId); List<ProductSku> list = new ArrayList<ProductSku>(); for (OrderItem orderItem : orderItems) { ProductSku sku = new ProductSku(); sku.setNumber(orderItem.getNumber()); sku.setSkuId(orderItem.getSkuId()); sku.setProductId(orderItem.getProductId()); sku.setSkuState(orderItem.getOrderState().serviceDesc()); sku.setShipmentNum(orderItem.getShipmentNum()); sku.setBackNumber(orderItem.getBackNum()); sku.setBarCode(orderItem.getBarCode()); StockKeepingUnit stockKeepingUnit = skuService.getStockKeepingUnit(orderItem.getSkuId()); if (stockKeepingUnit != null) { Product product = productService.getProductById(stockKeepingUnit.getProductId()); Money money = new Money(); money.setCent(stockKeepingUnit.getPrice()); sku.setSkuPrice(money.toString()); sku.setProductName(product.getName()); sku.setAttribute(skuService.getSkuPropertyToString(stockKeepingUnit)); sku.setProductCode(stockKeepingUnit.getSkuCode()); // product.getProductCode()); } else { sku.setProductName("没有此 SKU! 被删除或重新生成过."); } list.add(sku); } new JsonResult(true) .addData("totalCount", list.size()) .addData("result", list) .toJson(response); }
/** * 配送和支付信息 * * @param orderId * @param response * @throws IOException */ @RequestMapping(value = "/order/pay/delivery/{orderId}") public void payDeliveryInfoGrid( @PathVariable("orderId") long orderId, HttpServletResponse response) throws IOException { Order order = tradeCenterBossClient.queryOrderById(orderId); List<PayDeliveryInfo> list = new LinkedList<PayDeliveryInfo>(); if (order != null) { Logistics logistics = tradeCenterBossClient.queryLogisticsByOrderId(order.getId()); PayDeliveryInfo payDeliveryInfo = new PayDeliveryInfo(); payDeliveryInfo.setPayType(order.getPayType()); payDeliveryInfo.setTotalPrice(order.getTotalPrice()); payDeliveryInfo.setDeliveryType(logistics.getDeliveryInfo().getDeliveryType()); payDeliveryInfo.setPayBank(order.getPayBank().toDesc()); payDeliveryInfo.setOrderState(order.getOrderState().toString()); payDeliveryInfo.setWaybillNumber(logistics.getDeliveryInfo().getWaybillNumber()); list.add(payDeliveryInfo); } new JsonResult(true).addData("totalCount", 1).addData("result", list).toJson(response); }
@RequestMapping(value = "/order/logistics/{orderId}") public void logisticsInfo(@PathVariable("orderId") String orderId, HttpServletResponse response) throws IOException { List<ProgressDetail> list = tradeCenterBossClient.getProgressDetail(NumberUtils.toLong(orderId)); new JsonResult(true) .addData("totalCount", list.size()) .addData("result", list) .toJson(response); }
/** * 备注列表 * * @param orderId * @param response * @throws IOException */ @RequestMapping(value = "/order/message/{orderId}") public void displayOrderMessage( @PathVariable("orderId") long orderId, HttpServletResponse response) throws IOException { List<OrderMessage> orderMessages = tradeCenterBossClient.queryAllMessage(orderId); for (OrderMessage orderMessage : orderMessages) { orderMessage.setMessageInfo( orderMessage.getUserType().toDesc() + ":" + orderMessage.getMessageInfo()); } new JsonResult(true) .addData("totalCount", orderMessages.size()) .addData("result", orderMessages) .toJson(response); }
/** * 显示订单的发票信息,客服也可修改,修改后的和原来的用-隔开 * * @param orderId * @param response * @throws IOException */ @RequestMapping(value = "/order/invoice/{orderId}") public void invoiceInfoGrid(@PathVariable("orderId") long orderId, HttpServletResponse response) throws IOException { Order order = tradeCenterBossClient.queryOrderById(orderId); List<InvoiceVoInfo> list = new LinkedList<InvoiceVoInfo>(); if (order != null) { InvoiceInfo change = tradeCenterBossClient.queryOrderInvoiceInfoRedundancy(orderId); InvoiceVoInfo invoiceInfo = new InvoiceVoInfo(); invoiceInfo.setInvoiceContent(order.getInvoiceInfo().getInvoiceContent()); invoiceInfo.setInvoiceTitle(order.getInvoiceInfo().getInvoiceTitle().toDesc()); invoiceInfo.setInvoiceType(order.getInvoiceInfo().getInvoiceType()); invoiceInfo.setCompanyName(order.getInvoiceInfo().getCompanyName()); if (StringUtils.isNotEmpty(change.getInvoiceContentRewrite())) { invoiceInfo.setInvoiceContent( invoiceInfo.getInvoiceContent() + Old_New_Gap + change.getInvoiceContentRewrite()); } if (change.getInvoiceTitleRewrite() != null) { invoiceInfo.setInvoiceTitle( invoiceInfo.getInvoiceTitle() + Old_New_Gap + change.getInvoiceTitleRewrite().toDesc()); } if (StringUtils.isNotEmpty(change.getInvoiceTypeRewrite())) { invoiceInfo.setInvoiceType( invoiceInfo.getInvoiceType() + Old_New_Gap + change.getInvoiceTypeRewrite()); } if (StringUtils.isNotEmpty(change.getCompanyNameRewrite())) { String companyName = invoiceInfo.getCompanyName(); if (StringUtils.isNotEmpty(companyName)) { invoiceInfo.setCompanyName(companyName + Old_New_Gap + change.getCompanyNameRewrite()); } else { invoiceInfo.setCompanyName("不开公司发票^" + change.getCompanyNameRewrite()); } } invoiceInfo.setOrderState(order.getOrderState().toString()); list.add(invoiceInfo); } new JsonResult(true).addData("totalCount", 1).addData("result", list).toJson(response); }
private String message(long orderId) { StringBuilder sbd = new StringBuilder(); List<OrderMessage> orderMessages = tradeCenterBossClient.queryAllMessage(orderId); int i = 0; for (OrderMessage orderMessage : orderMessages) { sbd.append(orderMessage.getUserType().toDesc()) .append("留言:") .append(orderMessage.getMessageInfo()); if (i != orderMessages.size() - 1) sbd.append("\n"); i++; } return sbd.toString(); }
/** * 订单价格备注详情 * * @param orderId * @param response * @throws IOException */ @RequestMapping(value = "/order/priceMessageDetail/{orderId}") public void priceMessageDetailByOrderId( @PathVariable("orderId") long orderId, HttpServletResponse response) throws IOException { OrderDetail orderDetail = new OrderDetail(); List<OrderDetail> list = new LinkedList<OrderDetail>(); Order order = tradeCenterBossClient.queryOrderById(orderId); if (order.getPriceMessageDetail() != null) { orderDetail.setPriceMessageDetail(order.getPriceMessageDetail()); list.add(orderDetail); } new JsonResult(true) .addData("totalCount", list.size()) .addData("result", list) .toJson(response); }
/** * 查询等待客服确认的订单数量 * * @param response * @throws IOException */ @RequestMapping(value = "/order/confirm/count") public void waitConfirmCount(HttpServletResponse response) throws IOException { new JsonResult(true) .addData("orderCount", tradeCenterBossClient.queryCountOfOrderWaitForApproval()) .toJson(response); }
@RequestMapping(value = "/order/export") public void exportOrder( OrderQuery orderQuery, HttpServletRequest request, HttpServletResponse response) throws IOException { List<List<Order>> orderList = tradeCenterBossClient.searchOrderListByQuery(orderQuery); String name = "订单统计"; Map<String, List> exportOrderMap = new LinkedHashMap<String, List>(); for (List<Order> orderArray : orderList) { if (orderArray == null || orderArray.size() == 0) continue; List<ExportOrder> exportOrderList = new ArrayList<ExportOrder>(); for (Order order : orderArray) { long orderId = order.getId(); Logistics logistics = order.getLogistics(); int count = 0; for (OrderItem orderItem : order.getOrderItemList()) { ExportOrder exportOrder = new ExportOrder(); Brand brand = supplierService.queryBrandById(orderItem.getBrandId()); exportOrder.setBrandName(brand == null ? "" : brand.getName()); exportOrder.setProductName(orderItem.getSkuName()); exportOrder.setProductCode(orderItem.getItemNo()); exportOrder.setNumber(String.valueOf(orderItem.getNumber())); exportOrder.setUnitPrice(Money.getMoneyString(orderItem.getUnitPrice())); exportOrder.setBackNumber(String.valueOf(orderItem.getBackNum())); exportOrder.setOrderState(orderItem.getOrderState().serviceDesc()); if (count == 0) { exportOrder.setPayBank(order.getPayBank().toDesc()); exportOrder.setCreateDate(formatDate(order.getCreateDate())); exportOrder.setSuccessDate(formatDate(tradeCenterBossClient.querySuccessDate(orderId))); exportOrder.setUserName(order.getUserName()); exportOrder.setOrderNo(String.valueOf(order.getOrderNo())); exportOrder.setOldTotalPrice(Money.getMoneyString(order.calculateOldTotalPrice())); exportOrder.setPriceMessageDetail(order.getPriceMessageDetail()); exportOrder.setTotalPrice(order.getTotalPrice()); exportOrder.setRemark(remark(order)); exportOrder.setLogisticsName(logistics.getName()); exportOrder.setLogisticsAddress( logistics.getProvince() + "," + logistics.getLocation()); exportOrder.setLogisticsPhone( getPhone(logistics.getMobile(), logistics.getTelephone())); } // 只存到最后一个订单项里, 主要用来多条订单项时合并单元格 if (count == (order.getOrderItemList().size() - 1)) { exportOrder.setItemSize(order.getOrderItemList().size()); } exportOrderList.add(exportOrder); count++; } } String sheetName = name; if (orderArray.size() > 0 && orderArray.get(0).getOrderState() == orderArray.get(orderArray.size() - 1).getOrderState()) sheetName = orderArray.get(0).getOrderState().serviceDesc(); exportOrderMap.put(sheetName, exportOrderList); } String[] headerList = new String[] { "下单时间", "完成时间", "下单人", "订单编号", "品牌", "商品名称", "商品编码", "购买数量", "购买单价", "应付总金额", "使用积分/优惠券", "实付总金额", "退货数量", "订单状态", "备注(发票、留言)", "收货人", "收货人地址", "联系电话" }; String[] fieldNameList = new String[] { "createDate", "successDate", "userName", "orderNo", "brandName", "productName", "productCode", "number", "unitPrice", "oldTotalPrice", "priceMessageDetail", "totalPrice", "backNumber", "orderState", "remark", "logisticsName", "logisticsAddress", "logisticsPhone" }; response.setHeader( "Content-Disposition", "attachment; filename=\"" + encodeFileName(request, name) + ".xls\""); response.setContentType("application/vnd.ms-excel"); ExportExcelUtil.exportExcel( exportOrderMap, headerList, fieldNameList, response.getOutputStream()); }