77 lines
2.4 KiB
Go
77 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
// GetAfterSalesDispatchConfig returns the local engineer dispatch settings.
|
|
func (a *App) GetAfterSalesDispatchConfig() interface{} {
|
|
result, err := a.getHelperJSON("/api/after-sales/dispatch/config")
|
|
if err != nil {
|
|
return map[string]interface{}{"success": false, "message": err.Error()}
|
|
}
|
|
return result
|
|
}
|
|
|
|
// SaveAfterSalesDispatchConfig persists engineer dispatch settings.
|
|
func (a *App) SaveAfterSalesDispatchConfig(jsonData string) (bool, string) {
|
|
var payload map[string]interface{}
|
|
if err := json.Unmarshal([]byte(jsonData), &payload); err != nil {
|
|
return false, fmt.Sprintf("解析派单配置失败: %v", err)
|
|
}
|
|
result, err := a.postHelperJSON("/api/after-sales/dispatch/config", payload)
|
|
if err != nil {
|
|
return false, err.Error()
|
|
}
|
|
return helperResultOK(result)
|
|
}
|
|
|
|
// GetAfterSalesDispatchQueue returns pending after-sales issues with dispatch state.
|
|
func (a *App) GetAfterSalesDispatchQueue() interface{} {
|
|
result, err := a.getHelperJSON("/api/after-sales/dispatch/queue")
|
|
if err != nil {
|
|
return map[string]interface{}{"success": false, "message": err.Error()}
|
|
}
|
|
return result
|
|
}
|
|
|
|
// AssignAfterSalesIssue manually assigns an after-sales issue to an engineer.
|
|
func (a *App) AssignAfterSalesIssue(issueId string, engineerUserId string) (bool, string) {
|
|
result, err := a.postHelperJSON("/api/after-sales/dispatch/assign", map[string]interface{}{
|
|
"issueId": issueId,
|
|
"engineerUserId": engineerUserId,
|
|
})
|
|
if err != nil {
|
|
if result != nil {
|
|
return helperResultOK(result)
|
|
}
|
|
return false, err.Error()
|
|
}
|
|
return helperResultOK(result)
|
|
}
|
|
|
|
// NotifyAfterSalesEngineer sends one issue notification to its assigned engineer.
|
|
func (a *App) NotifyAfterSalesEngineer(issueId string) interface{} {
|
|
result, err := a.postHelperJSON("/api/after-sales/dispatch/notify", map[string]interface{}{"issueId": issueId})
|
|
if err != nil {
|
|
if result != nil {
|
|
return result
|
|
}
|
|
return map[string]interface{}{"success": false, "message": err.Error()}
|
|
}
|
|
return result
|
|
}
|
|
|
|
// BatchNotifyAfterSalesEngineers sends multiple issue notifications.
|
|
func (a *App) BatchNotifyAfterSalesEngineers(issueIds []string) interface{} {
|
|
result, err := a.postHelperJSON("/api/after-sales/dispatch/batch-notify", map[string]interface{}{"issueIds": issueIds})
|
|
if err != nil {
|
|
if result != nil {
|
|
return result
|
|
}
|
|
return map[string]interface{}{"success": false, "message": err.Error()}
|
|
}
|
|
return result
|
|
}
|