52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package main
|
||
|
||
import (
|
||
"net/http"
|
||
"strconv"
|
||
)
|
||
|
||
/*
|
||
下载
|
||
GET http://127.0.0.1:8888/statistics/task?data_type=0&start_time=2024-12-26&end_time=2024-12-26
|
||
请求参数
|
||
data_type 数据类型
|
||
0新用户游戏破产率
|
||
1新用户平均游戏时长
|
||
2用户平均游戏时长
|
||
3新用户平均局数
|
||
4平均倍数
|
||
5活跃破产率
|
||
start_time 开始时间 格式:2024-12-26
|
||
end_time 结束时间 格式:2024-12-26
|
||
*/
|
||
|
||
// Download 下载
|
||
func Download(w http.ResponseWriter, r *http.Request) {
|
||
// 请求参数
|
||
// data_type 数据类型
|
||
// start_time 开始时间
|
||
// end_time 结束时间
|
||
// Request parameters
|
||
|
||
dataType, err := strconv.Atoi(r.URL.Query().Get("data_type"))
|
||
if err != nil {
|
||
http.Error(w, "Invalid data_type", http.StatusBadRequest)
|
||
return
|
||
}
|
||
|
||
startTime := r.URL.Query().Get("start_time")
|
||
endTime := r.URL.Query().Get("end_time")
|
||
|
||
f, name, err := ExcelMgrSingle.Pull(dataType, startTime, endTime)
|
||
if err != nil {
|
||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||
return
|
||
}
|
||
defer f.Close()
|
||
|
||
w.Header().Set("Content-Type", "application/octet-stream;charset=UTF-8")
|
||
w.Header().Set("Content-Disposition", "attachment; filename=\""+name+".xlsx\"")
|
||
|
||
f.Write(w)
|
||
}
|