Roc 1 년 전
부모
커밋
eea36e132b
4개의 변경된 파일193개의 추가작업 그리고 0개의 파일을 삭제
  1. 66 0
      controllers/data_manage/excel/custom_analysis.go
  2. 37 0
      models/data_manage/excel/excel_sheet.go
  3. 38 0
      models/data_manage/excel/excel_sheet_data.go
  4. 52 0
      services/excel/xml.go

+ 66 - 0
controllers/data_manage/excel/custom_analysis.go

@@ -0,0 +1,66 @@
+package excel
+
+import (
+	"eta/eta_api/controllers"
+	"eta/eta_api/models"
+	"eta/eta_api/models/data_manage"
+	"eta/eta_api/utils"
+)
+
+// CustomAnalysisController 自定义分析
+type CustomAnalysisController struct {
+	controllers.BaseAuthController
+}
+
+// List
+// @Title ETA表格列表接口
+// @Description ETA表格列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   ExcelClassifyId   query   int  true       "分类id"
+// @Param   Keyword   query   string  true       "搜索关键词"
+// @Param   AdminId   query   int  false       "创建人id"
+// @Param   Source   query   int  true       "格来源,1:excel插件的表格,2:自定义表格,3:混合表格,默认:1"
+// @Success 200 {object} response.ExcelListResp
+// @router /excel_info/list [get]
+func (c *CustomAnalysisController) GetByName() {
+	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
+	}
+
+	excelName := c.GetString("ExcelName")
+	if excelName == `` {
+		br.Msg = "请选择表格"
+		br.ErrMsg = "ExcelName未传"
+		br.IsSendEmail = false
+		return
+	}
+	excelName = utils.TrimLRStr(excelName)
+
+	// 获取数据详情
+	excelDetail, err := data_manage.GetNoContentExcelInfoByName(excelName, utils.CUSTOM_ANALYSIS_TABLE)
+	if err != nil {
+		br.Msg = "获取"
+		br.ErrMsg = err.Error()
+		return
+	}
+
+	//resp := response.ExcelListResp{
+	//	Paging: page,
+	//	List:   list,
+	//}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	//br.Data = resp
+}

+ 37 - 0
models/data_manage/excel/excel_sheet.go

@@ -0,0 +1,37 @@
+package excel
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// ExcelSheet excel表格详情表
+type ExcelSheet struct {
+	ExcelSheetId int       `orm:"column(excel_sheet_id);pk"`
+	ExcelInfoId  int       `description:"excel的id"`
+	SheetName    string    `description:"sheet名称"`
+	order        int       `description:"排序"`
+	ModifyTime   time.Time `description:"最近修改日期"`
+	CreateTime   time.Time `description:"创建日期"`
+}
+
+// Update 更新 excel表格的sheet基础信息
+func (excelSheet *ExcelSheet) Update(cols []string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.Update(excelSheet, cols...)
+
+	return
+}
+
+// AddExcelSheet 新增excel表格的sheet基础信息
+func AddExcelSheet(excelInfo *ExcelSheet) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	// 表格信息入库
+	lastId, err := o.Insert(excelInfo)
+	if err != nil {
+		return
+	}
+	excelInfo.ExcelInfoId = int(lastId)
+
+	return
+}

+ 38 - 0
models/data_manage/excel/excel_sheet_data.go

@@ -0,0 +1,38 @@
+package excel
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// ExcelSheetData excel表格详情表
+type ExcelSheetData struct {
+	ExcelDataId  int       `orm:"column(excel_data_id);pk"`
+	ExcelInfoId  int       `description:"数据归属的excel_info的id"`
+	ExcelSheetId int       `description:"数据归属sheet"`
+	Sort         int       `description:"数据排序"`
+	Data         string    `description:"数据,分页存储"`
+	ModifyTime   time.Time `description:"最近修改日期"`
+	CreateTime   time.Time `description:"创建日期"`
+}
+
+// Update 更新 excel表格的sheet基础信息
+func (ExcelSheetData *ExcelSheetData) Update(cols []string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.Update(ExcelSheetData, cols...)
+
+	return
+}
+
+// AddExcelSheetData 新增excel表格的sheet基础信息
+func AddExcelSheetData(excelInfo *ExcelSheetData) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	// 表格信息入库
+	lastId, err := o.Insert(excelInfo)
+	if err != nil {
+		return
+	}
+	excelInfo.ExcelInfoId = int(lastId)
+
+	return
+}

+ 52 - 0
services/excel/xml.go

@@ -0,0 +1,52 @@
+package excel
+
+import (
+	"errors"
+	"github.com/beevik/etree"
+)
+
+// GetDefaultSheetIndex 获取数据源工作表索引
+func GetDefaultSheetIndex(workbookPath string, defaultSheetName string) (defaultSheetIndex int, err error) {
+	doc := etree.NewDocument()
+	if err = doc.ReadFromFile(workbookPath); err != nil {
+		return
+	}
+	flag := false
+	workbook := doc.SelectElement("workbook")
+	sheets := workbook.SelectElement("sheets")
+	for index, sheet := range sheets.SelectElements("sheet") {
+		for _, attr := range sheet.Attr {
+			if attr.Key == "name" && attr.Value == defaultSheetName {
+				defaultSheetIndex = index
+				flag = true
+			}
+		}
+	}
+	if flag == false {
+		err = errors.New(defaultSheetName + "工作表未找到")
+	}
+	return
+}
+
+// GetDefaultSheetIndex 获取数据源工作表索引
+func GetDefaultSheetData(sheetPath string, defaultSheetName string) (defaultSheetIndex int, err error) {
+	doc := etree.NewDocument()
+	if err = doc.ReadFromFile(sheetPath); err != nil {
+		return
+	}
+	flag := false
+	workbook := doc.SelectElement("worksheet")
+	sheets := workbook.SelectElement("sheets")
+	for index, sheet := range sheets.SelectElements("sheet") {
+		for _, attr := range sheet.Attr {
+			if attr.Key == "name" && attr.Value == defaultSheetName {
+				defaultSheetIndex = index
+				flag = true
+			}
+		}
+	}
+	if flag == false {
+		err = errors.New(defaultSheetName + "工作表未找到")
+	}
+	return
+}