Forráskód Böngészése

Merge branch 'debug' of http://8.136.199.33:3000/hongze/hz_eta_api into debug

hsun 1 éve
szülő
commit
9294409599

+ 3 - 0
controllers/data_manage/chart_classify.go

@@ -1037,6 +1037,9 @@ func (this *ChartClassifyController) ChartClassifyChartListV2() {
 
 	for k, item := range allNodes {
 		item.Button = data.GetChartOpButton(this.SysUser, item.SysUserId)
+		item.Button.AddButton = false
+		item.Button.OpButton = false
+		item.Button.DeleteButton = false
 		allNodes[k] = item
 	}
 

+ 117 - 0
controllers/data_manage/edb_info.go

@@ -6,7 +6,9 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_eta_api/controllers"
 	"hongze/hz_eta_api/models"
+	"hongze/hz_eta_api/models/company"
 	"hongze/hz_eta_api/models/data_manage"
+	"hongze/hz_eta_api/models/system"
 	"hongze/hz_eta_api/services/alarm_msg"
 	"hongze/hz_eta_api/services/data"
 	"hongze/hz_eta_api/services/elastic"
@@ -4180,3 +4182,118 @@ func (this *EdbInfoController) GetEdbBeforeAndAfterDateData() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+
+// EdbChartAdminList
+// @Title 获取创建人员分组
+// @Description 获取创建人员分组
+// @Param   Source   query   int  false       "来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库"
+// @Success 200 {object} company.DepartmentGroupSellersResp
+// @router /edb_chart/adminList [get]
+func (this *EdbInfoController) EdbChartAdminList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	source, _ := this.GetInt("Source", 0)
+	if source <= 0 || source > 5 {
+		br.Msg = "错误的来源"
+		br.IsSendEmail = false
+		return
+	}
+
+	idList, err := data.GetEdbChartAdminList(source)
+	if err != nil {
+		//br.Success = true
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+
+	fmt.Println("idlist:",idList)
+	systemAdminMap := make(map[int]*system.Admin)
+	departmentMap := make(map[string]string)
+	departmentAdminMap := make(map[int]string)
+	groupMap := make(map[string]string)
+	systemAdminList, err := system.GetAdminListByIdListWithoutEnable(idList)
+	if err != nil {
+		br.Msg = "获取用户列表失败"
+		br.ErrMsg = "获取用户列表失败,Err:" + err.Error()
+		return
+	}
+
+	for _, v := range systemAdminList {
+		systemAdminMap[v.AdminId] = v
+		departmentMap[v.DepartmentName] = v.DepartmentName
+		departmentAdminMap[v.AdminId] = v.DepartmentName
+		groupMap[v.GroupName] = v.DepartmentName
+	}
+
+	depList := make([]company.DepartmentGroupAdmins, 0)
+
+	i := 1
+	for _, v := range departmentMap {
+		item := company.DepartmentGroupAdmins{
+			AdminId:      "dep_" + strconv.Itoa(i),
+			RealName:     v,
+		}
+		i++
+		depList = append(depList, item)
+	}
+
+	for k:=0;k<len(depList);k++{
+		for k1, v1 := range groupMap {
+			if v1 == depList[k].RealName && v1 != "" {
+				item := &company.DepartmentGroupAdmins{
+					AdminId:      "group_" + strconv.Itoa(k),
+					RealName:     k1,
+				}
+				depList[k].ChildrenList = append(depList[k].ChildrenList, item)
+			}
+		}
+	}
+
+
+
+	for _, admin := range systemAdminList {
+		for i, v := range depList {
+			for _, group := range v.ChildrenList {
+				if admin.GroupName == group.RealName {
+					item := &company.DepartmentGroupAdmins{
+						AdminId:      strconv.Itoa(admin.AdminId),
+						RealName:     admin.RealName,
+						RoleTypeCode: admin.RoleTypeCode,
+						Authority:    admin.Authority,
+					}
+					if group.RealName != "" {
+						group.ChildrenList = append(group.ChildrenList, item)
+					} else {
+						depList[i].ChildrenList = append(depList[i].ChildrenList, item)
+					}
+				}
+			}
+		}
+	}
+
+	for _, groupList := range depList {
+		for k, v := range groupList.ChildrenList {
+			if v.RealName == "" {
+				groupList.ChildrenList = append(groupList.ChildrenList[:k], groupList.ChildrenList[k+1:]...)
+			}
+		}
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = depList
+}

+ 260 - 0
controllers/out_link.go

@@ -0,0 +1,260 @@
+package controllers
+
+import (
+	"encoding/json"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"hongze/hz_eta_api/models"
+	"hongze/hz_eta_api/utils"
+	"strings"
+	"time"
+)
+
+type OutLinkController struct {
+	BaseAuthController
+}
+
+// Save
+// @Title 保存外部链接
+// @Description 保存外部链接
+// @Param	request	body models.OutLinkSaveReq true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /save [post]
+func (ol *OutLinkController) Save() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		ol.Data["json"] = br
+		ol.ServeJSON()
+	}()
+	var req models.OutLinkSaveReq
+	if e := json.Unmarshal(ol.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+	req.Title = strings.TrimSpace(req.Title)
+	if req.Title == "" {
+		br.Msg = "请输入菜单名称"
+		return
+	}
+	req.Url = strings.TrimSpace(req.Url)
+	if req.Url == "" {
+		br.Msg = "请输入页面链接地址"
+		return
+	}
+
+	outLink := new(models.OutLink)
+	if req.Id > 0 {
+		// 编辑
+		err := outLink.GetItemById(req.Id)
+		if err != nil {
+			br.Msg = "该记录不存在"
+			br.ErrMsg = "该记录不存在,Err:" + err.Error()
+			return
+		}
+		if outLink.Title == req.Title && outLink.Url == req.Url {
+			br.Ret = 200
+			br.Success = true
+			br.Msg = "操作成功"
+			return
+		}
+		outLink.Title = req.Title
+		outLink.Url = req.Url
+		outLink.ModifyTime = time.Now()
+		err = outLink.Update([]string{"Title", "Url", "ModifyTime"})
+		if err != nil {
+			br.Msg = "更新失败"
+			br.ErrMsg = "更新失败,Err:" + err.Error()
+			return
+		}
+	} else {
+		outLink.Title = req.Title
+		outLink.Url = req.Url
+		outLink.CreateTime = time.Now()
+		outLink.SysAdminId = ol.SysUser.AdminId
+		outLink.SysAdminName = ol.SysUser.AdminName
+		outLink.ModifyTime = time.Now()
+		err := outLink.Create()
+		if err != nil {
+			br.Msg = "新增失败"
+			br.ErrMsg = "新增失败,Err:" + err.Error()
+			return
+		}
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+	return
+}
+
+// Del
+// @Title 删除外部链接
+// @Description 删除外部链接
+// @Param	request	body models.OutLinkReq true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /del [post]
+func (ol *OutLinkController) Del() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		ol.Data["json"] = br
+		ol.ServeJSON()
+	}()
+	var req models.OutLinkReq
+	if e := json.Unmarshal(ol.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+	if req.Id == 0 {
+		br.Msg = "请选择要删除的外部链接"
+		return
+	}
+
+	outLink := new(models.OutLink)
+	// 查询
+	err := outLink.GetItemById(req.Id)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "该记录已被删除, 请刷新页面"
+			return
+		}
+		br.Msg = "操作失败"
+		br.ErrMsg = "操作失败,Err:" + err.Error()
+		return
+	}
+
+	err = outLink.Del()
+	if err != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "操作失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+	return
+}
+
+// List
+// @Title 外部链接列表
+// @Description 外部链接列表
+// @Param   PageSize  query  int  true  "每页记录数"
+// @Param   CurrentIndex  query  int  true  "请求页码"
+// @Success 200 Ret=200 操作成功
+// @router /list [get]
+func (ol *OutLinkController) List() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		ol.Data["json"] = br
+		ol.ServeJSON()
+	}()
+	var startSize int
+	pageSize, _ := ol.GetInt("PageSize")
+	currentIndex, _ := ol.GetInt("CurrentIndex")
+	sortParam := ol.GetString("SortParam")
+	sortType := ol.GetString("SortType")
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	var orderRule string
+	if sortParam == "create_time" {
+		orderRule = " create_time "
+	}
+	if orderRule != "" {
+		if strings.ToLower(sortType) == "asc" || strings.ToLower(sortType) == "desc" {
+			orderRule += sortType
+		}
+	}
+
+	startSize = paging.StartIndex(currentIndex, pageSize)
+
+	item := new(models.OutLink)
+	cond := ``
+	pars := make([]interface{}, 0)
+
+	total, list, e := item.GetPageItemsByCondition(startSize, pageSize, cond, pars, []string{}, orderRule)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取外部链接列表失败, Err: " + e.Error()
+		return
+	}
+
+	respList := make([]*models.OutLinkItem, 0)
+	for i := range list {
+		v := new(models.OutLinkItem)
+		v.Id = list[i].Id
+		v.Title = list[i].Title
+		v.Url = list[i].Url
+		v.CreateTime = list[i].CreateTime.Format(utils.FormatDateTime)
+		v.ModifyTime = list[i].ModifyTime.Format(utils.FormatDateTime)
+		respList = append(respList, v)
+	}
+
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	resp := &models.OutLinkListResp{
+		Paging: page,
+		List:   respList,
+	}
+	br.Data = resp
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	return
+}
+
+// AllList
+// @Title 外部链接展示列表
+// @Description 外部链接展示列表
+// @Success 200 Ret=200 操作成功
+// @router /all [get]
+func (ol *OutLinkController) AllList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		ol.Data["json"] = br
+		ol.ServeJSON()
+	}()
+
+	item := new(models.OutLink)
+	cond := ``
+	pars := make([]interface{}, 0)
+	list, e := item.GetItemsByCondition(cond, pars, "")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取外部链接列表失败, Err: " + e.Error()
+		return
+	}
+	respList := make([]*models.OutLinkItem, 0)
+	for i := range list {
+		v := new(models.OutLinkItem)
+		v.Id = list[i].Id
+		v.Title = list[i].Title
+		v.Url = list[i].Url
+		v.CreateTime = list[i].CreateTime.Format(utils.FormatDateTime)
+		v.ModifyTime = list[i].ModifyTime.Format(utils.FormatDateTime)
+		respList = append(respList, v)
+	}
+	resp := &models.OutLinkListResp{
+		List: respList,
+	}
+	br.Data = resp
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	return
+}

