Browse Source

feat: 售后修复

xdd 2 days ago
parent
commit
98ccbdd1dd

+ 72 - 0
fs-service-system/src/main/java/com/fs/erp/domain/FsJstAftersalePush.java

@@ -0,0 +1,72 @@
+package com.fs.erp.domain;
+
+import lombok.Data;
+import lombok.Builder;
+import lombok.NoArgsConstructor;
+import lombok.AllArgsConstructor;
+import java.time.LocalDateTime;
+
+/**
+ * 订阅物流
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class FsJstAftersalePush {
+
+    /**
+     * 主键,自增
+     */
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    private String orderId;
+
+    /**
+     * 0推单 1确认
+     */
+    private String type;
+
+    /**
+     * 任务状态:0-待处理,1-成功,2-失败,3-正在处理,4-已取消
+     */
+    private Byte taskStatus;
+
+    /**
+     * 重试次数,默认为 0
+     */
+    private Integer retryCount;
+
+    /**
+     * 上次执行时间,用于记录任务执行的最后时间
+     */
+    private LocalDateTime lastExecuteTime;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 记录更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 调用接口时传入的参数(JSON 格式)
+     */
+    private String params;
+
+    /**
+     * 调用接口返回的结果(JSON 格式)
+     */
+    private String result;
+
+    /**
+     * 错误信息(记录失败原因)
+     */
+    private String errorMessage;
+}

+ 54 - 0
fs-service-system/src/main/java/com/fs/erp/mapper/FsJstAftersalePushMapper.java

@@ -0,0 +1,54 @@
+package com.fs.erp.mapper;
+
+import com.fs.erp.domain.FsJstAftersalePush;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+
+/**
+ * 订阅物流Mapper
+ */
+@Mapper
+public interface FsJstAftersalePushMapper {
+
+    /**
+     * 根据ID查询
+     */
+    @Select("SELECT * FROM fs_jst_aftersale_push WHERE id = #{id}")
+    FsJstAftersalePush selectById(Long id);
+
+    /**
+     * 根据订单ID查询
+     */
+    @Select("SELECT * FROM fs_jst_aftersale_push WHERE order_id = #{orderId}")
+    FsJstAftersalePush selectByOrderId(String orderId);
+
+    /**
+     * 查询待处理的任务
+     */
+    @Select("SELECT * FROM fs_jst_aftersale_push WHERE task_status = #{status} AND retry_count < #{maxRetry} LIMIT #{limit}")
+    List<FsJstAftersalePush> selectByStatusAndRetry(Byte status, Integer maxRetry, Integer limit);
+
+    /**
+     * 插入记录
+     */
+    @Insert("INSERT INTO fs_jst_aftersale_push(order_id, type, task_status, retry_count, last_execute_time, params) " +
+            "VALUES(#{orderId}, #{type}, #{taskStatus}, #{retryCount}, #{lastExecuteTime}, #{params})")
+    @Options(useGeneratedKeys = true, keyProperty = "id")
+    int insert(FsJstAftersalePush push);
+
+    /**
+     * 更新记录
+     */
+    @Update("UPDATE fs_jst_aftersale_push SET task_status = #{taskStatus}, retry_count = #{retryCount}, " +
+            "last_execute_time = #{lastExecuteTime}, result = #{result}, error_message = #{errorMessage} " +
+            "WHERE id = #{id}")
+    int update(FsJstAftersalePush push);
+
+    /**
+     * 更新任务状态
+     */
+    @Update("UPDATE fs_jst_aftersale_push SET task_status = #{taskStatus}, " +
+            "last_execute_time = now() WHERE id = #{id}")
+    int updateStatus(@Param("id") Long id, @Param("taskStatus") Byte taskStatus);
+}