From 87d725aa16dcdcdd19f28cd3f3f162e950fd1d2f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 十一月 2026 09:13:20 +0800
Subject: [PATCH] feat(aftersales): 工单助手 App 闭环(签到/转派/升级/处理记录/进度/统计)
---
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketService.java | 74 +++++++++++++++++++++++++++++++++---
1 files changed, 67 insertions(+), 7 deletions(-)
diff --git a/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketService.java b/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketService.java
index 7c3a9d0..f4e7840 100644
--- a/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketService.java
+++ b/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketService.java
@@ -1,10 +1,16 @@
package cn.iocoder.yudao.module.aftersales.service.ticket;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketEscalateReqVO;
+import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketHandleReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketPageReqVO;
import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketSaveReqVO;
+import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketSignInReqVO;
+import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketStatisticsRespVO;
+import cn.iocoder.yudao.module.aftersales.controller.admin.ticket.vo.ticket.AfterSaleTicketTransferReqVO;
import cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketDO;
import cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketItemDO;
+import cn.iocoder.yudao.module.aftersales.dal.dataobject.ticket.AfterSaleTicketLogDO;
import jakarta.validation.Valid;
import java.util.Collection;
@@ -74,10 +80,11 @@
/**
* 鍒嗛厤澶勭悊浜�
*
- * @param id 宸ュ崟缂栧彿
- * @param handlerUserId 澶勭悊浜虹敤鎴风紪鍙�
+ * @param id 宸ュ崟缂栧彿
+ * @param handlerUserId 澶勭悊浜虹敤鎴风紪鍙�
+ * @param operatorUserId 鎿嶄綔浜虹敤鎴风紪鍙�
*/
- void assignTicket(Long id, Long handlerUserId);
+ void assignTicket(Long id, Long handlerUserId, Long operatorUserId);
/**
* 闂鍒ゅ畾锛堢‘瀹氶棶棰樼被鍨嬨�佸垎绫汇�佷弗閲嶇▼搴︼級
@@ -86,28 +93,81 @@
* @param issueType 闂绫诲瀷
* @param issueCategory 闂鍒嗙被
* @param severityLevel 涓ラ噸绋嬪害
+ * @param operatorUserId 鎿嶄綔浜虹敤鎴风紪鍙�
*/
- void classifyTicket(Long id, Integer issueType, String issueCategory, Integer severityLevel);
+ void classifyTicket(Long id, Integer issueType, String issueCategory, Integer severityLevel, Long operatorUserId);
/**
* 瀹岀粨宸ュ崟
*
* @param id 宸ュ崟缂栧彿
+ * @param operatorUserId 鎿嶄綔浜虹敤鎴风紪鍙�
*/
- void resolveTicket(Long id);
+ void resolveTicket(Long id, Long operatorUserId);
/**
* 鍏抽棴宸ュ崟
*
* @param id 宸ュ崟缂栧彿
+ * @param operatorUserId 鎿嶄綔浜虹敤鎴风紪鍙�
*/
- void closeTicket(Long id);
+ void closeTicket(Long id, Long operatorUserId);
/**
* 鍙栨秷宸ュ崟
*
* @param id 宸ュ崟缂栧彿
+ * @param operatorUserId 鎿嶄綔浜虹敤鎴风紪鍙�
*/
- void cancelTicket(Long id);
+ void cancelTicket(Long id, Long operatorUserId);
+
+ /**
+ * 鐜板満绛惧埌锛堣褰曚綅缃俊鎭紝淇濋殰鏈嶅姟鐪熷疄鎬э級
+ *
+ * @param reqVO 绛惧埌淇℃伅
+ * @param userId 鎿嶄綔浜虹敤鎴风紪鍙�
+ */
+ void signInTicket(@Valid AfterSaleTicketSignInReqVO reqVO, Long userId);
+
+ /**
+ * 杞淳宸ュ崟
+ *
+ * @param reqVO 杞淳淇℃伅
+ * @param userId 鎿嶄綔浜虹敤鎴风紪鍙�
+ */
+ void transferTicket(@Valid AfterSaleTicketTransferReqVO reqVO, Long userId);
+
+ /**
+ * 鍗囩骇宸ュ崟
+ *
+ * @param reqVO 鍗囩骇淇℃伅
+ * @param userId 鎿嶄綔浜虹敤鎴风紪鍙�
+ */
+ void escalateTicket(@Valid AfterSaleTicketEscalateReqVO reqVO, Long userId);
+
+ /**
+ * 鏂板澶勭悊璁板綍
+ *
+ * @param reqVO 澶勭悊璁板綍
+ * @param userId 鎿嶄綔浜虹敤鎴风紪鍙�
+ */
+ void addHandleRecord(@Valid AfterSaleTicketHandleReqVO reqVO, Long userId);
+
+ /**
+ * 鑾峰緱宸ュ崟鎿嶄綔/杩涘害璁板綍鍒楄〃
+ *
+ * @param ticketId 宸ュ崟缂栧彿
+ * @return 璁板綍鍒楄〃
+ */
+ List<AfterSaleTicketLogDO> getTicketLogList(Long ticketId);
+
+ /**
+ * 鑾峰緱宸ュ崟鍔╂墜缁熻
+ *
+ * @param sceneType 鍦烘櫙绫诲瀷
+ * @param userId 鐢ㄦ埛缂栧彿
+ * @return 缁熻缁撴灉
+ */
+ AfterSaleTicketStatisticsRespVO getTicketStatistics(Integer sceneType, Long userId);
}
--
Gitblit v1.9.3