update modules/ticket: mod 3 files

This commit is contained in:
jack ning
2025-02-12 13:10:47 +08:00
parent 399a29828b
commit dbf2faef36
3 changed files with 48 additions and 14 deletions

View File

@@ -2,7 +2,7 @@
* @Author: jackning 270580156@qq.com
* @Date: 2025-01-16 14:56:11
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-02-11 16:40:53
* @LastEditTime: 2025-02-12 13:03:03
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
* Please be aware of the BSL license restrictions before installing Bytedesk IM
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
@@ -78,6 +78,12 @@ public class TicketEntity extends BaseEntity {
// private CategoryEntity category;
private String categoryUid;
// user, 使用UserProtobuf json格式化
// 关联service thread ThreadEntity的user字段访客信息
@Builder.Default
@Column(name = "ticket_user")
private String user = BytedeskConsts.EMPTY_JSON_STRING;
// 使用UserProtobuf json格式化
// 一个工单一个工作组,一个工作组可以有多个工单
// @ManyToOne(fetch = FetchType.LAZY)

View File

@@ -2,7 +2,7 @@
* @Author: jackning 270580156@qq.com
* @Date: 2025-01-16 14:58:38
* @LastEditors: jackning 270580156@qq.com
* @LastEditTime: 2025-02-11 17:44:51
* @LastEditTime: 2025-02-12 13:04:41
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
* Please be aware of the BSL license restrictions before installing Bytedesk IM
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
@@ -47,6 +47,9 @@ public class TicketResponse extends BaseResponse {
// private CategoryResponse category;
private String categoryUid;
// 使用UserProtobuf json格式化
private UserProtobuf user;
// 使用UserProtobuf json格式化
// private WorkgroupResponse workgroup;
private UserProtobuf workgroup;

View File

@@ -22,6 +22,7 @@ import java.time.LocalDateTime;
import com.alibaba.fastjson2.JSON;
import com.bytedesk.core.base.BaseRestService;
import com.bytedesk.core.constant.BytedeskConsts;
import com.bytedesk.core.rbac.auth.AuthService;
import com.bytedesk.core.rbac.user.UserEntity;
import com.bytedesk.core.rbac.user.UserProtobuf;
@@ -152,27 +153,51 @@ public class TicketRestService extends BaseRestService<TicketEntity, TicketReque
ticket.setType(TicketTypeEnum.AGENT.name());
ticket.setStatus(TicketStatusEnum.ASSIGNED.name());
//
UserProtobuf userProtobuf = UserProtobuf.builder()
.nickname(assigneeOptional.get().getNickname())
.avatar(assigneeOptional.get().getAvatar())
.build();
userProtobuf.setUid(assigneeOptional.get().getUid());
userProtobuf.setType(UserTypeEnum.AGENT.name());
String userJson = JSON.toJSONString(userProtobuf);
String userJson = BytedeskConsts.EMPTY_JSON_STRING;
// 使用在线客服工单会话user info
if (StringUtils.hasText(request.getServiceThreadTopic())) {
String serviceThreadTopic = request.getServiceThreadTopic();
Optional<ThreadEntity> serviceThreadOptional = threadRestService.findFirstByTopic(serviceThreadTopic);
if (serviceThreadOptional.isPresent()) {
userJson = serviceThreadOptional.get().getUser();
ticket.setUser(userJson);
}
} else {
//
UserProtobuf userProtobuf = UserProtobuf.builder()
.nickname(assigneeOptional.get().getNickname())
.avatar(assigneeOptional.get().getAvatar())
.build();
userProtobuf.setUid(assigneeOptional.get().getUid());
userProtobuf.setType(UserTypeEnum.AGENT.name());
userJson = JSON.toJSONString(userProtobuf);
}
// 创建工单会话
ThreadEntity thread = createTicketThread(request, TicketTypeEnum.AGENT, userJson);
ticket.setThreadTopic(thread.getTopic());
} else {
ticket.setType(TicketTypeEnum.WORKGROUP.name());
ticket.setStatus(TicketStatusEnum.NEW.name());
String userJson = BytedeskConsts.EMPTY_JSON_STRING;
//
UserProtobuf userProtobuf = UserProtobuf.builder()
.nickname(workgroupOptional.get().getNickname())
if (StringUtils.hasText(request.getServiceThreadTopic())) {
String serviceThreadTopic = request.getServiceThreadTopic();
Optional<ThreadEntity> serviceThreadOptional = threadRestService.findFirstByTopic(serviceThreadTopic);
if (serviceThreadOptional.isPresent()) {
userJson = serviceThreadOptional.get().getUser();
ticket.setUser(userJson);
}
} else {
//
UserProtobuf userProtobuf = UserProtobuf.builder()
.nickname(workgroupOptional.get().getNickname())
.avatar(workgroupOptional.get().getAvatar())
.build();
userProtobuf.setUid(workgroupOptional.get().getUid());
userProtobuf.setType(UserTypeEnum.WORKGROUP.name());
String userJson = JSON.toJSONString(userProtobuf);
userProtobuf.setUid(workgroupOptional.get().getUid());
userProtobuf.setType(UserTypeEnum.WORKGROUP.name());
userJson = JSON.toJSONString(userProtobuf);
}
// 创建工单会话
ThreadEntity thread = createTicketThread(request, TicketTypeEnum.WORKGROUP, userJson);
ticket.setThreadTopic(thread.getTopic());