Explorar el Código

Merge branch 'master' of xwh/kmall-pt-general into master

张创标 hace 4 años
padre
commit
e5d1ea2af1
Se han modificado 25 ficheros con 801 adiciones y 77 borrados
  1. 78 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  2. 152 28
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  3. 79 4
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java
  4. 3 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java
  5. 21 0
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderDao.java
  6. 7 0
      kmall-admin/src/main/java/com/kmall/admin/dao/ProductStoreRelaDao.java
  7. 14 0
      kmall-admin/src/main/java/com/kmall/admin/entity/GoodsEntity.java
  8. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/ProductStoreRelaEntity.java
  9. 7 1
      kmall-admin/src/main/java/com/kmall/admin/service/GoodsService.java
  10. 26 0
      kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java
  11. 7 0
      kmall-admin/src/main/java/com/kmall/admin/service/ProductStoreRelaService.java
  12. 7 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  13. 23 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  14. 5 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  15. 42 0
      kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml
  16. 208 37
      kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml
  17. 69 0
      kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml
  18. 1 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/goods.html
  19. 1 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/offilineOrderList.html
  20. 1 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/storeProductStock.html
  21. 12 2
      kmall-admin/src/main/webapp/js/shop/goods.js
  22. 6 0
      kmall-admin/src/main/webapp/js/shop/offilineOrderList.js
  23. 9 3
      kmall-admin/src/main/webapp/js/shop/order.js
  24. 11 1
      kmall-admin/src/main/webapp/js/shop/storeProductStock.js
  25. 2 1
      kmall-common/src/main/java/com/kmall/common/constant/Dict.java

+ 78 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -15,12 +15,17 @@ import com.kmall.common.constant.Dict;
 import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.admin.fromcomm.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.print.ticket.item.Goods;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 
 /**
@@ -338,4 +343,77 @@ public class GoodsController {
     }
 
 
+    /**
+     * 所有商品模块导出
+     * @param params 查询参数
+     * @param response
+     * @param request
+     * @return
+     */
+    @RequestMapping(value = "export")
+    public R export(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        params.put("isDelete", 0);
+        // 根据条件查询出列表
+        List<GoodsEntity> goodsList = goodsService.queryExportList(params);
+
+        ExcelExport ee = new ExcelExport("所有商品信息");
+
+        String[] header = new String[]{"商户名称","第三方商户编号","商品编码","SKU","PLU","商品名称","商品英文名称","产品条码","货品业务类型","库存是否共享",
+                "商品库存","日常价","成本价","是否上架","是否热销","录入日期","商品单位","商品税率","产品品牌","海关备案编号","计量单位","海关商品编码","国检规格型号",
+                "原产国","海关申报要素","毛重(kg)","净重(kg)"};
+
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (goodsList !=null && goodsList.size()>0){
+            for (GoodsEntity goodsEntity : goodsList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+
+                map.put("MerchName",goodsEntity.getMerchName());
+                map.put("ThirdPartyMerchCode",goodsEntity.getThirdPartyMerchCode());
+                map.put("GoodsSn",goodsEntity.getGoodsSn());
+                map.put("Sku",goodsEntity.getSku());
+                map.put("Plu",goodsEntity.getPlu());
+                map.put("Name",goodsEntity.getName());
+                map.put("EnglishName",goodsEntity.getEnglishName());
+
+                String goodsBizType = goodsEntity.getGoodsBizType();
+                Integer isStockShare = 0;
+                if (goodsEntity.getIsStockShare()!=null){
+                    isStockShare = Integer.parseInt(goodsEntity.getIsStockShare());
+                }
+                map.put("ProdBarcode",goodsEntity.getProdBarcode());
+                map.put("GoodsBizType",StringUtils.isEmpty(goodsBizType)?"":Dict.orderBizType.valueOf("item_"+goodsBizType).getItemName());
+                map.put("IsStockShare",isStockShare==0?"否":"是");
+                map.put("GoodsNumber",goodsEntity.getGoodsNumber());
+                map.put("DailyPrice",goodsEntity.getDailyPrice());
+                map.put("CostPrice",goodsEntity.getCostPrice());
+                map.put("IsOnSale",goodsEntity.getIsOnSale()==0?"否":"是");
+
+                map.put("IsHot",goodsEntity.getIsHot()==0?"否":"是");
+                map.put("AddTime",goodsEntity.getAddTime());
+                map.put("GoodsUnit",goodsEntity.getGoodsUnit());
+                map.put("GoodsRate",goodsEntity.getGoodsRate());
+                map.put("Brand",goodsEntity.getBrand());
+                map.put("CusRecCode",goodsEntity.getCusRecCode());
+                map.put("UnitCode",goodsEntity.getUnitCode());
+
+                map.put("CusGoodsCode",goodsEntity.getCusGoodsCode());
+                map.put("CiqProdModel",goodsEntity.getCiqProdModel());
+                map.put("OriCntName",goodsEntity.getOriCntName());
+                map.put("CusDeclEle",goodsEntity.getCusDeclEle());
+                map.put("GrossWeight",goodsEntity.getGrossWeight());
+                map.put("NetWeight",goodsEntity.getNetWeight());
+
+                list.add(map);
+            }
+        }
+
+        ee.addSheetByMap("所有商品信息", list, header);
+        ee.export(response);
+
+        return R.ok();
+    }
+
+
+
 }

+ 152 - 28
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -2,47 +2,40 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.dto.OrderExpressDto;
 import com.kmall.admin.entity.*;
-import com.kmall.admin.websocket.WebSocketServer;
-import com.kmall.common.constant.JxlsXmlTemplateName;
-import com.kmall.common.utils.excel.ExcelUtil;
-import com.kmall.manager.manager.alipay.AliPayMicropayApiResult;
-import com.kmall.manager.manager.alipay.AliPayUtil;
-import com.kmall.manager.manager.wechat.WechatUtil;
-import com.kmall.manager.manager.wechat.WechatGlobalUtil;
-import com.kmall.manager.manager.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.*;
-import com.kmall.admin.service.OrderExceptionRecordService;
-import com.kmall.admin.service.OrderProcessRecordService;
-import com.kmall.admin.service.OrderService;
 import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
-import com.kmall.admin.fromcomm.entity.SysUserEntity;
+import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.*;
 import com.kmall.common.utils.excel.ExcelExport;
-import com.kmall.manager.manager.pingan.PinganUtil;
-import com.kmall.manager.manager.pingan.dto.PinganResponseDto;
+import com.kmall.common.utils.excel.ExcelUtil;
 import com.kmall.common.utils.print.ticket.item.Ticket;
 import com.kmall.common.utils.wechat.WechatMicropayApiResult;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.WechatReverseApiResult;
