mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-14 11:18:02 +00:00
update modules/ticket: mod 3 files
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user