+ 27 - 48
controllers/semantic_analysis/sa_compare.go

@@ -6,7 +6,6 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_eta_api/controllers"
 	"hongze/hz_eta_api/models"
-	"hongze/hz_eta_api/models/data_manage"
 	saModel "hongze/hz_eta_api/models/semantic_analysis"
 	"hongze/hz_eta_api/services"
 	"hongze/hz_eta_api/utils"
@@ -178,11 +177,6 @@ func (this *SaCompareController) Save() {
 		}
 	}
 
-	// 新增ES对比文档
-	go func() {
-		_ = services.HandleElasticSaCompare(compareItem.SaCompareId)
-	}()
-
 	// 获取表格数据
 	compLabCond := fmt.Sprintf(` AND a.%s = ?`, saModel.SaCompareLabelColumns.CompareId)
 	compLabPars := make([]interface{}, 0)
@@ -325,11 +319,6 @@ func (this *SaCompareController) UpdateResultImg() {
 		return
 	}
 
-	// 新增ES对比文档
-	go func() {
-		_ = services.HandleElasticSaCompare(compareItem.SaCompareId)
-	}()
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"
@@ -502,9 +491,6 @@ func (this *SaCompareController) Del() {
 		br.ErrMsg = "删除语义分析比对失败, Err: " + e.Error()
 		return
 	}
-	go func() {
-		_ = services.DeleteElasticSaCompare(item.SaCompareId)
-	}()
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "操作成功"
@@ -668,13 +654,13 @@ func (this *SaCompareController) Move() {
 	br.Msg = "操作成功"
 }
 
-// SearchByEs
+// Search
 // @Title 文档对比搜索(从es获取)
 // @Description  图表模糊搜索(从es获取)
 // @Param   Keyword   query   string  true       "文档对比标题"
 // @Success 200 {object} saModel.CompareListByEsResp
 // @router /compare/search [get]