+import com.kmall.manager.manager.alipay.AliPayMicropayApiResult;
+import com.kmall.manager.manager.alipay.AliPayUtil;
+import com.kmall.manager.manager.pingan.PinganUtil;
+import com.kmall.manager.manager.pingan.dto.PinganResponseDto;
+import com.kmall.manager.manager.wechat.WechatGlobalUtil;
+import com.kmall.manager.manager.wechat.WechatUtil;
+import com.kmall.manager.manager.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
 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.shiro.authz.annotation.RequiresPermissions;
-import org.apache.shiro.web.session.HttpServletSession;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.websocket.server.PathParam;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.regex.Matcher;
@@ -771,7 +764,7 @@ public class OrderController {
         return r;
     }
     /**
-     * 订单导出请求
+     * 线上订单导出请求
      */
     @RequiresPermissions(value = {"order:export"})
     @RequestMapping(value = "export")
@@ -780,12 +773,14 @@ public class OrderController {
         params = ParamUtils.setTimeMap(params);
         //查询列表数据
         params.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_0.getItem());
-        List<OrderEntity> orderList = orderService.queryExportList(params);
-
-        ExcelExport ee = new ExcelExport("订单信息");
+        ExcelExport ee = new ExcelExport("线上订单信息");
 
-        String[] header = new String[]{"订单编号","商户订单编号", "所属门店", "供应商", "供应商第三方商户代码", "订单状态", "SKU", "商品名称", "数量", "销售价", "实际支付金额", "保税模式", "快递公司名称", "快递单编号", "海关清单编号", "收货人姓名", "收件人手机", "收件人省份", "收件人城市", "收件人区县", "收件人地址", "下单时间", "支付流水号","身份证号"
-                ,"原产国","规格型号","品牌","单位","毛重(kg)","净重","零售价","促销价","成交价"};
+        // =================================================线上订单明细导出开始=====================================
+        List<OrderEntity> orderList = orderService.queryExportList(params);
+        String[] header = new String[]{"订单编号", "商户订单编号", "所属门店", "供应商", "供应商第三方商户代码", "订单状态", "SKU", "商品名称", "数量",
+                "销售价", "促销价", "实际支付金额", "保税模式", "快递公司", "配送单号", "快递费用", "发货状态", "修改人",
+                "海关清单编号", "收货人姓名", "收件人手机", "收件人省份", "收件人城市", "收件人区县", "收件人地址", "下单时间", "支付流水号", "身份证号"
+                , "原产国", "规格型号", "品牌", "单位", "毛重(kg)", "净重"};
 
         List<Map<String, Object>> list = new ArrayList<>();
         if (orderList != null && orderList.size() != 0) {
@@ -793,6 +788,7 @@ public class OrderController {
                 LinkedHashMap<String, Object> map = new LinkedHashMap<>();
                 Integer orderStatus = orderEntity.getOrderStatus();
                 String orderBizType = orderEntity.getOrderBizType();
+                Integer shippingStatus = orderEntity.getShippingStatus();
 
                 map.put("OrderSn", orderEntity.getOrderSn());
                 map.put("MerchOrderSn", orderEntity.getMerchOrderSn());
@@ -804,11 +800,15 @@ public class OrderController {
                 map.put("GoodsName", orderEntity.getGoodsName());
                 map.put("Number", orderEntity.getNumber());
                 map.put("RetailPrice", orderEntity.getRetailPrice());
+                map.put("TopicPrice", orderEntity.getTopicPrice());
                 map.put("ActualPrice", orderEntity.getActualPrice());
 
                 map.put("OrderBizType", StringUtils.isEmpty(orderBizType)? "":Dict.orderBizType.valueOf("item_"+orderBizType).getItemName());
                 map.put("ShippingName", orderEntity.getShippingName());
                 map.put("ShippingNo", orderEntity.getShippingNo());
+                map.put("ShippingFee", orderEntity.getShippingFee());
+                map.put("ShippingStatus", Dict.shippingStatus.valueOf("item_"+shippingStatus).getItemName());
+                map.put("ModerSn", orderEntity.getModerSn());
                 map.put("InvtNo", orderEntity.getOrderProcessRecord()==null?"":orderEntity.getOrderProcessRecord().getInvtNo());
                 map.put("Consignee", orderEntity.getConsignee());
                 map.put("Mobile", orderEntity.getMobile());
@@ -828,15 +828,49 @@ public class OrderController {
                 map.put("NetWeight", orderEntity.getNetWeight());
 
                 // 零售价\促销价\成交价
-                map.put("SellPrice",orderEntity.getRetailPrice());
-                map.put("TopicPrice",orderEntity.getTopicPrice());
-                map.put("FinalPrice",orderEntity.getActualPrice());
+//                map.put("SellPrice",orderEntity.getRetailPrice());
+//
+//                map.put("FinalPrice",orderEntity.getActualPrice());
 
                 list.add(map);
             }
         }
-
-        ee.addSheetByMap("订单信息", list, header);
+        // =================================================线上订单明细导出开始=====================================
+        // =================================================线上订单导出开始=====================================
+        List<OrderEntity> masterOrderList = orderService.queryMasterExportList(params);
+        String[] headerMatser = new String[]{"所属门店", "订单号", "会员", "支付类型", "商户订单号", "订单业务类型", "订单状态", "订付人核验", "付款状态",
+                "实际支付", "订单总价", "下单时间", "快递公司", "配送单号", "快递费用", "发货状态", "修改人",};
+        List<Map<String, Object>> listMaster = new ArrayList<>();
+        if (masterOrderList != null && masterOrderList.size() > 0) {
+            for (OrderEntity orderEntity : masterOrderList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+                String orderBizType = orderEntity.getOrderBizType();
+                Integer orderStatus = orderEntity.getOrderStatus();
+                String isMergePay = orderEntity.getIsMergePay();
+                String buyerPayCheck = orderEntity.getBuyerPayCheck();
+                map.put("StoreName",orderEntity.getStoreName());
+                map.put("OrderSn",orderEntity.getOrderSn());
+                map.put("UserName",orderEntity.getUserName());
+                map.put("IsMergePay",StringUtils.isEmpty(isMergePay)?"-":Dict.isMergePay.valueOf("item_"+isMergePay).getItemName());
+                map.put("MerchOrderSn",orderEntity.getMerchOrderSn());
+                map.put("OrderBizType",StringUtils.isEmpty(orderBizType)? "":Dict.orderBizType.valueOf("item_"+orderBizType).getItemName());
+                map.put("OrderStatus",Dict.orderStatus.valueOf("item_"+ orderStatus).getItemName());
+                map.put("BuyerPayCheck",StringUtils.isEmpty(buyerPayCheck)?"":Dict.merchReturnSubjectChecked.valueOf("item_"+buyerPayCheck).getItemName());
+                map.put("PayStatus",Dict.payStatus.valueOf("item_"+orderEntity.getPayStatus()).getItemName());
+                map.put("ActualPrice",orderEntity.getActualPrice());
+                map.put("OrderPrice",orderEntity.getOrderPrice());
+                map.put("AddTime",orderEntity.getAddTime());
+                map.put("ShippingName",orderEntity.getShippingName());
+                map.put("ShippingNo",orderEntity.getShippingNo());
+                map.put("ShippingFee",orderEntity.getShippingFee());
+                map.put("ShippingStatus",Dict.shippingStatus.valueOf("item_"+orderEntity.getShippingStatus()).getItemName());
+                map.put("ModerSn",orderEntity.getModerSn());
+                listMaster.add(map);
+            }
+        }
+        // =================================================线上订单导出结束=====================================
+        ee.addSheetByMap("线上订单信息", listMaster, headerMatser);
+        ee.addSheetByMap("线上订单明细信息", list, header);
         ee.export(response);
 
         return R.ok();
@@ -1024,5 +1058,95 @@ public class OrderController {
     }
 
 
+    /**
+     * 线上订单导出请求
+     */
+    @RequestMapping(value = "exportOffilineOrder")
+    public R exportOffilineOrder(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        params = ParamUtils.setTimeMap(params);
+        params.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_1.getItem());
+        ExcelExport ee = new ExcelExport("线下订单信息");
+        //查询列表数据
+        // =================================================线下订单明细导出开始=====================================
+        List<OrderEntity> orderEntityList = orderService.queryExportOffilineOrderList(params);
+        String[] header = new String[]{"订单号", "操作店员", "购买类型", "订单业务类型", "订单状态",
+                "付款状态", "sku", "商品名称", "数量", "实际支付", "订单总价", "下单时间", "付款时间", "零售价", "促销价", "成交价"};
+
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (orderEntityList != null && orderEntityList.size() > 0) {
+            for (OrderEntity orderEntity : orderEntityList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+
+                // 订单业务类型
+                String orderBizType = orderEntity.getOrderBizType();
+                // 订单状态
+                Integer orderStatus = orderEntity.getOrderStatus();
+                // 付款状态
+                Integer payStatus = orderEntity.getPayStatus();
+                map.put("OrderSn", orderEntity.getOrderSn());
+                map.put("UserName", orderEntity.getUserName());
+                map.put("IsOnfflineOrder", Dict.isOnfflineOrder.item_1.getItem().equals(orderEntity.getIsOnfflineOrder()) ? "线下购买" : "线上购买");
+                map.put("OrderBizType", StringUtils.isEmpty(orderBizType)?"":Dict.orderBizType.valueOf("item_"+orderBizType).getItemName());
+                map.put("OrderStatus", Dict.orderStatus.valueOf("item_"+orderStatus).getItemName());
+                map.put("PayStatus", Dict.payStatus.valueOf("item_"+payStatus).getItemName());
+                map.put("Sku", orderEntity.getSku());
+                map.put("GoodsName", orderEntity.getGoodsName());
+                map.put("Number", orderEntity.getNumber());
+
+                map.put("ActualPrice", orderEntity.getActualPrice());
+                map.put("OrderPrice", orderEntity.getOrderPrice());
+                map.put("AddTime", orderEntity.getAddTime());
+
+                map.put("PayTime", orderEntity.getPayTime());
+                map.put("SellPrice", orderEntity.getRetailPrice());
+                map.put("TopicPrice", orderEntity.getTopicPrice());
+                map.put("FinalPrice", orderEntity.getActualPrice());
+
+                list.add(map);
+            }
+        }
+
+        // =================================================线下订单明细导出结束=====================================
+
+        // =================================================线下订单导出开始=====================================
+        List<OrderEntity> masterOrderEntityList = orderService.queryMasterExportOffilineOrderList(params);
+        String[] headerMaster = new String[]{"订单号", "操作店员", "购买类型", "订单业务类型", "订单状态",
+                "付款状态", "实际支付", "订单总价", "下单时间", "付款时间"};
+        List<Map<String, Object>> listMaster = new ArrayList<>();
+        if (masterOrderEntityList != null && masterOrderEntityList.size() > 0) {
+            for (OrderEntity orderEntity : masterOrderEntityList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+                // 订单业务类型
+                String orderBizType = orderEntity.getOrderBizType();
+                // 订单状态
+                Integer orderStatus = orderEntity.getOrderStatus();
+                // 付款状态
+                Integer payStatus = orderEntity.getPayStatus();
+
+                map.put("OrderSn", orderEntity.getOrderSn());
+                map.put("UserName", orderEntity.getUserName());
+                map.put("IsOnfflineOrder", Dict.isOnfflineOrder.item_1.getItem().equals(orderEntity.getIsOnfflineOrder()) ? "线下购买" : "线上购买");
+                map.put("OrderBizType", StringUtils.isEmpty(orderBizType)?"":Dict.orderBizType.valueOf("item_"+orderBizType).getItemName());
+                map.put("OrderStatus", Dict.orderStatus.valueOf("item_"+orderStatus).getItemName());
+                map.put("PayStatus", Dict.payStatus.valueOf("item_"+payStatus).getItemName());
+                map.put("ActualPrice", orderEntity.getActualPrice());
+                map.put("OrderPrice", orderEntity.getOrderPrice());
+                map.put("AddTime", orderEntity.getAddTime());
+                map.put("PayTime", orderEntity.getPayTime());
+
+                listMaster.add(map);
+            }
+        }
+        // =================================================线下订单导出结束=====================================
+
+        ee.addSheetByMap("线下订单信息", listMaster, headerMaster);
+        ee.addSheetByMap("线下订单明细信息", list, header);
+        ee.export(response);
+
+
+        return R.ok();
+    }
+
 
 }

