Pārlūkot izejas kodu

商城订单导出

zouxuan 2 gadi atpakaļ
vecāks
revīzija
ef0e78daf0

+ 5 - 0
mec-mall/mall-admin/pom.xml

@@ -44,6 +44,11 @@
             <version>20.0</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.2.1</version>
+        </dependency>
 
 
     </dependencies>

+ 47 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/ExportController.java

@@ -0,0 +1,47 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.yonge.cooleshow.admin.dto.*;
+import com.yonge.cooleshow.admin.service.OmsOrderService;
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.List;
+
+@RestController
+@Api(tags = "数据导出服务")
+@RequestMapping("/export")
+public class ExportController {
+    @Autowired
+    private OmsOrderService orderService;
+
+    @ApiOperation("订单详情")
+    @RequestMapping(value = "/orderDetail", method = RequestMethod.POST)
+    public CommonResult<CommonPage<OrderVo>> 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.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));
+    }
+}

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

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

+ 21 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/enums/OpenTypeEnum.java

@@ -0,0 +1,21 @@
+package com.yonge.cooleshow.admin.enums;
+
+public enum OpenTypeEnum {
+    ORIGINAL("微信支付宝"),
+    ADAPAY("汇付"),
+    ;
+
+    private String msg;
+
+    OpenTypeEnum(String msg) {
+        this.msg = msg;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}