Initial qiwei secondary development handoff

This commit is contained in:
2026-06-23 21:11:20 +08:00
commit 858cb68f4f
207 changed files with 52782 additions and 0 deletions

76
after_sales_dispatch.go Normal file
View File

@@ -0,0 +1,76 @@
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
}