+ 79 - 4
kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java

@@ -10,21 +10,22 @@ import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.*;
+import com.kmall.common.utils.excel.ExcelExport;
 import com.kmall.common.utils.excel.ExcelUtil;
 import com.kmall.common.utils.file.FileUploadUtil;
 import com.kmall.common.utils.wechat.AccessToken;
 import com.kmall.manager.manager.pay.wxpay.WxPayPropertiesBuilder;
 import com.kmall.manager.manager.wechat.wxtemplate.WxTemplateUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 /**
  * Controller
@@ -283,4 +284,78 @@ public class ProductStoreRelaController {
         //上传文件
         return R.ok("导入成功!");
     }
+
+
+    @RequestMapping(value = "export")
+    public R export(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        params.put("isDelete", 0);
+        // 根据条件查询出列表
+        List<ProductStoreRelaEntity> productStoreRelaEntityList = productStoreRelaService.queryExportList(params);
+        for (ProductStoreRelaEntity pro: productStoreRelaEntityList) {
+            if(org.apache.commons.lang3.StringUtils.isNotEmpty(pro.getIsStockShare())) {
+                if(org.apache.commons.lang3.StringUtils.isNotEmpty(pro.getGoodsBizType())) {
+                    if (pro.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())) {
+                        if (pro.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
+                            pro.setStockNum(pro.getGoodsNumber());
+                        }
+                    }
+                }
+            }
+        }
+        ExcelExport ee = new ExcelExport("门店商品信息");
+
+        String[] header = new String[]{"所属商户","所属门店","商品类型","货品业务类型","商品编码","商品名称","产品编码",
+                "sku","plu","品牌","批次编号","批次到期日期","是否上架","是否热销","库存是否共享","门店库存","园区库存","零售价",
+                "市场价","底线价","销售量"};
+
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (productStoreRelaEntityList!=null && productStoreRelaEntityList.size()>0){
+            for (ProductStoreRelaEntity productStoreRelaEntity : productStoreRelaEntityList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+
+                String goodsBizType = productStoreRelaEntity.getGoodsBizType();
+                Integer isStockShare = 0;
+                if (productStoreRelaEntity.getIsStockShare()!=null){
+                    isStockShare = Integer.parseInt(productStoreRelaEntity.getIsStockShare());
+                }
+
+                map.put("MerchName",productStoreRelaEntity.getMerchName());
+                map.put("StoreName",productStoreRelaEntity.getStoreName());
+                map.put("CategoryName",productStoreRelaEntity.getCategoryName());
+                map.put("GoodsBizType", StringUtils.isEmpty(goodsBizType)?"":Dict.orderBizType.valueOf("item_"+goodsBizType).getItemName());
+                map.put("GoodsSn",productStoreRelaEntity.getGoodsSn());
+                map.put("GoodsName",productStoreRelaEntity.getGoodsName());
+                map.put("ProductSn",productStoreRelaEntity.getProductSn());
+
+                map.put("Sku",productStoreRelaEntity.getSku());
+                map.put("Plu",productStoreRelaEntity.getPlu());
+                map.put("BrandName",productStoreRelaEntity.getBrandName()); // 品牌
+                map.put("BatchSn",productStoreRelaEntity.getBatchSn());
+                map.put("BatchExpireDate",productStoreRelaEntity.getBatchExpireDate());
+                map.put("IsOnSale",Integer.parseInt(productStoreRelaEntity.getIsOnSale())==0?"否":"是");
+                map.put("IsHot",Integer.parseInt(productStoreRelaEntity.getIsHot())==0?"否":"是");
+
+                map.put("IsStockShare",isStockShare==0?"否":"是");
+                map.put("StockNum",productStoreRelaEntity.getStockNum());
+                map.put("ParkStock",productStoreRelaEntity.getParkStock());
+                map.put("RetailPrice",productStoreRelaEntity.getRetailPrice());
+                map.put("MarketPrice",productStoreRelaEntity.getMarketPrice());
+                map.put("BottomLinePrice",productStoreRelaEntity.getBottomLinePrice());
+                map.put("SellVolume",productStoreRelaEntity.getSellVolume());
+
+                list.add(map);
+            }
+        }
+
+
+
+        ee.addSheetByMap("门店商品信息", list, header);
+        ee.export(response);
+
+        return R.ok();
+    }
+
+
+
 }

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java

@@ -3,6 +3,7 @@ package com.kmall.admin.dao;
 import com.kmall.admin.dto.GoodsDetailsDto;
 import com.kmall.admin.dto.GoodsPanoramaDto;
 import com.kmall.admin.entity.GoodsEntity;
+import com.kmall.common.utils.print.ticket.item.Goods;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
@@ -36,4 +37,6 @@ public interface GoodsDao extends BaseDao<GoodsEntity> {
     GoodsEntity queryGoodsByGoodsSnAndStoreId(@Param("goodsSn") String goodsSn, @Param("storeId") Long storeId);
 
     GoodsPanoramaDto searchGoodsPanoramaDtoByKeyword(@Param("keyword") String keyword);
+
+    List<GoodsEntity> queryExportList(Map<String, Object> params);
 }

+ 21 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/OrderDao.java

@@ -119,4 +119,25 @@ public interface OrderDao extends BaseDao<OrderEntity> {
     int purchaseSalesInStockDetailTotal(Query query);
 
     BigDecimal queryTopicPriceByOrderSnAndSku(@Param("orderSn") String orderSn,@Param("sku") String sku);
+
+    /**
+     * 线下订单导出
+     * @param params
+     * @return
+     */
+    List<OrderEntity> queryExportOffilineOrderList(Map<String, Object> params);
+
+    /**
+     * 线下订单明细导出
+     * @param params
+     * @return
+     */
+    List<OrderEntity> queryMasterExportOffilineOrderList(Map<String, Object> params);
+
+    /**
+     * 线上订单导出
+     * @param params
+     * @return
+     */
+    List<OrderEntity> queryMasterExportList(Map<String, Object> params);
 }

