Przeglądaj źródła

feat: 售后修复

xdd 2 dni temu
rodzic
commit
55a350baef

+ 45 - 0
fs-service-system/src/main/java/com/fs/erp/dto/AfterSaleConfirmRequestDTO.java

@@ -0,0 +1,45 @@
+package com.fs.erp.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+
+import java.util.List;
+import java.io.Serializable;
+
+/**
+ * 售后确认请求DTO
+ *
+ * @author xdd
+ * @version 1.0
+ * @since 2025-02-27
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AfterSaleConfirmRequestDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 售后单id数组
+     */
+    private List<Long> asIds;
+
+    /**
+     * 售后单id
+     */
+    private Long number;
+
+    /**
+     * 换货售后单是否强制确认
+     */
+    private Boolean exchangeForce;
+
+    /**
+     * 是否同步确认退款单
+     */
+    private Boolean confirmRefund;
+}

+ 69 - 0
fs-service-system/src/main/java/com/fs/erp/dto/AfterSaleResponseDTO.java

@@ -0,0 +1,69 @@
+package com.fs.erp.dto;
+
+import lombok.Data;
+import lombok.Builder;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 售后单响应DTO
+ *
+ * @author xdd
+ * @version 1.0
+ * @since 2025-02-27
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AfterSaleResponseDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 响应消息
+     */
+    private String msg;
+
+    /**
+     * 售后单ID
+     */
+    private Long asId;
+
+    /**
+     * 是否成功
+     */
+    private Boolean issuccess;
+
+    /**
+     * 订单号
+     */
+    private String soId;
+
+    /**
+     * 外部售后单号
+     */
+    private String outerAsId;
+
+    /**
+     * 订单ID
+     */
+    private Long oId;
+
+    /**
+     * ID
+     */
+    private Long id;
+
+    /**
+     * 订单类型
+     */
+    private String orderType;
+
+    /**
+     * 订单授权ID
+     */
+    private String oaid;
+}

+ 45 - 0
fs-service-system/src/main/java/com/fs/erp/dto/AssetProcessDetailDTO.java

@@ -0,0 +1,45 @@
+package com.fs.erp.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 资产处理详情对象
+ *
+ * @author xdd
+ * @date 2025-02-27
+ * @version 1.0
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AssetProcessDetailDTO {
+
+    /**
+     * 资产ID
+     */
+    private Long asId;
+
+    /**
+     * 外部资产ID
+     */
+    private String outerAsId;
+
+    /**
+     * 处理详情
+     */
+    private String details;
+
+    /**
+     * 处理消息
+     */
+    private String message;
+
+    /**
+     * 是否处理成功
+     */
+    private Boolean isSuccess;
+}

+ 39 - 0
fs-service-system/src/main/java/com/fs/erp/dto/AssetProcessResultDTO.java

@@ -0,0 +1,39 @@
+package com.fs.erp.dto;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import java.util.List;
+/**
+ * 资产处理结果响应对象
+ *
+ * @author xdd
+ * @date 2025-02-27
+ * @version 1.0
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AssetProcessResultDTO {
+
+    /**
+     * 处理失败的资产列表
+     */
+    private List<AssetProcessDetailDTO> fail;
+
+    /**
+     * 处理成功的资产列表
+     */
+    private List<AssetProcessDetailDTO> success;
+
+    /**
+     * 成功处理的资产数量
+     */
+    private Integer successCount;
+
+    /**
+     * 处理失败的资产数量
+     */
+    private Integer failCount;
+}

+ 65 - 0
fs-service-system/src/main/java/com/fs/erp/dto/RefundItemDTO.java

@@ -0,0 +1,65 @@
+package com.fs.erp.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 退货商品DTO
+ *
+ * @author xdd
+ * @version 1.0
+ * @since 2025-02-27
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+class RefundItemDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 商品金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 商品属性
+     */
+    private String propertiesValue;
+
+    /**
+     * 商品数量
+     */
+    private Integer qty;
+
+    /**
+     * 商品名称
+     */
+    private String name;
+
+    /**
+     * 商品SKU ID
+     */
+    private String skuId;
+
+    /**
+     * 商品图片
+     */
+    private String pic;
+
+    /**
+     * 退货类型
+     */
+    private String type;
+
+    /**
+     * 外部订单项ID
+     */
+    private String outerOiId;
+}

