Browse Source

fix: 自定义分析分享排序

hsun 7 months ago
parent
commit
9871d17844

+ 5 - 1
controllers/data_manage/excel/custom_analysis.go

@@ -706,7 +706,7 @@ func (c *CustomAnalysisController) ClassifyList() {
 			}
 		}
 
-		sortUser := make([]int, 0)
+		sortUser := make([]int, 0) // 分享人目录排序
 		shareExists := make(map[int]bool)
 		for _, v := range excels {
 			item := new(excelModel.ExcelClassifyItems)
@@ -750,6 +750,10 @@ func (c *CustomAnalysisController) ClassifyList() {
 				sharedUserClassify[v.CreateUserId].Children = append(sharedUserClassify[v.CreateUserId].Children, item)
 			}
 		}
+		// 按照分享人第一次分享时间降序=_=!, 查询的时候是升序, 这里反过来
+		for i, j := 0, len(sortUser)-1; i < j; i, j = i+1, j-1 {
+			sortUser[i], sortUser[j] = sortUser[j], sortUser[i]
+		}
 		for _, v := range sortUser {
 			if sharedUserClassify[v] != nil {
 				sharedExcel.Children = append(sharedExcel.Children, sharedUserClassify[v])

+ 18 - 5
controllers/data_manage/excel/excel_classify.go

@@ -392,11 +392,24 @@ func (this *ExcelClassifyController) AddExcelClassify() {
 	}
 
 	// 获取同级分类下存在同名分类的数量
-	count, err := excel.GetExcelClassifyCount(req.ExcelClassifyName, req.ParentId, source)
-	if err != nil {
-		br.Msg = "判断名称是否已存在失败"
-		br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
-		return
+	var count int
+	if source == utils.CUSTOM_ANALYSIS_TABLE {
+		// 自定义分析分类私有化了
+		ct, e := excel.GetCustomAnalysisExcelClassifyCount(req.ExcelClassifyName, req.ParentId, source, this.SysUser.AdminId)
+		if e != nil {
+			br.Msg = "操作失败"
+			br.ErrMsg = fmt.Sprintf("获取自定义分析同级分类下同名分类失败, %v", e)
+			return
+		}
+		count = ct
+	} else {
+		ct, e := excel.GetExcelClassifyCount(req.ExcelClassifyName, req.ParentId, source)
+		if e != nil {
+			br.Msg = "操作失败"
+			br.ErrMsg = fmt.Sprintf("获取同级分类下同名分类失败, %v", e)
+			return
+		}
+		count = ct
 	}
 	if count > 0 {
 		br.Msg = "分类名称已存在,请重新输入"

+ 15 - 11
controllers/data_manage/excel/excel_info.go

@@ -128,6 +128,12 @@ func (c *ExcelInfoController) Add() {
 	condition += " AND excel_name=? "
 	pars = append(pars, req.ExcelName)
 
+	// 自定义分析私有化了
+	if req.Source == utils.CUSTOM_ANALYSIS_TABLE {
+		condition += ` AND sys_user_id = ? `
+		pars = append(pars, sysUser.AdminId)
+	}
+
 	// 获取分类下是否存在该表格名称
 	count, err := excel3.GetExcelInfoCountByCondition(condition, pars)
 	if err != nil {
@@ -728,7 +734,6 @@ func (c *ExcelInfoController) Detail() {
 		excelDetail.ExcelSourceEn = strings.Join(sourceNameEnList, ",")
 	}
 
-
 	// excel表格按钮权限
 	if excelDetail.Source != utils.BALANCE_TABLE {
 		excelDetail.Button = excel2.GetExcelInfoOpButton(sysUser, excelDetail.SysUserId, excelDetail.Source, excelDetail.HaveOperaAuth)
@@ -1857,9 +1862,9 @@ func (c *ExcelInfoController) GetFirstEdbData() {
 	br.Success = true
 	br.Msg = "获取成功"
 	br.Data = response.TableDataItem{
-		EdbInfoId: edbInfoId,
-		Data:      dataList,
-		ExcelSource: excelSource,
+		EdbInfoId:     edbInfoId,
+		Data:          dataList,
+		ExcelSource:   excelSource,
 		ExcelSourceEn: excelSourceEn,
 	}
 }
@@ -1936,9 +1941,9 @@ func (c *ExcelInfoController) GetOtherEdbData() {
 	br.Success = true
 	br.Msg = "获取成功"
 	br.Data = response.TableDataItem{
-		EdbInfoId: req.EdbInfoId,
-		Data:      dataList,
-		ExcelSource: excelSource,
+		EdbInfoId:     req.EdbInfoId,
+		Data:          dataList,
+		ExcelSource:   excelSource,
 		ExcelSourceEn: excelSourceEn,
 	}
 }
@@ -2914,7 +2919,6 @@ func (c *ExcelInfoController) GetBatchChartRefreshResult() {
 	br.Success = true
 }
 
-
 // GetBatchChartRefreshResult
 // @Title 获取批量刷新表格结果
 // @Description 获取批量刷新表格结果
@@ -2935,7 +2939,7 @@ func (c *ExcelInfoController) GetEdbSource() {
 		return
 	}
 	edbInfoId, _ := c.GetInt("EdbInfoId")
-	if edbInfoId <= 0  {
+	if edbInfoId <= 0 {
 		br.Msg = "请选择指标"
 		br.ErrMsg = "请选择指标"
 		br.IsSendEmail = false
@@ -2951,7 +2955,7 @@ func (c *ExcelInfoController) GetEdbSource() {
 	excelSourceEn := strings.Join(sourceNameEnList, ",")
 
 	var resp struct {
-		ExcelSource string `description:"表格来源"`
+		ExcelSource   string `description:"表格来源"`
 		ExcelSourceEn string `description:"表格来源(英文)"`
 	}
 
@@ -2961,4 +2965,4 @@ func (c *ExcelInfoController) GetEdbSource() {
 	br.Data = resp
 	br.Ret = 200
 	br.Success = true
-}
+}

+ 1 - 1
models/data_manage/data_manage_permission/excel.go

@@ -993,7 +993,7 @@ func GetAdminAuthExcelInfoPermission(source, adminId int, keywords string) (item
 		sql += ` AND b.excel_name LIKE ?`
 		pars = append(pars, keywords)
 	}
-	sql += ` ORDER BY a.create_time DESC`
+	sql += ` ORDER BY a.create_time ASC`
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }

+ 7 - 0
models/data_manage/excel/excel_classify.go

@@ -247,3 +247,10 @@ func GetExcelClassifyModelBySource(source int) (items []*ExcelClassify, err erro
 	_, err = o.Raw(sql, source).QueryRows(&items)
 	return
 }
+
+func GetCustomAnalysisExcelClassifyCount(classifyName string, parentId, source, adminId int) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT COUNT(1) AS count FROM excel_classify WHERE parent_id = ? AND source = ? AND excel_classify_name = ? AND is_delete = 0 AND sys_user_id = ?`
+	err = o.Raw(sql, parentId, source, classifyName).QueryRow(&count)
+	return
+}