+ 7 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/ProductStoreRelaDao.java

@@ -76,4 +76,11 @@ public interface ProductStoreRelaDao extends BaseDao<ProductStoreRelaEntity> {
      * @return
      */
     List<ProductStoreRelaEntity> queryByStoreId(Long id);
+
+    /**
+     * 根据条件参数查询导出列表
+     * @param params 条件参数
+     * @return
+     */
+    List<ProductStoreRelaEntity> queryExportList(Map<String, Object> params);
 }

+ 14 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/GoodsEntity.java

@@ -113,6 +113,11 @@ public class GoodsEntity implements Serializable {
      */
     private String oriCntCode;
     /**
+     * 原产国名称
+     */
+    private String oriCntName;
+
+    /**
      * 海关申报要素,报统一版
      */
     private String cusDeclEle;
@@ -215,6 +220,15 @@ public class GoodsEntity implements Serializable {
     // 日常价
     private BigDecimal dailyPrice;
 
+
+    public String getOriCntName() {
+        return oriCntName;
+    }
+
+    public void setOriCntName(String oriCntName) {
+        this.oriCntName = oriCntName;
+    }
+
     public BigDecimal getCostPrice() {
         return costPrice;
     }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/ProductStoreRelaEntity.java

@@ -94,6 +94,8 @@ public class ProductStoreRelaEntity implements Serializable {
 
     private Integer brandId;
 
+    private String brandName;
+
     private Integer freightId;
 
     //属性类别
@@ -138,6 +140,14 @@ public class ProductStoreRelaEntity implements Serializable {
     //园区库存  park_stock
     private String parkStock;
 
+    public String getBrandName() {
+        return brandName;
+    }
+
+    public void setBrandName(String brandName) {
+        this.brandName = brandName;
+    }
+
     public String getBottomLinePrice() {
         return bottomLinePrice;
     }

+ 7 - 1
kmall-admin/src/main/java/com/kmall/admin/service/GoodsService.java

@@ -4,6 +4,7 @@ import com.kmall.admin.dto.GoodsDetailsDto;
 import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.dto.GoodsPanoramaDto;
 import com.kmall.admin.entity.GoodsEntity;
+import com.kmall.common.utils.print.ticket.item.Goods;
 
 import java.util.List;
 import java.util.Map;
@@ -135,5 +136,10 @@ public interface GoodsService {
 
     GoodsPanoramaDto searchGoodsPanoramaDtoByKeyword(String keyword);
 
-
+    /**
+     * 查询出要导出的列表
+     * @param params 查询参数
+     * @return
+     */
+    List<GoodsEntity> queryExportList(Map<String, Object> params);
 }

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

@@ -104,6 +104,11 @@ public interface OrderService {
 
     int confirmPay(Long id, String payFlag,String orderSnWx);
 
+    /**
+     * 线上订单导出查询列表
+     * @param map
+     * @return
+     */
     List<OrderEntity> queryExportList(Map<String, Object> map);
     /**
      * 导入订单快递信息
@@ -151,4 +156,25 @@ public interface OrderService {
     List<PurchaseSalesInStockDetail> purchaseSalesInStockDetailList(Query query);
 
     int purchaseSalesInStockDetailTotal(Query query);
+
+    /**
+     * 线下订单明细导出查询列表
+     * @param params
+     * @return
+     */
+    List<OrderEntity> queryExportOffilineOrderList(Map<String, Object> params);
+
+    /**
+     * 线下订单导出
+     * @param params
+     * @return
+     */
+    List<OrderEntity> queryMasterExportOffilineOrderList(Map<String, Object> params);
+
+    /**
+     * 线上订单导出
+     * @param params
+     * @return
+     */
+    List<OrderEntity> queryMasterExportList(Map<String, Object> params);
 }

+ 7 - 0
kmall-admin/src/main/java/com/kmall/admin/service/ProductStoreRelaService.java

@@ -117,4 +117,11 @@ public interface ProductStoreRelaService {
      * @return
      */
     int uploadExcel(List<StoreGoodsDto> storeGoodsDtoList);
+
+    /**
+     * 根据条件参数查询出要导出的列表
+     * @param params 条件参数
+     * @return
+     */
+    List<ProductStoreRelaEntity> queryExportList(Map<String, Object> params);
 }

+ 7 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -12,6 +12,7 @@ import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.common.utils.*;
+import com.kmall.common.utils.print.ticket.item.Goods;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -1033,6 +1034,12 @@ public class GoodsServiceImpl implements GoodsService {
     public GoodsPanoramaDto searchGoodsPanoramaDtoByKeyword(String keyword) {
         return goodsDao.searchGoodsPanoramaDtoByKeyword(keyword);
     }
+
+    @Override
+    public List<GoodsEntity> queryExportList(Map<String, Object> params) {
+
+        return goodsDao.queryExportList(params);
+    }
 /*  @Override
     @Transactional
     public int uploadExcel(MultipartFile file) {

+ 23 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -2276,6 +2276,29 @@ public class OrderServiceImpl implements OrderService {
         return orderDao.purchaseSalesInStockDetailTotal(query);
     }
 
+    @Override
+    public List<OrderEntity> queryExportOffilineOrderList(Map<String, Object> params) {
+        List<OrderEntity> orderEntityList = orderDao.queryExportOffilineOrderList(params);
+        if (orderEntityList!=null && orderEntityList.size()>0){
+            for (OrderEntity orderEntity : orderEntityList) {
+                // 查询活动价
+                BigDecimal topicPrice = orderDao.queryTopicPriceByOrderSnAndSku(orderEntity.getOrderSn(),orderEntity.getSku());
+                orderEntity.setTopicPrice(topicPrice);
+            }
+        }
+        return orderEntityList;
+    }
+
+    @Override
+    public List<OrderEntity> queryMasterExportOffilineOrderList(Map<String, Object> params) {
+        return orderDao.queryMasterExportOffilineOrderList(params);
+    }
+
+    @Override
+    public List<OrderEntity> queryMasterExportList(Map<String, Object> params) {
+        return orderDao.queryMasterExportList(params);
+    }
+
 
     /**
      * 设置订单数据

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -817,4 +817,9 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         throw new RRException("导入成功!");
 //        return 1;
     }
+
+    @Override
+    public List<ProductStoreRelaEntity> queryExportList(Map<String, Object> params) {
+        return productStoreRelaDao.queryExportList(params);
+    }
 }

+ 42 - 0
kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml

@@ -630,4 +630,46 @@
             and g.supplier_id = s.id
             AND (g.goods_sn=#{keyword} OR g.prod_barcode=#{keyword})
     </select>
+    <select id="queryExportList" resultType="com.kmall.admin.entity.GoodsEntity">
+        select
+        mall_goods.*,
+        case when mall_goods_group.id > 0 then 2 else 0 end as goodsType,
+        m.merch_name merchName, mb.is_stock_share isStockShare,
+        catagory.keywords as categoryName,
+        scnc.`name` as oriCntName
+        from mall_goods
+        left join mall_merch m on mall_goods.merch_sn = m.merch_sn
+        left join mall_goods_group on mall_goods_group.goods_id = mall_goods.id and mall_goods_group.open_status != 3
+        left join third_merchant_biz mb on mb.third_party_merch_code = mall_goods.third_party_merch_code and
+        mb.merch_sn=mall_goods.merch_sn
+        left join mall_category catagory on catagory.id = mall_goods.category_id
+        left join sys_cus_nation_code scnc on  mall_goods.ori_cnt_code = scnc.code
+        WHERE 1=1
+        <!--  数据过滤  -->
+        ${filterSql}
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND mall_goods.merch_sn = #{merchSn}
+        </if>
+        <if test="prodBarcode != null and prodBarcode.trim() != ''">
+            AND mall_goods.prod_barcode = #{prodBarcode}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND mall_goods.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
+        <if test="goodsSn != null and goodsSn != ''">
+            AND mall_goods.goods_sn like concat('%',#{goodsSn},'%')
+        </if>
+        <if test="name != null and name != ''">
+            AND mall_goods.name LIKE concat('%',#{name},'%')
+        </if>
+        <if test="englishName != null and englishName != ''">
+            AND mall_goods.english_name LIKE concat('%',#{englishName},'%')
+        </if>
+        <if test="goodsBizType != null and goodsBizType != ''">
+            AND mall_goods.goods_biz_type = #{goodsBizType}
+        </if>
+        <if test="isDelete != null">
+            AND mall_goods.is_Delete = #{isDelete}
+        </if>
+    </select>
 </mapper>

+ 208 - 37
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -239,6 +239,9 @@
         o.address,
         o.add_time,
         o.pay_id,
+        o.shipping_status,
+        o.shipping_fee,
+        o.moder_sn,
         o.pay_transaction_id,
         u.id_no 'idNo',
         u.username AS username,
@@ -273,6 +276,15 @@
         LEFT JOIN third_merchant_biz t2 ON t2.third_merch_sn = r.supplier_third_id
         WHERE
         1 =1
+        <if test="storeId != null and storeId != ''">
+            AND o.store_id = #{storeId}
+        </if>
+        <if test="orderStatus != null and orderStatus.trim() != ''">
+            AND o.order_status = #{orderStatus}
+        </if>
+        <if test="sku != null and sku.trim() != ''">
+            AND g.sku = #{sku}
+        </if>
         <if test="startTime != null and startTime != ''">
             AND o.add_time <![CDATA[ >  ]]> #{startTime}
         </if>
@@ -285,12 +297,6 @@
         <if test="orderBizType != null and orderBizType != ''">
             AND o.order_biz_type = #{orderBizType}
         </if>
-        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
-            AND s.third_party_merch_code = #{thirdPartyMerchCode}
-        </if>
-        <if test="sku != null and sku.trim() != ''">
-            AND good.sku = #{sku}
-        </if>
         <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
             AND o.merch_order_sn = #{merchOrderSn}
         </if>
@@ -300,44 +306,15 @@
         <if test="supplierThirdId != null and supplierThirdId != ''">
             AND r.supplier_third_id = #{supplierThirdId}
         </if>
-        <if test="merchSn != null and merchSn.trim() != ''">
-            AND o.merch_sn = #{merchSn}
-        </if>
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
-        <if test="shippingStatus != null and shippingStatus.trim() != ''">
-            AND o.shipping_status = #{shippingStatus}
-        </if>
         <if test="payStatus != null and payStatus.trim() != ''">
             AND o.pay_status = #{payStatus}
         </if>
-        <if test="orderStatus != null and orderStatus.trim() != ''">
-            AND o.order_status = #{orderStatus}
-        </if>
-        <if test="shippingId != null and shippingId != 0">
-            AND o.shipping_id = #{shippingId}
-        </if>
-        <if test="orderType != null and orderType.trim() != ''">
-            AND o.order_type = #{orderType}
-        </if>
         <if test="isOnfiilineOrder != null">
             AND o.is_onffline_order = #{isOnfiilineOrder}
         </if>
-        <if test="ids != null and ids.trim() != ''">
-            AND o.id in (${ids})
-        </if>
-        <choose>
-            <when test="sidx != null and sidx.trim() != ''">
-                order by ${sidx} ${order}
-            </when>
-            <otherwise>
-                order by o.id desc
-            </otherwise>
-        </choose>
-        <if test="offset != null and limit != null">
-            limit #{offset}, #{limit}
-        </if>
     </select>
 
     <select id="queryTotal" resultType="int">
@@ -1761,9 +1738,203 @@
     </select>
     <select id="queryTopicPriceByOrderSnAndSku" resultType="java.math.BigDecimal">
         SELECT mst.topic_price FROM mall_order mo
-		LEFT JOIN mall_order_goods mog ON mo.id = mog.order_id
-		LEFT JOIN mall_store_topic mst ON mog.store_topic_id=mst.id
+		inner JOIN mall_order_goods mog ON mo.id = mog.order_id
+		inner JOIN mall_store_topic mst ON mog.store_topic_id=mst.id
 		WHERE mo.order_sn=#{orderSn} AND mog.sku=#{sku};
     </select>
+    <select id="queryExportOffilineOrderList" resultType="com.kmall.admin.entity.OrderEntity">
+        SELECT distinct
+        o.*,
+        u.username AS userName,
+        p.is_payment_send,
+        p.is_ele_order_send,
+        p.is_customs_send,
+        s.store_name storeName,
+        g.sku,
+        g.goods_name as goodsName,
+        gs.retail_price,
+        g.number
+        FROM
+        mall_order o
+        LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
+        LEFT JOIN mall_order_goods g ON o.id = g.order_id
+        left join mall_store s on o.store_id = s.id
+        LEFT JOIN mall_goods gs ON g.goods_id = gs.id
+        left join mall_sale_record record on record.order_sn = o.order_sn
+        LEFT JOIN sys_user u ON record.saller_id = u.user_id
+        WHERE 1=1
+        <if test="orderSn != null and orderSn.trim() != ''">
+            AND o.order_sn LIKE concat('%',#{orderSn},'%')
+        </if>
+        <if test="orderStatus != null and orderStatus.trim() != ''">
+            AND o.order_status = #{orderStatus}
+        </if>
+        <if test="isOnfiilineOrder != null">
+            AND o.is_onffline_order = #{isOnfiilineOrder}
+        </if>
+    </select>
+    <select id="queryMasterExportOffilineOrderList" resultType="com.kmall.admin.entity.OrderEntity">
+        SELECT distinct
+        o.*,
+        u.username AS userName,
+        p.is_payment_send,
+        p.is_ele_order_send,
+        p.is_customs_send,
+        s.store_name storeName
+        FROM
+        mall_order o
+
+        LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
+        LEFT JOIN mall_order_goods g ON o.id = g.order_id
+        left join mall_store s on o.store_id = s.id
+        LEFT JOIN mall_goods gs ON g.goods_id = gs.id
+        left join mall_sale_record record on record.order_sn = o.order_sn
+        LEFT JOIN sys_user u ON record.saller_id = u.user_id
+        WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND o.store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
+        <if test="goodsSn != null and goodsSn.trim() != ''">
+            AND gs.goods_sn = #{goodsSn}
+        </if>
+        <if test="sku != null and sku.trim() != ''">
+            AND gs.sku = #{sku}
+        </if>
+        <if test="prodBarcode != null and prodBarcode.trim() != ''">
+            AND gs.prod_barcode = #{prodBarcode}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
+        <if test="orderSn != null and orderSn.trim() != ''">
+            AND o.order_sn LIKE concat('%',#{orderSn},'%')
+        </if>
+        <if test="shippingStatus != null and shippingStatus.trim() != ''">
+            AND o.shipping_status = #{shippingStatus}
+        </if>
+        <if test="payStatus != null and payStatus.trim() != ''">
+            AND o.pay_status = #{payStatus}
+        </if>
+        <if test="orderStatus != null and orderStatus.trim() != ''">
+            AND o.order_status = #{orderStatus}
+        </if>
+        <if test="shippingId != null and shippingId != 0">
+            AND o.shipping_id = #{shippingId}
+        </if>
+        <if test="orderType != null and orderType.trim() != ''">
+            AND o.order_type = #{orderType}
+        </if>
+        <if test="isOnfiilineOrder != null">
+            AND o.is_onffline_order = #{isOnfiilineOrder}
+        </if>
+        <if test="ids != null and ids.trim() != ''">
+            AND o.id in (${ids})
+        </if>
+    </select>
+    <select id="queryMasterExportList" resultType="com.kmall.admin.entity.OrderEntity">
+        SELECT DISTINCT
+        o.order_sn,
+        o.merch_order_sn,
+        o.order_status,
+        o.actual_price,
+        o.order_biz_type,
+        o.shipping_no,
+        o.shipping_name,
+        o.shipping_code,
+        o.consignee,
+        o.mobile,
+        o.province,
+        o.city,
+        o.district,
+        o.address,
+        o.add_time,
+        o.pay_id,
+        o.pay_status,
+        o.shipping_status,
+        o.is_merge_pay,
+        o.buyer_pay_check,
+        o.order_price,
+        o.moder_sn,
+        o.id,
+        u.username AS username,
+        p.is_payment_send,
+        p.is_ele_order_send,
+        p.is_customs_send,
+        s.store_name,
+        o.full_cut_price,
+        o.camp_minus_id,
+        o.camp_name
+        FROM
+        mall_order o
+        LEFT JOIN mall_user u ON o.user_id = u.id
+        LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
+        left join mall_store s on o.store_id = s.id
+        LEFT JOIN third_merchant_biz t ON t.third_party_merch_code = s.third_party_merch_code
+        LEFT JOIN mall_order_goods g ON o.id = g.order_id
+        LEFT JOIN mall_product_store_rela r ON o.store_id = r.store_id
+        AND r.goods_id = g.goods_id
+        LEFT JOIN mall_goods gs ON g.goods_id = gs.id
+        WHERE 1=1
+        <if test="startTime != null and startTime != ''">
+            AND o.add_time <![CDATA[ >  ]]> #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND o.add_time <![CDATA[ <  ]]> #{endTime}
+        </if>
+        <if test="storeId != null and storeId != ''">
+            AND o.store_id = #{storeId}
+        </if>
+        <if test="sku != null and sku.trim() != ''">
+            AND gs.sku = #{sku}
+        </if>
+        <if test="prodBarcode != null and prodBarcode.trim() != ''">
+            AND gs.prod_barcode = #{prodBarcode}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
+        <if test="thirdMerchSn != null and thirdMerchSn != ''">
+            AND t.third_merch_sn = #{thirdMerchSn}
+        </if>
+        <if test="supplierThirdId != null and supplierThirdId != ''">
+            AND r.supplier_third_id = #{supplierThirdId}
+        </if>
+        <if test="orderBizType != null and orderBizType != ''">
+            AND o.order_biz_type = #{orderBizType}
+        </if>
+        <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
+            AND o.merch_order_sn = #{merchOrderSn}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
+        <if test="orderSn != null and orderSn.trim() != ''">
+            AND o.order_sn LIKE concat('%',#{orderSn},'%')
+        </if>
+        <if test="shippingStatus != null and shippingStatus.trim() != ''">
+            AND o.shipping_status = #{shippingStatus}
+        </if>
+        <if test="payStatus != null and payStatus.trim() != ''">
+            AND o.pay_status = #{payStatus}
+        </if>
+        <if test="orderStatus != null and orderStatus.trim() != ''">
+            AND o.order_status = #{orderStatus}
+        </if>
+        <if test="shippingId != null and shippingId != 0">
+            AND o.shipping_id = #{shippingId}
+        </if>
+        <if test="orderType != null and orderType.trim() != ''">
+            AND o.order_type = #{orderType}
+        </if>
+        <if test="isOnfiilineOrder != null">
+            AND o.is_onffline_order = #{isOnfiilineOrder}
+        </if>
+        <if test="ids != null and ids.trim() != ''">
+            AND o.id in (${ids})
+        </if>
+    </select>
 
 </mapper>

+ 69 - 0
kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml

@@ -766,5 +766,74 @@
         where a.store_id = #{storeId}
 
     </select>
+    <select id="queryExportList" resultType="com.kmall.admin.entity.ProductStoreRelaEntity">
+        select
+        a.`id`,
+        a.`store_id`,
+        a.`merch_sn`,
+        a.`product_id`,
+        a.`stock_num`,
+        a.`goods_id`,
+        a.`retail_price`,
+        a.`market_price`,
+        a.`stock_price`,
+        a.`sell_volume`,
+        a.`batch_sn`,
+        a.`batch_expire_date`,
+        a.`bottom_line_price`,
+        b.goods_number as parkStock,
+        b.is_hot `isHot`,
+        b.is_on_sale `isOnSale`,
+        b.sell_volume `goodsSellVolume`,
+        b.sku,a.goods_biz_type, a.creater_sn, a.create_time, a.moder_sn, a.mod_time, a.tstm,
+        b.goods_sn goodsSn,
+        b.list_pic_url,
+        c.goods_sn productSn,
+        b.name goodsName,
+        cg.name categoryName,
+        s.store_name storeName,
+        m.merch_name,
+        b.merch_sn goods_merch_sn,
+        a.category_id,
+        a.attribute_category,
+        a.brand_id,
+        mall_brand.name as brandName,
+        a.freight_id,
+        b.goods_number goodsNumber,
+        b.third_party_merch_code thirdPartyMerchCode,
+        mb.is_stock_share isStockShare,
+        b.list_pic_url,supplier_third_id, a.hot_sort_num
+        from mall_product_store_rela a
+        left join mall_goods b on a.goods_id = b.id
+        left join third_merchant_biz mb on mb.third_party_merch_code = b.third_party_merch_code and mb.merch_sn=b.merch_sn
+        left join mall_merch m on a.merch_sn = m.merch_sn
+        left join mall_product c on a.product_id = c.id
+        LEFT JOIN mall_category cg ON a.category_id = cg.id
+        left join mall_store s on a.store_id = s.id AND s.third_party_merch_code = b.third_party_merch_code
+        left join mall_brand on a.brand_id=mall_brand.id
+        WHERE 1=1 and b.is_delete = 0
+        <if test="category != null and category != ''">
+            AND a.category_id IN (select id from mall_category where parent_id = #{category})
+        </if>
+        <if test="categoryTwo != null and categoryTwo != ''">
+            AND a.category_id = #{categoryTwo}
+        </if>
+        <if test="storeId != null and storeId != '' ">
+            AND a.store_id = #{storeId}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND b.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
+        <if test="goodsName != null and goodsName != '' ">
+            AND b.name LIKE concat('%',#{goodsName},'%')
+        </if>
+        <if test="goodsSn != null and goodsSn != '' ">
+            AND b.goods_sn = #{goodsSn}
+        </if>
+
+        <if test="goodsBizType != null and goodsBizType != ''">
+            AND b.goods_biz_type = #{goodsBizType}
+        </if>
+    </select>
 
 </mapper>

+ 1 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/goods.html

@@ -117,6 +117,7 @@
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
             <div class="buttons-group" style="width: 100%;margin-top: 8px; padding-left: 10px;">
+                <i-button type="primary" @click="exportGoods"><i class="fa fa-cloud-download"></i>&nbsp;导出</i-button>
                 #if($shiro.hasPermission("goods:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 #end

+ 1 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/offilineOrderList.html

@@ -32,6 +32,7 @@
                 </i-col>-->
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
+                <i-button type="primary" @click="exportOffilineOrder"><i class="fa fa-cloud-download"></i>&nbsp;导出</i-button>
             </div>
            <!-- TODO req_hidden_20200610 #if($shiro.hasPermission("order:wxMicropayPay"))
             <div class="buttons-group">

+ 1 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/storeProductStock.html

@@ -107,6 +107,7 @@
                     </Upload>
                 </i-col>
                 #end-->
+                <i-button type="primary" @click="exportStoreProductStock"><i class="fa fa-cloud-download"></i>&nbsp;导出</i-button>
                 #if($shiro.hasPermission("productstorerela:save"))
                 <i-button type="info" @click="add" v-show="!isSupplierShowByThirdSn||roleType"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 #end

+ 12 - 2
kmall-admin/src/main/webapp/js/shop/goods.js

@@ -151,7 +151,7 @@ var vm = new Vue({
                 {required: true, message: '名称不能为空', trigger: 'blur'}
             ]*/
         },
-        q: {name: '', goodsSn: '', prodBarcode: '',goodsBizType:'', merchSn: '',thirdPartyMerchCode:''},
+        q: {name: '', goodsSn: '', prodBarcode: '',goodsBizType:'', merchSn: '',thirdPartyMerchCode:'',englishName:''},
         attributes: [],
         attributeEntityList: [{'id': '', 'goodsId': '', 'attributeId': '', 'value': '', 'isDelete': 0}],
         productEntityList: [{'id': '', 'goodsId': '', 'goodsSpecificationIds': '', 'goodsSpecificationNameValue': '', 'goodsSn': '', 'goodsNumber': '', 'isDelete': 0, 'goodsDefault': 0}],
@@ -214,7 +214,8 @@ var vm = new Vue({
                 prodBarcode: '',
                 goodsBizType: '',
                 merchSn: '',
-                thirdPartyMerchCode:''
+                thirdPartyMerchCode:'',
+                englishName:''
             }
         },
         query: function () {
@@ -707,6 +708,15 @@ var vm = new Vue({
         //         vm.categories = r.list;
         //     });
         // }
+        exportGoods :function () {
+            var params = {};
+            params.name = vm.q.name, params.englishName = vm.q.englishName, params.plu = vm.q.plu,
+                params.goodsSn = vm.q.goodsSn, params.prodBarcode = vm.q.prodBarcode,
+                params.goodsBizType = vm.q.goodsBizType,params.merchSn = vm.q.merchSn,
+                params.thirdPartyMerchCode = vm.q.thirdPartyMerchCode;
+            exportFile('#rrapp', '../goods/export', params);
+
+        }
     },
     mounted() {
         // this.uploadList = this.$refs.upload.fileList;

+ 6 - 0
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -447,6 +447,12 @@ let vm = new Vue({
                     }
                 });
             });
+        },
+        exportOffilineOrder : function () {
+            var params = {};
+            params.orderSn=vm.q.orderSn,
+                params.orderStatus=vm.q.orderStatus;
+            exportFile('#rrapp', '../order/exportOffilineOrder', params);
         }
     },
     created: function () {

+ 9 - 3
kmall-admin/src/main/webapp/js/shop/order.js

@@ -542,9 +542,15 @@ let vm = new Vue({
         },
         exportOrder: function() {
             var params = {};
-            params.orderSn = vm.q.orderSn, params.orderStatus = vm.q.orderStatus, params.merchOrderSn = vm.q.merchOrderSn
-                , params.startTime = vm.q.startTime, params.endTime = vm.q.endTime, params.storeId = vm.q.storeId,params.payStatus = vm.q.payStatus,
-                params.orderBizType = vm.q.orderBizType,params.sku = vm.q.sku,
+            params.orderSn = vm.q.orderSn,
+                params.orderStatus = vm.q.orderStatus,
+                params.merchOrderSn = vm.q.merchOrderSn,
+                params.startTime = vm.q.startTime,
+                params.endTime = vm.q.endTime,
+                params.storeId = vm.q.storeId,
+                params.payStatus = vm.q.payStatus,
+                params.orderBizType = vm.q.orderBizType,
+                params.sku = vm.q.sku,
                 params.thirdMerchSn=vm.q.thirdMerchSn,
                 params.supplierThirdId=vm.q.supplierThirdId;
 

+ 11 - 1
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -178,7 +178,10 @@ var vm = new Vue({
             storeId: '',
             goodsName: '',
             productSn: '',
-            goodsSn: '', category: '', categoryTwo: '', goodsBizType:'',
+            goodsSn: '',
+            category: '',
+            categoryTwo: '',
+            goodsBizType:'',
             thirdPartyMerchCode:''
         },
         stores: [],
@@ -767,6 +770,13 @@ var vm = new Vue({
                 title: '文件格式不正确',
                 desc: '文件 ' + file.name + ' 格式不正确,请上传 xls 或 xlsx 格式的文件。'
             });
+        },
+        exportStoreProductStock :function () {
+            var params = {};
+            params.storeId = vm.q.storeId, params.goodsName = vm.q.goodsName, params.goodsSn = vm.q.goodsSn,
+                params.category = vm.q.category, params.categoryTwo = vm.q.categoryTwo,
+                params.goodsBizType = vm.q.goodsBizType,params.thirdPartyMerchCode = vm.q.thirdPartyMerchCode;
+            exportFile('#rrapp', '../productstorerela/export', params);
         }
     },
     mounted() {

+ 2 - 1
kmall-common/src/main/java/com/kmall/common/constant/Dict.java

@@ -561,7 +561,8 @@ public class Dict {
      */
     public enum isMergePay {
         item_0("0", "单笔支付"),
-        item_1("1", "合并支付");
+        item_1("1", "合并支付"),
+        item_2("2", "合并支付");
 
         private String item;
         private String itemName;