-
Notifications
You must be signed in to change notification settings - Fork 0
/
partner_export.go
66 lines (53 loc) · 1.66 KB
/
partner_export.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
* Copyright 2014 @ z3q.net.
* name :
* author : jarryliu
* date : 2014-02-05 21:53
* description :
* history :
*/
package partner
import (
"database/sql"
"encoding/json"
"github.com/jsix/gof"
"github.com/jsix/gof/data/report"
"net/http"
"strconv"
"strings"
)
//================== 数据导出 ===============//
type PartnerDbGetter struct{}
func (dbGetter *PartnerDbGetter) GetDB() *sql.DB {
return gof.CurrentApp.Db().GetDb()
}
var ExpManager *report.ExportItemManager = &report.ExportItemManager{DbGetter: &PartnerDbGetter{}}
//================== 导出控制器 ==============//
// 获取导出数据
func GetExportData(r *http.Request, partnerId int) []byte {
query := r.URL.Query()
r.ParseForm()
var exportItem report.IDataExportPortal = ExpManager.GetExportItem(query.Get("portal"))
//var exportItm *ExportItem = GetExportItem(query.Get("portal"))
//fmt.Println(">>>"+strconv.FormatBool(exportItm != nil))
if exportItem != nil {
page, rows := r.Form.Get("page"), r.Form.Get("rows")
var parameter *report.ExportParams = report.GetExportParams(query.Get("params"), nil)
parameter.Parameters["partner_id"] = strconv.Itoa(partnerId)
if page != "" {
parameter.Parameters["pageIndex"] = page
}
if rows != "" {
parameter.Parameters["pageSize"] = rows
}
_rows, total, err := exportItem.GetSchemaAndData(parameter.Parameters)
if err == nil {
var arr []string = []string{"{\"total\":", strconv.Itoa(total), ",\"rows\":", "", "}"}
json, _ := json.Marshal(_rows)
arr[3] = string(json)
return []byte(strings.Join(arr, ""))
}
return []byte(`{"error":"` + err.Error() + `"}`)
}
return []byte(`{"error":"no such export item"}`)
}