1
0
Kaynağa Gözat

Merge branch 'master' of dq/kmall-pt into master

黄亚琴 6 yıl önce
ebeveyn
işleme
a51eb50a89

+ 61 - 5
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.controller;
 
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.service.*;
 import com.kmall.admin.service.OrderExceptionRecordService;
@@ -9,6 +11,8 @@ import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
+import com.kmall.common.utils.excel.ExcelExport;
+import com.kmall.common.utils.excel.ExcelUtil;
 import com.kmall.common.utils.pingan.PinganUtil;
 import com.kmall.common.utils.pingan.dto.PinganResponseDto;
 import com.kmall.common.utils.print.ticket.item.Ticket;
@@ -22,16 +26,15 @@ import net.sf.json.JSONObject;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.log4j.Logger;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 
 /**
@@ -674,4 +677,57 @@ public class OrderController {
         }
         return r;
     }
+    /**
+     * 订单导出请求
+     */
+    @RequiresPermissions(value = {"order:export"})
+    @RequestMapping(value = "export")
+    public Object export(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        //查询列表数据
+        params.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_0.getItem());
+        List<OrderEntity> orderList = orderService.queryExportList(params);
+
+        ExcelExport ee = new ExcelExport("订单信息");
+
+        String[] header = new String[]{"订单编号","商户订单编号", "订单状态", "保税模式", "快递公司名称", "快递单编号", "海关清单编号", "收货人姓名", "收件人手机", "收件人省份", "收件人城市", "收件人区县", "收件人地址", "下单时间", "实际支付金额", "SKU", "商品名称", "数量", "销售价"};
+
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (orderList != null && orderList.size() != 0) {
+            for (OrderEntity orderEntity : orderList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+                Integer orderStatus = orderEntity.getOrderStatus();
+                String orderBizType = orderEntity.getOrderBizType();
+
+                map.put("OrderSn", orderEntity.getOrderSn());
+                map.put("MerchOrderSn", orderEntity.getMerchOrderSn());
+                map.put("OrderStatus", StringUtils.isEmpty(orderStatus.toString())? "":Dict.orderStatus.valueOf("item_"+ orderStatus).getItemName());
+                map.put("OrderBizType", StringUtils.isEmpty(orderBizType)? "":Dict.orderBizType.valueOf("item_"+orderBizType).getItemName());
+                map.put("ShippingName", orderEntity.getShippingName());
+                map.put("ShippingNo", orderEntity.getShippingNo());
+                map.put("InvtNo", orderEntity.getOrderProcessRecord().getInvtNo());
+                map.put("Consignee", orderEntity.getConsignee());
+                map.put("Mobile", orderEntity.getMobile());
+                map.put("Province", orderEntity.getProvince());
+                map.put("City", orderEntity.getCity());
+                map.put("District", orderEntity.getDistrict());
+                map.put("Address", orderEntity.getAddress());
+
+                map.put("OrderStartTime", DateUtils.format(orderEntity.getOrderProcessRecord().getAddOrderStartTime(),"yyyy-MM-dd HH:mm:ss"));
+                map.put("ActualPrice", orderEntity.getActualPrice());
+                for (OrderGoodsEntity orderGoodsEntity : orderEntity.getOrderGoodsEntityList()) {
+                    map.put("SKU", orderGoodsEntity.getSku());
+                    map.put("GoodsName", orderGoodsEntity.getGoodsName());
+                    map.put("Number", orderGoodsEntity.getNumber());
+                    map.put("RetailPrice", orderGoodsEntity.getRetailPrice());
+                    list.add(map);
+                }
+            }
+        }
+
+        ee.addSheetByMap("订单信息", list, header);
+        ee.export(response);
+        return R.ok();
+    }
+
 }

+ 9 - 2
kmall-admin/src/main/java/com/kmall/admin/entity/OrderEntity.java

@@ -13,8 +13,7 @@ import java.util.List;
  * @email
  * @date 2017-08-13 10:41:09
  */
-public class OrderEntity
-        implements Serializable {
+public class OrderEntity implements Serializable {
     private static final long serialVersionUID = 1L;
 
     //主键
@@ -798,5 +797,13 @@ public class OrderEntity
         this.payRecordList = payRecordList;
     }
 
+    private OrderProcessRecordEntity orderProcessRecord;
 
+    public OrderProcessRecordEntity getOrderProcessRecord() {
+        return orderProcessRecord;
+    }
+
+    public void setOrderProcessRecord(OrderProcessRecordEntity orderProcessRecord) {
+        this.orderProcessRecord = orderProcessRecord;
+    }
 }

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java

@@ -96,4 +96,6 @@ public interface OrderService {
     Map orderSubmit(List<OfflineCartEntity> offlineCartEntityList,SysUserEntity user);
 
     int confirmPay(Long id, String payFlag,String orderSnWx);
+
+    List<OrderEntity> queryExportList(Map<String, Object> map);
 }

+ 15 - 6
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -10,12 +10,9 @@ import com.kmall.api.service.merch.OmsMerchPropertiesBuilder;
 import com.kmall.api.util.CommonUtil;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.service.print.ticket.PrintTicketPropertiesBuilder;
-import com.kmall.common.utils.Constant;
-import com.kmall.common.utils.ShiroUtils;
+import com.kmall.common.utils.*;
 import com.kmall.common.utils.print.ticket.TicketPrintUtil;
 import com.kmall.common.utils.print.ticket.item.*;
-import com.kmall.common.utils.RRException;
-import com.kmall.common.utils.StringUtils;
 import com.kmall.common.utils.express.kdn.KdniaoUtil;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
@@ -29,8 +26,7 @@ import java.util.*;
 
 
 @Service("orderService")
-public class OrderServiceImpl
-        implements OrderService {
+public class OrderServiceImpl implements OrderService {
     @Autowired
     private OrderDao orderDao;
     @Autowired
@@ -834,6 +830,19 @@ public class OrderServiceImpl
     }
 
     @Override
+    public List<OrderEntity> queryExportList(Map<String, Object> map) {
+        List<OrderEntity> list = orderDao.queryList(map);
+        for (OrderEntity order : list) {
+            map.put("orderId", order.getId());
+            List<OrderGoodsEntity> orderGoodsList = orderGoodsDao.queryList(map);
+            OrderProcessRecordEntity orderProcessRecord = orderProcessRecordDao.queryObjectByOrderSn(order.getOrderSn());
+            order.setOrderGoodsEntityList(orderGoodsList);
+            order.setOrderProcessRecord(orderProcessRecord);
+        }
+        return list;
+    }
+
+    @Override
     public List<OrderEntity> queryOffilineOrderList(Map<String, Object> map) {
         return orderDao.queryOffilineOrderList(map);
     }

+ 3 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/order.html

@@ -37,6 +37,9 @@
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
             <div class="buttons-group">
+                #if($shiro.hasPermission("order:export"))
+                <i-button type="primary" @click="exportOrder"><i class="fa fa-cloud-download"></i>&nbsp;导出</i-button>
+                #end
                 #if($shiro.hasPermission("order:getProcess"))
                 <i-button type="success" @click="getProcess">查看清关信息</i-button>
                 #end

+ 20 - 0
kmall-admin/src/main/webapp/js/shop/order.js

@@ -422,6 +422,26 @@ let vm = new Vue({
                     }
                 }
             });
+        },
+        exportOrder: function() {
+            var params = {};
+            params.orderSn = vm.q.orderSn, params.orderStatus = vm.q.orderStatus, params.merchOrderSn = vm.q.merchOrderSn;
+
+            exportFile('#rrapp', '../order/export', params);
+            /*$.ajax({
+                type: "get",
+                url: '../order/export',
+                data: params,
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('导出成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+            });*/
         }
     },
     created: function () {