-func (this *SaCompareController) SearchByEs() {
+func (this *SaCompareController) Search() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		this.Data["json"] = br
@@ -706,40 +692,33 @@ func (this *SaCompareController) SearchByEs() {
 	var total int
 	var err error
 
+	var list []*saModel.SaCompare
+	saCompare := new(saModel.SaCompare)
+	existCond := fmt.Sprintf(` AND result_img != ""`)
+	existPars := make([]interface{}, 0)
 	if keyword != "" {
-		total, searchList, err = services.EsSearchSaCompareData(keyword, startSize, pageSize)
-	} else {
-		var list []*saModel.SaCompare
-		saCompare := new(saModel.SaCompare)
-		existCond := fmt.Sprintf(` AND result_img != ""`)
-		existPars := make([]interface{}, 0)
-		total, list, err = saCompare.GetPageItemsByCondition(startSize, pageSize, existCond, existPars, []string{}, "")
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
-			return
-		}
-
-		for _, v := range list {
-			tmp := new(saModel.SaCompareElastic)
-			tmp.SaCompareId = v.SaCompareId
-			tmp.ResultImg = v.ResultImg
-			tmp.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
-			tmp.ModifyTime = v.ModifyTime.Format(utils.FormatDateTime)
-			tmp.SysAdminId = v.SysAdminId
-			tmp.SysAdminName = v.SysAdminName
-			tmp.ClassifyId = v.ClassifyId
-			tmp.ClassifyName = v.ClassifyName
-			tmp.Title = v.Title
-			searchList = append(searchList, tmp)
-		}
+		existCond += ` AND  ( title LIKE ? )`
+		existPars = append(existPars, `%`+keyword+`%`)
 	}
-	//新增搜索词记录
-	{
-		searchKeyword := new(data_manage.SearchKeyword)
-		searchKeyword.KeyWord = keyword
-		searchKeyword.CreateTime = time.Now()
-		go data_manage.AddSearchKeyword(searchKeyword)
+	total, list, err = saCompare.GetPageItemsByCondition(startSize, pageSize, existCond, existPars, []string{}, "")
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	for _, v := range list {
+		tmp := new(saModel.SaCompareElastic)
+		tmp.SaCompareId = v.SaCompareId
+		tmp.ResultImg = v.ResultImg
+		tmp.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
+		tmp.ModifyTime = v.ModifyTime.Format(utils.FormatDateTime)
+		tmp.SysAdminId = v.SysAdminId
+		tmp.SysAdminName = v.SysAdminName
+		tmp.ClassifyId = v.ClassifyId
+		tmp.ClassifyName = v.ClassifyName
+		tmp.Title = v.Title
+		searchList = append(searchList, tmp)
 	}
 
 	page := paging.GetPaging(currentIndex, pageSize, total)

+ 10 - 0
models/company/company_seller.go

@@ -23,3 +23,13 @@ type DepartmentGroupSellers struct {
 	RoleTypeCode string                   `description:"角色编码"`
 	Authority    int                      `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
 }
+
+
+type DepartmentGroupAdmins struct {
+	AdminId string `description:"系统用户id"`
+	//AdminName string `description:"系统用户名称"`
+	RealName     string                   `description:"用户真实名称"`
+	ChildrenList []*DepartmentGroupAdmins `description:"角色列表"`
+	RoleTypeCode string                   `description:"角色编码"`
+	Authority    int                      `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
+}

+ 9 - 0
models/data_manage/chart_info.go

@@ -1766,3 +1766,12 @@ func GetChartInfoByAdminIdAndClassify(sourceList []int, adminId, classifyId int)
 	_, err = o.Raw(sql, sourceList, adminId, classifyId).QueryRows(&items)
 	return
 }
+
+// GetChartInfoAdminList 根据条件获取图表数据了列表
+func GetChartInfoAdminList() (items []int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT sys_user_id FROM chart_info GROUP BY sys_user_id `
+
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 9 - 0
models/data_manage/edb_info.go

@@ -1770,3 +1770,12 @@ type BeforeAndAfterDateDataResp struct {
 	List []*EdbDataList `description:"list"`
 	Date string         `description:"实际日期"`
 }
+
+// GetEdbInfoAdminList
+func GetEdbInfoAdminList(edbType int) (list []int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT sys_user_id FROM edb_info WHERE edb_info_type = ? GROUP BY sys_user_id  `
+
+	_,err = o.Raw(sql, edbType).QueryRows(&list)
+	return
+}

+ 9 - 0
models/data_manage/mysteel_chemical_index.go

@@ -308,3 +308,12 @@ func ModifyMysteelChemicalIndexUserIdByCodeList(edbIdList []string, userId int,
 	_, err = o.Raw(sql, userId, userName, edbIdList).Exec()
 	return
 }
+
+// GetMysteelChemicalIndexAdminList 获取所有指标创建人
+func GetMysteelChemicalIndexAdminList() (list []int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT sys_user_id FROM base_from_mysteel_chemical_index GROUP BY sys_user_id `
+
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}

+ 2 - 27
models/data_manage/trade_analysis/trade_analysis.go

@@ -83,6 +83,7 @@ type TradeClassifyNameListItemItem struct {
 type TradeClassifyName struct {
 	ClassifyName string //分类名称
 	ClassifyType string //分类名称下的类型
+	LatestDate   string //分类下最晚日期
 }
 
 // GetExchangeClassify 获取交易所分类列表
@@ -128,6 +129,7 @@ type GetPositionTopResp struct {
 	CleanBuyList  GetPositionTopList `description:"净多单列表"`
 	CleanSoldList GetPositionTopList `description:"净空单列表"`
 	DataTime      string             `description:"最新日期或者请求日期"`
+	LastDataTime  string             `description:"最新日期"`
 }
 
 type GetPositionTopList struct {
@@ -156,30 +158,3 @@ func GetTradePositionTop(exchange string, classifyName, classifyType, dataTime s
 
 	return
 }
-
-func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string) (item *TradePositionTop, err error) {
-	tableName := "trade_position_" + exchange + "_top"
-	sql := `SELECT * FROM ` + tableName + ` WHERE classify_name=? `
-	pars := make([]interface{}, 0)
-	if exchange == "zhengzhou" {
-		pars = append(pars, classifyType)
-	} else {
-		pars = append(pars, classifyName)
-		sql += ` AND classify_type=? `
-		pars = append(pars, classifyType)
-	}
-	sql += ` ORDER BY data_time desc`
-	o := orm.NewOrmUsingDB("data")
-	err = o.Raw(sql, pars...).QueryRow(&item)
-
-	return
-}
-
-func GetZhengzhouClassifyTypeByClassifyName(classifyName string) (item *TradeClassifyName, err error) {
-	tableName := "base_from_trade_zhengzhou_index"
-	sql := `SELECT classify_name, classify_type FROM ` + tableName + ` WHERE classify_name=? `
-	o := orm.NewOrmUsingDB("data")
-	err = o.Raw(sql, classifyName).QueryRow(&item)
-
-	return
-}

+ 55 - 0
models/data_manage/trade_analysis/trade_classify.go

@@ -0,0 +1,55 @@
+package trade_analysis
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+// BaseFromTradeClassify 交易所分类表
+type BaseFromTradeClassify struct {
+	Id           uint64    `orm:"column(id);pk"`
+	ClassifyName string    //分类名称
+	ClassifyType string    //分类名称下的类型
+	Exchange     string    //交易所
+	LatestDate   time.Time //数据最近的日期
+	CreateTime   time.Time //插入时间
+	ModifyTime   time.Time //修改时间
+}
+
+// GetAllBaseFromTradeClassify 获取所有的交易所分类列表
+func GetAllBaseFromTradeClassify() (list []*BaseFromTradeClassify, err error) {
+	sql := `SELECT * FROM base_from_trade_classify   `
+
+	o := orm.NewOrmUsingDB("data")
+	_, err = o.Raw(sql).QueryRows(&list)
+
+	return
+}
+
+func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string) (item *BaseFromTradeClassify, err error) {
+	sql := `SELECT * FROM base_from_trade_classify WHERE exchange = ? AND classify_name=? `
+	pars := make([]interface{}, 0)
+	pars = append(pars, exchange)
+
+	if exchange == "zhengzhou" {
+		pars = append(pars, classifyType)
+	} else {
+		pars = append(pars, classifyName)
+		sql += ` AND classify_type=? `
+		pars = append(pars, classifyType)
+	}
+	sql += ` ORDER BY latest_date desc`
+	o := orm.NewOrmUsingDB("data")
+	err = o.Raw(sql, pars...).QueryRow(&item)
+
+	return
+}
+
+// GetClassifyTypeByClassifyName 根据分类名称获取分类类型
+func GetClassifyTypeByClassifyName(exchange, classifyName string) (item *TradeClassifyName, err error) {
+	sql := `SELECT classify_name, classify_type FROM base_from_trade_classify WHERE exchange = ? AND classify_name=? `
+	o := orm.NewOrmUsingDB("data")
+	err = o.Raw(sql, exchange, classifyName).QueryRow(&item)
+
+	return
+}

+ 9 - 0
models/db.go

@@ -136,6 +136,9 @@ func init() {
 
 	// 商家配置
 	initBusinessConf()
+
+	// 外部链接
+	initOutLink()
 }
 
 // initSystem 系统表 数据表
@@ -406,3 +409,9 @@ func initBusinessConf() {
 		new(BusinessConfOperationRecord), // 商家配置操作记录表
 	)
 }
+
+func initOutLink() {
+	orm.RegisterModel(
+		new(OutLink), // 外部链接表
+	)
+}

+ 115 - 0
models/out_link.go

@@ -0,0 +1,115 @@
+package models
+
+import (
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"strings"
+	"time"
+)
+
+type OutLink struct {
+	Id           int       `orm:"column(id);pk;auto" description:"自增序号"`
+	Title        string    `description:"菜单名称"`
+	Url          string    `description:"链接地址"`
+	SysAdminId   int       `description:"创建人ID"`
+	SysAdminName string    `description:"创建人姓名"`
+	CreateTime   time.Time `description:"创建时间"`
+	ModifyTime   time.Time `description:"修改时间"`
+}
+
+type OutLinkItem struct {
+	Id         int    `description:"自增序号"`
+	Title      string `description:"菜单名称"`
+	Url        string `description:"链接地址"`
+	CreateTime string `description:"创建时间"`
+	ModifyTime string `description:"修改时间"`
+}
+
+type OutLinkListResp struct {
+	List   []*OutLinkItem
+	Paging *paging.PagingItem `description:"分页数据"`
+}
+
+type OutLinkSaveReq struct {
+	Id    int    `description:"序号"`
+	Title string `description:"菜单名称"`
+	Url   string `description:"链接地址"`
+}
+
+type OutLinkReq struct {
+	Id int `description:"序号"`
+}
+
+func (ol *OutLink) TableName() string {
+	return "out_link"
+}
+
+func (ol *OutLink) Create() (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(ol)
+	if err != nil {
+		return
+	}
+	return
+}
+
+func (ol *OutLink) GetItemById(id int) (err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM out_link WHERE id = ? LIMIT 1`
+	err = o.Raw(sql, id).QueryRow(&ol)
+	return
+}
+
+func (ol *OutLink) GetItemsByCondition(condition string, pars []interface{}, orderRule string) (items []*OutLink, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM out_link WHERE 1=1 `
+	sql += condition
+	order := ` ORDER BY create_time ASC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql += order
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+func (ol *OutLink) Update(cols []string) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Update(ol, cols...)
+	return
+}
+
+func (ol *OutLink) Del() (err error) {
+	o := orm.NewOrm()
+	sql := `DELETE FROM out_link WHERE id = ? LIMIT 1`
+	_, err = o.Raw(sql, ol.Id).Exec()
+	return
+}
+
+func (ol *OutLink) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, ol.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func (ol *OutLink) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*OutLink, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time ASC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, ol.TableName(), condition, order)
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+		return
+	}
+	sql += ` LIMIT ?,?`
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 7 - 0
models/target.go

