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 }