mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-14 11:18:02 +00:00
update
This commit is contained in:
@@ -12,6 +12,7 @@ import com.bytedesk.service.queue_settings.QueueSettingsEntity;
|
||||
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.Table;
|
||||
@@ -72,43 +73,37 @@ public class WorkgroupSettingsEntity extends BaseSettingsEntity {
|
||||
/**
|
||||
* Message leave settings
|
||||
*/
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
// @NotFound(action = NotFoundAction.IGNORE)
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private MessageLeaveSettingsEntity messageLeaveSettings;
|
||||
|
||||
/**
|
||||
* Draft Message leave settings
|
||||
*/
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
// @NotFound(action = NotFoundAction.IGNORE)
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private MessageLeaveSettingsEntity draftMessageLeaveSettings;
|
||||
|
||||
/**
|
||||
* Robot routing settings
|
||||
*/
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
// @NotFound(action = NotFoundAction.IGNORE)
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private RobotRoutingSettingsEntity robotSettings;
|
||||
|
||||
/**
|
||||
* Draft Robot routing settings
|
||||
* Note: Override columns and association to avoid conflicts with published embedded fields
|
||||
*/
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
// @NotFound(action = NotFoundAction.IGNORE)
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private RobotRoutingSettingsEntity draftRobotSettings;
|
||||
|
||||
/**
|
||||
* Queue settings
|
||||
*/
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
// @NotFound(action = NotFoundAction.IGNORE)
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private QueueSettingsEntity queueSettings;
|
||||
|
||||
/**
|
||||
* Draft Queue settings
|
||||
*/
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
// @NotFound(action = NotFoundAction.IGNORE)
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private QueueSettingsEntity draftQueueSettings;
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import com.bytedesk.ticket.ticket_settings.sub.TicketCustomFieldSettingsEntity;
|
||||
import com.bytedesk.ticket.ticket_settings.sub.TicketNotificationSettingsEntity;
|
||||
import com.bytedesk.ticket.ticket_settings.sub.TicketPrioritySettingsEntity;
|
||||
import com.bytedesk.ticket.ticket_settings.sub.TicketStatusFlowSettingsEntity;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
@@ -73,41 +75,41 @@ public class TicketSettingsEntity extends BaseEntity {
|
||||
private String workgroupUid;
|
||||
|
||||
// ====== 发布版本 ======
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketBasicSettingsEntity basicSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketStatusFlowSettingsEntity statusFlowSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketPrioritySettingsEntity prioritySettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketAssignmentSettingsEntity assignmentSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketNotificationSettingsEntity notificationSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketCustomFieldSettingsEntity customFieldSettings;
|
||||
|
||||
// ====== 草稿版本 ======
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketBasicSettingsEntity draftBasicSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketStatusFlowSettingsEntity draftStatusFlowSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketPrioritySettingsEntity draftPrioritySettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketAssignmentSettingsEntity draftAssignmentSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketNotificationSettingsEntity draftNotificationSettings;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { jakarta.persistence.CascadeType.PERSIST, jakarta.persistence.CascadeType.MERGE, jakarta.persistence.CascadeType.REMOVE })
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = true, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE })
|
||||
private TicketCustomFieldSettingsEntity draftCustomFieldSettings;
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ public interface TicketSettingsRepository extends JpaRepository<TicketSettingsEn
|
||||
|
||||
Boolean existsByUid(String uid);
|
||||
|
||||
Optional<TicketSettingsEntity> findByNameAndOrgUidAndTypeAndDeletedFalse(String name, String orgUid, String type);
|
||||
Optional<TicketSettingsEntity> findByNameAndOrgUidAndDeletedFalse(String name, String orgUid);
|
||||
|
||||
Optional<TicketSettingsEntity> findByOrgUidAndWorkgroupUidAndDeletedFalse(String orgUid, String workgroupUid);
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
|
||||
@Cacheable(value = "ticketSettings", key = "#name + '_' + #orgUid + '_' + #type", unless="#result==null")
|
||||
public Optional<TicketSettingsEntity> findByNameAndOrgUidAndType(String name, String orgUid, String type) {
|
||||
return ticketSettingsRepository.findByNameAndOrgUidAndTypeAndDeletedFalse(name, orgUid, type);
|
||||
public Optional<TicketSettingsEntity> findByNameAndOrgUid(String name, String orgUid) {
|
||||
return ticketSettingsRepository.findByNameAndOrgUidAndDeletedFalse(name, orgUid);
|
||||
}
|
||||
|
||||
public Boolean existsByUid(String uid) {
|
||||
@@ -77,8 +77,8 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
return convertToResponse(findByUid(request.getUid()).get());
|
||||
}
|
||||
// 检查name+orgUid+type是否已经存在
|
||||
if (StringUtils.hasText(request.getName()) && StringUtils.hasText(request.getOrgUid()) && StringUtils.hasText(request.getType())) {
|
||||
Optional<TicketSettingsEntity> ticketSettings = findByNameAndOrgUidAndType(request.getName(), request.getOrgUid(), request.getType());
|
||||
if (StringUtils.hasText(request.getName()) && StringUtils.hasText(request.getOrgUid())) {
|
||||
Optional<TicketSettingsEntity> ticketSettings = findByNameAndOrgUid(request.getName(), request.getOrgUid());
|
||||
if (ticketSettings.isPresent()) {
|
||||
return convertToResponse(ticketSettings.get());
|
||||
}
|
||||
@@ -138,7 +138,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
.build();
|
||||
// 默认草稿:Basic
|
||||
resp.setDraftBasicSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketBasicSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketBasicSettingsResponse.builder()
|
||||
.numberPrefix("TK").numberLength(8)
|
||||
.defaultPriority("medium")
|
||||
.validityDays(30)
|
||||
@@ -148,40 +148,40 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
);
|
||||
// 默认草稿:StatusFlow / Priority / Assignment / Notification / CustomFields
|
||||
resp.setDraftStatusFlowSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketStatusFlowSettingsRequest.builder()
|
||||
.content("{}")
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketStatusFlowSettingsResponse.builder()
|
||||
.content(com.bytedesk.ticket.ticket_settings.sub.model.StatusFlowSettingsData.builder().build())
|
||||
.build()
|
||||
);
|
||||
resp.setDraftPrioritySettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketPrioritySettingsRequest.builder()
|
||||
.content("[]")
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketPrioritySettingsResponse.builder()
|
||||
.content(com.bytedesk.ticket.ticket_settings.sub.model.PrioritySettingsData.builder().build())
|
||||
.build()
|
||||
);
|
||||
resp.setDraftAssignmentSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketAssignmentSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketAssignmentSettingsResponse.builder()
|
||||
.autoAssign(true)
|
||||
.assignmentType("round_robin")
|
||||
.workingHoursEnabled(true)
|
||||
.workingHoursStart("09:00")
|
||||
.workingHoursEnd("18:00")
|
||||
.workingDays("[1,2,3,4,5]")
|
||||
.workingDays(java.util.List.of(1,2,3,4,5))
|
||||
.maxConcurrentTickets(10)
|
||||
.build()
|
||||
);
|
||||
resp.setDraftNotificationSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketNotificationSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketNotificationSettingsResponse.builder()
|
||||
.emailEnabled(true)
|
||||
.emailEvents("[\"created\",\"assigned\",\"resolved\",\"closed\"]")
|
||||
.emailTemplates("{}")
|
||||
.emailEvents(java.util.List.of("created","assigned","resolved","closed"))
|
||||
.emailTemplates(java.util.List.of())
|
||||
.internalEnabled(true)
|
||||
.internalEvents("[\"created\",\"assigned\",\"resolved\",\"closed\"]")
|
||||
.internalEvents(java.util.List.of("created","assigned","resolved","closed"))
|
||||
.webhookEnabled(false)
|
||||
.webhookEvents("[]")
|
||||
.webhookEvents(java.util.List.of())
|
||||
.build()
|
||||
);
|
||||
resp.setDraftCustomFieldSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketCustomFieldSettingsRequest.builder()
|
||||
.content("[]")
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketCustomFieldSettingsResponse.builder()
|
||||
.content(com.bytedesk.ticket.ticket_settings.sub.model.CustomFieldSettingsData.builder().build())
|
||||
.build()
|
||||
);
|
||||
return resp;
|
||||
@@ -455,7 +455,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
// 发布版本映射
|
||||
if (entity.getBasicSettings() != null) {
|
||||
resp.setBasicSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketBasicSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketBasicSettingsResponse.builder()
|
||||
.numberPrefix(entity.getBasicSettings().getNumberPrefix())
|
||||
.numberLength(entity.getBasicSettings().getNumberLength())
|
||||
.defaultPriority(entity.getBasicSettings().getDefaultPriority())
|
||||
@@ -467,21 +467,21 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
if (entity.getStatusFlowSettings() != null) {
|
||||
resp.setStatusFlowSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketStatusFlowSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketStatusFlowSettingsResponse.builder()
|
||||
.content(entity.getStatusFlowSettings().getContent())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
if (entity.getPrioritySettings() != null) {
|
||||
resp.setPrioritySettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketPrioritySettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketPrioritySettingsResponse.builder()
|
||||
.content(entity.getPrioritySettings().getContent())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
if (entity.getAssignmentSettings() != null) {
|
||||
resp.setAssignmentSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketAssignmentSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketAssignmentSettingsResponse.builder()
|
||||
.autoAssign(entity.getAssignmentSettings().getAutoAssign())
|
||||
.assignmentType(entity.getAssignmentSettings().getAssignmentType())
|
||||
.workingHoursEnabled(entity.getAssignmentSettings().getWorkingHoursEnabled())
|
||||
@@ -494,7 +494,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
if (entity.getNotificationSettings() != null) {
|
||||
resp.setNotificationSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketNotificationSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketNotificationSettingsResponse.builder()
|
||||
.emailEnabled(entity.getNotificationSettings().getEmailEnabled())
|
||||
.emailEvents(entity.getNotificationSettings().getEmailEvents())
|
||||
.emailTemplates(entity.getNotificationSettings().getEmailTemplates())
|
||||
@@ -508,7 +508,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
if (entity.getCustomFieldSettings() != null) {
|
||||
resp.setCustomFieldSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketCustomFieldSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketCustomFieldSettingsResponse.builder()
|
||||
.content(entity.getCustomFieldSettings().getContent())
|
||||
.build()
|
||||
);
|
||||
@@ -516,7 +516,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
// 草稿版本映射
|
||||
if (entity.getDraftBasicSettings() != null) {
|
||||
resp.setDraftBasicSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketBasicSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketBasicSettingsResponse.builder()
|
||||
.numberPrefix(entity.getDraftBasicSettings().getNumberPrefix())
|
||||
.numberLength(entity.getDraftBasicSettings().getNumberLength())
|
||||
.defaultPriority(entity.getDraftBasicSettings().getDefaultPriority())
|
||||
@@ -528,21 +528,21 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
if (entity.getDraftStatusFlowSettings() != null) {
|
||||
resp.setDraftStatusFlowSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketStatusFlowSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketStatusFlowSettingsResponse.builder()
|
||||
.content(entity.getDraftStatusFlowSettings().getContent())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
if (entity.getDraftPrioritySettings() != null) {
|
||||
resp.setDraftPrioritySettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketPrioritySettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketPrioritySettingsResponse.builder()
|
||||
.content(entity.getDraftPrioritySettings().getContent())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
if (entity.getDraftAssignmentSettings() != null) {
|
||||
resp.setDraftAssignmentSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketAssignmentSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketAssignmentSettingsResponse.builder()
|
||||
.autoAssign(entity.getDraftAssignmentSettings().getAutoAssign())
|
||||
.assignmentType(entity.getDraftAssignmentSettings().getAssignmentType())
|
||||
.workingHoursEnabled(entity.getDraftAssignmentSettings().getWorkingHoursEnabled())
|
||||
@@ -555,7 +555,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
if (entity.getDraftNotificationSettings() != null) {
|
||||
resp.setDraftNotificationSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketNotificationSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketNotificationSettingsResponse.builder()
|
||||
.emailEnabled(entity.getDraftNotificationSettings().getEmailEnabled())
|
||||
.emailEvents(entity.getDraftNotificationSettings().getEmailEvents())
|
||||
.emailTemplates(entity.getDraftNotificationSettings().getEmailTemplates())
|
||||
@@ -569,7 +569,7 @@ public class TicketSettingsRestService extends BaseRestServiceWithExport<TicketS
|
||||
}
|
||||
if (entity.getDraftCustomFieldSettings() != null) {
|
||||
resp.setDraftCustomFieldSettings(
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketCustomFieldSettingsRequest.builder()
|
||||
com.bytedesk.ticket.ticket_settings.sub.dto.TicketCustomFieldSettingsResponse.builder()
|
||||
.content(entity.getDraftCustomFieldSettings().getContent())
|
||||
.build()
|
||||
);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.bytedesk.ticket.ticket_settings.sub.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -9,7 +10,7 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 工单指派设置响应 DTO。
|
||||
* 工单指派设置响应 DTO(结构化 workingDays)。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@@ -23,6 +24,6 @@ public class TicketAssignmentSettingsResponse implements Serializable {
|
||||
private Boolean workingHoursEnabled;
|
||||
private String workingHoursStart;
|
||||
private String workingHoursEnd;
|
||||
private String workingDays; // JSON array as string
|
||||
private List<Integer> workingDays; // 1-7
|
||||
private Integer maxConcurrentTickets;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.bytedesk.ticket.ticket_settings.sub.dto;
|
||||
|
||||
import com.bytedesk.ticket.ticket_settings.sub.model.CustomFieldSettingsData;
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -9,7 +10,7 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 自定义字段设置响应 DTO。
|
||||
* 自定义字段设置响应 DTO(结构化)。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@@ -18,5 +19,5 @@ import lombok.experimental.Accessors;
|
||||
@NoArgsConstructor
|
||||
public class TicketCustomFieldSettingsResponse implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String content; // JSON blob
|
||||
private CustomFieldSettingsData content;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.bytedesk.ticket.ticket_settings.sub.dto;
|
||||
|
||||
import com.bytedesk.ticket.ticket_settings.sub.model.EmailTemplateDef;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -9,7 +11,7 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 通知设置响应 DTO。
|
||||
* 通知设置响应 DTO(结构化)。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@@ -19,11 +21,11 @@ import lombok.experimental.Accessors;
|
||||
public class TicketNotificationSettingsResponse implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Boolean emailEnabled;
|
||||
private String emailEvents;
|
||||
private String emailTemplates;
|
||||
private List<String> emailEvents;
|
||||
private List<EmailTemplateDef> emailTemplates;
|
||||
private Boolean internalEnabled;
|
||||
private String internalEvents;
|
||||
private List<String> internalEvents;
|
||||
private Boolean webhookEnabled;
|
||||
private String webhookUrl;
|
||||
private String webhookEvents;
|
||||
private List<String> webhookEvents;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.bytedesk.ticket.ticket_settings.sub.dto;
|
||||
|
||||
import com.bytedesk.ticket.ticket_settings.sub.model.PrioritySettingsData;
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -9,7 +10,7 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 优先级设置响应 DTO。
|
||||
* 优先级设置响应 DTO(结构化)。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@@ -18,5 +19,5 @@ import lombok.experimental.Accessors;
|
||||
@NoArgsConstructor
|
||||
public class TicketPrioritySettingsResponse implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String content; // JSON blob
|
||||
private PrioritySettingsData content;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.bytedesk.ticket.ticket_settings.sub.dto;
|
||||
|
||||
import com.bytedesk.ticket.ticket_settings.sub.model.StatusFlowSettingsData;
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -9,7 +10,7 @@ import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 状态流转设置响应 DTO。
|
||||
* 状态流转设置响应 DTO(结构化)。
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@@ -18,5 +19,5 @@ import lombok.experimental.Accessors;
|
||||
@NoArgsConstructor
|
||||
public class TicketStatusFlowSettingsResponse implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private String content; // JSON blob
|
||||
private StatusFlowSettingsData content;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user