package excel import ( "encoding/json" "eta/eta_api/models" excelModel "eta/eta_api/models/data_manage/excel" "eta/eta_api/models/data_manage/excel/request" "eta/eta_api/models/data_manage/excel/response" "eta/eta_api/services/data/excel" "eta/eta_api/utils" "fmt" "strconv" "strings" "time" ) // AddEdb // @Title 新增指标接口 // @Description 新增指标接口 // @Param request body request.AddExcelInfoReq true "type json string" // @Success 200 {object} response.AddExcelInfoResp // @router /edb/add [post] func (c *CustomAnalysisController) AddEdb() { br := new(models.BaseResponse).Init() defer func() { c.Data["json"] = br c.ServeJSON() }() sysUser := c.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } deleteCache := true cacheKey := "CACHE_EXCEL_TABLE_INFO_ADD_" + strconv.Itoa(sysUser.AdminId) defer func() { if deleteCache { _ = utils.Rc.Delete(cacheKey) } }() if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) { deleteCache = false br.Msg = "系统处理中,请稍后重试!" br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(c.Ctx.Input.RequestBody) return } var req request.SaveExcelInfoReq err := json.Unmarshal(c.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } req.ExcelName = strings.Trim(req.ExcelName, " ") if req.ExcelName == "" { br.Msg = "请填写表格名称!" br.IsSendEmail = false return } if req.ExcelInfoId <= 0 { br.Msg = "请选择excel!" br.IsSendEmail = false return } if req.ExcelClassifyId <= 0 { br.Msg = "分类参数错误!" br.IsSendEmail = false return } excelInfo, err := excelModel.GetExcelInfoById(req.ExcelInfoId) if err != nil { br.Msg = "找不到该EXCEL!" br.ErrMsg = "找不到该EXCEL!err:" + err.Error() return } if excelInfo.Source != utils.CUSTOM_ANALYSIS_TABLE { br.Msg = "EXCEL异常!" br.IsSendEmail = false return } err, errMsg, isSendEmail := excel.SaveCustomAnalysisTable(excelInfo, utils.TrimLRStr(req.ExcelName), req.Content, req.ExcelImage, req.ExcelClassifyId, req.OpSheetList) if err != nil { br.Msg = "保存失败" if errMsg != `` { br.Msg = errMsg } br.ErrMsg = "保存失败,Err:" + err.Error() br.IsSendEmail = isSendEmail return } // 更新excel下载地址(默认的EXCEL需要更新,自定义表格不需要更新) //if req.Source == 1 { // go UpdateExcelInfoFileUrl(excelInfo) //} // resp := new(response.AddExcelInfoResp) resp.ExcelInfoId = excelInfo.ExcelInfoId resp.UniqueCode = excelInfo.UniqueCode //新增操作日志 //{ // excelLog := &data_manage.ExcelInfoLog{ // //ExcelInfoLogId: 0, // ExcelInfoId: excelInfo.ExcelInfoId, // ExcelName: req.ExcelName, // ExcelClassifyId: req.ExcelClassifyId, // SysUserId: sysUser.AdminId, // SysUserRealName: sysUser.RealName, // UniqueCode: excelInfo.UniqueCode, // CreateTime: time.Now(), // Content: string(c.Ctx.Input.RequestBody), // Status: "新增表格", // Method: c.Ctx.Input.URI(), // } // go data_manage.AddExcelInfoLog(excelLog) //} br.Ret = 200 br.Success = true br.Msg = "保存成功" br.Data = resp br.IsAddLog = false //数据量太大了,不写入日志吧 } func init() { excelInfo, err := excelModel.GetExcelInfoById(160) if err != nil { fmt.Println("查找excel失败:", err) return } _, err, _ = excel.GenerateExcelCustomAnalysisExcel(excelInfo) if err != nil { fmt.Println("生成excel失败:", err) return } }