瀏覽代碼

商城订单导入

zouxuan 2 年之前
父節點
當前提交
a14cc74f3b

+ 7 - 15
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/ExportController.java

@@ -26,22 +26,14 @@ public class ExportController {
 
     @ApiOperation("订单详情")
     @RequestMapping(value = "/orderDetail", method = RequestMethod.POST)
-    public CommonResult<CommonPage<OrderVo>> orderDetail(@RequestBody OmsOrderQueryParam queryParam, HttpServletResponse response) throws IOException {
+    public void orderDetail(@RequestBody OmsOrderQueryParam queryParam, HttpServletResponse response) throws IOException {
         List<OrderDetailVo> orderList = orderService.queryOrderDetail(queryParam);
-        // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
-        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        // 设置文本内省
+        response.setContentType("application/vnd.ms-excel");
+        // 设置字符编码
         response.setCharacterEncoding("utf-8");
-        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
-        //"测试":就是我们要生成文档的名称,可以改为自己的
-        String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
-        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
-        EasyExcel.write(response.getOutputStream(), DownloadData.class).sheet("模板").doWrite(data());
-        /**
-         * DownloadData.class:导出数据类型
-         * .doWrite(data):导出数据来源,比如RecordService.getTodayRecord(),可以从我们自己
-         *写的方法中获取
-         * .sheet():文件内标题,可以换成自己的
-         */
-        return CommonResult.success(CommonPage.restPage(orderList));
+        // 设置响应头
+        response.setHeader("Content-disposition", "attachment;filename=demo.xlsx");
+        EasyExcel.write(response.getOutputStream(), OrderDetailVo.class).sheet("订单详情").doWrite(orderList);
     }
 }

+ 2 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderDao.java

@@ -46,4 +46,6 @@ public interface OmsOrderDao {
      */
     List<OrderStatistical> selectOrderCountAndAmount(@Param("startTime") Date startTime, @Param("endTime") Date endTime,
                                                      @Param("dateFormat") String dateFormat);
+
+    List<OrderDetailVo> queryOrderDetail(@Param("param") OmsOrderQueryParam queryParam);
 }

+ 20 - 20
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OrderDetailVo.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.admin.dto;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.yonge.cooleshow.admin.enums.OpenTypeEnum;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -10,60 +10,60 @@ import java.util.Date;
 @Data
 public class OrderDetailVo{
 
-    @ApiModelProperty("分部")
+    @ExcelProperty("分部")
     private String organName;
 
-    @ApiModelProperty("用户编号")
+    @ExcelProperty("用户编号")
     private Integer memberId;
 
-    @ApiModelProperty("用户姓名")
+    @ExcelProperty("用户姓名")
     private String memberUsername;
 
-    @ApiModelProperty("交易流水号")
+    @ExcelProperty("交易流水号")
     private String transNo;
 
-    @ApiModelProperty("订单号")
+    @ExcelProperty("订单号")
     private String orderSn;
 
-    @ApiModelProperty("收款渠道")
+    @ExcelProperty(value = "收款渠道")
     private OpenTypeEnum openType;
 
-    @ApiModelProperty("收款账户")
+    @ExcelProperty("收款账户")
     private String merNo;
 
-    @ApiModelProperty("订单金额")
+    @ExcelProperty("订单金额")
     private BigDecimal expectAmount;
 
-    @ApiModelProperty("到账时间")
+    @ExcelProperty("到账时间")
     private Date paymentType;
 
-    @ApiModelProperty("商品货号")
+    @ExcelProperty("商品货号")
     private String productSn;
 
-    @ApiModelProperty("购买商品")
+    @ExcelProperty("购买商品")
     private String productName;
 
-    @ApiModelProperty("商品规格")
+    @ExcelProperty("商品规格")
     private String productSpecification;
 
-    @ApiModelProperty("数量")
+    @ExcelProperty("数量")
     private Integer productQuantity;
 
-    @ApiModelProperty("收件人")
+    @ExcelProperty("收件人")
     private String receiverName;
 
-    @ApiModelProperty("电话")
+    @ExcelProperty("电话")
     private String receiverPhone;
 
-    @ApiModelProperty("地址")
+    @ExcelProperty("地址")
     private String receiverDetailAddress;
 
-    @ApiModelProperty("物流")
+    @ExcelProperty("物流")
     private String deliveryCompany;
 
-    @ApiModelProperty("单号")
+    @ExcelProperty("单号")
     private String deliverySn;
 
-    @ApiModelProperty("备注")
+    @ExcelProperty("备注")
     private String note;
 }

+ 2 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/OmsOrderService.java

@@ -90,4 +90,6 @@ public interface OmsOrderService {
      * @return
      */
     HomeOrderStatistical orderStatistical(OrderStatisticalSearch search);
+
+    List<OrderDetailVo> queryOrderDetail(OmsOrderQueryParam queryParam);
 }

+ 5 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderServiceImpl.java

@@ -345,6 +345,11 @@ public class OmsOrderServiceImpl implements OmsOrderService {
 
     }
 
+    @Override
+    public List<OrderDetailVo> queryOrderDetail(OmsOrderQueryParam queryParam) {
+        return orderDao.queryOrderDetail(queryParam);
+    }
+
     private Integer getProportion(BigDecimal now, BigDecimal last) {
         if (now.compareTo(BigDecimal.ZERO) == 0) {
             if(last.compareTo(BigDecimal.ZERO) == 0) {

+ 38 - 0
mec-mall/mall-admin/src/main/resources/config/mybatis/OmsOrderDao.xml

@@ -181,4 +181,42 @@
             </when>
         </choose>
     </select>
+    <select id="queryOrderDetail" resultType="com.yonge.cooleshow.admin.dto.OrderDetailVo">
+        select o.name_ organName,oo.member_id memberId,oo.member_username memberUsername,spo.trans_no_ transNo,oo.order_sn orderSn,
+               uop.open_type_ openType,spo.mer_nos_ merNos,spo.expect_amount_ expectAmount,oo.payment_time paymentTime,
+               pp.product_sn productSn,ooi.product_name productName,ooi.product_quantity productQuantity,oo.receiver_name receiverName,oo.receiver_phone receiverPhone,
+               CONCAT(oo.receiver_province,oo.receiver_city,oo.receiver_region,oo.receiver_detail_address) receiver_detail_address receiverDetailAddress,
+               oo.delivery_company deliveryCompany,oo.delivery_sn deliverySn,oo.note
+        from oms_order oo
+                 left join mec_dev.student_payment_order spo ON spo.order_no_ = oo.order_sn
+                 left join mec_dev.organization o ON o.id_ = spo.organ_id_
+                 left join user_order_payment uop ON uop.order_no_ = oo.order_sn AND uop.status_ = 'succeeded'
+                 left join oms_order_item ooi ON ooi.order_id = oo.id
+                 left join pms_product pp ON pp.id = ooi.product_sku_id
+        <where>
+            oo.delete_status = 0
+            <if test="queryParam.orderSn!=null and queryParam.orderSn!=''">
+                AND oo.order_sn = #{queryParam.orderSn}
+            </if>
+            <if test="queryParam.status!=null">
+                AND oo.`status` = #{queryParam.status}
+            </if>
+            <if test="queryParam.sourceType!=null">
+                AND oo.source_type = #{queryParam.sourceType}
+            </if>
+            <if test="queryParam.orderType!=null">
+                AND oo.order_type = #{queryParam.orderType}
+            </if>
+            <if test="queryParam.createTime!=null and queryParam.createTime!=''">
+                AND oo.create_time LIKE concat(#{queryParam.createTime},"%")
+            </if>
+            <if test="queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''">
+                AND (
+                oo.receiver_name LIKE concat("%",#{queryParam.receiverKeyword},"%")
+                OR o.receiver_phone LIKE concat("%",#{queryParam.receiverKeyword},"%")
+                )
+            </if>
+        </where>
+        order by oo.id desc
+    </select>
 </mapper>