Add responsible signature to aftersales confirmation

This commit is contained in:
Frudrax Cheng
2026-06-02 10:38:29 +08:00
parent d1d189528c
commit 1ebec18869
3 changed files with 83 additions and 44 deletions
+26 -22
View File
@@ -266,12 +266,13 @@ type AftersalesOrder struct {
WorkOrderStatus string `gorm:"size:32;default:'created'" json:"workOrderStatus"`
AuthorizationStatus string `gorm:"size:32;default:'pending'" json:"authorizationStatus"`
TechnicianID *uint `json:"technicianId"`
CreatedBy *uint `json:"createdBy"`
ScannedAt *time.Time `json:"scannedAt"`
ConfirmedAt *time.Time `json:"confirmedAt"`
RejectCount int `gorm:"default:0" json:"rejectCount"`
Signature string `gorm:"type:text" json:"signature,omitempty"`
TechnicianID *uint `json:"technicianId"`
CreatedBy *uint `json:"createdBy"`
ScannedAt *time.Time `json:"scannedAt"`
ConfirmedAt *time.Time `json:"confirmedAt"`
RejectCount int `gorm:"default:0" json:"rejectCount"`
Signature string `gorm:"type:text" json:"signature,omitempty"`
ResponsibleSignature string `gorm:"type:text" json:"responsibleSignature,omitempty"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
@@ -310,11 +311,13 @@ type SubmitForConfirmationDTO struct {
// CustomerConfirmDTO 客户确认请求
// Signature 为客户在网页上手写签名的 base64 PNG dataURL,仅 authorize 时必填
// ResponsibleSignature 为负责人在网页上手写签名的 base64 PNG dataURL,仅 authorize 时必填
// RejectReason 为客户拒绝的原因,仅 reject 时必填
type CustomerConfirmDTO struct {
Action string `json:"action" validate:"required,oneof=authorize reject"`
Signature string `json:"signature,omitempty" validate:"required_if=Action authorize"`
RejectReason string `json:"rejectReason,omitempty" validate:"required_if=Action reject"`
Action string `json:"action" validate:"required,oneof=authorize reject"`
Signature string `json:"signature,omitempty" validate:"required_if=Action authorize"`
ResponsibleSignature string `json:"responsibleSignature,omitempty" validate:"required_if=Action authorize"`
RejectReason string `json:"rejectReason,omitempty" validate:"required_if=Action reject"`
}
// ReassignAftersalesDTO 重新分配技术员请求
@@ -324,17 +327,18 @@ type ReassignAftersalesDTO struct {
// AftersalesPublicView 公开查询返回视图(脱敏)
type AftersalesPublicView struct {
SerialNumber string `json:"serialNumber"`
CompanyName string `json:"companyName"`
CompanyAddress string `json:"companyAddress"`
ContactName string `json:"contactName"`
ServiceType string `json:"serviceType"`
IssueDescription string `json:"issueDescription"`
ResolutionNote string `json:"resolutionNote"`
WorkOrderStatus string `json:"workOrderStatus"`
AuthorizationStatus string `json:"authorizationStatus"`
TechnicianName string `json:"technicianName"`
CreatedAt time.Time `json:"createdAt"`
ConfirmedAt *time.Time `json:"confirmedAt"`
Signature string `json:"signature,omitempty"`
SerialNumber string `json:"serialNumber"`
CompanyName string `json:"companyName"`
CompanyAddress string `json:"companyAddress"`
ContactName string `json:"contactName"`
ServiceType string `json:"serviceType"`
IssueDescription string `json:"issueDescription"`
ResolutionNote string `json:"resolutionNote"`
WorkOrderStatus string `json:"workOrderStatus"`
AuthorizationStatus string `json:"authorizationStatus"`
TechnicianName string `json:"technicianName"`
CreatedAt time.Time `json:"createdAt"`
ConfirmedAt *time.Time `json:"confirmedAt"`
Signature string `json:"signature,omitempty"`
ResponsibleSignature string `json:"responsibleSignature,omitempty"`
}