+ 98 - 0
fs-service-system/src/main/java/com/fs/erp/dto/RefundOrderDTO.java

@@ -0,0 +1,98 @@
+package com.fs.erp.dto;
+
+import lombok.Data;
+import lombok.Builder;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+
+import java.util.List;
+import java.math.BigDecimal;
+import java.io.Serializable;
+
+/**
+ * 退货单DTO
+ *
+ * @author xdd
+ * @version 1.0
+ * @since 2025-02-27
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class RefundOrderDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 店铺状态
+     */
+    private String shopStatus;
+
+    /**
+     * 问题类型
+     */
+    private String questionType;
+
+    /**
+     * 外部售后ID
+     */
+    private String outerAsId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 退货类型
+     */
+    private String type;
+
+    /**
+     * 商品状态
+     */
+    private String goodStatus;
+
+    /**
+     * 店铺ID
+     */
+    private Long shopId;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 订单号
+     */
+    private String soId;
+
+    /**
+     * 物流公司
+     */
+    private String logisticsCompany;
+
+    /**
+     * 支付金额
+     */
+    private BigDecimal payment;
+
+    /**
+     * 物流ID
+     */
+    private String lId;
+
+    /**
+     * 退款金额
+     */
+    private BigDecimal refund;
+
+    /**
+     * 退货商品列表
+     */
+    private List<RefundItemDTO> items;
+}
+
+

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

@@ -60,4 +60,19 @@ public interface JstErpHttpService {
      * @return CommonResponse
      */
     CommonResponse cancel(OrderCancelRequestDTO dto);
+
+    /**
+     * 售后上传
+     * @param dto 请求参数
+     * @return CommonResponse<AfterSaleResponseDTO>
+     */
+    CommonResponse<AfterSaleResponseDTO> aftersaleUpload(RefundOrderDTO dto);
+
+    /**
+     * 售后单确认
+     * @param dto 请求参数
+     * @return CommonResponse<AssetProcessResultDTO>
+     */
+    CommonResponse<AssetProcessResultDTO> aftersaleConfirm(AfterSaleConfirmRequestDTO dto);
+
 }

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

@@ -111,6 +111,27 @@ public class JstErpHttpServiceImpl implements JstErpHttpService {
         // 这里直接返回CommonResponse类型
         return parseCommonResponse(response);
     }
+
+    @Override
+    public CommonResponse<AfterSaleResponseDTO> aftersaleUpload(RefundOrderDTO dto) {
+        String url = BASE_URL + "/open/aftersale/upload";
+        log.info("售后上传 - URL: {}, 请求体: {}", url, JSON.toJSONString(dto));
+
+        HttpResponse response = executeJsonPost(url, dto);
+        // 这里直接返回CommonResponse类型
+        return parseCommonResponse(response);
+    }
+
+    @Override
+    public CommonResponse<AssetProcessResultDTO> aftersaleConfirm(AfterSaleConfirmRequestDTO dto) {
+        String url = BASE_URL + "/open/webapi/aftersaleapi/open/confirm";
+        log.info("售后单确认 - URL: {}, 请求体: {}", url, JSON.toJSONString(dto));
+
+        HttpResponse response = executeJsonPost(url, dto);
+        // 这里直接返回CommonResponse类型
+        return parseCommonResponse(response);
+    }
+
     /**
      * 执行JSON格式的POST请求
      *

+ 1 - 0
fs-service-system/src/main/resources/application-config.yml

@@ -54,6 +54,7 @@ jst:
   app_key: bd7a7d06a6d54377842f883f9a4c502a
   app_secret: 1d112cb9d21d41e187ff824b5852f4cf
   authorization_code: zzzzzz
+  shop_code: "18461733"
 logging:
   level:
     org.springframework.web: INFO