From d448834784e996a3c35c90097c4e7b110899bed2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 04 Jul 2025 14:02:02 +0800
Subject: [PATCH] feat(clothes): 添加订单管理功能

---
 src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java |  200 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 195 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java
index ba746f5..7d18b56 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java
@@ -4,21 +4,41 @@
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
+import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
+import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
+import cc.mrbird.febs.common.utils.excl.ExcelUtil;
+import cc.mrbird.febs.common.utils.excl.ExcelVersion;
+import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil;
+import cc.mrbird.febs.mall.dto.DeliverGoodsDto;
+import cc.mrbird.febs.mall.dto.clothes.AdminClothesDeliverGoodsDto;
+import cc.mrbird.febs.mall.dto.clothes.AdminClothesOrderListDto;
+import cc.mrbird.febs.mall.dto.clothes.AdminClothesRefundOrderDto;
 import cc.mrbird.febs.mall.dto.clothes.AdminClothesTypeInfoDto;
-import cc.mrbird.febs.mall.dto.memberLevel.AdminMemberLabelAddDto;
-import cc.mrbird.febs.mall.dto.memberLevel.AdminMemberLabelDto;
-import cc.mrbird.febs.mall.dto.memberLevel.AdminMemberLabelUpdateDto;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.service.ClothesTypeService;
-import cc.mrbird.febs.mall.vo.clothes.AdminClothesTypeInfoVo;
-import cc.mrbird.febs.mall.vo.memberLevel.AdminMemberLabelSetDto;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 @Slf4j
@@ -29,6 +49,176 @@
 public class AdminClothesTypeController extends BaseController {
 
     private final ClothesTypeService clothesTypeService;
+
+    /**
+     * 订单列表
+     *
+     * @param dto
+     * @param request
+     * @return
+     */
+    @GetMapping("orderList")
+    public FebsResponse getOrderList(AdminClothesOrderListDto dto, QueryRequest request) {
+        String startTime = dto.getStartTime();
+        String endTime = dto.getEndTime();
+        if(StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){
+            DateTime dateStartTime= DateUtil.parseDate(startTime);
+            DateTime dateEndTime = DateUtil.parseDate(endTime);
+            int compare = DateUtil.compare(dateStartTime, dateEndTime);
+            if(compare >= 0){
+                return new FebsResponse().fail().message("请输入正确的开始时间和结束时间");
+            }
+        }
+        Map<String, Object> data = getDataTable(clothesTypeService.getOrderListInPage(dto, request));
+        return new FebsResponse().success().data(data);
+    }
+
+    /**
+     * 订单列表-发货
+     */
+    @PostMapping("deliverGoods")
+    @ControllerEndpoint(operation = "订单列表-发货", exceptionMessage = "操作失败")
+    public FebsResponse deliverGoods(AdminClothesDeliverGoodsDto dto) {
+
+        return clothesTypeService.deliverGoods(dto);
+    }
+
+    /**
+     * 订单列表-修改物流编号
+     */
+    @PostMapping("deliverGoodsUpdate")
+    @ControllerEndpoint(operation = "订单列表-修改物流编号", exceptionMessage = "操作失败")
+    public FebsResponse deliverGoodsUpdate(@Valid AdminClothesDeliverGoodsDto dto) {
+
+        return clothesTypeService.deliverGoodsUpdate(dto);
+    }
+
+    /**
+     * 订单列表-仅退款
+     */
+
+    @GetMapping("refundOrder/{id}")
+    @ControllerEndpoint(operation = "订单列表-仅退款", exceptionMessage = "仅退款")
+    public FebsResponse refundOrder(@NotNull(message = "{required}") @PathVariable Long id) {
+        AdminClothesRefundOrderDto dto = new AdminClothesRefundOrderDto();
+        dto.setId(id);
+        return clothesTypeService.refundOrder(dto);
+    }
+
+    @GetMapping("confirmOrder/{ids}")
+    @ControllerEndpoint(operation = "订单列表-确认收货", exceptionMessage = "操作失败")
+    public FebsResponse confirmOrder(@NotBlank(message = "{required}") @PathVariable String ids){
+        List<String> List = StrUtil.splitTrim(ids, ",");
+        for(String id : List){
+            long orderId = Long.parseLong(id);
+            clothesTypeService.confirmOrder(orderId);
+        }
+        return new FebsResponse().success();
+    }
+
+    @GetMapping("exportOrderList/{ids}")
+    @ControllerEndpoint(operation = "订单列表", exceptionMessage = "导出失败")
+    public FebsResponse exportOrderList(@NotBlank(message = "{required}") @PathVariable String ids, HttpServletResponse response) throws IOException {
+        List<String> List = StrUtil.splitTrim(ids, ",");
+        if(CollUtil.isNotEmpty( List)){
+            ArrayList<Long> orderIds = new ArrayList<>();
+            for (String id : List){
+                long orderId = Long.parseLong(id);
+                orderIds.add(orderId);
+            }
+            if(CollUtil.isNotEmpty(orderIds)){
+
+                clothesTypeService.exportOrderList(orderIds,response);
+            }
+        }
+        return null;
+    }
+
+    @PostMapping(value = "/importDeliver")
+    @ControllerEndpoint(operation = "导入发货", exceptionMessage = "导入失败")
+    public FebsResponse importDeliver(@RequestBody MultipartFile file) throws IOException {
+        if (file.isEmpty()) {
+            return new FebsResponse().fail();
+        }
+
+        String fileName = file.getOriginalFilename();
+        String dirPath = "/home/javaweb/webresource/clothes/";
+
+        File saveFile = new File(new File(dirPath).getAbsolutePath() + File.separator + fileName);
+        if (!saveFile.exists()) {
+            if (!saveFile.getParentFile().exists()) {
+                saveFile.getParentFile().mkdirs();
+            }
+        }
+
+        file.transferTo(saveFile);
+
+        List<ExcelSheetPO> data = ExcelUtil.readExcel(saveFile, null, null);
+        if (CollUtil.isEmpty(data)) {
+            return new FebsResponse().fail();
+        }
+
+        List<List<Object>> dataList = data.get(0).getDataList();
+
+        int orderIdNoIndex = -1;
+        int expressNoIndex = -1;
+        int expressComIndex = -1;
+        int expressCodeIndex = -1;
+        for (int i = 1; i < dataList.size(); i++) {
+            List<Object> objects = dataList.get(i);
+
+            String orderId = "";
+            String expressNo = "";
+            String expressCode = "";
+            String expressCom = "";
+            for (int j = 0; j < objects.size(); j++) {
+                Object obj = objects.get(j);
+                if ("订单ID".equals(obj)) {
+                    orderIdNoIndex = j;
+                }
+                if ("物流单号".equals(obj)) {
+                    expressNoIndex = j;
+                }
+
+                if ("物流公司".equals(obj)) {
+                    expressComIndex = j;
+                }
+
+                if ("物流公司码".equals(obj)) {
+                    expressCodeIndex = j;
+                }
+
+                if (j == orderIdNoIndex) {
+                    orderId = (String) objects.get(j);
+                }
+
+
+                if (j == expressNoIndex) {
+                    expressNo = (String) objects.get(j);
+                }
+
+                if (j == expressComIndex) {
+                    expressCom = (String) objects.get(j);
+                }
+
+                if (j == expressCodeIndex) {
+                    expressCode = (String) objects.get(j);;
+                }
+
+            }
+
+            if (StrUtil.isNotBlank(expressNo) && StrUtil.isNotBlank(expressCode) && StrUtil.isNotBlank(expressCom)) {
+                AdminClothesDeliverGoodsDto dto = new AdminClothesDeliverGoodsDto();
+                dto.setId(Long.parseLong(orderId));
+                dto.setExpressCom(expressCom);
+                dto.setExpressCode(expressCode);
+                dto.setExpressNo(expressNo);
+                clothesTypeService.deliverGoodsImport(dto);
+            }
+        }
+        return new FebsResponse().success();
+    }
+
     /**
      * 分类列表
      * @return

--
Gitblit v1.9.1