@@ -1436,3 +1436,10 @@ func ModifyEdbinfoUserIdByCodeList(edbCodeList []string, userId int) (err error)
 	_, err = o.Raw(sql, userId, edbCodeList).Exec()
 	return
 }
+
+func GetEdbInfoAdminList() (list []int, err error) {
+	sql := `SELECT user_id FROM edbinfo GROUP BY user_id `
+	o := orm.NewOrmUsingDB("edb")
+	_,err = o.Raw(sql).QueryRows(&list)
+	return
+}

+ 46 - 1
routers/commentsRouter.go

@@ -1924,6 +1924,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbInfoController"],
+        beego.ControllerComments{
+            Method: "EdbChartAdminList",
+            Router: `/edb_chart/adminList`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/data_manage:EdbInfoController"],
         beego.ControllerComments{
             Method: "MoveEdbChartUser",
@@ -4230,7 +4239,7 @@ func init() {
 
     beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/semantic_analysis:SaCompareController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers/semantic_analysis:SaCompareController"],
         beego.ControllerComments{
-            Method: "SearchByEs",
+            Method: "Search",
             Router: `/compare/search`,
             AllowHTTPMethods: []string{"get"},
             MethodParams: param.Make(),
@@ -4669,6 +4678,42 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"],
+        beego.ControllerComments{
+            Method: "AllList",
+            Router: `/all`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"],
+        beego.ControllerComments{
+            Method: "Del",
+            Router: `/del`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:OutLinkController"],
+        beego.ControllerComments{
+            Method: "Save",
+            Router: `/save`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:PdfToImgCommonController"] = append(beego.GlobalControllerRouter["hongze/hz_eta_api/controllers:PdfToImgCommonController"],
         beego.ControllerComments{
             Method: "PdfToImgConvert",

+ 5 - 0
routers/router.go

@@ -270,6 +270,11 @@ func init() {
 				&trade_analysis.TradeAnalysisController{},
 			),
 		),
+		web.NSNamespace("/out_link",
+			web.NSInclude(
+				&controllers.OutLinkController{},
+			),
+		),
 	)
 	web.AddNamespace(ns)
 }

+ 46 - 6
services/data/edb_info.go

@@ -2031,8 +2031,8 @@ func GetMoveEdbChartList(source, userId int, keyword, classify string, startSize
 
 	case 2: //钢联化工数据库
 		if keyword != `` {
-			condition += " AND (index_name like ? OR index_code like ?) "
-			pars = append(pars, "%"+keyword+"%", "%"+keyword+"%")
+			condition += " AND (index_name like ? OR index_code like ? OR sys_user_real_name like ? ) "
+			pars = append(pars, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
 		}
 		if userId > 0 {
 			condition += ` AND sys_user_id = ? `
@@ -2065,8 +2065,8 @@ func GetMoveEdbChartList(source, userId int, keyword, classify string, startSize
 		}
 	case 3, 4: //ETA指标库、ETA预测指标
 		if keyword != `` {
-			condition += " AND (edb_code like ? OR edb_name like ?) "
-			pars = append(pars, "%"+keyword+"%", "%"+keyword+"%")
+			condition += " AND (edb_code like ? OR edb_name like ? OR sys_user_real_name like ? ) "
+			pars = append(pars, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
 		}
 		if userId > 0 {
 			condition += ` AND sys_user_id = ? `
@@ -2105,8 +2105,8 @@ func GetMoveEdbChartList(source, userId int, keyword, classify string, startSize
 		}
 	case 5: //图库
 		if keyword != `` {
-			condition += " AND chart_name like ?  "
-			pars = append(pars, "%"+keyword+"%")
+			condition += " AND (chart_name like ?  OR sys_user_real_name like ? ) "
+			pars = append(pars, "%"+keyword+"%", "%"+keyword+"%")
 		}
 		if userId > 0 {
 			condition += ` AND sys_user_id = ? `
@@ -2962,3 +2962,43 @@ func getEdbRuleTitle(edbInfo, parentEdbInfo *data_manage.EdbInfo, childList []da
 
 	return
 }
+
+
+// GetEdbChartAdminList
+// @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库
+func GetEdbChartAdminList(source int) (list []int, err error) {
+	switch source {
+	case 1: //手工数据指标
+		list, err = models.GetEdbInfoAdminList()
+		if err != nil {
+			return
+		}
+
+	case 2: //钢联化工数据库
+		list, err = data_manage.GetMysteelChemicalIndexAdminList()
+		if err != nil {
+			return
+		}
+
+	case 3: //ETA指标库
+		list, err = data_manage.GetEdbInfoAdminList(0)
+		if err != nil {
+			return
+		}
+
+	case 4: //ETA预测指标
+		list, err = data_manage.GetEdbInfoAdminList(1)
+		if err != nil {
+			return
+		}
+	case 5: //图库
+		list, err = data_manage.GetChartInfoAdminList()
+		if err != nil {
+			return
+		}
+	default:
+		return
+	}
+
+	return
+}

+ 54 - 38
services/data/trade_analysis/trade_analysis.go

@@ -6,7 +6,6 @@ import (
 	"hongze/hz_eta_api/utils"
 	"sort"
 	"strings"
-	"sync"
 	"time"
 )
 
@@ -26,36 +25,44 @@ func GetClassifyName() (list trade_analysis.TradeClassifyNameListSort, err error
 		"cffex":     4,
 		"ine":       5,
 	}
-	//查询每个交易所的最新更新时间
-	//查询每个交易所下的classifyNameList
+	//查询所有交易所下的分类
+	classifyExchangeList, tmpErr := trade_analysis.GetAllBaseFromTradeClassify()
+	if tmpErr != nil {
+		err = tmpErr
+		errMsg = "查询交易所最新更新时间失败"
+		return
+	}
+
+	// 每个交易所的分类信息
 	classifyExchangeMap := make(map[string][]trade_analysis.TradeClassifyName)
-	timeMap := make(map[string]string)
-	i := 0
-	var wg sync.WaitGroup
-	for k := range exchanges {
-		wg.Add(1)
-		go func(k string, classifyExchangeMap map[string][]trade_analysis.TradeClassifyName) {
-			defer wg.Done()
-			nameList, tmpErr := trade_analysis.GetExchangeClassify(k)
-			if tmpErr != nil {
-				err = tmpErr
-				return
-			}
-			for _, n := range nameList {
-				classifyExchangeMap[k] = append(classifyExchangeMap[k], n)
-			}
+	// 每个交易所的最新更新时间
+	timeLastMap := make(map[string]time.Time)
+	for _, v := range classifyExchangeList {
+		tmpExchange := v.Exchange
 
-			dataTimeItem, tmpErr := trade_analysis.GetExchangeLastTime(k)
-			if tmpErr != nil {
-				err = tmpErr
-				errMsg = "查询交易所最新更新时间失败"
-				return
-			}
-			timeMap[k] = dataTimeItem.CreateTime.Format(utils.FormatDateTime)
+		// 分类
+		tmpList, ok := classifyExchangeMap[tmpExchange]
+		if !ok {
+			tmpList = make([]trade_analysis.TradeClassifyName, 0)
+		}
+		tmpList = append(tmpList, trade_analysis.TradeClassifyName{
+			ClassifyName: v.ClassifyName,
+			ClassifyType: v.ClassifyType,
+			LatestDate:   v.LatestDate.Format(utils.FormatDate),
+		})
+		classifyExchangeMap[v.Exchange] = tmpList
 
-		}(k, classifyExchangeMap)
+		// 时间
+		if tmpLastTime, ok2 := timeLastMap[tmpExchange]; !ok2 {
+			timeLastMap[tmpExchange] = v.ModifyTime
+		} else {
+			if v.ModifyTime.After(tmpLastTime) {
+				timeLastMap[tmpExchange] = v.ModifyTime
+			}
+		}
 	}
-	wg.Wait()
+
+	i := 0
 	currDate := time.Now().Format(utils.FormatDate)
 	for k, v := range exchanges {
 		tmp := trade_analysis.TradeClassifyNameList{
@@ -70,12 +77,16 @@ func GetClassifyName() (list trade_analysis.TradeClassifyNameListSort, err error
 			errMsg = "查询交易所分类信息失败"
 			return
 		}
-		tmp.DataTime, ok = timeMap[k]
-		if !ok {
+
+		// 查询交易所最新更新时间失败
+		if timeLast, ok := timeLastMap[k]; ok {
+			tmp.DataTime = timeLast.Format(utils.FormatDateTime)
+		} else {
 			err = fmt.Errorf("查询交易所最新更新时间失败")
 			errMsg = "查询交易所最新更新时间失败"
 			return
 		}
+
 		classifyMap := make(map[string][]trade_analysis.TradeClassifyNameListItemItem)
 		if len(nameList) > 0 {
 			if k == "zhengzhou" {
@@ -230,16 +241,20 @@ func GetPositionTopDetail(req trade_analysis.GetPositionTopReq) (ret trade_analy
 		return
 	}
 	dataTimeStr := req.DataTime
-	var dataTime time.Time
+	var lastDataTime, dataTime time.Time
+
 	//查询最新的时间
+	lastItem, tmpErr := trade_analysis.GetTradeTopLastDataTime(exchange, req.ClassifyName, req.ClassifyType)
+	if tmpErr != nil {
+		errMsg = "查询最新的榜单信息失败"
+		err = tmpErr
+		return
+	}
+	lastDataTime = lastItem.LatestDate
+
+	// 如果没有传入日期,那么就用最晚的的日期
 	if dataTimeStr == "" {
-		lastItem, tmpErr := trade_analysis.GetTradeTopLastDataTime(exchange, req.ClassifyName, req.ClassifyType)
-		if tmpErr != nil {
-			errMsg = "查询最新的榜单信息失败"
-			err = tmpErr
-			return
-		}
-		dataTime = lastItem.DataTime
+		dataTime = lastDataTime
 	} else {
 		dataTime, err = time.ParseInLocation(utils.FormatDate, dataTimeStr, time.Local)
 		if err != nil {
@@ -261,7 +276,7 @@ func GetPositionTopDetail(req trade_analysis.GetPositionTopReq) (ret trade_analy
 	if exchange == "zhengzhou" {
 		classifyName = classifyType
 		var typeItem *trade_analysis.TradeClassifyName
-		typeItem, err = trade_analysis.GetZhengzhouClassifyTypeByClassifyName(classifyName)
+		typeItem, err = trade_analysis.GetClassifyTypeByClassifyName(exchange, classifyName)
 		if err != nil {
 			if err.Error() == utils.ErrNoRow() {
 				errMsg = "该合约不存在"
@@ -361,5 +376,6 @@ func GetPositionTopDetail(req trade_analysis.GetPositionTopReq) (ret trade_analy
 	ret.CleanSoldList.List = detailList[4]
 
 	ret.DataTime = dataTimeStr
+	ret.LastDataTime = lastDataTime.Format(utils.FormatDate)
 	return
 }

+ 0 - 164
services/elastic.go

@@ -2,7 +2,6 @@ package services
 
 import (
 	"context"
-	"encoding/json"
 	"fmt"
 	"github.com/olivere/elastic/v7"
 	"hongze/hz_eta_api/models"
@@ -208,65 +207,6 @@ func EsAddOrEditEnglishReport(indexName, docId string, item *models.ElasticEngli
 	return
 }
 
-// EsAddOrEditSaCompare 新增编辑es语义分析文档对比
-func EsAddOrEditSaCompare(indexName, docId string, item *saModel.SaCompareElastic) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("EsAddOrEditSaCompare Err:", err.Error())
-			go alarm_msg.SendAlarmMsg("新增编辑es语义分析文档对比 EsAddOrEditSaCompare,Err:"+err.Error(), 3)
-		}
-	}()
-	client := utils.EsClient
-	// docId为报告ID
-	searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
-	if err != nil {
-		if strings.Contains(err.Error(), "404") {
-			err = nil
-		} else {
-			fmt.Println("Get Err" + err.Error())
-			return
-		}
-	}
-	if searchById != nil && searchById.Found {
-		resp, e := client.Update().Index(indexName).Id(docId).Doc(map[string]interface{}{
-			"SaCompareId":  item.SaCompareId,
-			"ClassifyName": item.ClassifyName,
-			"ClassifyId":   item.ClassifyId,
-			"Title":        item.Title,
-			"ResultImg":    item.ResultImg,
-			"CreateTime":   item.CreateTime,
-			"ModifyTime":   item.ModifyTime,
-			"SysAdminId":   item.SysAdminId,
-			"SysAdminName": item.SysAdminName,
-		}).Do(context.Background())
-		if e != nil {
-			err = e
-			return
-		}
-		//fmt.Println(resp.Status, resp.Result)
-		if resp.Status == 0 {
-			fmt.Println("修改成功" + docId)
-			err = nil
-		} else {
-			fmt.Println("EditData", resp.Status, resp.Result)
-		}
-	} else {
-		resp, e := client.Index().Index(indexName).Id(docId).BodyJson(item).Do(context.Background())
-		if e != nil {
-			err = e
-			fmt.Println("新增失败:", err.Error())
-			return
-		}
-		if resp.Status == 0 && resp.Result == "created" {
-			fmt.Println("新增成功" + docId)
-			return
-		} else {
-			fmt.Println("AddData", resp.Status, resp.Result)
-		}
-	}
-	return
-}
-
 // EsAddOrEditSaDoc 新增编辑语义分析文档
 func EsAddOrEditSaDoc(indexName, docId string, item *saModel.ElasticSaDoc) (err error) {
 	defer func() {
@@ -327,107 +267,3 @@ func EsAddOrEditSaDoc(indexName, docId string, item *saModel.ElasticSaDoc) (err
 	fmt.Println("AddData", resp.Status, resp.Result)
 	return
 }
-
-// EsSearchSaCompareData 查询es中的文档对比信息
-func EsSearchSaCompareData(keywordStr string, from, size int) (total int, list []*saModel.SaCompareElastic, err error) {
-	list = make([]*saModel.SaCompareElastic, 0)
-	indexName := utils.EsSemanticAnalysisCompareIndexName
-	var tmpTotal int64
-	defer func() {
-		if err != nil {
-			fmt.Println("EsSearchSaCompareData Err:", err.Error())
-		}
-	}()
-	client := utils.EsClient
-
-	mustMap := make([]interface{}, 0)
-	mustNotMap := make([]interface{}, 0)
-
-	//关键字匹配
-	shouldMap := map[string]interface{}{
-		"should": []interface{}{
-			map[string]interface{}{
-				"match_phrase": map[string]interface{}{
-					"Title": keywordStr,
-					//"Frequency.keyword": "月度",
-				},
-			},
-		},
-	}
-	mustMap = append(mustMap, map[string]interface{}{
-		"bool": shouldMap,
-	})
-
-	queryMap := map[string]interface{}{
-		"query": map[string]interface{}{
-			"bool": map[string]interface{}{
-				"must":     mustMap,
-				"must_not": mustNotMap,
-				//"should":   shouldMap,
-			},
-		},
-	}
-
-	//根据条件数量统计
-	requestTotalHits := client.Count(indexName).BodyJson(queryMap)
-	tmpTotal, err = requestTotalHits.Do(context.Background())
-	if err != nil {
-		return
-	}
-	total = int(tmpTotal)
-	// 分页查询
-	queryMap["from"] = from
-	queryMap["size"] = size
-	queryMap["sort"] = []map[string]interface{}{
-		map[string]interface{}{
-			"CreateTime.keyword": map[string]interface{}{
-				"order": "desc",
-			},
-		},
-		map[string]interface{}{
-			"_score": map[string]interface{}{
-				"order": "desc",
-			},
-		},
-	}
-	jsonBytes, _ := json.Marshal(queryMap)
-	fmt.Println(string(jsonBytes))
-
-	request := client.Search(indexName).Source(queryMap) // sets the JSON request
-
-	searchMap := make(map[string]string)
-
-	searchResp, err := request.Do(context.Background())
-	if err != nil {
-		return
-	}
-	fmt.Println(searchResp)
-	fmt.Println(searchResp.Status)
-	if searchResp.Status != 0 {
-		return
-	}
-
-	if searchResp.Hits != nil {
-		for _, v := range searchResp.Hits.Hits {
-			if _, ok := searchMap[v.Id]; !ok {
-				itemJson, tmpErr := v.Source.MarshalJSON()
-				if tmpErr != nil {
-					err = tmpErr
-					fmt.Println("movieJson err:", err)
-					return
-				}
-				compareItem := new(saModel.SaCompareElastic)
-				tmpErr = json.Unmarshal(itemJson, &compareItem)
-				if err != nil {
-					fmt.Println("json.Unmarshal itemJson err:", err)
-					err = tmpErr
-					return
-				}
-
-				list = append(list, compareItem)
-				searchMap[v.Id] = v.Id
-			}
-		}
-	}
-	return
-}

+ 0 - 63
services/english_report.go

@@ -598,69 +598,6 @@ func CreateEnglishReportIndex() {
 	EsCreateIndex(indexName, mappingJson)
 }
 
-func CreateSaCompareES() {
-	indexName := utils.EsSemanticAnalysisCompareIndexName
-	mappingJson := `{
-  "mappings": {
-    "dynamic": true,
-    "properties": {
-        "ResultImg" : {
-          "type" : "text"
-        },
-        "ClassifyName" : {
-          "type" : "text",
-          "fields" : {
-            "keyword" : {
-              "type" : "keyword",
-              "ignore_above" : 256
-            }
-          }
-        },
-		"SysAdminName" : {
-          "type" : "text"
-        },
-		"SysAdminId" : {
-          "type" : "long"
-        },
-        "ClassifyId" : {
-          "type" : "long"
-        },
-        "ModifyTime" : {
-          "type" : "text",
-          "fields" : {
-            "keyword" : {
-              "type" : "keyword",
-              "ignore_above" : 256
-            }
-          }
-        },
-       "CreateTime" : {
-          "type" : "text",
-          "fields" : {
-            "keyword" : {
-              "type" : "keyword",
-              "ignore_above" : 256
-            }
-          }
-        },
-        "SaCompareId" : {
-          "type" : "long"
-        },
-        "Title" : {
-          "type" : "text",
-          "fields" : {
-            "keyword" : {
-              "type" : "keyword",
-              "ignore_above" : 256
-            }
-          }
-        }
-      }
-  }
-}`
-	EsCreateIndex(indexName, mappingJson)
-}
-
 // UpdateEnReportEditMark 更新英文研报当前更新状态
 // status 枚举值 1:编辑中,0:完成编辑, 2:只做查询
 func UpdateEnReportEditMark(reportId, nowUserId, status int, nowUserName string) (ret models.MarkReportResp, err error) {

+ 0 - 50
services/semantic_analysis.go

@@ -513,53 +513,3 @@ func FormatCompareLabels2TableData(compareLabels []*saModel.SaCompareLabelItem)
 	}
 	return
 }
-
-// HandleElasticSaCompare 更新语义分析文档Es
-func HandleElasticSaCompare(saCompareId int) (err error) {
-	if saCompareId <= 0 {
-		return
-	}
-	saCompare := new(saModel.SaCompare)
-	err = saCompare.GetItemById(saCompareId)
-	if err != nil {
-		return
-	}
-	// 没有预览图,则不加入es
-	if saCompare.ResultImg == "" {
-		return
-	}
-	// 新增报告ES
-	saItem := &saModel.SaCompareElastic{
-		SaCompareId:  saCompare.SaCompareId,
-		ClassifyId:   saCompare.ClassifyId,
-		ClassifyName: saCompare.ClassifyName,
-		Title:        saCompare.Title,
-		ResultImg:    saCompare.ResultImg,
-		CreateTime:   saCompare.CreateTime.Format(utils.FormatDateTime),
-		ModifyTime:   saCompare.ModifyTime.Format(utils.FormatDateTime),
-		SysAdminId:   saCompare.SysAdminId,
-		SysAdminName: saCompare.SysAdminName,
-	}
-	docId := fmt.Sprintf("%d", saCompare.SaCompareId)
-	if err = EsAddOrEditSaCompare(utils.EsSemanticAnalysisCompareIndexName, docId, saItem); err != nil {
-		return
-	}
-	return
-}
-
-// DeleteElasticSaCompare Elastic-删除语义分析文档对比图
-func DeleteElasticSaCompare(saCompareId int) (err error) {
-	defer func() {
-		if err != nil {
-			alarm_msg.SendAlarmMsg(fmt.Sprintf("Elastic-删除语义分析文档对比图, Err: %s", err.Error()), 2)
-		}
-	}()
-	indexName := utils.EsSemanticAnalysisCompareIndexName
-
-	docId := fmt.Sprintf("%d", saCompareId)
-	if e := EsDeleteData(indexName, docId); e != nil && !strings.Contains(e.Error(), "404") {
-		err = fmt.Errorf("删除ES语义分析文档对比失败, Err: %s", e.Error())
-		return
-	}
-	return
-}

+ 0 - 87
services/task.go

@@ -1,11 +1,8 @@
 package services
 
 import (
-	"context"
 	"fmt"
-	"github.com/beego/beego/v2/adapter/logs"
 	"hongze/hz_eta_api/models"
-	saModel "hongze/hz_eta_api/models/semantic_analysis"
 	"hongze/hz_eta_api/services/alarm_msg"
 	"hongze/hz_eta_api/services/data"
 	"hongze/hz_eta_api/utils"
@@ -471,87 +468,3 @@ func FixEnCompanyPermission() {
 	}
 	fmt.Println("修复完成")
 }
-
-func ElasticSaCompareInit() {
-	// 标题去重
-	CreateSaCompareES()
-	var err error
-	defer func() {
-		if err != nil {
-			logs.Info("批量新增文档对比es出错" + err.Error())
-		}
-	}()
-	existItem := new(saModel.SaCompare)
-	existCond := fmt.Sprintf(` AND result_img != ""`)
-	existPars := make([]interface{}, 0)
-	list, e := existItem.GetItemsByCondition(existCond, existPars, []string{}, "")
-	if e != nil {
-		err = e
-		return
-	}
-	client := utils.EsClient
-	for _, saCompare := range list {
-		// 新增报告ES
-		item := &saModel.SaCompareElastic{
-			SaCompareId:  saCompare.SaCompareId,
-			ClassifyId:   saCompare.ClassifyId,
-			ClassifyName: saCompare.ClassifyName,
-			Title:        saCompare.Title,
-			ResultImg:    saCompare.ResultImg,
-			CreateTime:   saCompare.CreateTime.Format(utils.FormatDateTime),
-			ModifyTime:   saCompare.ModifyTime.Format(utils.FormatDateTime),
-			SysAdminId:   saCompare.SysAdminId,
-			SysAdminName: saCompare.SysAdminName,
-		}
-		docId := fmt.Sprintf("%d", saCompare.SaCompareId)
-		indexName := utils.EsSemanticAnalysisCompareIndexName
-
-		// docId为报告ID
-		searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
-		if err != nil {
-			if strings.Contains(err.Error(), "404") {
-				err = nil
-			} else {
-				fmt.Println("Get Err" + err.Error())
-				return
-			}
-		}
-		if searchById != nil && searchById.Found {
-			resp, e := client.Update().Index(indexName).Id(docId).Doc(map[string]interface{}{
-				"SaCompareId":  item.SaCompareId,
-				"ClassifyName": item.ClassifyName,
-				"ClassifyId":   item.ClassifyId,
-				"Title":        item.Title,
-				"ResultImg":    item.ResultImg,
-				"CreateTime":   item.CreateTime,
-				"ModifyTime":   item.ModifyTime,
-				"SysAdminId":   item.SysAdminId,
-				"SysAdminName": item.SysAdminName,
-			}).Do(context.Background())
-			if e != nil {
-				err = e
-				return
-			}
-			//fmt.Println(resp.Status, resp.Result)
-			if resp.Status == 0 {
-				fmt.Println("修改成功" + docId)
-				err = nil
-			} else {
-				fmt.Println("EditData", resp.Status, resp.Result)
-			}
-		} else {
-			resp, e := client.Index().Index(indexName).Id(docId).BodyJson(item).Do(context.Background())
-			if e != nil {
-				err = e
-				fmt.Println("新增失败:", err.Error())
-				return
-			}
-			if resp.Status == 0 && resp.Result == "created" {
-				fmt.Println("新增成功" + docId)
-			} else {
-				fmt.Println("AddData", resp.Status, resp.Result)
-			}
-		}
-
-	}
-}

+ 6 - 8
utils/config.go

@@ -100,13 +100,12 @@ var (
 
 // ES索引配置
 var (
-	DATA_INDEX_NAME                    string //数据指标库索引
-	CHART_INDEX_NAME                   string //研究图库索引
-	EsReportIndexName                  string //研报ES索引
-	EsEnglishReportIndexName           string //英文研报ES索引
-	MY_CHART_INDEX_NAME                string //研究图库(MY ETA)索引
-	EsSemanticAnalysisDocIndexName     string //ES语义分析文档索引名
-	EsSemanticAnalysisCompareIndexName string //ES语义分析文档对比索引名
+	DATA_INDEX_NAME                string //数据指标库索引
+	CHART_INDEX_NAME               string //研究图库索引
+	EsReportIndexName              string //研报ES索引
+	EsEnglishReportIndexName       string //英文研报ES索引
+	MY_CHART_INDEX_NAME            string //研究图库(MY ETA)索引
+	EsSemanticAnalysisDocIndexName string //ES语义分析文档索引名
 )
 
 // 科大讯飞--语音合成
@@ -386,7 +385,6 @@ func init() {
 		EsReportIndexName = config["es_report_index_name"]
 		EsEnglishReportIndexName = config["es_english_report_index_name"]
 		EsSemanticAnalysisDocIndexName = config["es_semantic_analysis_doc_index_name"]
-		EsSemanticAnalysisCompareIndexName = config["es_semantic_analysis_compare_doc_index_name"]
 	}
 
 	CrmEtaServerUrl = config["crm_eta_server_url"]