From b14befec1ef345d88a04da3ca1e10a006a7862e5 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期一, 30 九月 2024 16:04:17 +0800
Subject: [PATCH] add:订单列表导出

---
 src/main/java/com/mzl/flower/service/payment/OrderService.java |   78 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 74 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java
index 64182c8..e4c422f 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -51,6 +51,7 @@
 import com.mzl.flower.service.system.CodeService;
 import com.mzl.flower.service.system.WeChatService;
 import com.mzl.flower.service.transport.TransportService;
+import com.mzl.flower.utils.ExcelExportUtil;
 import com.mzl.flower.utils.UUIDGenerator;
 import com.wechat.pay.java.core.util.GsonUtil;
 import io.micrometer.core.instrument.util.StringUtils;
@@ -63,8 +64,10 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.net.URLEncoder;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -496,7 +499,7 @@
         order.setMemberName(p.getMemberName());
         order.setMemberDiscountType(p.getMemberDiscountType());
         order.setMemberDiscountRatio(p.getMemberDiscountRatio());
-        order.setMemberCouponAmount(p.getMemberDiscountAmount());
+        order.setMemberDiscountAmount(p.getMemberDiscountAmount());
 
         order.setFlowerAmount(p.getTotalMemberAmount());//使用会员价总价
         order.setPackingFee(p.getPacking());
@@ -1426,15 +1429,15 @@
             deductAmount = deductAmount.add(a.getDeductAmount());
         }
 
+        o.setTransferTime(LocalDateTime.now());
+        o.update(SecurityUtils.getUserId());
+
         transferId = "NoNeedRefund";
         if (deductAmount.doubleValue() > 0) {
             transferId = paymentV3Service.refundOrderSub(o, deductAmount);
         }
         o.setTransferId(transferId);
-        o.setTransferTime(LocalDateTime.now());
-        o.update(SecurityUtils.getUserId());
         orderMapper.updateById(o);
-
     }
 
     public void processLevelDown(OrderReduceDTO dto) {
@@ -1685,4 +1688,71 @@
         return sb.toString();
 
     }
+
+    public void operationUpdate(OrderAddressUpdateDTO dto) {
+        if (StringUtils.isBlank(dto.getId())) {
+            throw new ValidationException("id不能为空");
+        }
+        Order order = orderMapper.selectById(dto.getId());
+        if (ObjectUtils.isEmpty(order)) {
+            throw new ValidationException("订单不存在");
+        }
+        if (StringUtils.isBlank(dto.getCustomerAddress()) || StringUtils.isBlank(dto.getCustomerCity()) || StringUtils.isBlank(dto.getCustomerProvince()) || StringUtils.isBlank(dto.getCustomerRegion())) {
+            throw new ValidationException("地址信息不能为空");
+        }
+        if (StringUtils.isBlank(dto.getCustomerTel())) {
+            throw new ValidationException("联系方式不能为空");
+        }
+        BeanUtils.copyProperties(dto, order);
+        order.update(SecurityUtils.getUserId());
+        orderMapper.updateById(order);
+    }
+
+    private List<OrderListExportDTO> getOrderExportListBase(OrderQueryDTO dto) {
+        dto.setStartDate(parseLocalDateTime(dto.getStartDateStr(), true));
+        dto.setEndDate(parseLocalDateTime(dto.getEndDateStr(), false));
+        dto.setCreateStartDate(parseLocalDateTime(dto.getCreateStartDateStr(), 17, 0, 0, -1));
+        dto.setCreateEndDate(parseLocalDateTime(dto.getCreateEndDateStr(), 17, 0, 0, 0));
+        List<OrderListExportDTO> ls = orderMapper.selectOrderExportList(dto);
+        return ls;
+    }
+
+    public void exportOrderDetail(HttpServletResponse response, OrderQueryDTO dto) {
+        List<OrderListExportDTO> ls = getOrderExportListBase( dto);
+        String[] rowsName = new String[]{"序号","订单号", "用户账号", "收货人", "收货人电话", "收获地址", "订单金额"
+                , "底价", "订单状态", "下单时间", "合伙人", "库位", "特殊需求", "备注"};
+        List<Object[]> dataList = new ArrayList<>();
+        int sn = 1;
+        for (OrderListExportDTO o : ls) {
+            Object[] objs = new Object[rowsName.length];
+            int a = 0;
+            objs[a++] = sn;
+            objs[a++] = o.getOrderNo();
+            objs[a++] = o.getCreateName();
+            objs[a++] = o.getCustomer();
+            objs[a++] = o.getCustomerTel();
+            objs[a++] = o.getCustomerAddress();
+            objs[a++] = o.getTotalAmount();
+            objs[a++] = o.getSupplierAmount();
+            objs[a++] = o.getStatusBackendStr();
+            objs[a++] = o.getCreateTime();
+            objs[a++] = o.getPartnerName();
+            objs[a++] = o.getWarehouseLocationCode();
+            objs[a++] = o.getSpecialNeedsStr();
+            objs[a++] = o.getRemarks();
+            dataList.add(objs);
+
+            sn++;
+        }
+        ExcelExportUtil excelExportUtil = new ExcelExportUtil("订单列表", rowsName, dataList, response);
+        try {
+            response.addHeader("filename", URLEncoder.encode("订单列表.xls", "UTF-8"));
+            response.addHeader("Access-Control-Expose-Headers", "filename");
+            excelExportUtil.export();
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+
+    }
+
 }

--
Gitblit v1.9.3