Browse Source

feat: 售后修复

xdd 4 days ago
parent
commit
1219ccff15

+ 1 - 1
fs-service-system/src/main/java/com/fs/erp/http/JstErpHttpService.java

@@ -59,5 +59,5 @@ public interface JstErpHttpService {
      * @param dto 请求参数
      * @return CommonResponse
      */
-    CommonResponse cacel(OrderCancelRequestDTO dto);
+    CommonResponse cancel(OrderCancelRequestDTO dto);
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/erp/http/JstErpHttpServiceImpl.java

@@ -84,7 +84,7 @@ public class JstErpHttpServiceImpl implements JstErpHttpService {
     }
 
     @Override
-    public CommonResponse cacel(OrderCancelRequestDTO dto) {
+    public CommonResponse cancel(OrderCancelRequestDTO dto) {
         String url = BASE_URL + "/open/jushuitan/orderbyoid/cancel";
         log.info("取消订单 - URL: {}, 请求体: {}", url, JSON.toJSONString(dto));
 

+ 142 - 6
fs-service-system/src/main/java/com/fs/erp/service/impl/JSTErpOrderServiceImpl.java

@@ -1,18 +1,20 @@
 package com.fs.erp.service.impl;
 
 import com.fs.erp.constant.OrderStatusEnum;
-import com.fs.erp.domain.ErpOrder;
-import com.fs.erp.domain.ErpOrderItem;
-import com.fs.erp.domain.ErpOrderPayment;
-import com.fs.erp.domain.ErpRefundOrder;
+import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
 import com.fs.erp.http.JstErpHttpService;
 import com.fs.erp.service.IErpOrderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class JSTErpOrderServiceImpl implements IErpOrderService {
@@ -97,11 +99,145 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
 
     @Override
     public ErpOrderQueryResponse getOrder(ErpOrderQueryRequert param) {
-        return null;
+        // 1. 构建查询请求DTO
+        OrderQueryRequestDTO requestDTO = new OrderQueryRequestDTO();
+        requestDTO.setOIds(Collections.singletonList(Long.valueOf(param.getCode())));
+
+        // 2. 调用ERP服务查询订单
+        OrderQueryResponseDTO query = jstErpHttpService.query(requestDTO);
+
+        // 3. 构建响应对象
+        ErpOrderQueryResponse response = new ErpOrderQueryResponse();
+
+        // 4. 设置基本响应信息
+
+        // 5. 转换订单数据
+        if (query.getOrders() != null && !query.getOrders().isEmpty()) {
+            List<ErpOrderQuery> erpOrders = query.getOrders().stream()
+                    .map(this::convertToErpOrderQuery)
+                    .collect(Collectors.toList());
+
+            response.setOrders(erpOrders);
+        } else {
+            response.setOrders(Collections.emptyList());
+        }
+
+        return response;
+    }
+
+    /**
+     * 将OrderQueryResponseDTO.Order转换为ErpOrderQuery
+     *
+     * @param order 订单数据
+     * @return ErpOrderQuery 转换后的订单数据
+     */
+    private ErpOrderQuery convertToErpOrderQuery(OrderQueryResponseDTO.Order order) {
+        ErpOrderQuery erpOrder = new ErpOrderQuery();
+
+        // 设置基本订单信息
+        erpOrder.setCode(order.getSoId());
+
+        // 计算订单总数量
+        if (order.getItems() != null && !order.getItems().isEmpty()) {
+            int totalQty = order.getItems().stream()
+                    .mapToInt(OrderQueryResponseDTO.OrderItem::getQty)
+                    .sum();
+            erpOrder.setQty(totalQty);
+        }
+
+        // 设置金额相关信息
+        erpOrder.setAmount(order.getAmount() != null ? order.getAmount().doubleValue() : null);
+        erpOrder.setPayment(order.getPaidAmount() != null ? order.getPaidAmount().doubleValue() : null);
+
+        // 设置其他订单属性
+        erpOrder.setCod(order.getIsCod());
+        erpOrder.setPlatform_code(order.getOrderFrom());
+
+        // 尝试解析创建时间
+        try {
+            if (order.getCreated() != null) {
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                erpOrder.setCreatetime(formatter.parse(order.getCreated()));
+            }
+        } catch (Exception e) {
+            // 日期解析异常处理
+            // 可以记录日志或保持为null
+        }
+
+        // 设置店铺信息
+        erpOrder.setShop_name(order.getShopName());
+        erpOrder.setShop_code(String.valueOf(order.getShopId()));
+
+        // 设置物流信息
+        erpOrder.setExpress_name(order.getLogisticsCompany());
+        erpOrder.setExpress_code(order.getLcId());
+
+        // 设置收件人信息
+        erpOrder.setReceiver_name(order.getReceiverName());
+        erpOrder.setReceiver_phone(order.getReceiverPhone());
+        erpOrder.setReceiver_mobile(order.getReceiverMobile());
+
+        // 构建完整地址
+        StringBuilder addressBuilder = new StringBuilder();
+        if (StringUtils.hasText(order.getReceiverAddress())) {
+            addressBuilder.append(order.getReceiverAddress());
+        }
+        if (StringUtils.hasText(order.getReceiverDistrict())) {
+            if (addressBuilder.length() > 0) addressBuilder.append(", ");
+            addressBuilder.append(order.getReceiverDistrict());
+        }
+        if (StringUtils.hasText(order.getReceiverCity())) {
+            if (addressBuilder.length() > 0) addressBuilder.append(", ");
+            addressBuilder.append(order.getReceiverCity());
+        }
+        if (StringUtils.hasText(order.getReceiverState())) {
+            if (addressBuilder.length() > 0) addressBuilder.append(", ");
+            addressBuilder.append(order.getReceiverState());
+        }
+        if (StringUtils.hasText(order.getReceiverCountry())) {
+            if (addressBuilder.length() > 0) addressBuilder.append(", ");
+            addressBuilder.append(order.getReceiverCountry());
+        }
+        if (StringUtils.hasText(order.getReceiverZip())) {
+            if (addressBuilder.length() > 0) addressBuilder.append(" ");
+            addressBuilder.append(order.getReceiverZip());
+        }
+        erpOrder.setReceiver_address(addressBuilder.toString());
+
+        // 处理发货相关信息
+        if (order.getShipment() != null && StringUtils.hasText(order.getShipment())) {
+            List<ErpDeliverys> deliverysList = new ArrayList<>();
+
+            ErpDeliverys delivery = new ErpDeliverys();
+            delivery.setMail_no(order.getShipment());
+            delivery.setExpress_code(order.getLcId());
+            delivery.setExpress_name(order.getLogisticsCompany());
+            delivery.setDelivery(true); // 假设有物流单号就是已发货状态
+            delivery.setCode(order.getSoId());
+
+            deliverysList.add(delivery);
+            erpOrder.setDeliverys(deliverysList);
+
+            // 设置发货状态,假设有物流单号就是已发货状态
+            erpOrder.setDelivery_state(1);
+        } else {
+            erpOrder.setDelivery_state(0);
+        }
+
+        return erpOrder;
     }
 
     @Override
     public BaseResponse refundUpdate(ErpRefundUpdateRequest param) {
-        return null;
+        OrderCancelRequestDTO requestDTO = new OrderCancelRequestDTO();
+        requestDTO.setOIds(Collections.singletonList(Integer.valueOf(param.getTid())));
+        requestDTO.setCancelType("用户退款");
+        requestDTO.setRemark("用户退款");
+        jstErpHttpService.cancel(requestDTO);
+
+        BaseResponse baseResponse = new BaseResponse();
+        baseResponse.setSuccess(true);
+
+        return baseResponse;
     }
 }