|
@@ -1,7 +1,15 @@
|
|
|
package controllers
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"eta/eta_api/models"
|
|
|
+ "eta/eta_api/models/data_manage/request"
|
|
|
+ "eta/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
+ "github.com/tealeg/xlsx"
|
|
|
+ "os"
|
|
|
+ "path/filepath"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
// MeetingProbabilitiesController 加息概率
|
|
@@ -30,16 +38,77 @@ func (c *MeetingProbabilitiesController) Detail() {
|
|
|
}
|
|
|
|
|
|
date := c.GetString("DateTime")
|
|
|
+ isExport, _ := c.GetInt("IsExport")
|
|
|
|
|
|
// 获取数据详情bu
|
|
|
excelDetail, err := models.GetMeetingInfoById(date)
|
|
|
if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Msg = "该日期无数据"
|
|
|
+ br.Msg = "该日期无数据,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
br.ErrMsg = err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ if isExport == 1 {
|
|
|
+ sheet := new(request.ISheet)
|
|
|
+ err = json.Unmarshal([]byte(excelDetail.Content), &sheet)
|
|
|
+
|
|
|
+ MeetingProbabilitiesExport(c,br,sheet)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = excelDetail
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+// MeetingProbabilitiesExport 导出Excel
|
|
|
+func MeetingProbabilitiesExport(this *MeetingProbabilitiesController, br *models.BaseResponse, sheetReq *request.ISheet) {
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请重新登录"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ dir, _ := os.Executable()
|
|
|
+ exPath := filepath.Dir(dir)
|
|
|
+ downloadPath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
|
|
|
+ xlsxFile := xlsx.NewFile()
|
|
|
+ sheet, e := xlsxFile.AddSheet("数据报表")
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "新增Sheet失败"
|
|
|
+ br.ErrMsg = "新增Sheet失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ for _, v := range sheetReq.Data {
|
|
|
+ addRow := sheet.AddRow()
|
|
|
+ for _, s := range v {
|
|
|
+ if s != nil {
|
|
|
+ addRow.AddCell().SetString(s.M)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if e = xlsxFile.Save(downloadPath); e != nil {
|
|
|
+ br.Msg = "导出失败"
|
|
|
+ br.ErrMsg = "保存文件失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fileName := fmt.Sprint("MeetingProbabilities", time.Now().Format("2006.01.02"), ".xlsx")
|
|
|
+ this.Ctx.Output.Download(downloadPath, fileName)
|
|
|
+ defer func() {
|
|
|
+ _ = os.Remove(downloadPath)
|
|
|
+ }()
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "success"
|
|
|
+}
|
|
|
+
|