Optimize yao.table.Export
This commit is contained in:
parent
75ba3e532d
commit
760cdb50d7
2 changed files with 10 additions and 5 deletions
|
|
@ -1,8 +1,6 @@
|
||||||
package table
|
package table
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/md5"
|
|
||||||
"encoding/hex"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
|
@ -10,6 +8,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
"github.com/yaoapp/gou/fs"
|
"github.com/yaoapp/gou/fs"
|
||||||
"github.com/yaoapp/gou/model"
|
"github.com/yaoapp/gou/model"
|
||||||
gouProcess "github.com/yaoapp/gou/process"
|
gouProcess "github.com/yaoapp/gou/process"
|
||||||
|
|
@ -252,11 +251,10 @@ func processExport(process *gouProcess.Process) interface{} {
|
||||||
tab := MustGet(process) // 0
|
tab := MustGet(process) // 0
|
||||||
params := process.ArgsQueryParams(1, types.QueryParam{})
|
params := process.ArgsQueryParams(1, types.QueryParam{})
|
||||||
pagesize := process.ArgsInt(2, 50)
|
pagesize := process.ArgsInt(2, 50)
|
||||||
|
log.Trace("[table] export %s %v %d", tab.ID, params, pagesize)
|
||||||
|
|
||||||
// Filename
|
// Filename
|
||||||
hash := md5.Sum([]byte(time.Now().Format("20060102-15:04:05")))
|
fingerprint := uuid.NewString()
|
||||||
fingerprint := string(hex.EncodeToString(hash[:]))
|
|
||||||
fingerprint = strings.ToUpper(fingerprint)
|
|
||||||
dir := time.Now().Format("20060102")
|
dir := time.Now().Format("20060102")
|
||||||
filename := filepath.Join(string(os.PathSeparator), dir, fmt.Sprintf("%s.xlsx", fingerprint))
|
filename := filepath.Join(string(os.PathSeparator), dir, fmt.Sprintf("%s.xlsx", fingerprint))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -569,6 +569,13 @@ func TestProcessExport(t *testing.T) {
|
||||||
fs := fs.MustGet("system")
|
fs := fs.MustGet("system")
|
||||||
size, _ := fs.Size(response.(string))
|
size, _ := fs.Size(response.(string))
|
||||||
assert.Greater(t, size, 1000)
|
assert.Greater(t, size, 1000)
|
||||||
|
|
||||||
|
// Export all data
|
||||||
|
args = []interface{}{"pet", nil, 2}
|
||||||
|
response = process.New("yao.table.Export", args...).Run()
|
||||||
|
assert.NotNil(t, response)
|
||||||
|
size, _ = fs.Size(response.(string))
|
||||||
|
assert.Greater(t, size, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
func load(t *testing.T) {
|
func load(t *testing.T) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue