Selaa lähdekoodia

```删除未使用的代码并优化现有代码

- 移除了 api_uri.go、base_edb_lib.go、chart_classify.go 等多个文件中的未使用代码
- 优化了 correlation_chart_classify.go 中的 getChartClassifyListForMe 函数
- 删除了 report_approve/constant.go 中的未使用常量
- 调整了 classify.go 中的查询条件
```
Roc 6 kuukautta sitten
vanhempi
commit
4a0ecaf5dc
37 muutettua tiedostoa jossa 31 lisäystä ja 7837 poistoa
  1. 2 2
      controllers/classify.go
  2. 0 2238
      controllers/commodity_trade_base_index.go
  3. 0 33
      controllers/data_manage/chart_classify.go
  4. 2 51
      controllers/data_manage/correlation/correlation_chart_classify.go
  5. 2 52
      controllers/data_manage/range_analysis/chart_classify.go
  6. 0 259
      controllers/report.go
  7. 19 26
      controllers/report_approve/report_approve.go
  8. 3 7
      controllers/report_approve/report_approve_flow.go
  9. 0 306
      controllers/report_v2.go
  10. 0 50
      controllers/resource.go
  11. 0 58
      controllers/roadshow/calendar.go
  12. 0 1545
      controllers/smart_report/smart_report.go
  13. 0 27
      models/api_uri.go
  14. 0 656
      models/data_manage/base_from_trade_index.go
  15. 0 9
      models/data_manage/edb_info.go
  16. 0 13
      models/db2.go
  17. 0 4
      models/report_approve/constant.go
  18. 0 21
      models/report_chapter.go
  19. 0 22
      models/report_chapter_ticker.go
  20. 0 180
      models/report_chapter_type.go
  21. 0 25
      models/report_chapter_type_permission.go
  22. 0 424
      models/smart_report/smart_report.go
  23. 0 117
      models/smart_report/smart_report_save_log.go
  24. 0 117
      models/system/sys_role_admin.go
  25. 0 26
      models/user_seller_relation.go
  26. 0 75
      models/wx_user.go
  27. 0 342
      routers/commentsRouter.go
  28. 0 10
      routers/router.go
  29. 0 27
      services/data/base_edb_lib.go
  30. 0 86
      services/elastic.go
  31. 0 132
      services/eta_trial/questionnaire.go
  32. 0 451
      services/eta_trial/user.go
  33. 0 170
      services/report.go
  34. 2 124
      services/smart_report.go
  35. 0 68
      services/system.go
  36. 0 56
      services/target.go
  37. 1 28
      utils/email.go

+ 2 - 2
controllers/classify.go

@@ -154,9 +154,9 @@ func (this *ClassifyController) CheckDeleteClassify() {
 
 	// 查询该分类是否关联了审批流
 	flowOb := new(report_approve.ReportApproveFlow)
-	flowCond := fmt.Sprintf(` AND (%s = ? OR %s = ?) AND (%s = ? OR %s = ?)`, report_approve.ReportApproveFlowCols.ReportType, report_approve.ReportApproveFlowCols.ReportType, report_approve.ReportApproveFlowCols.ClassifyFirstId, report_approve.ReportApproveFlowCols.ClassifySecondId)
+	flowCond := fmt.Sprintf(` AND %s = ?  AND (%s = ? OR %s = ?)`, report_approve.ReportApproveFlowCols.ReportType, report_approve.ReportApproveFlowCols.ClassifyFirstId, report_approve.ReportApproveFlowCols.ClassifySecondId)
 	flowPars := make([]interface{}, 0)
-	flowPars = append(flowPars, report_approve.FlowReportTypeChinese, report_approve.FlowReportTypeSmart, classifyId, classifyId)
+	flowPars = append(flowPars, report_approve.FlowReportTypeChinese, classifyId, classifyId)
 	flowCount, e := flowOb.GetCountByCondition(flowCond, flowPars)
 	if e != nil {
 		br.Msg = "检测失败"

+ 0 - 2238
controllers/commodity_trade_base_index.go

@@ -1,2238 +0,0 @@
-package controllers
-
-import (
-	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/data_manage"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"strconv"
-	"strings"
-)
-
-type TradeCommonController struct {
-	BaseAuthController
-}
-
-type Data []struct {
-	Title    string
-	ItemList []ShanghaiList
-}
-type ShanghaiList struct {
-	Code string
-	Item []*data_manage.BaseFromTradeShanghaiIndex
-}
-type EicData struct {
-	Country                string
-	Type                   string
-	EicCode                string
-	ShortName              string
-	Name                   string
-	Status                 string
-	GasDayStartedOn        string
-	GasInStorage           float64
-	GasInStorageCode       string
-	Full                   float64
-	FullCode               string
-	Trend                  float64
-	TrendCode              string
-	Injection              float64
-	InjectionCode          string
-	Withdrawal             float64
-	WithdrawalCode         string
-	WorkingGasVolume       float64
-	WorkingGasVolumeCode   string
-	InjectionCapacity      float64
-	InjectionCapacityCode  string
-	WithdrawalCapacity     float64
-	WithdrawalCapacityCode string
-	Info                   string
-	Children               []*data_manage.BaseFromTradeEicIndex
-}
-
-// ExchangeClassify
-// @title	获取交易所种类列表
-// @Description	获取交易所种类列表接口
-// @Param	Exchange query string true	"交易所名称"
-// @Success 200 {object} models.
-// @router /data/exchange/classify [get]
-func (this *TradeCommonController) ExchangeClassify() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	exchange := this.GetString("Exchange")
-	date := this.GetString("DataTime")
-
-	var respItem [][]string
-
-	latestData, err := data_manage.GetLatestDate(exchange)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取最新日期失败,Err:" + err.Error()
-		return
-	}
-
-	if latestData == "" {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = respItem
-		return
-	}
-
-	if date == "" {
-		date = latestData
-	}
-
-	classifyName, err := data_manage.GetExchangeClassify(exchange, date)
-	if err != nil {
-		br.Msg = "获取种类失败"
-		br.ErrMsg = "获取种类失败,Err:" + err.Error()
-		return
-	}
-	respItem = append(respItem, classifyName)
-	respItem = append(respItem, []string{latestData})
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = respItem
-}
-
-// ExchangeClassifyContract
-// @title	获取交易所种类合约列表
-// @Description	获取交易所种类合约列表接口
-// @Param	Exchange query string true	"交易所名称"
-// @Param	Classify query string true	"种类名称"
-// @Param	DataTime query string true	"时间"
-// @Success 200 {object} models.
-// @router /data/exchange/classifyContract [get]
-func (this *TradeCommonController) ExchangeClassifyContract() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	exchange := this.GetString("Exchange")
-	classify := this.GetString("Classify")
-	dataTime := this.GetString("DataTime")
-	classifyName, err := data_manage.GetExchangeClassifyContract(exchange, classify, dataTime)
-	if err != nil {
-		br.Msg = "获取种类失败"
-		br.ErrMsg = "获取种类失败,Err:" + err.Error()
-		return
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = classifyName
-}
-
-// ShfeDataList
-// @title	获取上期所列表
-// @Description	获取上期所列表接口
-// @Param	Date query string true	"查询日期"
-// @Param	ClassifyName query string false	"分类名称"
-// @Param	ClassifyType query string false	"分类合约"
-// @Success 200 {object} models.
-// @router /data/shfe [get]
-func (this *TradeCommonController) ShfeDataList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	classifyName := this.GetString("ClassifyName")
-	classifyType := this.GetString("ClassifyType")
-	frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("shanghai", date, classifyName, classifyType)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	var data Data
-	var j, k int
-	if len(frequencyList) == 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = data
-	} else {
-		if classifyName == "" {
-			data = make(Data, 50)
-			for i, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				if data[j].Title == item.ClassifyName {
-					if data[j].ItemList[k].Code == item.ClassifyType {
-						data[j].ItemList[k].Item = append(data[j].ItemList[k].Item, item)
-						continue
-					}
-					if i > 0 {
-						k++
-					}
-					data[j].ItemList[k].Code = item.ClassifyType
-					data[j].ItemList[k].Item = append(data[j].ItemList[k].Item, item)
-					continue
-				}
-				if i != 0 {
-					if k == 0 {
-						data[j].ItemList = data[j].ItemList[:k+1]
-					} else {
-						data[j].ItemList = data[j].ItemList[:k]
-					}
-					j++
-					k = 0
-				}
-				if data[j].ItemList == nil {
-					list := make([]ShanghaiList, 930)
-					data[j].ItemList = list
-				}
-				data[j].Title = item.ClassifyName
-				data[j].ItemList[k].Code = item.ClassifyType
-				data[j].ItemList[k].Item = append(data[j].ItemList[k].Item, item)
-			}
-			data = data[:j]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		} else {
-			data = make(Data, 1)
-			for i, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = classifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 200)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[k].Code == item.ClassifyType {
-					data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-					continue
-				}
-				if i > 0 {
-					k++
-				}
-				data[0].ItemList[k].Code = item.ClassifyType
-				data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-			}
-			data[0].ItemList = data[0].ItemList[:k+1]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		}
-	}
-}
-
-// IneDataList
-// @title	获取上海国际能源交易所列表
-// @Description	获取上海国际能源交易所列表接口
-// @Param	Date query string true	"查询日期"
-// @Param	ClassifyName query string false	"分类名称"
-// @Param	ClassifyType query string false	"分类合约"
-// @Success 200 {object} models.
-// @router /data/ine [get]
-func (this *TradeCommonController) IneDataList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	classifyName := this.GetString("ClassifyName")
-	classifyType := this.GetString("ClassifyType")
-	frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("ine", date, classifyName, classifyType)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-
-	var data Data
-	var k int
-	if len(frequencyList) == 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = data
-	} else {
-		data = make(Data, 1)
-		if len(frequencyList) > 20 {
-			for i, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = classifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 200)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[k].Code == item.ClassifyType {
-					data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-					continue
-				}
-				if i > 0 {
-					k++
-				}
-				data[0].ItemList[k].Code = item.ClassifyType
-				data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-			}
-			data[0].ItemList = data[0].ItemList[:k+1]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		} else {
-			for _, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = item.ClassifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 1)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[0].Code == item.ClassifyType {
-					data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-					continue
-				}
-				//if i != 0 {
-				//	k++
-				//	fmt.Println(k)
-				//}
-				data[0].ItemList[0].Code = item.ClassifyType
-				data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-			}
-			//data[0].ItemList = data[0].ItemList[:k]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		}
-	}
-}
-
-// CffexDataList
-// @title	获取中金所所列表
-// @Description	获取中金所列表接口
-// @Param	Date query string true	"查询日期"
-// @Param	ClassifyName query string false	"分类名称"
-// @Param	ClassifyType query string false	"分类合约"
-// @Success 200 {object} models.
-// @router /data/cffex [get]
-func (this *TradeCommonController) CffexDataList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	date = strings.Replace(date, "-", "", -1)
-	classifyName := this.GetString("ClassifyName")
-	classifyType := this.GetString("ClassifyType")
-	frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("cffex", date, classifyName, classifyType)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	var data Data
-	var k int
-	if len(frequencyList) == 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = data
-	} else {
-		data = make(Data, 1)
-		if len(frequencyList) > 20 {
-			for i, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = classifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 200)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[k].Code == item.ClassifyType {
-					data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-					continue
-				}
-				if i > 0 {
-					k++
-				}
-				data[0].ItemList[k].Code = item.ClassifyType
-				data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-			}
-			data[0].ItemList = data[0].ItemList[:k+1]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		} else {
-			for _, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = item.ClassifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 1)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[0].Code == item.ClassifyType {
-					data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-					continue
-				}
-				//if i != 0 {
-				//	k++
-				//	fmt.Println(k)
-				//}
-				data[0].ItemList[0].Code = item.ClassifyType
-				data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-			}
-			//data[0].ItemList = data[0].ItemList[:20]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		}
-	}
-}
-
-// ZhengzhouDataList
-// @title	获取郑州交易所列表
-// @Description	获取郑州交易所列表接口
-// @Param	Date query string true	"查询日期"
-// @Param	ClassifyName query string false	"分类名称"
-// @Param	ClassifyType query string false	"分类合约"
-// @Success 200 {object} models.
-// @router /data/zhengzhou [get]
-func (this *TradeCommonController) ZhengzhouDataList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	fmt.Println(date)
-	date = strings.Replace(date, "-", "", -1)
-	fmt.Println(date)
-	classifyName := this.GetString("ClassifyName")
-	classifyType := this.GetString("ClassifyType")
-	frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("zhengzhou", date, classifyName, classifyType)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	var data Data
-	var k int
-	if len(frequencyList) == 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = data
-	} else {
-		data = make(Data, 1)
-		fmt.Println(len(frequencyList))
-		if len(frequencyList) > 21 {
-			for i, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = classifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 200)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[k].Code == item.ClassifyType {
-					data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-					continue
-				}
-				if i > 0 {
-					k++
-				}
-				data[0].ItemList[k].Code = item.ClassifyType
-				data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-			}
-			data[0].ItemList = data[0].ItemList[:k]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		} else {
-			for _, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = item.ClassifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 1)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[0].Code == item.ClassifyType {
-					data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-					continue
-				}
-				//if i != 0 {
-				//	k++
-				//	fmt.Println(k)
-				//}
-				data[0].ItemList[0].Code = item.ClassifyType
-				data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-			}
-			//data[0].ItemList = data[0].ItemList[:k]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		}
-	}
-}
-
-// DalianDataList
-// @title	获取大连交易所列表
-// @Description	获取大连交易所列表接口
-// @Param	Date query string true	"查询日期"
-// @Param	ClassifyName query string false	"分类名称"
-// @Param	ClassifyType query string false	"分类合约"
-// @Success 200 {object} models.
-// @router /data/dalian [get]
-func (this *TradeCommonController) DalianDataList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	classifyName := this.GetString("ClassifyName")
-	classifyType := this.GetString("ClassifyType")
-	frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("dalian", date, classifyName, classifyType)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	var data Data
-	var k int
-	if len(frequencyList) == 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = data
-	} else {
-		data = make(Data, 1)
-		fmt.Println("len:", len(frequencyList))
-		if len(frequencyList) > 21 {
-			for i, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = classifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 200)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[k].Code == item.ClassifyType {
-					data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-					continue
-				}
-				if i > 0 {
-					k++
-				}
-				data[0].ItemList[k].Code = item.ClassifyType
-				data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
-			}
-			data[0].ItemList = data[0].ItemList[:k]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		} else {
-			for _, item := range frequencyList {
-				if item.DealCode == "" {
-					item.DealValue = ""
-					item.DealChange = ""
-				}
-				if item.BuyCode == "" {
-					item.BuyValue = ""
-					item.BuyChange = ""
-				}
-				if item.SoldCode == "" {
-					item.SoldValue = ""
-					item.SoldChange = ""
-				}
-				data[0].Title = item.ClassifyName
-				if data[0].ItemList == nil {
-					list := make([]ShanghaiList, 1)
-					data[0].ItemList = list
-				}
-				if data[0].ItemList[0].Code == item.ClassifyType {
-					data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-					continue
-				}
-				//if i != 0 {
-				//	k++
-				//	fmt.Println(k)
-				//}
-				data[0].ItemList[0].Code = item.ClassifyType
-				data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
-			}
-			//data[0].ItemList = data[0].ItemList[:k]
-
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = data
-		}
-	}
-}
-
-// EicLatestDate
-// @title	获取欧洲天然气最新日期
-// @Description	获取欧洲天然气最新日期接口
-// @Success 200 {object} models.
-// @router /data/eicLatestDate [get]
-func (this *TradeCommonController) EicLatestDate() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	latestData, err := data_manage.GetEicDate()
-	if err != nil {
-		br.Msg = "获取日期失败"
-		br.ErrMsg = "获取日期失败,Err:" + err.Error()
-		return
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = latestData[0].GasDayStartedOn
-}
-
-// EicContinentList 欧洲天然气洲际及国家级列表
-// @title	获取欧洲天然气列表
-// @Description	获取欧洲天然气列表接口
-// @Param	Date query string true	"查询日期"
-// @Success 200 {object} models.
-// @router /data/eicContinent [get]
-func (this *TradeCommonController) EicContinentList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	continentList, err := data_manage.GetContinentEicDate(date)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	countryList, err := data_manage.GetCountryEicDate(date)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	if len(countryList) == 0 || len(continentList) < 1 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = []EicData{}
-	} else {
-		countryLen := len(countryList)
-		var euData = EicData{
-			Country:                "eu",
-			Type:                   "continent",
-			EicCode:                "eu",
-			ShortName:              "eu",
-			Name:                   "eu",
-			Status:                 "N",
-			GasDayStartedOn:        "",
-			GasInStorage:           0,
-			GasInStorageCode:       "euGS",
-			Full:                   0,
-			FullCode:               "euF",
-			Trend:                  0,
-			TrendCode:              "euT",
-			Injection:              0,
-			InjectionCode:          "euIn",
-			Withdrawal:             0,
-			WithdrawalCode:         "euOut",
-			WorkingGasVolume:       0,
-			WorkingGasVolumeCode:   "euWGV",
-			InjectionCapacity:      0,
-			InjectionCapacityCode:  "euIC",
-			WithdrawalCapacity:     0,
-			WithdrawalCapacityCode: "euWC",
-			Info:                   "",
-			Children:               countryList[:countryLen-2],
-		}
-		var neData = EicData{
-			Country:                "ne",
-			Type:                   "continent",
-			EicCode:                "ne",
-			ShortName:              "ne",
-			Name:                   "ne",
-			Status:                 "N",
-			GasDayStartedOn:        "",
-			GasInStorage:           0,
-			GasInStorageCode:       "neGS",
-			Full:                   0,
-			FullCode:               "neF",
-			Trend:                  0,
-			TrendCode:              "neT",
-			Injection:              0,
-			InjectionCode:          "neIn",
-			Withdrawal:             0,
-			WithdrawalCode:         "neOut",
-			WorkingGasVolume:       0,
-			WorkingGasVolumeCode:   "neWGV",
-			InjectionCapacity:      0,
-			InjectionCapacityCode:  "neIC",
-			WithdrawalCapacity:     0,
-			WithdrawalCapacityCode: "neWC",
-			Info:                   "",
-			Children:               countryList[countryLen-2:],
-		}
-		//如果洲际数据正常
-		if continentList[0].Country == "eu" {
-			gasInStorage, _ := strconv.ParseFloat(continentList[0].GasInStorage, 64)
-			full, _ := strconv.ParseFloat(continentList[0].Full, 64)
-			trend, _ := strconv.ParseFloat(continentList[0].Trend, 64)
-			injection, _ := strconv.ParseFloat(continentList[0].Injection, 64)
-			withdrawal, _ := strconv.ParseFloat(continentList[0].Withdrawal, 64)
-			workingGasVolume, _ := strconv.ParseFloat(continentList[0].WorkingGasVolume, 64)
-			injectionCapacity, _ := strconv.ParseFloat(continentList[0].InjectionCapacity, 64)
-			withdrawalCapacity, _ := strconv.ParseFloat(continentList[0].WithdrawalCapacity, 64)
-			euData = EicData{
-				continentList[0].Country,
-				continentList[0].Type,
-				continentList[0].EicCode,
-				continentList[0].ShortName,
-				continentList[0].Name,
-				continentList[0].Status,
-				continentList[0].GasDayStartedOn,
-				gasInStorage,
-				continentList[0].GasInStorageCode,
-				full,
-				continentList[0].FullCode,
-				trend,
-				continentList[0].TrendCode,
-				injection,
-				continentList[0].InjectionCode,
-				withdrawal,
-				continentList[0].WithdrawalCode,
-				workingGasVolume,
-				continentList[0].WorkingGasVolumeCode,
-				injectionCapacity,
-				continentList[0].InjectionCapacityCode,
-				withdrawalCapacity,
-				continentList[0].WithdrawalCapacityCode,
-				continentList[0].Info,
-				countryList[:countryLen-2],
-			}
-			if len(continentList) > 1 {
-				gasInStorage1, _ := strconv.ParseFloat(continentList[1].GasInStorage, 64)
-				full1, _ := strconv.ParseFloat(continentList[1].Full, 64)
-				trend1, _ := strconv.ParseFloat(continentList[1].Trend, 64)
-				injection1, _ := strconv.ParseFloat(continentList[1].Injection, 64)
-				withdrawal1, _ := strconv.ParseFloat(continentList[1].Withdrawal, 64)
-				workingGasVolume1, _ := strconv.ParseFloat(continentList[1].WorkingGasVolume, 64)
-				injectionCapacity1, _ := strconv.ParseFloat(continentList[1].InjectionCapacity, 64)
-				withdrawalCapacity1, _ := strconv.ParseFloat(continentList[1].WithdrawalCapacity, 64)
-				neData = EicData{
-					continentList[1].Country,
-					continentList[1].Type,
-					continentList[1].EicCode,
-					continentList[1].ShortName,
-					continentList[1].Name,
-					continentList[1].Status,
-					continentList[1].GasDayStartedOn,
-					gasInStorage1,
-					continentList[1].GasInStorageCode,
-					full1,
-					continentList[1].FullCode,
-					trend1,
-					continentList[1].TrendCode,
-					injection1,
-					continentList[1].InjectionCode,
-					withdrawal1,
-					continentList[1].WithdrawalCode,
-					workingGasVolume1,
-					continentList[1].WorkingGasVolumeCode,
-					injectionCapacity1,
-					continentList[1].InjectionCapacityCode,
-					withdrawalCapacity1,
-					continentList[1].WithdrawalCapacityCode,
-					continentList[1].Info,
-					countryList[countryLen-2:],
-				}
-			}
-		} else {
-			//数据不正常,只有一个洲际数据时
-			if continentList[0].Country == "eu" {
-				gasInStorage, _ := strconv.ParseFloat(continentList[0].GasInStorage, 64)
-				full, _ := strconv.ParseFloat(continentList[0].Full, 64)
-				trend, _ := strconv.ParseFloat(continentList[0].Trend, 64)
-				injection, _ := strconv.ParseFloat(continentList[0].Injection, 64)
-				withdrawal, _ := strconv.ParseFloat(continentList[0].Withdrawal, 64)
-				workingGasVolume, _ := strconv.ParseFloat(continentList[0].WorkingGasVolume, 64)
-				injectionCapacity, _ := strconv.ParseFloat(continentList[0].InjectionCapacity, 64)
-				withdrawalCapacity, _ := strconv.ParseFloat(continentList[0].WithdrawalCapacity, 64)
-				euData = EicData{
-					continentList[0].Country,
-					continentList[0].Type,
-					continentList[0].EicCode,
-					continentList[0].ShortName,
-					continentList[0].Name,
-					continentList[0].Status,
-					continentList[0].GasDayStartedOn,
-					gasInStorage,
-					continentList[0].GasInStorageCode,
-					full,
-					continentList[0].FullCode,
-					trend,
-					continentList[0].TrendCode,
-					injection,
-					continentList[0].InjectionCode,
-					withdrawal,
-					continentList[0].WithdrawalCode,
-					workingGasVolume,
-					continentList[0].WorkingGasVolumeCode,
-					injectionCapacity,
-					continentList[0].InjectionCapacityCode,
-					withdrawalCapacity,
-					continentList[0].WithdrawalCapacityCode,
-					continentList[0].Info,
-					countryList[:countryLen-2],
-				}
-			} else {
-				gasInStorage1, _ := strconv.ParseFloat(continentList[0].GasInStorage, 64)
-				full1, _ := strconv.ParseFloat(continentList[0].Full, 64)
-				trend1, _ := strconv.ParseFloat(continentList[0].Trend, 64)
-				injection1, _ := strconv.ParseFloat(continentList[0].Injection, 64)
-				withdrawal1, _ := strconv.ParseFloat(continentList[0].Withdrawal, 64)
-				workingGasVolume1, _ := strconv.ParseFloat(continentList[0].WorkingGasVolume, 64)
-				injectionCapacity1, _ := strconv.ParseFloat(continentList[0].InjectionCapacity, 64)
-				withdrawalCapacity1, _ := strconv.ParseFloat(continentList[0].WithdrawalCapacity, 64)
-				neData = EicData{
-					continentList[0].Country,
-					continentList[0].Type,
-					continentList[0].EicCode,
-					continentList[0].ShortName,
-					continentList[0].Name,
-					continentList[0].Status,
-					continentList[0].GasDayStartedOn,
-					gasInStorage1,
-					continentList[0].GasInStorageCode,
-					full1,
-					continentList[0].FullCode,
-					trend1,
-					continentList[0].TrendCode,
-					injection1,
-					continentList[0].InjectionCode,
-					withdrawal1,
-					continentList[0].WithdrawalCode,
-					workingGasVolume1,
-					continentList[0].WorkingGasVolumeCode,
-					injectionCapacity1,
-					continentList[0].InjectionCapacityCode,
-					withdrawalCapacity1,
-					continentList[0].WithdrawalCapacityCode,
-					continentList[0].Info,
-					countryList[countryLen-2:],
-				}
-			}
-		}
-		var data []EicData
-		data = append(data, euData)
-		data = append(data, neData)
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = data
-	}
-}
-
-// EicDataList 欧洲天然气细节列表
-// @title	获取欧洲天然气列表
-// @Description	获取欧洲天然气列表接口
-// @Param	Date query string true	"查询日期"
-// @Param	Country query string true	"国家"
-// @Success 200 {object} models.
-// @router /data/eicData [get]
-func (this *TradeCommonController) EicDataList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	country := this.GetString("Country")
-	ssoList, err := data_manage.GetSSOEicDate(date, country)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	storageList, err := data_manage.GetStorageEicDate(date, country)
-	if err != nil {
-		br.Msg = "获取持仓排名失败"
-		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-		return
-	}
-	var data []EicData
-	for _, sso := range ssoList {
-		gasInStorage, _ := strconv.ParseFloat(sso.GasInStorage, 64)
-		full, _ := strconv.ParseFloat(sso.Full, 64)
-		trend, _ := strconv.ParseFloat(sso.Trend, 64)
-		injection, _ := strconv.ParseFloat(sso.Injection, 64)
-		withdrawal, _ := strconv.ParseFloat(sso.Withdrawal, 64)
-		workingGasVolume, _ := strconv.ParseFloat(sso.WorkingGasVolume, 64)
-		injectionCapacity, _ := strconv.ParseFloat(sso.InjectionCapacity, 64)
-		withdrawalCapacity, _ := strconv.ParseFloat(sso.WithdrawalCapacity, 64)
-		item := EicData{
-			sso.Country,
-			sso.Type,
-			sso.EicCode,
-			sso.ShortName,
-			sso.Name,
-			sso.Status,
-			sso.GasDayStartedOn,
-			gasInStorage,
-			sso.GasInStorageCode,
-			full,
-			sso.FullCode,
-			trend,
-			sso.TrendCode,
-			injection,
-			sso.InjectionCode,
-			withdrawal,
-			sso.WithdrawalCode,
-			workingGasVolume,
-			sso.WorkingGasVolumeCode,
-			injectionCapacity,
-			sso.InjectionCapacityCode,
-			withdrawalCapacity,
-			sso.WithdrawalCapacityCode,
-			sso.Info,
-			[]*data_manage.BaseFromTradeEicIndex{},
-		}
-		for _, st := range storageList {
-			if item.ShortName == st.ShortName {
-				item.Children = append(item.Children, st)
-			}
-		}
-		data = append(data, item)
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = data
-}
-
-// EicHistoryData
-// @title	获取欧洲天然气历史列表
-// @Description	获取欧洲天然气历史列表接口
-// @Param	Code query string true	"Code"
-// @Param	StartDate query string false	"开始时间"
-// @Param	EndDate query string false	"结束时间"
-// @Success 200 {object} models.
-// @router /data/eicHistoryData [get]
-func (this *TradeCommonController) EicHistoryData() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	code := this.GetString("Code")
-	startDate := this.GetString("StartDate")
-	endDate := this.GetString("EndDate")
-	var eicList []*data_manage.BaseFromTradeEicIndex
-	var err error
-	if endDate != "" {
-		eicList, err = data_manage.GetEicHistoryDateByDate(code, startDate, endDate)
-		if err != nil {
-			br.Msg = "获取持仓排名失败"
-			br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-			return
-		}
-	} else {
-		eicList, err = data_manage.GetEicHistoryDate(code)
-		if err != nil {
-			br.Msg = "获取持仓排名失败"
-			br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-			return
-		}
-	}
-	var data []EicData
-	for _, eic := range eicList {
-		gasInStorage, _ := strconv.ParseFloat(eic.GasInStorage, 64)
-		full, _ := strconv.ParseFloat(eic.Full, 64)
-		trend, _ := strconv.ParseFloat(eic.Trend, 64)
-		injection, _ := strconv.ParseFloat(eic.Injection, 64)
-		withdrawal, _ := strconv.ParseFloat(eic.Withdrawal, 64)
-		workingGasVolume, _ := strconv.ParseFloat(eic.WorkingGasVolume, 64)
-		injectionCapacity, _ := strconv.ParseFloat(eic.InjectionCapacity, 64)
-		withdrawalCapacity, _ := strconv.ParseFloat(eic.WithdrawalCapacity, 64)
-		item := EicData{
-			eic.Country,
-			eic.Type,
-			eic.EicCode,
-			eic.ShortName,
-			eic.Name,
-			eic.Status,
-			eic.GasDayStartedOn,
-			gasInStorage,
-			eic.GasInStorageCode,
-			full,
-			eic.FullCode,
-			trend,
-			eic.TrendCode,
-			injection,
-			eic.InjectionCode,
-			withdrawal,
-			eic.WithdrawalCode,
-			workingGasVolume,
-			eic.WorkingGasVolumeCode,
-			injectionCapacity,
-			eic.InjectionCapacityCode,
-			withdrawalCapacity,
-			eic.WithdrawalCapacityCode,
-			eic.Info,
-			[]*data_manage.BaseFromTradeEicIndex{},
-		}
-		data = append(data, item)
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = data
-}
-
-//// EicHistoryDataByDate
-//// @title	根据时间获取欧洲天然气历史列表
-//// @Description	根据时间获取欧洲天然气历史列表
-//// @Param	Code query string true	"Code"
-//// @Param	Date1 query string true	"时间1"
-//// @Param	Date2 query string true	"时间2"
-//// @Success 200 {object} models.
-//// @router /data/eicHistoryDataByDate [get]
-//func (this *TradeCommonController) EicHistoryDataByDate() {
-//	br := new(models.BaseResponse).Init()
-//	defer func() {
-//		this.Data["json"] = br
-//		this.ServeJSON()
-//	}()
-//	code := this.GetString("Code")
-//	date1 := this.GetString("Date1")
-//	date2 := this.GetString("Date2")
-//	eicList, err := data_manage.GetEicHistoryDateByDate(code,date1,date2)
-//	if err != nil {
-//		br.Msg = "获取持仓排名失败"
-//		br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-//		return
-//	}
-//	var data []EicData
-//	for _, eic := range eicList {
-//		gasInStorage, _ := strconv.ParseFloat(eic.GasInStorage, 64)
-//		full, _ := strconv.ParseFloat(eic.Full, 64)
-//		trend, _ := strconv.ParseFloat(eic.Trend, 64)
-//		injection, _ := strconv.ParseFloat(eic.Injection, 64)
-//		withdrawal, _ := strconv.ParseFloat(eic.Withdrawal, 64)
-//		workingGasVolume, _ := strconv.ParseFloat(eic.WorkingGasVolume, 64)
-//		injectionCapacity, _ := strconv.ParseFloat(eic.InjectionCapacity, 64)
-//		withdrawalCapacity, _ := strconv.ParseFloat(eic.WithdrawalCapacity, 64)
-//		item := EicData{
-//			eic.Country,
-//			eic.Type,
-//			eic.EicCode,
-//			eic.ShortName,
-//			eic.Name,
-//			eic.Status,
-//			eic.GasDayStartedOn,
-//			gasInStorage,
-//			eic.GasInStorageCode,
-//			full,
-//			eic.FullCode,
-//			trend,
-//			eic.TrendCode,
-//			injection,
-//			eic.InjectionCode,
-//			withdrawal,
-//			eic.WithdrawalCode,
-//			workingGasVolume,
-//			eic.WorkingGasVolumeCode,
-//			injectionCapacity,
-//			eic.InjectionCapacityCode,
-//			withdrawalCapacity,
-//			eic.WithdrawalCapacityCode,
-//			eic.Info,
-//			[]*data_manage.BaseFromTradeEicIndex{},
-//		}
-//		data = append(data, item)
-//	}
-//
-//	br.Ret = 200
-//	br.Success = true
-//	br.Msg = "获取成功"
-//	br.Data = data
-//}
-
-// CoalMineClassify
-// @title	获取中国煤炭市场网分类列表
-// @Description	获取中国煤炭市场网分类列表
-// @Success 200 {object} models.
-// @router /data/coalMineData/classify [get]
-func (this *TradeCommonController) CoalMineClassify() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	var coalList []data_manage.BaseFromCoalmineClassifyItem
-	var suffix string
-	var coal data_manage.BaseFromCoalmineClassifyItem
-	groups := []*string{}
-	var childs []data_manage.CoalChild
-	var child data_manage.CoalChild
-
-	list, err := data_manage.GetCoalmineClassifyList()
-	if err != nil {
-		br.Msg = "获取煤炭分类数据失败"
-		br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-		return
-	}
-	for _, v := range list {
-		if v.Suffix == "jsm_index" {
-			suffix = "jsm_index"
-			groups, err = data_manage.GetProvinceFromCoalmineIndex(suffix)
-			if err != nil {
-				br.Msg = "获取煤炭分类数据失败"
-				br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-				return
-			}
-			coal.ClassifyId = 1
-			coal.ClassifyName = "晋陕蒙三省煤矿产量周度数据"
-			jsmId := 100
-			for _, group := range groups {
-				jsmId++
-				child.ClassifyId = jsmId
-				child.ClassifyName = *group
-				childs = append(childs, child)
-			}
-
-			coal.Child = childs
-			coalList = append(coalList, coal)
-		}
-
-		if v.Suffix == "company_index" {
-			suffix = "company_index"
-			groups = []*string{}
-			childs = []data_manage.CoalChild{}
-			groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
-			if err != nil {
-				br.Msg = "获取煤炭分类数据失败"
-				br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-				return
-			}
-			coal.ClassifyId = 2
-			coal.ClassifyName = "442家晋陕蒙煤矿周度产量"
-			companyId := 200
-			for _, group := range groups {
-				companyId++
-				child.ClassifyId = companyId
-				child.ClassifyName = *group
-				childs = append(childs, child)
-			}
-			coal.Child = childs
-			coalList = append(coalList, coal)
-		}
-
-		if v.Suffix == "firm_index" {
-			suffix = "firm_index"
-			groups = []*string{}
-			childs = []data_manage.CoalChild{}
-			groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
-			if err != nil {
-				br.Msg = "获取煤炭分类数据失败"
-				br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-				return
-			}
-			coal.ClassifyId = 3
-			coal.ClassifyName = "全国分企业煤炭产量旬度数据"
-			firmId := 300
-			for _, group := range groups {
-				firmId++
-				child.ClassifyId = firmId
-				child.ClassifyName = *group
-				childs = append(childs, child)
-
-			}
-			coal.Child = childs
-			coalList = append(coalList, coal)
-		}
-
-		if v.Suffix == "coastal_index" {
-			suffix = "coastal_index"
-			groups = []*string{}
-			childs = []data_manage.CoalChild{}
-			groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
-			if err != nil {
-				br.Msg = "获取煤炭分类数据失败"
-				br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-				return
-			}
-			coal.ClassifyId = 4
-			coal.ClassifyName = "沿海八省动力煤终端用户供耗存"
-			coastalId := 400
-			for _, group := range groups {
-				coastalId++
-				child.ClassifyId = coastalId
-				child.ClassifyName = *group
-				childs = append(childs, child)
-
-			}
-			coal.Child = childs
-			coalList = append(coalList, coal)
-		}
-
-		if v.Suffix == "inland_index" {
-			suffix = "inland_index"
-			groups = []*string{}
-			childs = []data_manage.CoalChild{}
-			groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
-			if err != nil {
-				br.Msg = "获取煤炭分类数据失败"
-				br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-				return
-			}
-			coal.ClassifyId = 5
-			coal.ClassifyName = "内陆17省动力煤终端用户供耗存"
-			inlandId := 500
-			for _, group := range groups {
-				inlandId++
-				child.ClassifyId = inlandId
-				child.ClassifyName = *group
-				childs = append(childs, child)
-
-			}
-			coal.Child = childs
-			coalList = append(coalList, coal)
-		}
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = coalList
-}
-
-// CoalMineFrequency
-// @title	获取中国煤炭市场网频度
-// @Description	获取中国煤炭市场网频度
-// @Param	ClassifyId query int true	"数据id"
-// @Success 200 {object} models.
-// @router /data/coalMineData/frequency [get]
-func (this *TradeCommonController) CoalMineFrequency() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-
-	classifyId, _ := this.GetInt("ClassifyId")
-	var suffix string
-	if classifyId == 1 {
-		suffix = "jsm_index"
-	} else if classifyId == 2 {
-		suffix = "company_index"
-	} else if classifyId == 3 {
-		suffix = "firm_index"
-	} else if classifyId == 4 {
-		suffix = "coastal_index"
-	} else if classifyId == 5 {
-		suffix = "inland_index"
-	}
-	frequency, err := data_manage.GetFrequencyFromCoal(suffix)
-	if err != nil {
-		br.Msg = "获取煤炭频度数据失败"
-		br.ErrMsg = "获取煤炭频度数据失败,Err:" + err.Error()
-		return
-	}
-	var resp data_manage.FrequencyResp
-	switch *frequency {
-	case "日度":
-		resp.Frequency = 1
-	case "周度":
-		resp.Frequency = 2
-	case "旬度":
-		resp.Frequency = 3
-	case "月度":
-		resp.Frequency = 4
-	case "季度":
-		resp.Frequency = 5
-	case "年度":
-		resp.Frequency = 6
-	default:
-		resp.Frequency = 99
-	}
-	var list []data_manage.FrequencyResp
-	list = append(list, resp)
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = list
-}
-
-// CoalMineData
-// @title	获取中国煤炭市场网详细数据列表
-// @Description	获取中国煤炭市场网详细数据接口
-// @Param	ClassifyId query int true	"数据id"
-// @Param	GroupName query string true	"分组名"
-// @Param	Frequency query string true	"频度"
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
-// @Success 200 {object} []data_manage.CoalmineDataResp
-// @router /data/coalMineData/data [get]
-func (this *TradeCommonController) CoalMineData() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	classifyId, _ := this.GetInt("ClassifyId")
-	frequency := this.GetString("Frequency")
-	groupName := this.GetString("GroupName")
-	pageSize, _ := this.GetInt("PageSize")
-	currentIndex, _ := this.GetInt("CurrentIndex")
-	var startSize int
-
-	if pageSize <= 0 {
-		pageSize = utils.PageSize20
-	}
-	if currentIndex <= 0 {
-		currentIndex = 1
-	}
-	startSize = utils.StartIndex(currentIndex, pageSize)
-	//var groups []*string
-	//var err error
-	//var suffix string
-	//if classifyId == 1 {
-	//	suffix = "jsm_index"
-	//} else if classifyId == 2 {
-	//	suffix = "company_index"
-	//} else if classifyId == 3 {
-	//	suffix = "firm_index"
-	//} else if classifyId == 4 {
-	//	suffix = "coastal_index"
-	//} else if classifyId == 5 {
-	//	suffix = "inland_index"
-	//}
-
-	switch classifyId {
-	case 1:
-		classifies, err := data_manage.GetClassifyCoalmineIndexByGroupName(groupName)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		var lists []data_manage.CoalmineDataPageResp
-		for _, classify := range classifies {
-			items, err := data_manage.GetPageFromCoalmineIndexByFrequency(frequency, *classify, startSize, pageSize)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			total, err := data_manage.GetCountFromJsm(*classify)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			page := paging.GetPaging(currentIndex, pageSize, total)
-			var resp data_manage.CoalmineDataPageResp
-			for i, item := range items {
-				if i == 0 {
-					resp.ModifyTime = item.CreateTime
-				}
-				resp.Paging = page
-				resp.IndexName = item.IndexName
-				resp.IndexCode = item.IndexCode
-				resp.Unit = item.Unit
-				resp.Frequency = item.Frequency
-
-				//组装dataList
-				var dataItem data_manage.DataList
-				dataItem.DataTime = item.DataTime
-				dataItem.Value = item.DealValue
-				resp.DataList = append(resp.DataList, dataItem)
-			}
-			lists = append(lists, resp)
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 2:
-		classifies, err := data_manage.GetClassifyCompanyByGroupName(groupName)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		var lists []data_manage.CoalmineDataPageResp
-		for _, classify := range classifies {
-			items, err := data_manage.GetPageFromCoalmineCompanyIndexByFrequency(frequency, *classify, startSize, pageSize)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			total, err := data_manage.GetCountFromCompany(*classify)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			page := paging.GetPaging(currentIndex, pageSize, total)
-			var resp data_manage.CoalmineDataPageResp
-			for i, item := range items {
-				if i == 0 {
-					resp.ModifyTime = item.CreateTime
-				}
-				resp.Paging = page
-				resp.IndexName = item.IndexName
-				resp.IndexCode = item.IndexCode
-				resp.Unit = item.Unit
-				resp.Frequency = item.Frequency
-
-				//组装dataList
-				var dataItem data_manage.DataList
-				dataItem.DataTime = item.DataTime
-				dataItem.Value = item.DealValue
-				resp.DataList = append(resp.DataList, dataItem)
-			}
-			lists = append(lists, resp)
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 3:
-		classifies, err := data_manage.GetClassifyFirmByGroupName(groupName)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		var lists []data_manage.CoalmineDataPageResp
-		for _, classify := range classifies {
-			items, err := data_manage.GetPageFromCoalmineFirmIndexByFrequency(frequency, *classify, startSize, pageSize)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			total, err := data_manage.GetCountFromFirm(*classify)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			page := paging.GetPaging(currentIndex, pageSize, total)
-			var resp data_manage.CoalmineDataPageResp
-			for i, item := range items {
-				if i == 0 {
-					resp.ModifyTime = item.CreateTime
-				}
-				resp.Paging = page
-				resp.IndexName = item.IndexName
-				resp.IndexCode = item.IndexCode
-				resp.Unit = item.Unit
-				resp.Frequency = item.Frequency
-
-				//组装dataList
-				var dataItem data_manage.DataList
-				dataItem.DataTime = item.DataTime
-				dataItem.Value = item.DealValue
-				resp.DataList = append(resp.DataList, dataItem)
-			}
-			lists = append(lists, resp)
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 4:
-		classifies, err := data_manage.GetClassifyCoastalByGroupName(groupName)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		var lists []data_manage.CoalmineDataPageResp
-		for _, classify := range classifies {
-			items, err := data_manage.GetPageFromCoalmineCoastalIndexByFrequency(frequency, *classify, startSize, pageSize)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			total, err := data_manage.GetCountFromCoastal(*classify)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			page := paging.GetPaging(currentIndex, pageSize, total)
-			var resp data_manage.CoalmineDataPageResp
-			for i, item := range items {
-				if i == 0 {
-					resp.ModifyTime = item.CreateTime
-				}
-				resp.Paging = page
-				resp.IndexName = item.IndexName
-				resp.IndexCode = item.IndexCode
-				resp.Unit = item.Unit
-				resp.Frequency = item.Frequency
-
-				//组装dataList
-				var dataItem data_manage.DataList
-				dataItem.DataTime = item.DataTime
-				dataItem.Value = item.DealValue
-				resp.DataList = append(resp.DataList, dataItem)
-			}
-			lists = append(lists, resp)
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 5:
-		classifies, err := data_manage.GetClassifyInlandByGroupName(groupName)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		var lists []data_manage.CoalmineDataPageResp
-		for _, classify := range classifies {
-			items, err := data_manage.GetPageFromCoalmineInlandIndexByFrequency(frequency, *classify, startSize, pageSize)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			total, err := data_manage.GetCountFromInland(*classify)
-			if err != nil {
-				br.Msg = "获取煤炭数据失败"
-				br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-				return
-			}
-			page := paging.GetPaging(currentIndex, pageSize, total)
-			var resp data_manage.CoalmineDataPageResp
-			for i, item := range items {
-				if i == 0 {
-					resp.ModifyTime = item.CreateTime
-				}
-				resp.Paging = page
-				resp.IndexName = item.IndexName
-				resp.IndexCode = item.IndexCode
-				resp.Unit = item.Unit
-				resp.Frequency = item.Frequency
-
-				//组装dataList
-				var dataItem data_manage.DataList
-				dataItem.DataTime = item.DataTime
-				dataItem.Value = item.DealValue
-				resp.DataList = append(resp.DataList, dataItem)
-			}
-			lists = append(lists, resp)
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	default:
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取煤炭数据失败"
-		br.ErrMsg = "获取煤炭度数据失败,Err: classifyId 错误"
-		return
-	}
-}
-
-// CoalSingleData
-// @Title 获取煤炭单条数据
-// @Description 获取煤炭单条数据
-// @Param   IndexCode   query   string  true       "指标唯一编码"
-// @Success 200 {object} []data_manage.CoalmineSingalDataResp
-// @router  /data/coalMineData/single_data [get]
-func (this *TradeCommonController) CoalSingleData() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	indexCode := this.GetString("IndexCode")
-	var classifyId int
-	var suffix string
-	if strings.Contains(indexCode, "jsm") {
-		classifyId = 1
-		suffix = "jsm_index"
-	} else if strings.Contains(indexCode, "company") {
-		classifyId = 2
-		suffix = "company_index"
-	} else if strings.Contains(indexCode, "firm") {
-		classifyId = 3
-		suffix = "firm_index"
-	} else if strings.Contains(indexCode, "coastal") {
-		classifyId = 4
-		suffix = "coastal_index"
-	} else if strings.Contains(indexCode, "inland") {
-		classifyId = 5
-		suffix = "inland_index"
-	}
-
-	switch classifyId {
-	case 1:
-		items, err := data_manage.GetBaseFromCoalmineIndexByCode(indexCode)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		groups, err := data_manage.GetProvinceFromCoalmineIndex(suffix)
-		if err != nil {
-			br.Msg = "获取煤炭分类数据失败"
-			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-			return
-		}
-		groupMap := make(map[string]int)
-		jsmId := 100
-		for _, group := range groups {
-			jsmId++
-			groupMap[*group] = jsmId
-		}
-		var lists []data_manage.CoalmineSingalDataResp
-		var resp data_manage.CoalmineSingalDataResp
-
-		classify := items[0].IndexName
-		for i, item := range items {
-			if item.IndexName != classify {
-				lists = append(lists, resp)
-				classify = item.IndexName
-			}
-			resp.IndexName = item.IndexName
-			resp.IndexCode = item.IndexCode
-			resp.GroupId = groupMap[item.Province]
-			resp.GroupName = item.Province
-			resp.Unit = item.Unit
-			resp.Frequency = item.Frequency
-			resp.ModifyTime = item.ModifyTime
-			resp.ClassifyId = classifyId
-
-			//组装dataList
-			var dataItem data_manage.DataList
-			dataItem.DataTime = item.DataTime
-			dataItem.Value = item.DealValue
-			resp.DataList = append(resp.DataList, dataItem)
-
-			if i == len(items)-1 {
-				lists = append(lists, resp)
-			}
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 2:
-		items, err := data_manage.GetBaseFromCoalmineCompanyIndexByCode(indexCode)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
-		if err != nil {
-			br.Msg = "获取煤炭分类数据失败"
-			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-			return
-		}
-		groupMap := make(map[string]int)
-		companyId := 200
-		for _, group := range groups {
-			companyId++
-			groupMap[*group] = companyId
-		}
-		var lists []data_manage.CoalmineSingalDataResp
-		var resp data_manage.CoalmineSingalDataResp
-
-		classify := items[0].IndexName
-		for i, item := range items {
-			if item.IndexName != classify {
-				lists = append(lists, resp)
-				classify = item.IndexName
-			}
-			resp.IndexName = item.IndexName
-			resp.IndexCode = item.IndexCode
-			resp.Unit = item.Unit
-			resp.GroupId = groupMap[item.GroupName]
-			resp.GroupName = item.GroupName
-			resp.Frequency = item.Frequency
-			resp.ModifyTime = item.ModifyTime
-			resp.ClassifyId = classifyId
-
-			//组装dataList
-			var dataItem data_manage.DataList
-			dataItem.DataTime = item.DataTime
-			dataItem.Value = item.DealValue
-			resp.DataList = append(resp.DataList, dataItem)
-
-			if i == len(items)-1 {
-				lists = append(lists, resp)
-			}
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 3:
-		items, err := data_manage.GetBaseFromCoalmineFirmIndexByCode(indexCode)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
-		if err != nil {
-			br.Msg = "获取煤炭分类数据失败"
-			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-			return
-		}
-		groupMap := make(map[string]int)
-		firmId := 300
-		for _, group := range groups {
-			firmId++
-			groupMap[*group] = firmId
-		}
-		var lists []data_manage.CoalmineSingalDataResp
-		var resp data_manage.CoalmineSingalDataResp
-
-		classify := items[0].IndexName
-		for i, item := range items {
-			if item.IndexName != classify {
-				lists = append(lists, resp)
-				classify = item.IndexName
-			}
-			resp.IndexName = item.IndexName
-			resp.IndexCode = item.IndexCode
-			resp.Unit = item.Unit
-			resp.GroupId = groupMap[item.GroupName]
-			resp.GroupName = item.GroupName
-			resp.Frequency = item.Frequency
-			resp.ModifyTime = item.ModifyTime
-			resp.ClassifyId = classifyId
-
-			//组装dataList
-			var dataItem data_manage.DataList
-			dataItem.DataTime = item.DataTime
-			dataItem.Value = item.DealValue
-			resp.DataList = append(resp.DataList, dataItem)
-
-			if i == len(items)-1 {
-				lists = append(lists, resp)
-			}
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 4:
-		items, err := data_manage.GetBaseFromCoalmineCoastalIndexByCode(indexCode)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
-		if err != nil {
-			br.Msg = "获取煤炭分类数据失败"
-			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-			return
-		}
-		groupMap := make(map[string]int)
-		coastalId := 400
-		for _, group := range groups {
-			coastalId++
-			groupMap[*group] = coastalId
-		}
-		var lists []data_manage.CoalmineSingalDataResp
-		var resp data_manage.CoalmineSingalDataResp
-
-		classify := items[0].IndexName
-		for i, item := range items {
-			if item.IndexName != classify {
-				lists = append(lists, resp)
-				classify = item.IndexName
-			}
-			resp.IndexName = item.IndexName
-			resp.IndexCode = item.IndexCode
-			resp.Unit = item.Unit
-			resp.GroupId = groupMap[item.GroupName]
-			resp.GroupName = item.GroupName
-			resp.Frequency = item.Frequency
-			resp.ModifyTime = item.ModifyTime
-			resp.ClassifyId = classifyId
-
-			//组装dataList
-			var dataItem data_manage.DataList
-			dataItem.DataTime = item.DataTime
-			dataItem.Value = item.DealValue
-			resp.DataList = append(resp.DataList, dataItem)
-
-			if i == len(items)-1 {
-				lists = append(lists, resp)
-			}
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	case 5:
-		items, err := data_manage.GetBaseFromCoalmineInlandIndexByCode(indexCode)
-		if err != nil {
-			br.Msg = "获取煤炭数据失败"
-			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
-			return
-		}
-		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
-		if err != nil {
-			br.Msg = "获取煤炭分类数据失败"
-			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
-			return
-		}
-		groupMap := make(map[string]int)
-		inlandId := 500
-		for _, group := range groups {
-			inlandId++
-			groupMap[*group] = inlandId
-		}
-		var lists []data_manage.CoalmineSingalDataResp
-		var resp data_manage.CoalmineSingalDataResp
-
-		classify := items[0].IndexName
-		for i, item := range items {
-			if item.IndexName != classify {
-				lists = append(lists, resp)
-				classify = item.IndexName
-			}
-			resp.IndexName = item.IndexName
-			resp.IndexCode = item.IndexCode
-			resp.Unit = item.Unit
-			resp.GroupId = groupMap[item.GroupName]
-			resp.GroupName = item.GroupName
-			resp.Frequency = item.Frequency
-			resp.ModifyTime = item.ModifyTime
-			resp.ClassifyId = classifyId
-
-			//组装dataList
-			var dataItem data_manage.DataList
-			dataItem.DataTime = item.DataTime
-			dataItem.Value = item.DealValue
-			resp.DataList = append(resp.DataList, dataItem)
-
-			if i == len(items)-1 {
-				lists = append(lists, resp)
-			}
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = lists
-	default:
-		br.Msg = "获取煤炭数据失败"
-		br.ErrMsg = "获取煤炭度数据失败,Err: indexCode 错误"
-		return
-	}
-}
-
-// EicLatestDateV2
-// @title	获取欧洲天然气最新日期V2
-// @Description	获取欧洲天然气最新日期接口
-// @Success 200 {object} models.
-// @router /data/eicLatestDateV2 [get]
-func (this *TradeCommonController) EicLatestDateV2() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	latestData, err := data_manage.GetEicDateV2()
-	if err != nil {
-		br.Msg = "获取日期失败"
-		br.ErrMsg = "获取日期失败,Err:" + err.Error()
-		return
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = latestData[0].GasDayStart
-}
-
-type EicDataV2 struct {
-	Name               string      `json:"name" description:"指标名称"`
-	Code               string      `json:"code" description:"指标编码"`
-	GasDayStart        string      `json:"gasDayStart" description:"指标日期"`
-	GasInStorage       float64     `json:"gasInStorage" description:"储存容量"`
-	Consumption        string      `json:"consumption" description:"消耗"`
-	ConsumptionFull    string      `json:"consumptionFull" description:"消耗百分比"`
-	Injection          float64     `json:"injection" description:"注入量"`
-	Withdrawal         float64     `json:"withdrawal" description:"减少量"`
-	WorkingGasVolume   float64     `json:"workingGasVolume" description:"工作气体量"`
-	InjectionCapacity  float64     `json:"injectionCapacity" description:"注入速度"`
-	WithdrawalCapacity float64     `json:"withdrawalCapacity" description:"减少速度"`
-	Status             string      `json:"status" description:"状态"`
-	Trend              float64     `json:"trend" description:"较前日对比"`
-	Full               float64     `json:"full" description:"储存容量百分比"`
-	Info               string      `json:"info" description:"信息"`
-	Children           []EicDataV2 `json:"children"`
-}
-
-// eicDataV2
-// @title	获取欧洲天然气列表
-// @Description	获取欧洲天然气列表接口
-// @Param	Date query string true	"查询日期"
-// @Success 200 {object} models.
-// @router /data/eicDataV2 [get]
-func (this *TradeCommonController) EicDataV2() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	list, err := data_manage.GetEicDataV2(date)
-	if err != nil {
-		br.Msg = "获取天然气数据失败"
-		br.ErrMsg = "获取天然气数据失败,Err:" + err.Error()
-		return
-	}
-
-	var continentItems []data_manage.BaseFromTradeEicIndexV2
-	var countryItems []data_manage.BaseFromTradeEicIndexV2
-	var ssoItems []data_manage.BaseFromTradeEicIndexV2
-	var facItems []data_manage.BaseFromTradeEicIndexV2
-	for _, item := range list {
-		switch item.Type {
-		case "continent":
-			continentItems = append(continentItems, *item)
-		case "country":
-			countryItems = append(countryItems, *item)
-		case "sso":
-			ssoItems = append(ssoItems, *item)
-		case "fac":
-			facItems = append(facItems, *item)
-		default:
-			continue
-		}
-	}
-	var data []data_manage.BaseFromTradeEicIndexV2
-	data = continentItems
-	for i, continentItem := range continentItems {
-		for _, countryItem := range countryItems {
-			if countryItem.Parent == continentItem.Name {
-				data[i].Children = append(data[i].Children, countryItem)
-			}
-		}
-		for j, country := range data[i].Children {
-			for _, ssoItem := range ssoItems {
-				if country.Name == ssoItem.Parent {
-					data[i].Children[j].Children = append(data[i].Children[j].Children, ssoItem)
-				}
-			}
-			for k, sso := range data[i].Children[j].Children {
-				for _, facItem := range facItems {
-					if sso.Name == facItem.Parent {
-						data[i].Children[j].Children[k].Children = append(data[i].Children[j].Children[k].Children, facItem)
-					}
-				}
-			}
-		}
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = data
-}
-
-// EicHistoryDataV2
-// @title	获取欧洲天然气历史列表
-// @Description	获取欧洲天然气历史列表接口
-// @Param	Code query string true	"Code"
-// @Param	StartDate query string false	"开始时间"
-// @Param	EndDate query string false	"结束时间"
-// @Success 200 {object} []EicDataV2
-// @router /data/eicHistoryDataV2 [get]
-func (this *TradeCommonController) EicHistoryDataV2() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	code := this.GetString("Code")
-	startDate := this.GetString("StartDate")
-	endDate := this.GetString("EndDate")
-	var eicList []*data_manage.BaseFromTradeEicIndexV2
-	var err error
-	if endDate != "" {
-		eicList, err = data_manage.GetEicHistoryDateByDateV2(code, startDate, endDate)
-		if err != nil {
-			br.Msg = "获取持仓排名失败"
-			br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-			return
-		}
-	} else {
-		eicList, err = data_manage.GetEicHistoryDateV2(code)
-		if err != nil {
-			br.Msg = "获取持仓排名失败"
-			br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
-			return
-		}
-	}
-
-	var data []EicDataV2
-	for _, eic := range eicList {
-		item := EicDataV2{
-			Name:               eic.Name,
-			Code:               eic.EicCode,
-			GasDayStart:        eic.GasDayStart,
-			GasInStorage:       eic.GasInStorage,
-			Consumption:        eic.Consumption,
-			ConsumptionFull:    eic.ConsumptionFull,
-			Injection:          eic.Injection,
-			Withdrawal:         eic.Withdrawal,
-			WorkingGasVolume:   eic.WorkingGasVolume,
-			InjectionCapacity:  eic.InjectionCapacity,
-			WithdrawalCapacity: eic.WithdrawalCapacity,
-			Status:             eic.Status,
-			Trend:              eic.Trend,
-			Full:               eic.Full,
-			Info:               eic.Info,
-		}
-		data = append(data, item)
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = data
-}
-
-// eicContinentV2 欧洲天然气洲际及国家级列表
-// @title	欧洲天然气洲际及国家级列表
-// @Description	欧洲天然气洲际及国家级列表
-// @Param	Date query string true	"查询日期"
-// @Success 200 {object} []data_manage.BaseFromTradeEicIndexV2
-// @router /data/eicContinentV2 [get]
-func (this *TradeCommonController) EicContinentListV2() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	list, err := data_manage.GetContinentAndCountryEicDateV2(date)
-	if err != nil {
-		br.Msg = "获取天然气数据失败"
-		br.ErrMsg = "获取天然气数据失败,Err:" + err.Error()
-		return
-	}
-
-	var continentItems []data_manage.BaseFromTradeEicIndexV2
-	var countryItems []data_manage.BaseFromTradeEicIndexV2
-	for _, item := range list {
-		switch item.Type {
-		case "continent":
-			continentItems = append(continentItems, *item)
-		case "country":
-			countryItems = append(countryItems, *item)
-		default:
-			continue
-		}
-	}
-	var data []data_manage.BaseFromTradeEicIndexV2
-	data = continentItems
-	for i, continentItem := range continentItems {
-		for _, countryItem := range countryItems {
-			if countryItem.Parent == continentItem.Name {
-				data[i].Children = append(data[i].Children, countryItem)
-			}
-		}
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = data
-}
-
-// EicDataListV2 欧洲天然气细节列表
-// @title	欧洲天然气细节列表
-// @Description	欧洲天然气细节列表
-// @Param	Date query string true	"查询日期"
-// @Param	Name query string true	"国家"
-// @Success 200 {object} []data_manage.BaseFromTradeEicIndexV2
-// @router /data/eicSSODataV2 [get]
-func (this *TradeCommonController) EicDataListV2() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	date := this.GetString("Date")
-	name := this.GetString("Name")
-	list, err := data_manage.GetSSOAndFacEicDateV2(date, name)
-	if err != nil {
-		br.Msg = "获取天然气数据失败"
-		br.ErrMsg = "获取天然气数据失败,Err:" + err.Error()
-		return
-	}
-	var ssoItems []data_manage.BaseFromTradeEicIndexV2
-	var facItems []data_manage.BaseFromTradeEicIndexV2
-	for _, item := range list {
-		switch item.Type {
-		case "sso":
-			ssoItems = append(ssoItems, *item)
-		case "fac":
-			facItems = append(facItems, *item)
-		default:
-			continue
-		}
-	}
-	i := 0
-	var data []data_manage.BaseFromTradeEicIndexV2
-	for _, ssoItem := range ssoItems {
-		if ssoItem.Parent == name {
-			data = append(data, ssoItem)
-			for _, facItem := range facItems {
-				if facItem.Parent == ssoItem.Name {
-					data[i].Children = append(data[i].Children, facItem)
-				}
-			}
-			i++
-		}
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = data
-}

+ 0 - 33
controllers/data_manage/chart_classify.go

@@ -930,39 +930,6 @@ func (this *ChartClassifyController) ChartClassifyMove() {
 	br.Msg = "移动成功"
 }
 
-// getChartClassifyListForMe 获取我创建的图表分类
-func getChartClassifyListForMeV2(adminInfo system.Admin, resp *data_manage.ChartClassifyListResp) (errMsg string, err error) {
-	rootList, err := data_manage.GetChartClassifyByParentId(0, utils.CHART_SOURCE_DEFAULT)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	classifyAll, err := data_manage.GetChartClassifyAll(utils.CHART_SOURCE_DEFAULT)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	rootChildMap := make(map[int][]*data_manage.ChartClassifyItems)
-	for _, v := range classifyAll {
-		rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
-	}
-	nodeAll := make([]*data_manage.ChartClassifyItems, 0)
-	for _, v := range rootList {
-		if existItems, ok := rootChildMap[v.ChartClassifyId]; ok {
-			v.Children = existItems
-		} else {
-			items := make([]*data_manage.ChartClassifyItems, 0)
-			v.Children = items
-		}
-		nodeAll = append(nodeAll, v)
-	}
-	resp.AllNodes = nodeAll
-
-	return
-}
-
 // ChartClassifyChartListV2
 // @Title 根据图表分类获取图表列表
 // @Description 根据图表分类获取图表列表接口

+ 2 - 51
controllers/data_manage/correlation/correlation_chart_classify.go

@@ -143,55 +143,6 @@ func (this *CorrelationChartClassifyController) ChartClassifyList() {
 	br.Data = resp
 }
 
-// getChartClassifyListForMe 获取我创建的图表
-func getChartClassifyListForMe(adminInfo system.Admin, resp *data_manage.ChartClassifyListResp) (errMsg string, err error) {
-	rootList, err := data_manage.GetChartClassifyByParentId(0, utils.CHART_SOURCE_CORRELATION)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	classifyAll, err := data_manage.GetChartClassifyAll(utils.CHART_SOURCE_CORRELATION)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	allChartInfo, err := data_manage.GetChartInfoByAdminId([]int{utils.CHART_SOURCE_CORRELATION, utils.CHART_SOURCE_CORRELATION}, adminInfo.AdminId)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	chartInfoMap := make(map[int][]*data_manage.ChartClassifyItems)
-	for _, v := range allChartInfo {
-		chartInfoMap[v.ChartClassifyId] = append(chartInfoMap[v.ChartClassifyId], v)
-	}
-	rootChildMap := make(map[int][]*data_manage.ChartClassifyItems)
-	for _, v := range classifyAll {
-		rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
-		if existItems, ok := chartInfoMap[v.ChartClassifyId]; ok {
-			v.Children = existItems
-		} else {
-			items := make([]*data_manage.ChartClassifyItems, 0)
-			v.Children = items
-		}
-	}
-	nodeAll := make([]*data_manage.ChartClassifyItems, 0)
-	for _, v := range rootList {
-		if existItems, ok := rootChildMap[v.ChartClassifyId]; ok {
-			v.Children = existItems
-		} else {
-			items := make([]*data_manage.ChartClassifyItems, 0)
-			v.Children = items
-		}
-		nodeAll = append(nodeAll, v)
-	}
-	resp.AllNodes = nodeAll
-
-	return
-}
-
 // ChartClassifyItems
 // @Title 获取所有相关性图表分类接口-不包含图表
 // @Description 获取所有相关性图表分类接口-不包含图表
@@ -359,7 +310,7 @@ func (this *CorrelationChartClassifyController) DeleteChartClassifyCheck() {
 		pars := make([]interface{}, 0)
 		if len(childIds) > 0 {
 			ids := utils.IntArr2joinString(childIds, ",")
-			condition = ` AND chart_classify_id IN (`+ ids +`) `
+			condition = ` AND chart_classify_id IN (` + ids + `) `
 		} else {
 			condition = ` AND chart_classify_id = ? `
 			pars = append(pars, req.ChartClassifyId)
@@ -462,7 +413,7 @@ func (this *CorrelationChartClassifyController) DeleteChartClassify() {
 		pars := make([]interface{}, 0)
 		if len(childIds) > 0 {
 			ids := utils.IntArr2joinString(childIds, ",")
-			condition = ` AND chart_classify_id IN (`+ ids +`) `
+			condition = ` AND chart_classify_id IN (` + ids + `) `
 		} else {
 			condition = ` AND chart_classify_id = ? `
 			pars = append(pars, req.ChartClassifyId)

+ 2 - 52
controllers/data_manage/range_analysis/chart_classify.go

@@ -142,55 +142,6 @@ func (this *RangeChartClassifyController) ChartClassifyList() {
 	br.Data = resp
 }
 
-// getChartClassifyListForMe 获取我创建的图表
-func getChartClassifyListForMe(adminInfo system.Admin, resp *data_manage.ChartClassifyListResp) (errMsg string, err error) {
-	rootList, err := data_manage.GetChartClassifyByParentId(0, utils.CHART_SOURCE_RANGE_ANALYSIS)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	classifyAll, err := data_manage.GetChartClassifyAll(utils.CHART_SOURCE_RANGE_ANALYSIS)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	allChartInfo, err := data_manage.GetChartInfoByAdminId([]int{utils.CHART_SOURCE_RANGE_ANALYSIS, utils.CHART_SOURCE_RANGE_ANALYSIS}, adminInfo.AdminId)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取失败"
-		return
-	}
-
-	chartInfoMap := make(map[int][]*data_manage.ChartClassifyItems)
-	for _, v := range allChartInfo {
-		chartInfoMap[v.ChartClassifyId] = append(chartInfoMap[v.ChartClassifyId], v)
-	}
-	rootChildMap := make(map[int][]*data_manage.ChartClassifyItems)
-	for _, v := range classifyAll {
-		rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
-		if existItems, ok := chartInfoMap[v.ChartClassifyId]; ok {
-			v.Children = existItems
-		} else {
-			items := make([]*data_manage.ChartClassifyItems, 0)
-			v.Children = items
-		}
-	}
-	nodeAll := make([]*data_manage.ChartClassifyItems, 0)
-	for _, v := range rootList {
-		if existItems, ok := rootChildMap[v.ChartClassifyId]; ok {
-			v.Children = existItems
-		} else {
-			items := make([]*data_manage.ChartClassifyItems, 0)
-			v.Children = items
-		}
-		nodeAll = append(nodeAll, v)
-	}
-	resp.AllNodes = nodeAll
-
-	return
-}
-
 // ChartClassifyItems
 // @Title 获取所有区间分析图表分类接口-不包含图表
 // @Description 获取所有区间分析图表分类接口-不包含图表
@@ -358,7 +309,7 @@ func (this *RangeChartClassifyController) DeleteChartClassifyCheck() {
 		pars := make([]interface{}, 0)
 		if len(childIds) > 0 {
 			ids := utils.IntArr2joinString(childIds, ",")
-			condition = ` AND chart_classify_id IN (`+ ids +`) `
+			condition = ` AND chart_classify_id IN (` + ids + `) `
 		} else {
 			condition = ` AND chart_classify_id = ? `
 			pars = append(pars, req.ChartClassifyId)
@@ -461,7 +412,7 @@ func (this *RangeChartClassifyController) DeleteChartClassify() {
 		pars := make([]interface{}, 0)
 		if len(childIds) > 0 {
 			ids := utils.IntArr2joinString(childIds, ",")
-			condition = ` AND chart_classify_id IN (`+ ids +`) `
+			condition = ` AND chart_classify_id IN (` + ids + `) `
 		} else {
 			condition = ` AND chart_classify_id = ? `
 			pars = append(pars, req.ChartClassifyId)
@@ -485,7 +436,6 @@ func (this *RangeChartClassifyController) DeleteChartClassify() {
 			return
 		}
 
-
 		delIds := append(childIds, req.ChartClassifyId)
 
 		err = data_manage.DeleteChartClassifyByIds(delIds)

+ 0 - 259
controllers/report.go

@@ -695,265 +695,6 @@ func (this *ReportController) GetDayWeekReportPauseTime() {
 	return
 }
 
-// SetDayWeekReportUpdateRule
-// @Title 设置晨报周报的更新规则
-// @Description 设置晨报周报的更新规则
-// @Param	request	body models.SetDayWeekReportUpdateRuleReq true "type json string"
-// @Success 200 string "操作成功"
-// @router /setDayWeekReportUpdateRule [post]
-func (this *ReportController) SetDayWeekReportUpdateRule() {
-	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
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-	return
-}
-
-// SetDayWeekReportEnableRule
-// @Title 设置晨报周报的永久暂停更新规则
-// @Description 设置晨报周报的永久暂停更新规则
-// @Param	request	body models.SetDayWeekReportEnableUpdateRuleReq true "type json string"
-// @Success 200 string "操作成功"
-// @router /setDayWeekReportEnableUpdateRule [post]
-func (this *ReportController) SetDayWeekReportEnableRule() {
-	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
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-	return
-}
-
-// AddDayWeekReport
-// @Title 新增晨报周报
-// @Description 新增晨报周报
-// @Param	request	body models.SaveDayWeekReportReq true "type json string"
-// @Success 200 Ret=200 保存成功
-// @router /addDayWeekReport [post]
-//func (this *ReportController) AddDayWeekReport() {
-//	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
-//	}
-//	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox && utils.BusinessCode != utils.BusinessCodeDebug {
-//		br.Ret = 200
-//		br.Success = true
-//		br.Msg = "操作成功"
-//		return
-//	}
-//
-//	var req models.SaveDayWeekReportReq
-//	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-//	if err != nil {
-//		br.Msg = "参数解析异常!"
-//		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-//		return
-//	}
-//
-//	reportType := req.ReportType
-//	if reportType == "" {
-//		br.Msg = "请选择报告类型"
-//		return
-//	}
-//	if reportType != utils.REPORT_TYPE_DAY && reportType != utils.REPORT_TYPE_WEEK {
-//		br.Msg = "报告类型有误"
-//		return
-//	}
-//	if req.Title == "" {
-//		br.Msg = "请输入报告标题"
-//		return
-//	}
-//	if req.CreateTime == "" {
-//		br.Msg = "请选择发布时间"
-//		return
-//	}
-//
-//	// 报告
-//	var frequency, classifyName string
-//	var classifyId int
-//	if reportType == utils.REPORT_TYPE_DAY {
-//		frequency = "日度"
-//		classify, err := models.GetClassifyByKeyword("晨报")
-//		if err == nil {
-//			classifyId = classify.Id
-//			classifyName = "晨报"
-//		}
-//	} else if reportType == utils.REPORT_TYPE_WEEK {
-//		frequency = "周度"
-//		classify, err := models.GetClassifyByKeyword("周报")
-//		if err == nil {
-//			classifyId = classify.Id
-//			classifyName = "周报"
-//		}
-//	} else {
-//		br.Msg = "报告类型有误"
-//		return
-//	}
-//
-//	// 获取晨周报期数
-//	yearStart := time.Date(time.Now().Local().Year(), 1, 1, 0, 0, 0, 0, time.Local)
-//	maxStage, err := models.GetDayWeekReportStage(classifyId, yearStart)
-//	if err != nil {
-//		br.Msg = "获取报告期数失败"
-//		br.ErrMsg = "获取报告期数失败,Err:" + err.Error()
-//		return
-//	}
-//	stage := maxStage + 1
-//
-//	item := new(models.Report)
-//	item.AddType = 1
-//	item.ClassifyIdFirst = classifyId
-//	item.ClassifyNameFirst = classifyName
-//	item.Title = req.Title
-//	item.Author = req.Author
-//	item.Frequency = frequency
-//	item.State = 1
-//	item.Stage = stage
-//	item.CreateTime = req.CreateTime
-//	item.ModifyTime = time.Now()
-//	item.HasChapter = 1
-//	item.ChapterType = reportType
-//
-//	// 章节类型列表
-//	typeList, err := models.GetReportChapterTypeListByResearchType(reportType)
-//	if err != nil {
-//		br.Msg = "获取报告章节类型列表失败"
-//		br.ErrMsg = "获取报告章节类型列表失败,Err:" + err.Error()
-//		return
-//	}
-//	var chapterList []*models.ReportChapter
-//	// 晨报自动继承上一期内容
-//	skip := false
-//	if reportType == utils.REPORT_TYPE_DAY {
-//		lastDayReport, err := models.GetLastPublishDayWeekReport(utils.REPORT_TYPE_DAY)
-//		if err != nil && !utils.IsErrNoRow(err) {
-//			br.Msg = "获取上一期晨报失败"
-//			br.ErrMsg = "获取上一期晨报失败,Err:" + err.Error()
-//			return
-//		}
-//		if lastDayReport != nil {
-//			// 继承上一篇章节内容
-//			lastReportChapters, err := models.GetPublishedChapterListByReportId(lastDayReport.Id)
-//			if err != nil {
-//				br.Msg = "获取上一期晨报章节失败"
-//				br.ErrMsg = "获取上一期晨报章节失败,Err:" + err.Error()
-//				return
-//			}
-//			chapterMap := make(map[int]*models.ReportChapter)
-//			for i := 0; i < len(lastReportChapters); i++ {
-//				chapterMap[lastReportChapters[i].TypeId] = lastReportChapters[i]
-//			}
-//			for _, typeItem := range typeList {
-//				v := chapterMap[typeItem.ReportChapterTypeId]
-//				chapterItem := new(models.ReportChapter)
-//				if v != nil {
-//					chapterItem.AddType = 2
-//					chapterItem.Title = v.Title
-//					chapterItem.ReportType = reportType
-//					chapterItem.ClassifyIdFirst = classifyId
-//					chapterItem.ClassifyNameFirst = classifyName
-//					chapterItem.TypeId = typeItem.ReportChapterTypeId
-//					chapterItem.TypeName = typeItem.ReportChapterTypeName
-//					chapterItem.Content = v.Content
-//					chapterItem.ContentSub = v.ContentSub
-//					chapterItem.Stage = stage
-//					chapterItem.PublishState = 1
-//					chapterItem.Sort = typeItem.Sort
-//					chapterItem.CreateTime = req.CreateTime
-//					chapterItem.ModifyTime = time.Now()
-//				} else {
-//					chapterItem.AddType = 1
-//					chapterItem.ReportType = reportType
-//					chapterItem.ClassifyIdFirst = classifyId
-//					chapterItem.ClassifyNameFirst = classifyName
-//					chapterItem.TypeId = typeItem.ReportChapterTypeId
-//					chapterItem.TypeName = typeItem.ReportChapterTypeName
-//					chapterItem.Stage = stage
-//					chapterItem.PublishState = 1
-//					chapterItem.Sort = typeItem.Sort
-//					chapterItem.CreateTime = req.CreateTime
-//					chapterItem.ModifyTime = time.Now()
-//				}
-//				chapterList = append(chapterList, chapterItem)
-//			}
-//			skip = true
-//		}
-//	}
-//	if !skip {
-//		// 空白章节
-//		for _, typeItem := range typeList {
-//			chapterItem := new(models.ReportChapter)
-//			chapterItem.AddType = 1
-//			chapterItem.ReportType = reportType
-//			chapterItem.ClassifyIdFirst = classifyId
-//			chapterItem.ClassifyNameFirst = classifyName
-//			chapterItem.TypeId = typeItem.ReportChapterTypeId
-//			chapterItem.TypeName = typeItem.ReportChapterTypeName
-//			chapterItem.Stage = stage
-//			chapterItem.PublishState = 1
-//			chapterItem.Sort = typeItem.Sort
-//			chapterItem.CreateTime = req.CreateTime
-//			chapterItem.ModifyTime = time.Now()
-//			chapterList = append(chapterList, chapterItem)
-//		}
-//	}
-//
-//	// 新增报告及章节
-//	var reportId int64
-//	if reportId, err = models.AddReportAndChapter(item, chapterList); err != nil {
-//		br.Msg = "保存失败"
-//		br.ErrMsg = "新增报告及章节失败, Err: " + err.Error()
-//		return
-//	}
-//	reportCode := utils.MD5(strconv.Itoa(int(reportId)))
-//	// 修改唯一编码
-//	{
-//		go models.ModifyReportCode(reportId, reportCode)
-//	}
-//
-//	// 备份关键数据
-//	go services.SaveReportLogs(item, chapterList, sysUser.AdminId, sysUser.RealName)
-//
-//	resp := new(models.AddResp)
-//	resp.ReportId = reportId
-//	resp.ReportCode = reportCode
-//	br.Ret = 200
-//	br.Success = true
-//	br.Msg = "保存成功"
-//	br.Data = resp
-//}
-
 // EditDayWeekReport
 // @Title 编辑晨周报
 // @Description 编辑晨周报

+ 19 - 26
controllers/report_approve/report_approve.go

@@ -564,35 +564,28 @@ func (this *ReportApproveController) Detail() {
 	detail.Report.ReportLayout = 1
 
 	// 报告分类路由
-	if approveItem.ReportType == report_approve.FlowReportTypeChinese {
-		reportInfo, e := models.GetReportLayoutByReportId(approveItem.ReportId)
-		if e != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取报告失败, Err: " + e.Error()
-			return
-		}
-		detail.Report.ReportLayout = reportInfo.ReportLayout
+	reportInfo, e := models.GetReportLayoutByReportId(approveItem.ReportId)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取报告失败, Err: " + e.Error()
+		return
+	}
+	detail.Report.ReportLayout = reportInfo.ReportLayout
 
-		detail.Report.ReportCode = utils.MD5(strconv.Itoa(approveItem.ReportId))
-		var reportClassify []string
-		reportClassify = append(reportClassify, report_approve.FlowReportTypeMap[approveItem.ReportType])
-		if v, ok := cnClassifyIdName[approveItem.ClassifyFirstId]; ok {
-			reportClassify = append(reportClassify, v)
-		}
-		if v, ok := cnClassifyIdName[approveItem.ClassifySecondId]; ok {
-			reportClassify = append(reportClassify, v)
-		}
-		if v, ok := cnClassifyIdName[approveItem.ClassifyThirdId]; ok {
-			reportClassify = append(reportClassify, v)
-		}
-		detail.Report.ReportClassify = strings.Join(reportClassify, "/")
-		// detail.Report.ReportClassify = fmt.Sprintf("%s/%s/%s/%s", report_approve.FlowReportTypeMap[approveItem.ReportType], cnClassifyIdName[approveItem.ClassifyFirstId], cnClassifyIdName[approveItem.ClassifySecondId], cnClassifyIdName[approveItem.ClassifyThirdId])
+	detail.Report.ReportCode = utils.MD5(strconv.Itoa(approveItem.ReportId))
+	var reportClassify []string
+	reportClassify = append(reportClassify, report_approve.FlowReportTypeMap[approveItem.ReportType])
+	if v, ok := cnClassifyIdName[approveItem.ClassifyFirstId]; ok {
+		reportClassify = append(reportClassify, v)
+	}
+	if v, ok := cnClassifyIdName[approveItem.ClassifySecondId]; ok {
+		reportClassify = append(reportClassify, v)
 	}
-	if approveItem.ReportType == report_approve.FlowReportTypeSmart {
-		detail.Report.ReportLayout = 2
-		detail.Report.ReportCode = utils.MD5(fmt.Sprint("smart_", approveItem.ReportId))
-		detail.Report.ReportClassify = fmt.Sprintf("%s/%s/%s", report_approve.FlowReportTypeMap[approveItem.ReportType], cnClassifyIdName[approveItem.ClassifyFirstId], cnClassifyIdName[approveItem.ClassifySecondId])
+	if v, ok := cnClassifyIdName[approveItem.ClassifyThirdId]; ok {
+		reportClassify = append(reportClassify, v)
 	}
+	detail.Report.ReportClassify = strings.Join(reportClassify, "/")
+	// detail.Report.ReportClassify = fmt.Sprintf("%s/%s/%s/%s", report_approve.FlowReportTypeMap[approveItem.ReportType], cnClassifyIdName[approveItem.ClassifyFirstId], cnClassifyIdName[approveItem.ClassifySecondId], cnClassifyIdName[approveItem.ClassifyThirdId])
 
 	br.Data = detail
 	br.Ret = 200

+ 3 - 7
controllers/report_approve/report_approve_flow.go

@@ -193,7 +193,7 @@ func (this *ReportApproveFlowController) Add() {
 		br.Msg = "审批流名称最多输入20个字符"
 		return
 	}
-	reportTypes := []int{report_approve.FlowReportTypeChinese, report_approve.FlowReportTypeEnglish, report_approve.FlowReportTypeSmart}
+	reportTypes := []int{report_approve.FlowReportTypeChinese}
 	if !utils.InArrayByInt(reportTypes, req.ReportType) {
 		br.Msg = "审批流报告类型有误"
 		br.ErrMsg = fmt.Sprintf("审批流报告类型有误, ReportType: %d", req.ReportType)
@@ -332,7 +332,7 @@ func (this *ReportApproveFlowController) Edit() {
 		br.Msg = "审批流名称最多输入20个字符"
 		return
 	}
-	reportTypes := []int{report_approve.FlowReportTypeChinese, report_approve.FlowReportTypeEnglish, report_approve.FlowReportTypeSmart}
+	reportTypes := []int{report_approve.FlowReportTypeChinese}
 	if !utils.InArrayByInt(reportTypes, req.ReportType) {
 		br.Msg = "审批流报告类型有误"
 		br.ErrMsg = fmt.Sprintf("审批流报告类型有误, ReportType: %d", req.ReportType)
@@ -662,7 +662,7 @@ func (this *ReportApproveFlowController) ReportClassifyTree() {
 		hasFlowMap[k] = true
 	}
 
-	resp, cnTree, enTree := make([]*report_approve.ReportClassifyTreeItem, 0), make([]*report_approve.ReportClassifyTreeItem, 0), make([]*report_approve.ReportClassifyTreeItem, 0)
+	resp, cnTree := make([]*report_approve.ReportClassifyTreeItem, 0), make([]*report_approve.ReportClassifyTreeItem, 0)
 
 	classify, e := models.GetAllClassify()
 	if e != nil {
@@ -690,10 +690,6 @@ func (this *ReportApproveFlowController) ReportClassifyTree() {
 			ClassifyId:   report_approve.FlowReportTypeChinese,
 			ClassifyName: "Report list",
 			Children:     cnTree,
-		}, &report_approve.ReportClassifyTreeItem{
-			ClassifyId:   report_approve.FlowReportTypeEnglish,
-			ClassifyName: "English Report",
-			Children:     enTree,
 		})
 	} else {
 		resp = append(resp, &report_approve.ReportClassifyTreeItem{

+ 0 - 306
controllers/report_v2.go

@@ -1663,312 +1663,6 @@ func (this *ReportController) CancelApprove() {
 	br.Msg = "操作成功"
 }
 
-// init
-// @Description: 修复历史报告数据
-// @author: Roc
-// @datetime 2024-06-21 09:19:05
-func init() {
-	//fixApproveRecord()
-	//fixChapterPermission()
-	//fixReportEs()
-	//fixSmartReport()
-}
-
-// 修复研报审批数据
-func fixApproveRecord() {
-	recordOb := new(report_approve.ReportApproveRecord)
-
-	recordCond := fmt.Sprintf(` AND %s = ? AND %s in (?,?)`, report_approve.ReportApproveRecordCols.NodeType, report_approve.ReportApproveRecordCols.State)
-	recordPars := make([]interface{}, 0)
-	recordPars = append(recordPars, 0, report_approve.ReportApproveStatePass, report_approve.ReportApproveStateRefuse)
-	list, e := recordOb.GetItemsByCondition(recordCond, recordPars, []string{}, "")
-	if e != nil {
-		fmt.Println("查找审批记录失败,Err:", e.Error())
-		return
-	}
-	for _, recordItem := range list {
-		//fmt.Println(recordItem)
-		recordItem.NodeState = recordItem.State
-		recordItem.NodeApproveUserId = recordItem.ApproveUserId
-		recordItem.NodeApproveUserName = recordItem.ApproveUserName
-		recordItem.NodeApproveTime = recordItem.ApproveTime
-
-		// 如果不是或签,那么只需要修复自己就好了
-		if recordItem.ApproveType != report_approve.NodeApproveTypeAny {
-			recordCols := []string{"State", "ApproveTime", "ModifyTime", "NodeState", "NodeApproveUserId", "NodeApproveUserName", "NodeApproveTime"}
-			if e = recordItem.Update(recordCols); e != nil {
-				fmt.Println("更新审批记录状态失败,Err:", e.Error())
-			}
-			continue
-		}
-		// 或签
-		// 需要将该审批的同一个节点的记录标记为已审批
-		if e := recordItem.UpdateNodeState(recordItem.ReportApproveId, recordItem.NodeId, recordItem.NodeState, recordItem.NodeApproveUserId, recordItem.NodeApproveUserName, recordItem.NodeApproveTime); e != nil {
-			fmt.Println("更新同一节点的其他审批记录状态失败,Err:", e.Error())
-		}
-	}
-
-	fmt.Println("审批数据修复完成")
-}
-
-// fixChapterPermission
-// @Description: 修复章节关联的品种权限
-// @author: Roc
-// @datetime 2024-06-20 18:08:34
-func fixChapterPermission() {
-	allChapterTypePermissionList, err := models.GetAllChapterTypePermission()
-	if err != nil {
-		fmt.Println("获取所有章节类型ID获取章节类型权限列表失败,Err:", err.Error())
-		return
-	}
-
-	currChapterTypePermissionIdListMap := make(map[int][]int)
-
-	hasPermissionMap := make(map[string]bool)
-	for _, v := range allChapterTypePermissionList {
-		tmpChapterTypePermissionList, ok := currChapterTypePermissionIdListMap[v.ReportChapterTypeId]
-		if !ok {
-			tmpChapterTypePermissionList = make([]int, 0)
-		}
-		key := fmt.Sprint(v.ReportChapterTypeId, "-", v.ChartPermissionId)
-		if _, has := hasPermissionMap[key]; !has {
-			hasPermissionMap[key] = true
-			currChapterTypePermissionIdListMap[v.ReportChapterTypeId] = append(tmpChapterTypePermissionList, v.ChartPermissionId)
-		}
-	}
-
-	//notIdList := []int{9675, 9675, 9740, 9749, 9768, 9773, 9791, 9792, 9793, 9850, 9851, 9852, 9852, 9852, 9853, 9854, 9856, 9857, 9857, 9858, 9859, 9860, 9861, 9862, 9862, 9863, 9866}
-	notIdList := []int{}
-	allReportChapterList, err := models.GetAllReportChapter()
-	if err != nil {
-		fmt.Println("获取所有章节失败,Err:", err.Error())
-		return
-	}
-
-	addList := make([]*report.ReportChapterPermissionMapping, 0)
-	for _, v := range allReportChapterList {
-		// 如果是上面的章节id,那么就过滤掉,因为已经入库了
-		if utils.InArrayByInt(notIdList, v.ReportChapterId) {
-			continue
-		}
-		permissionIdList, ok := currChapterTypePermissionIdListMap[v.TypeId]
-		if !ok {
-			continue
-		}
-
-		for _, permissionId := range permissionIdList {
-			addList = append(addList, &report.ReportChapterPermissionMapping{
-				ReportChapterPermissionMappingId: 0,
-				ReportChapterId:                  v.ReportChapterId,
-				ChartPermissionId:                permissionId,
-				CreateTime:                       v.ModifyTime,
-			})
-		}
-
-	}
-
-	obj := report.ReportChapterPermissionMapping{}
-	err = obj.MultiAdd(addList)
-	if err != nil {
-		fmt.Println("批量添加报章节的品种权限失败,Err:", err.Error())
-	}
-
-	return
-}
-
-// fixReportEs
-// @Description: 修复报告es数据
-// @author: Roc
-// @datetime 2024-06-20 18:08:34
-func fixReportEs() {
-
-	//reportInfo, err := models.GetReportByReportId(3941)
-	//if err != nil {
-	//	fmt.Println("查询信息失败,", err)
-	//	return
-	//}
-	//content := utils.TrimHtml(html.UnescapeString(reportInfo.Content))
-	//fmt.Println(content)
-	//
-	//fmt.Println("=========================")
-	//
-	//chapterInfo, err := models.GetReportChapterInfoById(9637)
-	//if err != nil {
-	//	fmt.Println("查询信息失败2,", err)
-	//	return
-	//}
-	//
-	//content = utils.TrimHtml(html.UnescapeString(chapterInfo.Content))
-	//fmt.Println(content)
-	//
-	//services.UpdateReportChapterEs(9637)
-	//return
-
-	var condition string
-	var pars []interface{}
-
-	condition += " AND state in (2,6) "
-	list, err := models.GetReportListV1(condition, pars, 0, 100000)
-	if err != nil {
-		fmt.Println("查询信息失败,", err)
-		return
-	}
-
-	num := len(list)
-	fmt.Println(num, "条待修复报告es数据")
-
-	for k, v := range list {
-		fmt.Println("剩余", num-k, "条")
-		services.UpdateReportEs(v.Id, 2)
-	}
-
-	fmt.Println("报告ES数据修复完成")
-
-	return
-}
-
-// fixSmartReport
-// @Description: 修复智能研报的数据
-// @author: Roc
-// @datetime 2024-06-27 16:54:41
-func fixSmartReport() {
-	fmt.Println("修复智能研报开始")
-	// 先判断是否已经修复过数据,如果修复过,那么就不用修复了
-	{
-		condition := ` AND report_layout=2 and old_report_id>0 `
-		list, err := models.GetReportByCondition(condition, []interface{}{}, []string{}, " order by id asc ", false, 0, 0)
-		if err != nil {
-			fmt.Println("获取已修复的报告列表失败, Err:" + err.Error())
-			return
-		}
-		if len(list) > 0 {
-			fmt.Println("智能研报已经修复过数据,不需要再次修复")
-			return
-		}
-	}
-
-	var condition string
-	var pars []interface{}
-	reportOB := new(smart_report.SmartReport)
-	list, e := reportOB.GetItemsByCondition(condition, pars, []string{}, " smart_report_id asc ")
-	if e != nil {
-		fmt.Println("获取智能报告列表失败, Err:" + e.Error())
-		return
-	}
-
-	addList := make([]*models.Report, 0)
-	for _, v := range list {
-		fmt.Println(v)
-		addList = append(addList, &models.Report{
-			//Id:                  0,
-			AddType:            1,
-			ClassifyIdFirst:    v.ClassifyIdFirst,
-			ClassifyNameFirst:  v.ClassifyNameFirst,
-			ClassifyIdSecond:   v.ClassifyIdSecond,
-			ClassifyNameSecond: v.ClassifyNameSecond,
-			Title:              v.Title,
-			Abstract:           v.Abstract,
-			Author:             v.Author,
-			Frequency:          v.Frequency,
-			CreateTime:         v.CreateTime,
-			ModifyTime:         v.ModifyTime,
-			State:              v.State,
-			PublishTime:        v.PublishTime,
-			Stage:              v.Stage,
-			MsgIsSend:          v.MsgIsSend,
-			//ThsMsgIsSend:        v.Tha,
-			Content:             v.Content,
-			VideoUrl:            v.VideoUrl,
-			VideoName:           v.VideoName,
-			VideoPlaySeconds:    fmt.Sprint(v.VideoPlaySeconds),
-			VideoSize:           v.VideoSize,
-			ContentSub:          v.ContentSub,
-			ReportCode:          fmt.Sprint(v.SmartReportId),
-			ReportVersion:       1,
-			HasChapter:          0,
-			ChapterType:         "",
-			OldReportId:         v.SmartReportId,
-			MsgSendTime:         v.MsgSendTime,
-			AdminId:             v.AdminId,
-			AdminRealName:       v.AdminRealName,
-			ApproveTime:         v.ApproveTime,
-			ApproveId:           v.ApproveId,
-			DetailImgUrl:        v.DetailImgUrl,
-			DetailPdfUrl:        v.DetailPdfUrl,
-			ContentStruct:       v.ContentStruct,
-			LastModifyAdminId:   v.LastModifyAdminId,
-			LastModifyAdminName: v.LastModifyAdminName,
-			ContentModifyTime:   v.ContentModifyTime,
-			Pv:                  v.Pv,
-			Uv:                  v.Uv,
-			HeadImg:             v.HeadImg,
-			EndImg:              v.EndImg,
-			CanvasColor:         v.CanvasColor,
-			NeedSplice:          v.NeedSplice,
-			HeadResourceId:      v.HeadResourceId,
-			EndResourceId:       v.EndResourceId,
-			ClassifyIdThird:     0,
-			ClassifyNameThird:   "",
-			CollaborateType:     1,
-			ReportLayout:        2,
-			IsPublicPublish:     1,
-			ReportCreateTime:    v.CreateTime,
-			InheritReportId:     0,
-		})
-	}
-
-	if len(addList) > 0 {
-		err := models.InsertMultiReport(addList)
-		if err != nil {
-			fmt.Println("新增智能研报失败")
-			return
-		}
-
-		reportMap := make(map[int]*models.Report)
-		// 找出已经修复过的新的研报
-		{
-			reportList, tmpErr := models.GetReportByCondition(` AND report_layout=2 and old_report_id>0 `, []interface{}{}, []string{}, " order by id asc ", false, 0, 0)
-			if tmpErr != nil {
-				fmt.Println("获取已修复的报告列表失败, Err:" + tmpErr.Error())
-				return
-			}
-			for _, v := range reportList {
-				v.ReportCode = utils.MD5(strconv.Itoa(v.Id))
-				v.Update([]string{"ReportCode"})
-				reportMap[v.OldReportId] = v
-			}
-		}
-
-		// 找出智能研报的审批单并处理
-		{
-
-			// 智能研报走审批单的
-			reportApproveObj := new(report_approve.ReportApprove)
-
-			approveList, tmpErr := reportApproveObj.GetItemsByCondition(` AND report_type=3 `, []interface{}{}, []string{}, " report_approve_id asc ")
-			if tmpErr != nil {
-				fmt.Println("获取已修复的报告列表失败, Err:" + tmpErr.Error())
-				return
-			}
-
-			for _, v := range approveList {
-				reportInfo, ok := reportMap[v.ReportId]
-				if ok {
-					v.ReportId = reportInfo.Id
-					v.ReportType = 1
-					err = v.Update([]string{"ReportType", "ReportId"})
-					if err != nil {
-						fmt.Println(v.ReportApproveId, "数据修复失败,其对应的报告ID是:", v.ReportId, ";新的报告ID是:", reportInfo.Id)
-					}
-				} else {
-					fmt.Println(v.ReportApproveId, "找不到对应的报告,其对应的报告ID是:", v.ReportId)
-				}
-			}
-		}
-	}
-
-	fmt.Println("修复智能研报完成")
-}
 func initPdf() {
 	inFile := "anNNgk3Bbi4LRULwcJgNOPrREYh5.pdf"
 	f2, err := services.GeneralWaterMarkPdf(inFile, "颜鹏 - 18170239278")

+ 0 - 50
controllers/resource.go

@@ -579,56 +579,6 @@ func (c *Controller) SaveToFile(fromfile, tofile string) error {
 }
 */
 
-func init123() {
-	fmt.Println("start")
-	fmt.Println(time.Now())
-	tofile := "./20201123.mp4"
-	fromFile := "./第五期下.mp4"
-	f, err := os.Open(fromFile)
-	defer f.Close() //注意要关闭文件
-
-	fileHandle, err := os.OpenFile(tofile, os.O_RDONLY|os.O_CREATE|os.O_APPEND, 0666)
-	if err != nil {
-		fmt.Println("open file error :", err)
-		return
-	}
-	defer fileHandle.Close()
-
-	if err != nil {
-		panic(err)
-	} else {
-		//循环读取
-		for {
-			buffer := make([]byte, 4096)
-			_, err := f.Read(buffer)
-			//如果错误信息是其他类型的,则直接panic
-			if err != nil && err != io.EOF {
-				panic(err)
-			}
-			//注意,错误信息是以io包的EOF时,表示读取到文件末尾
-			if err == io.EOF {
-				fmt.Println("读取完毕")
-				break
-			}
-
-			// NewWriter 默认缓冲区大小是 4096
-			// 需要使用自定义缓冲区的writer 使用 NewWriterSize()方法
-			buf := bufio.NewWriter(fileHandle)
-			// 字节写入
-			// 字符串写入
-			buf.WriteString(string(buffer))
-			// 将缓冲中的数据写入
-			err = buf.Flush()
-			if err != nil {
-				fmt.Println("flush error :" + err.Error())
-				return
-			}
-		}
-	}
-	fmt.Println(time.Now())
-	fmt.Println("end")
-}
-
 // @Title 上传图片
 // @Description 上传图片
 // @Param   Image query  string  false       "图片,base64字符串"

+ 0 - 58
controllers/roadshow/calendar.go

@@ -1,58 +0,0 @@
-package roadshow
-
-import (
-	"eta_gn/eta_api/controllers"
-	"eta_gn/eta_api/models"
-)
-
-// CalendarController 日历
-type CalendarController struct {
-	controllers.BaseAuthController
-}
-
-// ResearcherList
-// @Title 研究员列表
-// @Description 研究员列表接口
-// @Success 200 {object} roadshow.ResearcherGroup
-// @router /researcher/list [get]
-func (this *CalendarController) ResearcherList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	//group, err := roadshow.GetResearcherGroup()
-	//if err != nil {
-	//	br.Msg = "获取信息失败!"
-	//	br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
-	//	return
-	//}
-	//researcherList, err := roadshow.GetResearcher()
-	//groupMap := make(map[int][]*roadshow.Researcher)
-	//for _, v := range researcherList {
-	//	//if v.RoleTypeCode == "ficc_admin" {
-	//	//	findItems := groupMap[1]
-	//	//	findItems = append(findItems, v)
-	//	//	groupMap[1] = findItems
-	//	//} else {
-	//	if findItems, ok := groupMap[v.GroupId]; ok {
-	//		findItems = append(findItems, v)
-	//		groupMap[v.GroupId] = findItems
-	//	} else {
-	//		findItems = append(findItems, v)
-	//		groupMap[v.GroupId] = findItems
-	//	}
-	//	//}
-	//}
-	//for _, v := range group {
-	//	v.ResearcherList = groupMap[v.GroupId]
-	//}
-	//allGroup := new(roadshow.ResearcherGroup)
-	//allGroup.GroupId = 99
-	//allGroup.GroupName = "ficc全体"
-	//group = append(group, allGroup)
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	//br.Data = group
-}

+ 0 - 1545
controllers/smart_report/smart_report.go

@@ -1,1545 +0,0 @@
-package smart_report
-
-import (
-	"encoding/json"
-	"eta_gn/eta_api/controllers"
-	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/report_approve"
-	"eta_gn/eta_api/models/smart_report"
-	"eta_gn/eta_api/models/system"
-	"eta_gn/eta_api/services"
-	"eta_gn/eta_api/services/data"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"github.com/kgiannakakis/mp3duration/src/mp3duration"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"html"
-	"io/ioutil"
-	"os"
-	"path"
-	"strings"
-	"time"
-)
-
-// SmartReportController 智能研报
-type SmartReportController struct {
-	controllers.BaseAuthController
-}
-
-// Add
-// @Title 新增
-// @Description 新增
-// @Param	request	body smart_report.SmartReportAddReq true "type json string"
-// @Success 200 {object} smart_report.SmartReportItem
-// @router /add [post]
-func (this *SmartReportController) Add() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportAddReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	if req.AddType != 1 && req.AddType != 2 {
-		br.Msg = "请选择新增方式"
-		return
-	}
-	if req.ClassifyIdFirst <= 0 || req.ClassifyIdSecond <= 0 {
-		br.Msg = "请选择分类"
-		return
-	}
-	req.Title = strings.TrimSpace(req.Title)
-	if req.Title == "" {
-		br.Msg = "请输入标题"
-		return
-	}
-
-	reportOB := new(smart_report.SmartReport)
-	stageMax, e := reportOB.GetMaxStageByClassifyId(req.ClassifyIdSecond)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取期数失败, Err: " + e.Error()
-		return
-	}
-	stageMax += 1
-
-	// 根据审批开关及审批流判断当前报告状态
-	state, e := services.CheckReportCurrState(report_approve.FlowReportTypeSmart, req.ClassifyIdFirst, req.ClassifyIdSecond, 0, models.ReportOperateAdd)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "校验报告当前状态失败, Err: " + e.Error()
-		return
-	}
-
-	item := new(smart_report.SmartReport)
-	item.AddType = req.AddType
-	item.ClassifyIdFirst = req.ClassifyIdFirst
-	item.ClassifyNameFirst = req.ClassifyNameFirst
-	item.ClassifyIdSecond = req.ClassifyIdSecond
-	item.ClassifyNameSecond = req.ClassifyNameSecond
-	item.Title = req.Title
-	item.Abstract = req.Abstract
-	item.Author = req.Author
-	item.Frequency = req.Frequency
-	item.Stage = stageMax
-	item.AdminId = sysUser.AdminId
-	item.AdminRealName = sysUser.RealName
-	item.LastModifyAdminId = sysUser.AdminId
-	item.LastModifyAdminName = sysUser.RealName
-	item.State = state
-	item.CreateTime = time.Now().Local()
-	item.ModifyTime = time.Now().Local()
-	item.ContentModifyTime = time.Now().Local()
-	item.HeadImg = req.HeadImg
-	item.EndImg = req.EndImg
-	item.CanvasColor = req.CanvasColor
-	item.HeadResourceId = req.HeadResourceId
-	item.EndResourceId = req.EndResourceId
-	item.NeedSplice = 1
-
-	// 继承报告
-	if req.AddType == 2 {
-		ob := new(smart_report.SmartReport)
-		cond := ` AND classify_id_first = ? AND classify_id_second = ?`
-		pars := make([]interface{}, 0)
-		pars = append(pars, req.ClassifyIdFirst, req.ClassifyIdSecond)
-		lastReport, e := ob.GetItemByCondition(cond, pars, "stage DESC")
-		if e != nil && !utils.IsErrNoRow(e) {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取往期研报失败, Err: " + e.Error()
-			return
-		}
-		if lastReport != nil {
-			item.Content = lastReport.Content
-			item.ContentSub = lastReport.ContentSub
-			item.ContentStruct = lastReport.ContentStruct
-		}
-	}
-	if e = item.Create(); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "新增研报失败, Err: " + e.Error()
-		return
-	}
-	uniqueCode := utils.MD5(fmt.Sprint("smart_", item.SmartReportId))
-	item.ReportCode = uniqueCode
-	if e = item.Update([]string{"ReportCode"}); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "更新研报编码失败, Err: " + e.Error()
-		return
-	}
-	resp := smart_report.FormatSmartReport2Item(item)
-
-	recordItem := &models.ReportStateRecord{
-		ReportId:   item.SmartReportId,
-		ReportType: 2,
-		State:      state,
-		AdminId:    this.SysUser.AdminId,
-		AdminName:  this.SysUser.AdminName,
-		CreateTime: time.Now(),
-	}
-	go func() {
-		_, _ = models.AddReportStateRecord(recordItem)
-	}()
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-	br.Data = resp
-}
-
-// Edit
-// @Title 编辑
-// @Description 编辑
-// @Param	request	body smart_report.SmartReportEditReq true "type json string"
-// @Success 200 {object} smart_report.SmartReportItem
-// @router /edit [post]
-func (this *SmartReportController) Edit() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportEditReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	if req.SmartReportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = "报告ID为空"
-		return
-	}
-	if req.ClassifyIdFirst <= 0 || req.ClassifyIdSecond <= 0 {
-		br.Msg = "请选择分类"
-		return
-	}
-	req.Title = strings.TrimSpace(req.Title)
-	if req.Title == "" {
-		br.Msg = "请输入标题"
-		return
-	}
-	var subContent string
-	if req.Content != "" {
-		req.Content = html.EscapeString(req.Content)
-		// 前两个章节
-		sub, e := services.GetReportContentSub(req.Content)
-		if e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "读取报告前两个章节内容失败, Err: " + e.Error()
-			return
-		}
-		subContent = html.EscapeString(sub)
-	}
-	req.ContentStruct = html.EscapeString(req.ContentStruct)
-
-	ob := new(smart_report.SmartReport)
-	item, e := ob.GetItemById(req.SmartReportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取研报失败, Err: " + e.Error()
-		return
-	}
-	if item.State == models.ReportStatePublished || item.State == models.ReportStatePass {
-		br.Msg = "报告已发布, 请取消发布后编辑"
-		return
-	}
-
-	// 内容是否变更, 只有内容产生变更时, 才更新最后更新人和内容更新时间字段
-	contentModify := false
-	if item.ClassifyIdFirst != req.ClassifyIdFirst ||
-		item.ClassifyIdSecond != req.ClassifyIdSecond ||
-		item.Title != req.Title ||
-		item.Abstract != req.Abstract ||
-		item.Frequency != req.Frequency ||
-		item.Author != req.Author ||
-		utils.MD5(item.Content) != utils.MD5(req.Content) {
-		contentModify = true
-	}
-	cols := []string{"ClassifyIdFirst", "ClassifyNameFirst", "ClassifyIdSecond", "ClassifyNameSecond", "Title", "Abstract", "Author",
-		"Frequency", "Content", "ContentSub", "ContentStruct", "ModifyTime", "HeadImg", "EndImg", "CanvasColor", "HeadResourceId", "EndResourceId"}
-	item.ClassifyIdFirst = req.ClassifyIdFirst
-	item.ClassifyNameFirst = req.ClassifyNameFirst
-	item.ClassifyIdSecond = req.ClassifyIdSecond
-	item.ClassifyNameSecond = req.ClassifyNameSecond
-	item.Title = req.Title
-	item.Abstract = req.Abstract
-	item.Author = req.Author
-	item.Frequency = req.Frequency
-	item.Content = req.Content
-	item.ContentSub = subContent
-	item.ContentStruct = req.ContentStruct
-	item.ModifyTime = time.Now().Local()
-	item.HeadImg = req.HeadImg
-	item.EndImg = req.EndImg
-	item.CanvasColor = req.CanvasColor
-	item.HeadResourceId = req.HeadResourceId
-	item.EndResourceId = req.EndResourceId
-	if contentModify {
-		item.LastModifyAdminId = sysUser.AdminId
-		item.LastModifyAdminName = sysUser.RealName
-		item.ContentModifyTime = time.Now().Local()
-		cols = append(cols, "LastModifyAdminId", "LastModifyAdminName", "ContentModifyTime")
-	}
-	if e := item.Update(cols); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "更新报告失败, Err: " + e.Error()
-		return
-	}
-	resp := smart_report.FormatSmartReport2Item(item)
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-	br.Data = resp
-}
-
-// Remove
-// @Title 删除
-// @Description 删除
-// @Param	request	body smart_report.SmartReportRemoveReq true "type json string"
-// @Success 200 string "操作成功"
-// @router /remove [post]
-func (this *SmartReportController) Remove() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportRemoveReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	if req.SmartReportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = "报告ID为空"
-		return
-	}
-
-	ob := new(smart_report.SmartReport)
-	item, e := ob.GetItemById(req.SmartReportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "操作成功"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取研报失败, Err: " + e.Error()
-		return
-	}
-	if e = item.Del(); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "删除报告失败, Err: " + e.Error()
-		return
-	}
-
-	// ES更新报告为未发布
-	go func() {
-		_ = services.SmartReportElasticUpsert(item.SmartReportId, 1)
-	}()
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-}
-
-// Detail
-// @Title 详情
-// @Description 详情
-// @Param   SmartReportId	query	int	true	"智能研报ID"
-// @Success 200 {object} smart_report.SmartReportItem
-// @router /detail [get]
-func (this *SmartReportController) Detail() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	reportId, _ := this.GetInt("SmartReportId")
-	if reportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = "报告ID有误"
-		return
-	}
-
-	ob := new(smart_report.SmartReport)
-	item, e := ob.GetItemById(reportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取研报失败, Err: " + e.Error()
-		return
-	}
-	resp := smart_report.FormatSmartReport2Item(item)
-	if resp.HeadResourceId > 0 {
-		headResource, err := smart_report.GetResourceItemById(resp.HeadResourceId)
-		if err != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "获取资源库版头失败, Err: " + err.Error()
-			return
-		}
-		resp.HeadImg = headResource.ImgUrl
-		resp.HeadStyle = headResource.Style
-	}
-
-	if resp.EndResourceId > 0 {
-		endResource, err := smart_report.GetResourceItemById(resp.EndResourceId)
-		if err != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "获取资源库版头失败, Err: " + err.Error()
-			return
-		}
-		resp.EndImg = endResource.ImgUrl
-		resp.EndStyle = endResource.Style
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-}
-
-// Publish
-// @Title 发布/取消发布
-// @Description 发布/取消发布
-// @Param	request	body smart_report.SmartReportPublishReq true "type json string"
-// @Success 200 string "操作成功"
-// @router /publish [post]
-func (this *SmartReportController) Publish() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportPublishReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	if req.SmartReportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = "报告ID为空"
-		return
-	}
-	if req.PublishState != smart_report.SmartReportStateWaitPublish && req.PublishState != smart_report.SmartReportStatePublished {
-		br.Msg = "参数有误"
-		return
-	}
-	operate := 0
-	if req.PublishState == smart_report.SmartReportStateWaitPublish {
-		operate = models.ReportOperateCancelPublish
-	}
-	if req.PublishState == smart_report.SmartReportStatePublished {
-		operate = models.ReportOperatePublish
-	}
-
-	ob := new(smart_report.SmartReport)
-	item, e := ob.GetItemById(req.SmartReportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取研报失败, Err: " + e.Error()
-		return
-	}
-
-	// 图表刷新状态
-	refreshResult := data.CheckBatchChartRefreshResult("report", item.SmartReportId, 0)
-	if !refreshResult {
-		br.Msg = "图表刷新未完成,请稍后操作"
-		br.ErrMsg = "图表刷新未完成,请稍后操作"
-		br.IsSendEmail = false
-		return
-	}
-
-	// 根据审批开关及审批流判断当前报告状态
-	state, e := services.CheckReportCurrState(report_approve.FlowReportTypeSmart, item.ClassifyIdFirst, item.ClassifyIdSecond, 0, operate)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "校验报告当前状态失败, Err: " + e.Error()
-		return
-	}
-
-	cols := []string{"State", "ModifyTime"}
-	item.State = state
-	item.ModifyTime = time.Now().Local()
-	if state == smart_report.SmartReportStatePublished {
-		// 主动发布会清除掉预发布设置, 发布时间则取当前时间
-		cols = append(cols, "PublishTime", "PrePublishTime")
-		item.PublishTime = time.Now().Local()
-		item.PrePublishTime = time.Time{}
-
-		// 写入队列
-		//var queue smart_report.Report2ImgQueueReq
-		//queue.ReportType = 2
-		//queue.ReportCode = item.ReportCode
-		//_ = utils.Rc.LPush(utils.CACHE_CREATE_REPORT_IMGPDF_QUEUE, queue)
-	}
-
-	// 取消发布时同时清除掉Img和PDF的文件地址, 发布时间以及预发布时间
-	if state == smart_report.SmartReportStateWaitPublish {
-		cols = append(cols, "DetailImgUrl", "DetailPdfUrl", "PublishTime", "PrePublishTime")
-		item.DetailImgUrl = ""
-		item.DetailPdfUrl = ""
-		item.PublishTime = time.Time{}
-		item.PrePublishTime = time.Time{}
-	}
-	if e = item.Update(cols); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "更新研报失败, Err: " + e.Error()
-		return
-	}
-
-	recordItem := &models.ReportStateRecord{
-		ReportId:   req.SmartReportId,
-		ReportType: 2,
-		State:      state,
-		AdminId:    this.SysUser.AdminId,
-		AdminName:  this.SysUser.AdminName,
-		CreateTime: time.Now(),
-	}
-	go func() {
-		_, _ = models.AddReportStateRecord(recordItem)
-	}()
-
-	if state == smart_report.SmartReportStatePublished {
-		// 生成音频
-		if item.VideoUrl == "" {
-			go services.SmartReportBuildVideoAndUpdate(item)
-		}
-
-		// ES更新报告
-		go func() {
-			_ = services.SmartReportElasticUpsert(item.SmartReportId, models.ReportStatePublished)
-		}()
-
-		// 生成报告pdf和长图
-		if req.ReportUrl != "" {
-			go services.Report2pdfAndJpeg(req.ReportUrl, item.SmartReportId, 3)
-		}
-	}
-	if state == smart_report.SmartReportStateWaitPublish {
-		// ES更新报告
-		go func() {
-			_ = services.SmartReportElasticUpsert(item.SmartReportId, models.ReportStateUnpublished)
-		}()
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-}
-
-// PrePublish
-// @Title 设置定时发布
-// @Description 设置定时发布
-// @Param	request	body smart_report.SmartReportPrePublishReq true "type json string"
-// @Success 200 string "操作成功"
-// @router /pre_publish [post]
-func (this *SmartReportController) PrePublish() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportPrePublishReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	reportId := req.SmartReportId
-	if reportId == 0 {
-		br.Msg = "参数错误"
-		br.ErrMsg = "参数错误,报告id不可为空"
-		return
-	}
-	if req.PrePublishTime == "" {
-		br.Msg = "发布时间不能为空"
-		return
-	}
-	if req.PreMsgSend != 0 && req.PreMsgSend != 1 {
-		br.Msg = "参数错误"
-		br.ErrMsg = "是否发送模版消息标识错误"
-		return
-	}
-	preTime, e := time.ParseInLocation(utils.FormatDateTime, req.PrePublishTime, time.Local)
-	if e != nil {
-		br.Msg = "发布时间格式错误"
-		br.ErrMsg = "发布时间格式错误,Err:" + e.Error()
-		return
-	}
-	if preTime.Before(time.Now()) {
-		br.Msg = "发布时间不允许选择过去时间"
-		return
-	}
-	if preTime.Before(time.Now().Add(2 * time.Minute)) {
-		br.Msg = "发布时间距离当前时间太近了"
-		return
-	}
-
-	reportOB := new(smart_report.SmartReport)
-	item, e := reportOB.GetItemById(reportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "获取报告失败"
-		br.ErrMsg = "获取报告失败, Err:" + e.Error()
-		return
-	}
-	if item.Content == "" {
-		br.Msg = "报告内容为空, 不可发布"
-		return
-	}
-	if item.State == 2 {
-		br.Msg = "报告已发布, 不可设置定时发布"
-		return
-	}
-
-	// 校验是否开启了审批流
-	opening, e := services.CheckReportOpenApprove(report_approve.FlowReportTypeSmart, item.ClassifyIdFirst, item.ClassifyIdSecond, 0)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "校验报告是否开启审批流失败, Err: " + e.Error()
-		return
-	}
-	if opening {
-		br.Msg = "报告已开启审批流, 不可设置定时发布"
-		return
-	}
-
-	item.PrePublishTime = preTime
-	item.PreMsgSend = req.PreMsgSend
-	cols := []string{"PrePublishTime", "PreMsgSend"}
-	if e = item.Update(cols); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "更新报告预发布失败, Err: " + e.Error()
-		return
-	}
-
-	// 生成报告pdf和长图
-	if req.ReportUrl != "" {
-		go services.Report2pdfAndJpeg(req.ReportUrl, item.SmartReportId, 3)
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-}
-
-// SendMsg
-// @Title 消息推送
-// @Description 消息推送
-// @Param	request	body models.SendTemplateMsgReq true "type json string"
-// @Success 200 Ret=200 推送成功
-// @router /send_msg [post]
-func (this *SmartReportController) SendMsg() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportSendMsgReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	if req.SmartReportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = fmt.Sprintf("参数有误, SmartReportId: %d", req.SmartReportId)
-		return
-	}
-
-	// 避免重复推送
-	{
-		redisKey := fmt.Sprint(utils.CACHE_SMART_REPORT_SEND_MSG, req.SmartReportId)
-		ok := utils.Rc.SetNX(redisKey, 1, time.Second*300)
-		if !ok {
-			br.Msg = "报告已推送, 请勿重复推送"
-			return
-		}
-		defer func() {
-			_ = utils.Rc.Delete(redisKey)
-		}()
-	}
-
-	reportOB := new(smart_report.SmartReport)
-	item, e := reportOB.GetItemById(req.SmartReportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取报告失败, Err: " + e.Error()
-		return
-	}
-	if item.MsgIsSend == 1 {
-		br.Msg = "消息已推送,请勿重复操作"
-		return
-	}
-	if item.State != 2 {
-		br.Msg = "报告未发布, 不可推送"
-		return
-	}
-
-	item.MsgIsSend = 1
-	item.MsgSendTime = time.Now().Local()
-	item.ModifyTime = time.Now().Local()
-	if e = item.Update([]string{"MsgIsSend", "MsgSendTime", "ModifyTime"}); e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "更新报告推送状态失败, Err: " + e.Error()
-		return
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-	br.IsAddLog = true
-}
-
-// SaveContent
-// @Title 保存草稿
-// @Description 保存草稿
-// @Param	request	body smart_report.SmartReportSaveContentReq true "type json string"
-// @Success 200 {object} smart_report.SmartReportSaveContentResp
-// @router /save_content [post]
-func (this *SmartReportController) SaveContent() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportSaveContentReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	resp := new(smart_report.SmartReportSaveContentResp)
-	if req.SmartReportId <= 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "操作成功"
-		br.Data = resp
-		return
-	}
-
-	reportOB := new(smart_report.SmartReport)
-	item, _ := reportOB.GetItemById(req.SmartReportId)
-	if item == nil {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "操作成功"
-		br.Data = resp
-		return
-	}
-	if item.State == smart_report.SmartReportStatePublished {
-		br.Msg = "报告已发布, 不允许编辑"
-		return
-	}
-
-	// 更新编辑状态
-	adminIdName := make(map[int]string)
-	admins, e := system.GetSysAdminList(``, make([]interface{}, 0), []string{}, "")
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取系统用户列表失败, Err: " + e.Error()
-		return
-	}
-	for _, ad := range admins {
-		adminIdName[ad.AdminId] = ad.RealName
-	}
-	editing, e := services.UpdateSmartReportEditing(req.SmartReportId, 1, sysUser.AdminId, sysUser.RealName, adminIdName, this.Lang)
-	if e != nil {
-		br.Msg = e.Error()
-		return
-	}
-	if editing.Status == 1 {
-		br.Msg = editing.Msg
-		return
-	}
-
-	// 内容有改动
-	if req.NoChange != 1 && req.Content != "" && req.ContentStruct != "" {
-		req.Content = html.EscapeString(req.Content)
-		req.ContentStruct = html.EscapeString(req.ContentStruct)
-		sub, e := services.GetReportContentSub(req.Content)
-		if e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "读取报告前两个章节内容失败, Err: " + e.Error()
-			return
-		}
-		subContent := html.EscapeString(sub)
-
-		item.Content = req.Content
-		item.ContentSub = subContent
-		item.ContentStruct = req.ContentStruct
-		item.ContentModifyTime = time.Now().Local()
-		item.LastModifyAdminId = sysUser.AdminId
-		item.LastModifyAdminName = sysUser.RealName
-		item.ModifyTime = time.Now().Local()
-		item.HeadImg = req.HeadImg
-		item.EndImg = req.EndImg
-		item.CanvasColor = req.CanvasColor
-		item.HeadResourceId = req.HeadResourceId
-		item.EndResourceId = req.EndResourceId
-		cols := []string{"Content", "ContentSub", "ContentStruct", "ContentModifyTime", "LastModifyAdminId", "LastModifyAdminName", "ModifyTime", "HeadImg", "EndImg", "CanvasColor", "HeadResourceId", "EndResourceId"}
-		if e = item.Update(cols); e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "更新报告内容失败"
-			return
-		}
-
-		go func() {
-			saveLog := new(smart_report.SmartReportSaveLog)
-			saveLog.SmartReportId = item.SmartReportId
-			saveLog.Content = item.Content
-			saveLog.ContentSub = item.ContentSub
-			saveLog.ContentStruct = item.ContentStruct
-			saveLog.AdminId = sysUser.AdminId
-			saveLog.AdminName = sysUser.RealName
-			saveLog.CreateTime = time.Now().Local()
-			_ = saveLog.Create()
-		}()
-	}
-
-	resp.SmartReportId = item.SmartReportId
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "保存成功"
-	br.Data = resp
-}
-
-// MarkEditStatus
-// @Title 标记报告编辑状态
-// @Description 标记报告编辑状态接口
-// @Param	request	body request.MarkEditEnReport true "type json string"
-// @Success 200 标记成功 ;202 标记成功
-// @router /mark_edit [post]
-func (this *SmartReportController) MarkEditStatus() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	var req smart_report.SmartReportMarkEditReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-	if req.SmartReportId <= 0 {
-		br.Msg = "缺少报告Id"
-		return
-	}
-	if req.Status <= 0 {
-		br.Msg = "标记状态异常"
-		return
-	}
-
-	// 获取系统用户列表-用于匹配编辑中的用户
-	adminIdName := make(map[int]string)
-	admins, e := system.GetSysAdminList(``, make([]interface{}, 0), []string{}, "")
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取系统用户列表失败, Err: " + e.Error()
-		return
-	}
-	for _, ad := range admins {
-		adminIdName[ad.AdminId] = ad.RealName
-	}
-
-	data, e := services.UpdateSmartReportEditing(req.SmartReportId, req.Status, sysUser.AdminId, sysUser.RealName, adminIdName, this.Lang)
-	if e != nil {
-		br.Msg = e.Error()
-		return
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "标记成功"
-	br.Data = data
-}
-
-// List
-// @Title 报告列表
-// @Description 报告列表
-// @Param   PageSize			query	int		true	"每页数据条数"
-// @Param   CurrentIndex		query	int		true	"当前页页码"
-// @Param   TimeType			query	string	false	"筛选的时间类别: publish_time-发布时间, modify_time-更新时间, approve_time-审批时间"
-// @Param   StartDate			query   string  false	"开始时间"
-// @Param   EndDate				query   string  false	"结束时间"
-// @Param   Frequency			query   string  false	"频度"
-// @Param   ClassifyIdFirst		query	int		false	"一级分类ID"
-// @Param   ClassifyIdSecond	query	int		false	"二级分类ID"
-// @Param   State				query	int		false	"发布状态: 1-待发布; 2-已发布"
-// @Param   Keyword				query	string	false	"搜索关键词"
-// @Success 200 {object} smart_report.SmartReportListResp
-// @router /list [get]
-func (this *SmartReportController) List() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	type SmartReportListReq struct {
-		PageSize         int    `form:"PageSize"`
-		CurrentIndex     int    `form:"CurrentIndex"`
-		TimeType         string `form:"TimeType"`
-		StartDate        string `form:"StartDate"`
-		EndDate          string `form:"EndDate"`
-		Frequency        string `form:"Frequency"`
-		ClassifyIdFirst  int    `form:"ClassifyIdFirst"`
-		ClassifyIdSecond int    `form:"ClassifyIdSecond"`
-		State            int    `form:"State"`
-		Keyword          string `form:"Keyword"`
-	}
-	params := new(SmartReportListReq)
-	if e := this.ParseForm(params); e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "入参解析失败, Err: " + e.Error()
-		return
-	}
-	if params.TimeType == "" {
-		params.TimeType = "publish_time"
-	}
-	if params.TimeType != "publish_time" && params.TimeType != "modify_time" && params.TimeType != "approve_time" {
-		br.Msg = "请选择正确的时间类型"
-		return
-	}
-	// 更新时间指的是内容更新时间
-	if params.TimeType == "modify_time" {
-		params.TimeType = "content_modify_time"
-	}
-
-	var condition string
-	var pars []interface{}
-	// 筛选项
-	{
-		keyword := strings.TrimSpace(params.Keyword)
-		if keyword != "" {
-			kw := fmt.Sprint("%", keyword, "%")
-			condition += fmt.Sprintf(` AND (title LIKE ? OR admin_real_name LIKE ? OR last_modify_admin_name LIKE ?)`)
-			pars = append(pars, kw, kw, kw)
-		}
-		if params.StartDate != "" && params.EndDate != "" {
-			st := fmt.Sprintf("%s 00:00:00", params.StartDate)
-			ed := fmt.Sprintf("%s 23:59:59", params.EndDate)
-			condition += fmt.Sprintf(` AND %s >= ? AND %s <= ?`, params.TimeType, params.TimeType)
-			pars = append(pars, st, ed)
-		}
-		if params.Frequency != "" {
-			condition += ` AND frequency = ?`
-			pars = append(pars, params.Frequency)
-		}
-		if params.ClassifyIdFirst > 0 {
-			condition += ` AND classify_id_first = ?`
-			pars = append(pars, params.ClassifyIdFirst)
-		}
-		if params.ClassifyIdSecond > 0 {
-			condition += ` AND classify_id_second = ?`
-			pars = append(pars, params.ClassifyIdSecond)
-		}
-		if params.State > 0 {
-			condition += ` AND state = ?`
-			pars = append(pars, params.State)
-		}
-	}
-
-	resp := new(smart_report.SmartReportListResp)
-	reportOB := new(smart_report.SmartReport)
-	total, e := reportOB.GetCountByCondition(condition, pars)
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取报告总数失败, Err:" + e.Error()
-		return
-	}
-	if total <= 0 {
-		page := paging.GetPaging(params.CurrentIndex, params.PageSize, total)
-		resp.Paging = page
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		br.Data = resp
-		return
-	}
-
-	// 分页列表
-	var startSize int
-	if params.PageSize <= 0 {
-		params.PageSize = utils.PageSize20
-	}
-	if params.CurrentIndex <= 0 {
-		params.CurrentIndex = 1
-	}
-	startSize = utils.StartIndex(params.CurrentIndex, params.PageSize)
-
-	// 列表查询过滤掉富文本内容
-	fields := []string{
-		"smart_report_id", "report_code", "classify_id_first", "classify_name_first", "classify_id_second", "classify_name_second", "add_type",
-		"title", "abstract", "author", "frequency", "stage", "video_url", "video_name", "video_play_seconds", "video_size", "detail_img_url", "detail_pdf_url",
-		"admin_id", "admin_real_name", "state", "publish_time", "pre_publish_time", "pre_msg_send", "msg_is_send", "msg_send_time", "create_time", "modify_time",
-		"last_modify_admin_id", "last_modify_admin_name", "content_modify_time", "pv", "uv", "head_img", "end_img", "canvas_color", "approve_time",
-	}
-	list, e := reportOB.GetPageItemsByCondition(condition, pars, fields, "", startSize, params.PageSize)
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取报告分页列表失败, Err:" + e.Error()
-		return
-	}
-
-	// 获取系统用户列表-用于匹配编辑中的用户
-	adminIdName := make(map[int]string)
-	admins, e := system.GetSysAdminList(``, make([]interface{}, 0), []string{}, "")
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取系统用户列表失败, Err: " + e.Error()
-		return
-	}
-	for _, ad := range admins {
-		adminIdName[ad.AdminId] = ad.RealName
-	}
-
-	for _, v := range list {
-		item := smart_report.FormatSmartReport2Item(v)
-		mark, e := services.UpdateSmartReportEditing(v.SmartReportId, 2, sysUser.AdminId, sysUser.RealName, adminIdName, this.Lang)
-		if e != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "查询编辑中标记失败, Err:" + e.Error()
-			return
-		}
-		if mark.Status == 0 {
-			item.CanEdit = true
-		} else {
-			item.Editor = mark.Editor
-		}
-		resp.List = append(resp.List, item)
-	}
-
-	page := paging.GetPaging(params.CurrentIndex, params.PageSize, total)
-	resp.Paging = page
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-}
-
-// DetailImg
-// @Title 生成长图
-// @Description 生成长图
-// @Param   SmartReportId	query	int	true	"智能研报ID"
-// @Success 200 {object} smart_report.SmartReportSaveContentResp
-// @router /detail_img [get]
-func (this *SmartReportController) DetailImg() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	reportId, _ := this.GetInt("SmartReportId", 0)
-	if reportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = fmt.Sprintf("参数有误, SmartReportId: %d", reportId)
-		return
-	}
-
-	reportOB := new(smart_report.SmartReport)
-	item, e := reportOB.GetItemById(reportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取报告失败, Err: " + e.Error()
-		return
-	}
-	if item.DetailImgUrl != "" {
-		br.Data = item.DetailImgUrl
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		return
-	}
-
-	// 写入队列
-	var queue smart_report.Report2ImgQueueReq
-	queue.ReportType = 2
-	queue.ReportCode = item.ReportCode
-	//_ = utils.Rc.LPush(utils.CACHE_CREATE_REPORT_IMGPDF_QUEUE, queue)
-
-	br.Msg = "图片正在生成中, 请稍后下载"
-	return
-}
-
-// LastPublishedReport
-// @Title 上期已发布的报告
-// @Description 上期已发布的报告
-// @Param   ClassifyIdFirst		query	int	false	"一级分类ID"
-// @Param   ClassifyIdSecond	query	int	false	"二级分类ID"
-// @Success 200 {object} smart_report.SmartReportItem
-// @router /last_published_report [get]
-func (this *SmartReportController) LastPublishedReport() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		br.Ret = 408
-		return
-	}
-	firstId, _ := this.GetInt("ClassifyIdFirst")
-	secondId, _ := this.GetInt("ClassifyIdSecond")
-
-	ob := new(smart_report.SmartReport)
-	cond := ` AND classify_id_first = ? AND classify_id_second = ?`
-	pars := make([]interface{}, 0)
-	pars = append(pars, firstId, secondId)
-	item, e := ob.GetItemByCondition(cond, pars, "stage DESC")
-	if e != nil && !utils.IsErrNoRow(e) {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取研报失败, Err: " + e.Error()
-		return
-	}
-	resp := smart_report.FormatSmartReport2Item(item)
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-}
-
-// VoiceUpload
-// @Title 音频上传
-// @Description 音频上传接口
-// @Param   file   query   file  true       "文件"
-// @Param   SmartReportId	query   int  true       "报告ID"
-// @Success Ret=200 上传成功
-// @router /voice_upload [post]
-func (this *SmartReportController) VoiceUpload() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	reportId, _ := this.GetInt("SmartReportId")
-	if reportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = fmt.Sprintf("参数有误, SmartReportId: %d", reportId)
-		return
-	}
-	f, h, err := this.GetFile("file")
-	if err != nil {
-		br.Msg = "获取资源信息失败"
-		br.ErrMsg = "获取资源信息失败,Err:" + err.Error()
-		return
-	}
-	defer func() {
-		_ = f.Close()
-	}()
-
-	reportOb := new(smart_report.SmartReport)
-	item, e := reportOb.GetItemById(reportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告不存在, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取报告信息失败, Err:" + err.Error()
-		return
-	}
-
-	ext := path.Ext(h.Filename)
-	uploadDir := utils.STATIC_DIR + "hongze/" + time.Now().Format("20060102")
-	if e = os.MkdirAll(uploadDir, 0766); e != nil {
-		br.Msg = "存储目录创建失败"
-		br.ErrMsg = "存储目录创建失败, Err:" + e.Error()
-		return
-	}
-	ossFileName := utils.GetRandStringNoSpecialChar(28) + ext
-	filePath := uploadDir + "/" + ossFileName
-	if e = this.SaveToFile("file", filePath); e != nil {
-		br.Msg = "文件保存失败"
-		br.ErrMsg = "文件保存失败, Err:" + e.Error()
-		return
-	}
-	defer func() {
-		_ = os.Remove(filePath)
-	}()
-	//ossDir := "static/audio/"
-
-	resourceUrl := ``
-	//上传到阿里云 和 minio
-	//if utils.ObjectStorageClient == "minio" {
-	//	resourceUrl, e = services.UploadMinIoToDir(ossFileName, filePath, ossDir, "")
-	//	if e != nil {
-	//		br.Msg = "文件上传失败"
-	//		br.ErrMsg = "文件上传失败, Err:" + e.Error()
-	//		return
-	//	}
-	//} else {
-	//	resourceUrl, e = services.UploadAliyunToDir(ossFileName, filePath, ossDir, "")
-	//	if e != nil {
-	//		br.Msg = "文件上传失败"
-	//		br.ErrMsg = "文件上传失败, Err:" + e.Error()
-	//		return
-	//	}
-	//}
-	ossClient := services.NewOssClient()
-	if ossClient == nil {
-		br.Msg = "上传失败"
-		br.ErrMsg = "初始化OSS服务失败"
-		return
-	}
-	resourceUrl, e = ossClient.UploadFile(ossFileName, filePath, "")
-	if e != nil {
-		br.Msg = "文件上传失败"
-		br.ErrMsg = "文件上传失败,Err:" + e.Error()
-		return
-	}
-
-	resource := new(models.Resource)
-	resource.ResourceUrl = resourceUrl
-	resource.ResourceType = 2
-	resource.CreateTime = time.Now()
-	newId, err := models.AddResource(resource)
-	if err != nil {
-		br.Msg = "资源上传失败"
-		br.ErrMsg = "资源上传失败,Err:" + err.Error()
-		return
-	}
-	//fmt.Println(filePath)
-	playSeconds, err := mp3duration.Calculate(filePath)
-	if playSeconds <= 0 {
-		playSeconds, err = utils.GetVideoPlaySeconds(filePath)
-		if err != nil {
-			br.Msg = "获取音频时间失败"
-			br.ErrMsg = "获取音频时间失败,Err:" + err.Error()
-			return
-		}
-	}
-	createTime := item.CreateTime.Format("0102")
-	videoName := item.Title + "(" + createTime + ")"
-	fileBody, err := ioutil.ReadFile(filePath)
-	videoSize := len(fileBody)
-	sizeFloat := (float64(videoSize) / float64(1024)) / float64(1024)
-	sizeStr := utils.SubFloatToFloatStr(sizeFloat, 2)
-
-	item.VideoUrl = resourceUrl
-	item.VideoName = videoName
-	item.VideoPlaySeconds = playSeconds
-	item.VideoSize = sizeStr
-	item.ModifyTime = time.Now().Local()
-	updateCols := []string{"VideoUrl", "VideoName", "VideoPlaySeconds", "VideoSize", "ModifyTime"}
-	if e = item.Update(updateCols); e != nil {
-		br.Msg = "上传失败"
-		br.ErrMsg = "上传失败,Err:" + e.Error()
-		return
-	}
-
-	resp := new(models.ResourceResp)
-	resp.Id = newId
-	resp.ResourceUrl = resourceUrl
-	br.Msg = "上传成功"
-	br.Ret = 200
-	br.Success = true
-	br.Data = resp
-	return
-}
-
-// SubmitApprove
-// @Title 提交审批
-// @Description 提交审批接口
-// @Param	request	body models.ReportSubmitApproveReq true "type json string"
-// @Success 200 Ret=200 操作成功
-// @router /approve/submit [post]
-func (this *SmartReportController) SubmitApprove() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		return
-	}
-	var req models.ReportSubmitApproveReq
-	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
-		br.Msg = "参数有误"
-		br.ErrMsg = "参数解析失败, Err: " + e.Error()
-		return
-	}
-	reportId := req.ReportId
-	if reportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = fmt.Sprintf("参数有误, ReportId: %d", req.ReportId)
-		return
-	}
-
-	reportOb := new(smart_report.SmartReport)
-	reportItem, e := reportOb.GetItemById(reportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告已被删除, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取报告失败, Err: " + e.Error()
-		return
-	}
-
-	// 校验当前审批配置, 返回下一个状态
-	state, e := services.CheckReportCurrState(report_approve.FlowReportTypeSmart, reportItem.ClassifyIdFirst, reportItem.ClassifyIdSecond, 0, models.ReportOperateSubmitApprove)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "校验报告状态失败, Err: " + e.Error()
-		return
-	}
-
-	// 下一个状态不为待审批时, 仅更新状态
-	if state != models.ReportStateWaitApprove {
-		reportItem.State = state
-		e = reportItem.Update([]string{"State"})
-		if e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "更新报告状态失败, Err: " + e.Error()
-			return
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "操作成功"
-		return
-	}
-
-	// 提交审批
-	approveId, e := services.SubmitReportApprove(report_approve.FlowReportTypeSmart, reportItem.SmartReportId, reportItem.Title, reportItem.ClassifyIdFirst, reportItem.ClassifyIdSecond, 0, sysUser.AdminId, sysUser.RealName)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "提交审批失败, Err: " + e.Error()
-		return
-	}
-	reportItem.ApproveId = approveId
-	reportItem.State = models.ReportStateWaitApprove
-	reportItem.ModifyTime = time.Now().Local()
-	e = reportItem.Update([]string{"ApproveId", "State", "ModifyTime"})
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "更新报告状态失败, Err: " + e.Error()
-		return
-	}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-}
-
-// CancelApprove
-// @Title 撤销审批
-// @Description 撤销审批
-// @Param	request	body models.ReportCancelApproveReq true "type json string"
-// @Success 200 Ret=200 操作成功
-// @router /approve/cancel [post]
-func (this *SmartReportController) CancelApprove() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		if br.ErrMsg == "" {
-			br.IsSendEmail = false
-		}
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	sysUser := this.SysUser
-	if sysUser == nil {
-		br.Msg = "请登录"
-		br.ErrMsg = "请登录,SysUser Is Empty"
-		return
-	}
-	var req models.ReportCancelApproveReq
-	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
-		br.Msg = "参数有误"
-		br.ErrMsg = "参数解析失败, Err: " + e.Error()
-		return
-	}
-	reportId := req.ReportId
-	if reportId <= 0 {
-		br.Msg = "参数有误"
-		br.ErrMsg = fmt.Sprintf("参数有误, ReportId: %d", req.ReportId)
-		return
-	}
-
-	reportOb := new(smart_report.SmartReport)
-	reportItem, e := reportOb.GetItemById(reportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "报告已被删除, 请刷新页面"
-			return
-		}
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取报告失败, Err: " + e.Error()
-		return
-	}
-
-	// 校验当前审批配置, 返回下一个状态
-	state, e := services.CheckReportCurrState(report_approve.FlowReportTypeSmart, reportItem.ClassifyIdFirst, reportItem.ClassifyIdSecond, 0, models.ReportOperateCancelApprove)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "校验报告状态失败, Err: " + e.Error()
-		return
-	}
-
-	// 下一个状态不为待提交时, 仅更新状态
-	if state != models.ReportStateWaitSubmit {
-		reportItem.State = state
-		e = reportItem.Update([]string{"State"})
-		if e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "更新报告状态失败, Err: " + e.Error()
-			return
-		}
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "操作成功"
-		return
-	}
-	//if reportItem.ApproveId <= 0 {
-	//	br.Msg = "报告审批不存在"
-	//	br.ErrMsg = fmt.Sprintf("报告审批不存在, ApproveId: %d", reportItem.ApproveId)
-	//	return
-	//}
-
-	// 撤销审批
-	e = services.CancelReportApprove(report_approve.FlowReportTypeSmart, reportItem.SmartReportId, reportItem.ApproveId, sysUser.AdminId, sysUser.RealName)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "撤销审批失败, Err: " + e.Error()
-		return
-	}
-	//reportItem.ApproveId = 0
-	//reportItem.State = models.ReportStateWaitSubmit
-	//reportItem.ModifyTime = time.Now().Local()
-	//e = reportItem.UpdateReport([]string{"ApproveId", "State", "ModifyTime"})
-	//if e != nil {
-	//	br.Msg = "操作失败"
-	//	br.ErrMsg = "更新报告状态失败, Err: " + e.Error()
-	//	return
-	//}
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "操作成功"
-}

+ 0 - 27
models/api_uri.go

@@ -1,27 +0,0 @@
-package models
-
-import "eta_gn/eta_api/global"
-
-type ApiUriTest struct {
-	ApiUri         string `gorm:"column:api_uri"`
-	ParentUri      string `gorm:"column:parent_uri"`
-	Method         string `gorm:"column:method"`
-	Description    string `gorm:"column:description"`
-	MenuId         string `gorm:"column:menu_id"`
-	ParentMenu     string `gorm:"column:parent_menu"`      // 一级菜单
-	ChildMenu      string `gorm:"column:child_menu"`       // 二级菜单
-	ButtonName     string `gorm:"column:button_name"`      // 按钮名称
-	Id             int    `gorm:"column:id;primaryKey"`    // `orm:"column(id);pk" gorm:"primaryKey" `
-	IsPublic       int    `gorm:"column:is_public"`        // 是否公共api,0否,1是
-	ChildChildMenu string `gorm:"column:child_child_menu"` // 三级菜单
-}
-
-func GetApiUriTest() (items []*ApiUriTest, err error) {
-	err = global.DEFAULT_DmSQL.Raw("SELECT * FROM api_uri_test").Find(&items).Error
-	return
-}
-
-func UpdateApiUriTest(api string, menuId int) (err error) {
-	err = global.DEFAULT_DmSQL.Exec("UPDATE sys_menu SET api = ? where menu_id = ?", api, menuId).Error
-	return
-}

+ 0 - 656
models/data_manage/base_from_trade_index.go

@@ -1,656 +0,0 @@
-package data_manage
-
-import (
-	"eta_gn/eta_api/global"
-	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"time"
-)
-
-type BaseFromTradeShanghaiIndex struct {
-	BaseFromTradeShangHaiIndexId int `orm:"column(base_from_trade_shanghai_index_id);pk" gorm:"primaryKey" `
-	Rank                         int
-	DealShortName                string
-	DealName                     string
-	DealCode                     string
-	DealValue                    string
-	DealChange                   string
-	BuyShortName                 string
-	BuyName                      string
-	BuyCode                      string
-	BuyValue                     string
-	BuyChange                    string
-	SoldShortName                string
-	SoldName                     string
-	SoldCode                     string
-	SoldValue                    string
-	SoldChange                   string
-	Frequency                    string
-	ClassifyName                 string
-	ClassifyType                 string
-	CreateTime                   time.Time
-	ModifyTime                   time.Time
-	DataTime                     string
-}
-type BaseFromTradeCffexIndex struct {
-	BaseFromTradeCffexIndexId int `orm:"column(base_from_trade_cffex_index_id);pk" gorm:"primaryKey" `
-	Rank                      int
-	DealShortName             string
-	DealName                  string
-	DealCode                  string
-	DealValue                 string
-	DealChange                string
-	BuyShortName              string
-	BuyName                   string
-	BuyCode                   string
-	BuyValue                  string
-	BuyChange                 string
-	SoldShortName             string
-	SoldName                  string
-	SoldCode                  string
-	SoldValue                 string
-	SoldChange                string
-	Frequency                 string
-	ClassifyName              string
-	ClassifyType              string
-	CreateTime                time.Time
-	ModifyTime                time.Time
-	DataTime                  string
-}
-
-type BaseFromTradeIneIndex struct {
-	BaseFromTradeIneIndexId int `orm:"column(base_from_trade_ine_index_id);pk" gorm:"primaryKey" `
-	Rank                    int
-	DealShortName           string
-	DealName                string
-	DealCode                string
-	DealValue               string
-	DealChange              string
-	BuyShortName            string
-	BuyName                 string
-	BuyCode                 string
-	BuyValue                string
-	BuyChange               string
-	SoldShortName           string
-	SoldName                string
-	SoldCode                string
-	SoldValue               string
-	SoldChange              string
-	Frequency               string
-	ClassifyName            string
-	ClassifyType            string
-	CreateTime              time.Time
-	ModifyTime              time.Time
-	DataTime                string
-}
-
-type BaseFromTradeEicIndex struct {
-	BaseFromEicIndexId     int `orm:"column(base_from_eic_index_id);pk" gorm:"primaryKey" `
-	Country                string
-	Type                   string
-	EicCode                string
-	ShortName              string
-	Name                   string
-	Status                 string
-	GasDayStartedOn        string
-	GasInStorage           string
-	GasInStorageCode       string
-	Full                   string
-	FullCode               string
-	Trend                  string
-	TrendCode              string
-	Injection              string
-	InjectionCode          string
-	Withdrawal             string
-	WithdrawalCode         string
-	WorkingGasVolume       string
-	WorkingGasVolumeCode   string
-	InjectionCapacity      string
-	InjectionCapacityCode  string
-	WithdrawalCapacity     string
-	WithdrawalCapacityCode string
-	Info                   string
-	CreateTime             time.Time
-	ModifyTime             time.Time
-}
-
-func GetBaseFromTradeIndexByParam(exchange, date, classifyName, classifyType string) (list []*BaseFromTradeShanghaiIndex, err error) {
-	o := global.DmSQL["data"]
-	if classifyName == "" {
-		sql := "SELECT * FROM base_from_trade_" + exchange + "_index where data_time=?"
-		err = o.Raw(sql, date).Scan(&list).Error
-		return
-	} else if classifyType == "" {
-		sql := "SELECT * FROM base_from_trade_" + exchange + "_index where data_time=? and classify_name=? ORDER BY classify_type,`rank`"
-		err = o.Raw(sql, date, classifyName).Scan(&list).Error
-		return
-	} else {
-		sql := "SELECT * FROM base_from_trade_" + exchange + "_index where data_time=? and classify_name=? and classify_type=?"
-		err = o.Raw(sql, date, classifyName, classifyType).Scan(&list).Error
-		return
-	}
-}
-
-func GetExchangeClassify(exchange, dataTime string) (classifyName []string, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT DISTINCT classify_name FROM base_from_trade_" + exchange + "_index where data_time=? ORDER BY CONVERT(classify_name using gbk) DESC"
-	err = o.Raw(sql, dataTime).Scan(&classifyName).Error
-
-	return
-}
-
-func GetLatestDate(exchange string) (dataTime string, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT data_time FROM base_from_trade_" + exchange + "_index ORDER BY data_time desc limit 1"
-	err = o.Raw(sql).Scan(&dataTime).Error
-
-	return
-}
-
-func GetExchangeClassifyContract(exchange, Classify, dataTime string) (classifyName []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT DISTINCT classify_type FROM base_from_trade_" + exchange + "_index where classify_name=? and data_time=?"
-	err = o.Raw(sql, Classify, dataTime).Scan(&classifyName).Error
-
-	return
-}
-
-func GetContinentEicDate(date string) (data []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and type='continent' "
-	err = o.Raw(sql, date).Scan(&data).Error
-
-	return
-}
-
-func GetCountryEicDate(date string) (data []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and type='country' "
-	err = o.Raw(sql, date).Scan(&data).Error
-
-	return
-}
-
-func GetSSOEicDate(date, country string) (data []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and country=? and type='SSO' "
-	err = o.Raw(sql, date, country).Scan(&data).Error
-
-	return
-}
-
-func GetStorageEicDate(date, country string) (data []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index where gas_day_started_on=? and country=? " +
-		" and (type='Storage Facility' or type='Storage Group') "
-	err = o.Raw(sql, date, country).Scan(&data).Error
-
-	return
-}
-
-func GetEicDate() (date []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index ORDER BY gas_day_started_on desc limit 1"
-	err = o.Raw(sql).Scan(&date).Error
-
-	return
-}
-
-func GetEicHistoryDate(code string) (date []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index WHERE eic_code=? ORDER BY gas_day_started_on desc limit 30"
-	err = o.Raw(sql, code).Scan(&date).Error
-
-	return
-}
-
-func GetEicHistoryDateByDate(code, startDate, endDate string) (date []*BaseFromTradeEicIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index WHERE eic_code=? and gas_day_started_on between ? and ? ORDER BY gas_day_started_on desc"
-	err = o.Raw(sql, code, startDate, endDate).Scan(&date).Error
-
-	return
-}
-
-type BaseFromCoalmineJsmIndex struct {
-	BaseFromCoalmineJsmIndexId int    `orm:"column(base_from_coalmine_jsm_index_id);pk" gorm:"primaryKey" `
-	IndexName                  string `description:"持买单量指标名称"`
-	IndexCode                  string `description:"持买单量指标编码"`
-	Exchange                   string `description:"样本统计类别"`
-	DealValue                  string `description:"成交量"`
-	DataTime                   string `description:"数据日期"`
-	Source                     string `description:"来源"`
-	Province                   string `description:"省份"`
-	Description                string `description:"描述"`
-	Unit                       string `description:"单位"`
-	Frequency                  string `description:"频率"`
-	CreateTime                 string `description:"插入时间"`
-	ModifyTime                 string `description:"修改时间"`
-}
-
-type BaseFromCoalmineCompanyIndex struct {
-	BaseFromCoalmineCompanyIndexId int    `orm:"column(base_from_coalmine_company_index_id);pk" gorm:"primaryKey" `
-	IndexName                      string `description:"持买单量指标名称"`
-	IndexCode                      string `description:"持买单量指标编码"`
-	DealValue                      string `description:"成交量"`
-	DataTime                       string `description:"数据日期"`
-	Source                         string `description:"来源"`
-	Province                       string `description:"省份"`
-	City                           string `description:"城市"`
-	GroupName                      string `description:"集团名称"`
-	Unit                           string `description:"单位"`
-	Frequency                      string `description:"频率"`
-	CreateTime                     string `description:"插入时间"`
-	ModifyTime                     string `description:"修改时间"`
-}
-
-// BaseFromCoalmineFirmIndex 煤矿产量周度公司数据表
-type BaseFromCoalmineFirmIndex struct {
-	BaseFromCoalmineFirmIndexID int    `orm:"column(base_from_coalmine_firm_index_id);pk" gorm:"primaryKey" `
-	IndexName                   string // 省份/企业名称
-	IndexCode                   string // 持买单量指标编码
-	DataTime                    string // 指标时间
-	DealValue                   string // 数据量
-	GroupName                   string // 集团名
-	Source                      string // 来源
-	Unit                        string // 来源
-	Frequency                   string `description:"频率"`
-	CreateTime                  string `description:"插入时间"`
-	ModifyTime                  string `description:"修改时间"`
-}
-
-// BaseFromCoalmineCoastalIndex 沿海八省动力煤用户供耗存数据指标表
-type BaseFromCoalmineCoastalIndex struct {
-	BaseFromCoalmineCoastalIndexID int    `orm:"column(base_from_coalmine_coastal_index_id);pk" gorm:"primaryKey" `
-	IndexName                      string // 省份/企业名称
-	IndexCode                      string // 持买单量指标编码
-	DataTime                       string // 指标时间
-	DealValue                      string // 数据量
-	GroupName                      string // 地区
-	Source                         string // 来源
-	Unit                           string //单位
-	Frequency                      string `description:"频率"`
-	CreateTime                     string `description:"插入时间"`
-	ModifyTime                     string `description:"修改时间"`
-}
-
-// BaseFromCoalmineInlandIndex 内陆动力煤用户供耗存数据指标表
-type BaseFromCoalmineInlandIndex struct {
-	BaseFromCoalmineInlandIndexID int    `orm:"column(base_from_coalmine_inland_index_id);pk" gorm:"primaryKey" `
-	IndexName                     string // 省份/企业名称
-	IndexCode                     string // 持买单量指标编码
-	DataTime                      string // 指标时间
-	DealValue                     string // 数据量
-	GroupName                     string // 地区
-	Source                        string // 来源
-	Unit                          string // 来源
-	Frequency                     string `description:"频率"`
-	CreateTime                    string `description:"插入时间"`
-	ModifyTime                    string `description:"修改时间"`
-}
-
-type BaseFromCoalmineClassifyItem struct {
-	ClassifyId   int
-	ClassifyName string
-	Child        []CoalChild
-}
-
-type CoalChild struct {
-	ClassifyId   int
-	ClassifyName string
-}
-
-type CoalmineDataResp struct {
-	IndexName  string
-	IndexCode  string // 持买单量指标编码
-	Unit       string // 来源
-	Frequency  string
-	ModifyTime string
-	DataList   []DataList
-}
-
-type CoalmineDataPageResp struct {
-	IndexName  string
-	IndexCode  string // 持买单量指标编码
-	Unit       string // 来源
-	Frequency  string
-	ModifyTime string
-	Paging     *paging.PagingItem `description:"分页数据"`
-	DataList   []DataList
-}
-
-type CoalmineSingalDataResp struct {
-	IndexName  string
-	IndexCode  string // 持买单量指标编码
-	Unit       string // 来源
-	GroupId    int    // 二级id
-	GroupName  string // 二级名称
-	Frequency  string
-	ModifyTime string
-	ClassifyId int
-	DataList   []DataList
-}
-
-type DataList struct {
-	Value    string
-	DataTime string
-}
-
-type FrequencyResp struct {
-	Frequency int
-}
-
-// GetFrequencyFromCoal 获取指标信息
-func GetFrequencyFromCoal(suffix string) (list *string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT frequency FROM base_from_coalmine_%s `
-	sql = fmt.Sprintf(sql, suffix)
-	err = o.Raw(sql).Scan(&list).Error
-
-	return
-}
-
-// 查询数据
-func GetGroupNameFromCoalmineIndex(suffix string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT group_name FROM base_from_coalmine_%s `
-	sql = fmt.Sprintf(sql, suffix)
-	err = o.Raw(sql).Scan(&items).Error
-
-	return
-}
-
-// 查询数据
-func GetProvinceFromCoalmineIndex(suffix string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT province FROM base_from_coalmine_%s `
-	sql = fmt.Sprintf(sql, suffix)
-	err = o.Raw(sql).Scan(&items).Error
-
-	return
-}
-
-// 查询数据
-func GetClassifyCoalmineIndexByGroupName(groupName string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT index_code FROM base_from_coalmine_jsm_index WHERE province=? `
-	err = o.Raw(sql, groupName).Scan(&items).Error
-
-	return
-}
-
-// 查询数据
-func GetPageFromCoalmineIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineJsmIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_jsm_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,?  `
-	err = o.Raw(sql, frequency, classify, startSize, pageSize).Scan(&items).Error
-
-	return
-}
-
-// 查询数据
-func GetCountFromJsm(indexCode string) (item int, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT COUNT(1) FROM base_from_coalmine_jsm_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&item).Error
-
-	return
-}
-
-func GetClassifyCompanyByGroupName(groupName string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT index_code FROM base_from_coalmine_company_index WHERE group_name=? `
-	err = o.Raw(sql, groupName).Scan(&items).Error
-
-	return
-}
-
-func GetClassifyJsmByGroupName(groupName string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT index_code FROM base_from_coalmine_jsm_index WHERE province=? `
-	err = o.Raw(sql, groupName).Scan(&items).Error
-
-	return
-}
-
-// 查询公司指标
-func GetPageFromCoalmineCompanyIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineCompanyIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_company_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	err = o.Raw(sql, frequency, classify, startSize, pageSize).Scan(&items).Error
-
-	return
-}
-
-func GetCountFromCompany(indexCode string) (item int, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT COUNT(1) FROM base_from_coalmine_company_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&item).Error
-
-	return
-}
-
-func GetCountFromFirm(indexCode string) (item int, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT COUNT(1) FROM base_from_coalmine_firm_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&item).Error
-
-	return
-}
-
-func GetClassifyFirmByGroupName(groupName string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT index_code FROM base_from_coalmine_firm_index WHERE group_name=? `
-	err = o.Raw(sql, groupName).Scan(&items).Error
-
-	return
-}
-
-// 查询指标
-func GetPageFromCoalmineFirmIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineFirmIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_firm_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,?  `
-	err = o.Raw(sql, frequency, classify, startSize, pageSize).Scan(&items).Error
-
-	return
-}
-
-func GetCountFromCoastal(indexCode string) (item int, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT COUNT(1) FROM base_from_coalmine_coastal_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&item).Error
-
-	return
-}
-
-func GetClassifyCoastalByGroupName(groupName string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT index_code FROM base_from_coalmine_coastal_index WHERE group_name=? `
-	err = o.Raw(sql, groupName).Scan(&items).Error
-
-	return
-}
-
-// 查询指标
-func GetPageFromCoalmineCoastalIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineCoastalIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_coastal_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	err = o.Raw(sql, frequency, classify, startSize, pageSize).Scan(&items).Error
-
-	return
-}
-
-func GetCountFromInland(indexCode string) (item int, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT COUNT(1) FROM base_from_coalmine_inland_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&item).Error
-
-	return
-}
-
-func GetClassifyInlandByGroupName(groupName string) (items []*string, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT DISTINCT index_code FROM base_from_coalmine_inland_index WHERE group_name=? `
-	err = o.Raw(sql, groupName).Scan(&items).Error
-
-	return
-}
-
-// 查询指标
-func GetPageFromCoalmineInlandIndexByFrequency(frequency, classify string, startSize, pageSize int) (items []*BaseFromCoalmineInlandIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_inland_index WHERE frequency=? AND index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	err = o.Raw(sql, frequency, classify, startSize, pageSize).Scan(&items).Error
-
-	return
-}
-
-// 查询数据
-func GetBaseFromCoalmineIndexByCode(indexCode string) (items []*BaseFromCoalmineJsmIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_jsm_index WHERE index_code=?`
-	err = o.Raw(sql, indexCode).Scan(&items).Error
-
-	return
-}
-
-// 查询公司指标
-func GetBaseFromCoalmineCompanyIndexByCode(indexCode string) (items []*BaseFromCoalmineCompanyIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_company_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&items).Error
-
-	return
-}
-
-// 查询指标
-func GetBaseFromCoalmineFirmIndexByCode(indexCode string) (items []*BaseFromCoalmineFirmIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_firm_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&items).Error
-
-	return
-}
-
-// 查询指标
-func GetBaseFromCoalmineCoastalIndexByCode(indexCode string) (items []*BaseFromCoalmineCoastalIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_coastal_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&items).Error
-
-	return
-}
-
-// 查询指标
-func GetBaseFromCoalmineInlandIndexByCode(indexCode string) (items []*BaseFromCoalmineInlandIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := `SELECT * FROM base_from_coalmine_inland_index WHERE index_code=? `
-	err = o.Raw(sql, indexCode).Scan(&items).Error
-
-	return
-}
-
-type BaseFromTradeEicIndexV2 struct {
-	BaseFromEicIndexId     int `orm:"column(base_from_eic_index_id);pk" gorm:"primaryKey" `
-	Type                   string
-	EicCode                string
-	Name                   string
-	Status                 string
-	GasDayStart            string
-	GasInStorage           float64
-	GasInStorageCode       string
-	Consumption            string
-	ConsumptionCode        string
-	ConsumptionFull        string
-	ConsumptionFullCode    string
-	Full                   float64
-	FullCode               string
-	Trend                  float64
-	TrendCode              string
-	Injection              float64
-	InjectionCode          string
-	Withdrawal             float64
-	WithdrawalCode         string
-	WorkingGasVolume       float64
-	WorkingGasVolumeCode   string
-	InjectionCapacity      float64
-	InjectionCapacityCode  string
-	WithdrawalCapacity     float64
-	WithdrawalCapacityCode string
-	Info                   string
-	Parent                 string
-	CreateTime             time.Time
-	ModifyTime             time.Time
-	Children               []BaseFromTradeEicIndexV2 `gorm:"-"`
-}
-
-func GetEicDateV2() (date []*BaseFromTradeEicIndexV2, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index_v2 ORDER BY gas_day_start desc limit 1"
-	err = o.Raw(sql).Scan(&date).Error
-
-	return
-}
-
-func GetEicDataV2(date string) (data []*BaseFromTradeEicIndexV2, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start=? "
-	err = o.Raw(sql, date).Scan(&data).Error
-
-	return
-}
-
-func GetEicHistoryDateByDateV2(code, startDate, endDate string) (date []*BaseFromTradeEicIndexV2, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index_v2 WHERE eic_code=? and gas_day_start between ? and ? ORDER BY gas_day_start desc"
-	err = o.Raw(sql, code, startDate, endDate).Scan(&date).Error
-
-	return
-}
-
-func GetEicHistoryDateV2(code string) (date []*BaseFromTradeEicIndexV2, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index_v2 WHERE eic_code=? ORDER BY gas_day_start desc limit 30"
-	err = o.Raw(sql, code).Scan(&date).Error
-
-	return
-}
-
-func GetContinentAndCountryEicDateV2(date string) (data []*BaseFromTradeEicIndexV2, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start=? and (type='continent' OR type='country') "
-	err = o.Raw(sql, date).Scan(&data).Error
-
-	return
-}
-
-func GetSSOAndFacEicDateV2(date, name string) (data []*BaseFromTradeEicIndexV2, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start=? and (type='sso' OR type='fac') "
-	err = o.Raw(sql, date).Scan(&data).Error
-
-	return
-}
-
-func GetFirstBaseFromTradeIndexByDate(exchange string) (item *BaseFromTradeShanghaiIndex, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_trade_" + exchange + "_index where `rank` < 50 order by data_time asc"
-	err = o.Raw(sql).First(&item).Error
-
-	return
-}
-
-type BaseFromCoalmineClassify struct {
-	BaseFromCoalmineClassifyId int    `orm:"column(base_from_coalmine_classify_id);pk" gorm:"primaryKey" `
-	ClassifyName               string // 分类名称
-	Suffix                     string // 表名后缀
-	CreateTime                 time.Time
-}
-
-func GetCoalmineClassifyList() (list []*BaseFromCoalmineClassify, err error) {
-	o := global.DmSQL["data"]
-	sql := "SELECT * FROM base_from_coalmine_classify"
-	err = o.Raw(sql).Scan(&list).Error
-
-	return
-}

+ 0 - 9
models/data_manage/edb_info.go

@@ -107,15 +107,6 @@ type BaseEdbInfoResp struct {
 	List []*BaseEdbNameItem
 }
 
-// GetEdbInfoAll 用于分类展示
-func GetEdbInfoAll(edbInfoType uint8) (items []*EdbClassifyItems, err error) {
-	o := global.DmSQL["data"]
-	sql := ` SELECT edb_info_id,classify_id,edb_name_source AS classify_name,edb_name_en AS classify_name_en,unique_code,source_name,source,sys_user_id,sys_user_real_name,start_date,edb_code,edb_type FROM edb_info WHERE edb_info_type = ? order by sort asc,edb_info_id asc`
-	err = o.Raw(sql, edbInfoType).Scan(&items).Error
-
-	return
-}
-
 // 指标检索数据
 type EdbInfoSearch struct {
 	EdbCode   string `description:"指标编码"`

+ 0 - 13
models/db2.go

@@ -43,9 +43,6 @@ func init() {
 	// 系统表 数据表
 	initSystem()
 
-	// 联系人相关
-	initWxUser()
-
 	// 报告相关 数据表
 	initReport()
 
@@ -135,14 +132,6 @@ func initSystem() {
 	)
 }
 
-// initWxUser 联系人相关 数据表
-func initWxUser() {
-	orm.RegisterModel(
-		new(WxUser),
-		new(UserSellerRelation),
-	)
-}
-
 // initReport 报告相关 数据表
 func initReport() {
 	orm.RegisterModel(
@@ -323,8 +312,6 @@ func initExcel() {
 // initSmartReport 智能研报相关表
 func initSmartReport() {
 	orm.RegisterModel(
-		new(smart_report.SmartReport),         // 智能研报主表
-		new(smart_report.SmartReportSaveLog),  // 智能研报-保存记录表
 		new(smart_report.SmartReportResource), // 智能研报-资源表
 	)
 }

+ 0 - 4
models/report_approve/constant.go

@@ -3,14 +3,10 @@ package report_approve
 // 报告类型
 const (
 	FlowReportTypeChinese = 1 // 中文研报
-	FlowReportTypeEnglish = 2 // 英文研报
-	FlowReportTypeSmart   = 3 // 智能研报
 )
 
 var FlowReportTypeMap = map[int]string{
 	FlowReportTypeChinese: "研报",
-	FlowReportTypeEnglish: "英文研报",
-	FlowReportTypeSmart:   "智能研报",
 }
 
 // 节点审批方式

+ 0 - 21
models/report_chapter.go

@@ -200,13 +200,6 @@ func GetReportChapterItemById(reportChapterId int) (item *ReportChapterItem, err
 	return
 }
 
-// GetLastPublishedReportChapter 获取上一篇已发表的晨周报章节
-func GetLastPublishedReportChapter(typeId int, reportType string) (item *ReportChapter, err error) {
-	sql := ` SELECT * FROM report_chapter WHERE publish_state = 2 AND type_id = ? AND report_type = ? ORDER BY report_chapter_id DESC limit 1 `
-	err = global.DmSQL["rddp"].Raw(sql, typeId, reportType).First(&item).Error
-	return
-}
-
 // Add
 // @Description: 新增章节报告
 // @author: Roc
@@ -332,13 +325,6 @@ type PublishReportChapterReq struct {
 	PublishReport   int `description:"是否同时发布报告"`
 }
 
-// CountPublishedChapterNum 获取报告已发布的章节数
-func CountPublishedChapterNum(reportId int) (count int, err error) {
-	sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE report_id = ? AND publish_state = 2 `
-	err = global.DmSQL["rddp"].Raw(sql, reportId).Scan(&count).Error
-	return
-}
-
 // GetUnPublishedChapterList
 // @Description: 获取报告未发布的章节列表
 // @author: Roc
@@ -500,13 +486,6 @@ type DelReportChapterReq struct {
 	ReportChapterId int `description:"报告章节ID"`
 }
 
-// GetAllReportChapter 获取所有的报告章节
-func GetAllReportChapter() (items []*ReportChapter, err error) {
-	sql := ` SELECT * FROM report_chapter ORDER BY report_chapter_id asc `
-	err = global.DmSQL["rddp"].Raw(sql).Find(&items).Error
-	return
-}
-
 // GetCountReportChapterByCondition
 // @Description: 根据条件获取章节数量
 // @author: Roc

+ 0 - 22
models/report_chapter_ticker.go

@@ -2,7 +2,6 @@ package models
 
 import (
 	"eta_gn/eta_api/global"
-	"eta_gn/eta_api/utils"
 	"time"
 )
 
@@ -22,13 +21,6 @@ func InsertChapterTicker(tickerInfo *ReportChapterTicker) (lastId int64, err err
 	return
 }
 
-// GetTickerListByReportChapterId 根据章节ID获取ticker列表
-func GetTickerListByReportChapterId(reportChapterId int) (list []*ReportChapterTicker, err error) {
-	sql := ` SELECT * FROM report_chapter_ticker WHERE report_chapter_id = ? ORDER BY sort ASC `
-	err = global.DmSQL["rddp"].Raw(sql, reportChapterId).Find(&list).Error
-	return
-}
-
 // ClearReportChapterTicker 清空章节ticker
 func ClearReportChapterTicker(reportChapterId int) (err error) {
 	sql := ` DELETE FROM report_chapter_ticker WHERE report_chapter_id = ? `
@@ -51,17 +43,3 @@ type DailyBaseColumn struct {
 	ReportChapterTypeId   int       `gorm:"column:report_chapter_type_id"`   //`description:"分类ID"`
 	Selected              int       `gorm:"column:selected"`                 //`description:"选中状态 0-未选中 1-已选中"`
 }
-
-// GetDailyBaseColumnList 获取基础列列表
-func GetDailyBaseColumnList(keyword string, typeId int) (list []*DailyBaseColumn, err error) {
-	sql := ` SELECT * FROM daily_base_column WHERE 1 = 1 `
-	pars := make([]interface{}, 0)
-	if keyword != "" {
-		pars = append(pars, utils.GetLikeKeyword(keyword))
-		sql += ` AND base_column_name like ? `
-	}
-	pars = append(pars, typeId)
-	sql += ` AND report_chapter_type_id = ? `
-	err = global.DmSQL["weekly"].Raw(sql, pars...).Find(&list).Error
-	return
-}

+ 0 - 180
models/report_chapter_type.go

@@ -98,180 +98,6 @@ func GetReportChapterTypeList() (list []*ReportChapterType, err error) {
 	return
 }
 
-// GetReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
-func GetReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
-	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ? AND enabled = 1`
-	err = global.DmSQL["rddp"].Raw(sql, researchType).Find(&list).Error
-	return
-}
-
-// GetAllReportChapterTypeList 通过传入的条件获取所有的章节类型列表
-func GetAllReportChapterTypeList(condition string, pars []interface{}) (list []*ReportChapterType, err error) {
-	sql := ` SELECT * FROM report_chapter_type WHERE 1=1 `
-	sql += condition
-	err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&list).Error
-	return
-}
-
-// GetEnableReportChapterTypeList 获取未暂停的章节类型列表
-func GetEnableReportChapterTypeList(researchType string) (list []*ReportChapterType, err error) {
-	sql := ` SELECT
-				*
-			FROM
-				report_chapter_type
-			WHERE
-				enabled = 1
-			AND research_type = ?
-			AND (
-				(
-					ISNULL(pause_start_time) AND ISNULL(pause_end_time)
-				)
-				OR (
-					NOW() NOT BETWEEN pause_start_time AND pause_end_time
-				)
-			) `
-	err = global.DmSQL["rddp"].Raw(sql, researchType).Find(&list).Error
-	return
-}
-
-// DayWeekReportPauseTime 晨报周报暂停时间
-type DayWeekReportPauseTime struct {
-	ResearchType   string `gorm:"column:research_type"`    //`description:"报告类型 day; week;"`
-	PauseStartTime string `gorm:"column:pause_start_time"` //`description:"暂停开始时间"`
-	PauseEndTime   string `gorm:"column:pause_end_time"`   //`description:"暂停结束时间"`
-}
-
-// GetDayWeekReportPauseTimeList 获取晨报周报暂停时间
-func GetDayWeekReportPauseTimeList() (list []*DayWeekReportPauseTime, err error) {
-	sql := ` SELECT research_type, MAX(a.pause_start_time) AS pause_start_time, MAX(a.pause_end_time) AS pause_end_time FROM report_chapter_type AS a WHERE a.is_set = 1 GROUP BY a.research_type`
-	err = global.DmSQL["rddp"].Raw(sql).Find(&list).Error
-	return
-}
-
-// SetDayWeekReportUpdateRuleReq 设置章节类型的暂停时间请求体
-type SetDayWeekReportUpdateRuleReq struct {
-	ResearchType string                    `description:"报告类型 day; week;"`
-	List         []DayWeekReportUpdateRule `description:"暂停规则"`
-}
-
-type DayWeekReportUpdateRule struct {
-	ReportChapterTypeId int    `gorm:"column:report_chapter_type_id"` //`description:"章节类型ID"`
-	PauseStartTime      string `gorm:"column:pause_start_time"`       //`description:"暂停开始时间"`
-	PauseEndTime        string `gorm:"column:pause_end_time"`         //`description:"暂停结束时间"`
-}
-
-// SetDayWeekReportEnableUpdateRuleReq 设置章节类型的永久暂停请求体
-type SetDayWeekReportEnableUpdateRuleReq struct {
-	DayReportChapterTypeId  string `description:"章节类型ID 英文逗号拼接"`
-	WeekReportChapterTypeId string `description:"章节类型ID 英文逗号拼接"`
-}
-
-// SetDayWeekReportUpdateRule 设置章节类型的暂停时间
-func SetDayWeekReportUpdateRule(researchType string, list []DayWeekReportUpdateRule) (err error) {
-	to := global.DmSQL["rddp"].Begin()
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	// 先将所有品种的状态变更为启用
-	sql := ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 WHERE research_type = ?`
-	err = global.DmSQL["rddp"].Exec(sql, researchType).Error
-	if err != nil {
-		return
-	}
-	for _, v := range list {
-		// 时间异常的话,给过滤
-		if v.PauseStartTime == `` || v.PauseEndTime == `` {
-			continue
-		}
-		tmpSql := ` UPDATE report_chapter_type SET pause_start_time = ?, pause_end_time = ?, is_set = 1 WHERE research_type = ? AND report_chapter_type_id = ? `
-		err = global.DmSQL["rddp"].Exec(tmpSql, v.PauseStartTime, v.PauseEndTime, researchType, v.ReportChapterTypeId).Error
-		if err != nil {
-			return
-		}
-	}
-
-	return
-}
-
-// SetDayWeekReportEnableUpdateRule 设置章节类型的禁用状态
-func SetDayWeekReportEnableUpdateRule(dayReportChapterTypeIdList, weekReportChapterTypeIdList []string) (err error) {
-	to := global.DmSQL["rddp"].Begin()
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	{
-		researchType := `day`
-		// 先将所有品种的状态变更为启用
-		sql := ` UPDATE report_chapter_type SET enabled = 1 WHERE research_type = ?`
-		err = global.DmSQL["rddp"].Exec(sql, researchType).Error
-		if err != nil {
-			return
-		}
-
-		// 然后将需要的品种的状态变更为禁用
-		num := len(dayReportChapterTypeIdList)
-		if num > 0 {
-			sql = ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 , enabled = 0 WHERE research_type = ? AND report_chapter_type_id IN (` + utils.GetOrmInReplace(num) + `) `
-			err = global.DmSQL["rddp"].Exec(sql, researchType, dayReportChapterTypeIdList).Error
-		}
-	}
-
-	{
-		researchType := `week`
-		// 先将所有品种的状态变更为启用
-		sql := ` UPDATE report_chapter_type SET enabled = 1 WHERE research_type = ?`
-		err = global.DmSQL["rddp"].Exec(sql, researchType).Error
-		if err != nil {
-			return
-		}
-
-		// 然后将需要的品种的状态变更为禁用
-		num := len(weekReportChapterTypeIdList)
-		if num > 0 {
-			sql = ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 , enabled = 0 WHERE research_type = ? AND report_chapter_type_id IN (` + utils.GetOrmInReplace(num) + `) `
-			err = global.DmSQL["rddp"].Exec(sql, researchType, weekReportChapterTypeIdList).Error
-		}
-	}
-	return
-}
-
-// StopUpdateReportChapterTypeResp 停止更新的报告分类列表
-type StopUpdateReportChapterTypeResp struct {
-	StopDay     []*ReportChapterType `description:"暂时停更晨报"`
-	StopWeek    []*ReportChapterType `description:"暂时停更周报"`
-	DisableDay  []*ReportChapterType `description:"永久停更晨报"`
-	DisableWeek []*ReportChapterType `description:"永久停更周报"`
-}
-
-// GetStopUpdateReportChapterTypeListByResearchType 获取暂停更新章节类型列表
-func GetStopUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
-	sql := ` SELECT * FROM report_chapter_type WHERE is_set = 1 AND pause_end_time >= ? AND enabled = 1 `
-	err = global.DmSQL["rddp"].Raw(sql, time.Now().Format(utils.FormatDate)).First(&list).Error
-	return
-}
-
-// GetDisableUpdateReportChapterTypeListByResearchType 获取停止更新的章节类型列表
-func GetDisableUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
-	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 0`
-	err = global.DmSQL["rddp"].Raw(sql).Find(&list).Error
-	return
-}
-
-// UpdateReportChapterTypeResp 停止更新的报告分类列表
-type UpdateReportChapterTypeResp struct {
-	Day  []*ReportChapterType `description:"所有晨报品种"`
-	Week []*ReportChapterType `description:"所有周报品种"`
-}
-
 type ReportChapterTypeListResp struct {
 	List []*ReportChapterTypeListItem
 }
@@ -321,12 +147,6 @@ type ReportChapterTypeDelReq struct {
 	ReportChapterTypeId int `description:"报告章节类型id"`
 }
 
-// ReportChapterTypeAuthSettingReq 章节类型权限配置请求体
-type ReportChapterTypeAuthSettingReq struct {
-	ReportChapterTypeId   int   `description:"章节类型ID"`
-	ChartPermissionIdList []int `description:"权限id数组"`
-}
-
 type ReportChapterTypeMoveReq struct {
 	ReportChapterTypeId int `description:"报告章节类型id"`
 	//	ParentChartPermissionId int `description:"父级品种id"`

+ 0 - 25
models/report_chapter_type_permission.go

@@ -16,19 +16,6 @@ type ReportChapterTypePermission struct {
 	CreatedTime           time.Time `gorm:"column:created_time"`             //`description:"创建时间"`
 }
 
-// GetChapterTypePermissionByReportChapterTypeId
-// @Description: 根据章节类型ID获取章节类型权限列表
-// @author: Roc
-// @datetime 2024-06-03 15:42:47
-// @param typeId int
-// @return list []*ReportChapterTypePermission
-// @return err error
-func GetChapterTypePermissionByReportChapterTypeId(typeId int) (list []*ReportChapterTypePermission, err error) {
-	sql := ` SELECT * FROM report_chapter_type_permission WHERE report_chapter_type_id = ?  ORDER BY chart_permission_id ASC `
-	err = global.DmSQL["rddp"].Raw(sql, typeId).Find(&list).Error
-	return
-}
-
 // SetReportChapterTypePermission 设置报告章节类型权限
 func SetReportChapterTypePermission(chapterTypeId int, newPermissions []*ReportChapterTypePermission) (err error) {
 	to := global.DmSQL["rddp"].Begin()
@@ -73,15 +60,3 @@ func GetChapterTypePermissionByChapterTypeIdList(chapterTypeIdList []int) (list
 	err = global.DmSQL["rddp"].Raw(sql, chapterTypeIdList).Find(&list).Error
 	return
 }
-
-// GetAllChapterTypePermission
-// @Description: 获取所有章节类型ID获取章节类型权限列表
-// @author: Roc
-// @datetime 2024-06-03 15:42:47
-// @return list []*ReportChapterTypePermission
-// @return err error
-func GetAllChapterTypePermission() (list []*ReportChapterTypePermission, err error) {
-	sql := ` SELECT * FROM report_chapter_type_permission ORDER BY chart_permission_id ASC `
-	err = global.DmSQL["rddp"].Raw(sql).Find(&list).Error
-	return
-}

+ 0 - 424
models/smart_report/smart_report.go

@@ -1,424 +0,0 @@
-package smart_report
-
-import (
-	"eta_gn/eta_api/global"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"html"
-	"strings"
-	"time"
-
-	"github.com/rdlucklib/rdluck_tools/paging"
-)
-
-const (
-	SmartReportStateWaitPublish = 1
-	SmartReportStatePublished   = 2
-)
-
-type SmartReport struct {
-	SmartReportId       int       `orm:"column(smart_report_id);pk" gorm:"column:smart_report_id;primaryKey" description:"智能研报ID"`
-	ReportCode          string    `gorm:"column:report_code" description:"报告唯一编码"`
-	ClassifyIdFirst     int       `gorm:"column:classify_id_first" description:"一级分类ID"`
-	ClassifyNameFirst   string    `gorm:"column:classify_name_first" description:"一级分类名称"`
-	ClassifyIdSecond    int       `gorm:"column:classify_id_second" description:"二级分类ID"`
-	ClassifyNameSecond  string    `gorm:"column:classify_name_second" description:"二级分类名称"`
-	AddType             int       `gorm:"column:add_type" description:"新增方式:1-新增报告;2-继承报告"`
-	Title               string    `gorm:"column:title" description:"标题"`
-	Abstract            string    `gorm:"column:abstract" description:"摘要"`
-	Author              string    `gorm:"column:author" description:"作者"`
-	Frequency           string    `gorm:"column:frequency" description:"频度"`
-	Stage               int       `gorm:"column:stage" description:"期数"`
-	Content             string    `gorm:"column:content" description:"内容"`
-	ContentSub          string    `gorm:"column:content_sub" description:"内容前两个章节"`
-	ContentStruct       string    `gorm:"column:content_struct" description:"内容组件"`
-	VideoUrl            string    `gorm:"column:video_url" description:"音频文件URL"`
-	VideoName           string    `gorm:"column:video_name" description:"音频文件名称"`
-	VideoPlaySeconds    float64   `gorm:"column:video_play_seconds" description:"音频播放时长"`
-	VideoSize           string    `gorm:"column:video_size" description:"音频文件大小,单位M"`
-	AdminId             int       `gorm:"column:admin_id" description:"创建者ID"`
-	AdminRealName       string    `gorm:"column:admin_real_name" description:"创建者姓名"`
-	State               int       `gorm:"column:state" description:"1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
-	LastModifyAdminId   int       `gorm:"column:last_modify_admin_id" description:"最后更新人ID"`
-	LastModifyAdminName string    `gorm:"column:last_modify_admin_name" description:"最后更新人姓名"`
-	ContentModifyTime   time.Time `gorm:"column:content_modify_time" description:"内容更新时间"`
-	Pv                  int       `gorm:"column:pv" description:"pv"`
-	Uv                  int       `gorm:"column:uv" description:"uv"`
-	PublishTime         time.Time `gorm:"column:publish_time" description:"发布时间"`
-	PrePublishTime      time.Time `gorm:"column:pre_publish_time" description:"预发布时间"`
-	PreMsgSend          int       `gorm:"column:pre_msg_send" description:"定时发布后是否推送模版消息:0-否;1-是"`
-	MsgIsSend           int       `gorm:"column:msg_is_send" description:"消息是否已发送:0-否;1-是"`
-	MsgSendTime         time.Time `gorm:"column:msg_send_time" description:"模版消息发送时间"`
-	DetailImgUrl        string    `gorm:"column:detail_img_url" description:"报告详情长图地址"`
-	DetailPdfUrl        string    `gorm:"column:detail_pdf_url" description:"报告详情PDF地址"`
-	CreateTime          time.Time `gorm:"column:create_time" description:"创建时间"`
-	ModifyTime          time.Time `gorm:"column:modify_time" description:"修改时间"`
-	HeadImg             string    `gorm:"column:head_img" description:"报告头图地址"`
-	EndImg              string    `gorm:"column:end_img" description:"报告尾图地址"`
-	CanvasColor         string    `gorm:"column:canvas_color" description:"画布颜色"`
-	ApproveTime         time.Time `gorm:"column:approve_time" description:"审批时间"`
-	ApproveId           int       `gorm:"column:approve_id" description:"审批ID"`
-	NeedSplice          int       `gorm:"column:need_splice" description:"0-不需要 1-需要"`
-	HeadResourceId      int       `gorm:"column:head_resource_id" description:"版头资源ID"`
-	EndResourceId       int       `gorm:"column:end_resource_id" description:"版尾资源ID"`
-}
-
-func (m *SmartReport) TableName() string {
-	return "smart_report"
-}
-
-func (m *SmartReport) PrimaryId() string {
-	return "smart_report_id"
-}
-
-func (m *SmartReport) Create() (err error) {
-	o := global.DmSQL["rddp"]
-	err = o.Create(m).Error
-	return
-}
-
-func (m *SmartReport) CreateMulti(items []*SmartReport) (err error) {
-	if len(items) == 0 {
-		return
-	}
-	o := global.DmSQL["rddp"]
-	err = o.CreateInBatches(items, utils.MultiAddNum).Error
-	return
-}
-
-func (m *SmartReport) Update(cols []string) (err error) {
-	o := global.DmSQL["rddp"]
-	err = o.Model(m).Select(cols).Updates(m).Error
-	return
-}
-
-func (m *SmartReport) Del() (err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Exec(sql, m.SmartReportId).Error
-	return
-}
-
-func (m *SmartReport) MultiDel(menuIds []int) (err error) {
-	if len(menuIds) == 0 {
-		return
-	}
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	err = o.Exec(sql, menuIds).Error
-	return
-}
-
-func (m *SmartReport) GetItemById(id int) (item *SmartReport, err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).First(&item).Error
-	return
-}
-
-func (m *SmartReport) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SmartReport, err error) {
-	o := global.DmSQL["rddp"]
-	order := ``
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars...).First(&item).Error
-	return
-}
-
-func (m *SmartReport) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars...).Scan(&count).Error
-	return
-}
-
-func (m *SmartReport) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SmartReport, err error) {
-	o := global.DmSQL["rddp"]
-	fields := strings.Join(fieldArr, ",")
-	if len(fieldArr) == 0 {
-		fields = `*`
-	}
-	order := `ORDER BY create_time DESC`
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	err = o.Raw(sql, pars...).Find(&items).Error
-	return
-}
-
-func (m *SmartReport) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SmartReport, err error) {
-	o := global.DmSQL["rddp"]
-	fields := strings.Join(fieldArr, ",")
-	if len(fieldArr) == 0 {
-		fields = `*`
-	}
-	// 排序:1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过
-	order := `ORDER BY FIELD(state,3,1,4,5,6,2), modify_time DESC`
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	err = o.Raw(sql, pars...).Find(&items).Error
-	return
-}
-
-func (m *SmartReport) GetMaxStageByClassifyId(classifyId int) (stage int, err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`SELECT MAX(stage) AS max_stage FROM %s WHERE classify_id_second = ?`, m.TableName())
-	err = o.Raw(sql, classifyId).Scan(&stage).Error
-	return
-}
-
-// SmartReportItem 智能研报信息
-type SmartReportItem struct {
-	SmartReportId       int     `description:"智能研报ID"`
-	ReportCode          string  `description:"报告唯一编码"`
-	ClassifyIdFirst     int     `description:"一级分类ID"`
-	ClassifyNameFirst   string  `description:"一级分类名称"`
-	ClassifyIdSecond    int     `description:"二级分类ID"`
-	ClassifyNameSecond  string  `description:"二级分类名称"`
-	AddType             int     `description:"新增方式:1-新增报告;2-继承报告"`
-	Title               string  `description:"标题"`
-	Abstract            string  `description:"摘要"`
-	Author              string  `description:"作者"`
-	Frequency           string  `description:"频度"`
-	Stage               int     `description:"期数"`
-	Content             string  `description:"内容"`
-	ContentSub          string  `description:"内容前两个章节"`
-	ContentStruct       string  `description:"内容组件"`
-	VideoUrl            string  `description:"音频文件URL"`
-	VideoName           string  `description:"音频文件名称"`
-	VideoPlaySeconds    float64 `description:"音频播放时长"`
-	VideoSize           string  `description:"音频文件大小,单位M"`
-	AdminId             int     `description:"创建者姓名"`
-	AdminRealName       string  `description:"创建者姓名"`
-	LastModifyAdminId   int     `description:"最后更新人ID"`
-	LastModifyAdminName string  `description:"最后更新人姓名"`
-	ContentModifyTime   string  `description:"内容更新时间"`
-	Pv                  int     `description:"pv"`
-	Uv                  int     `description:"uv"`
-	State               int     `description:"1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过"`
-	PublishTime         string  `description:"发布时间"`
-	PrePublishTime      string  `description:"预发布时间"`
-	MsgIsSend           int     `description:"消息是否已发送:0-否;1-是"`
-	MsgSendTime         string  `description:"模版消息发送时间"`
-	DetailImgUrl        string  `description:"报告详情长图地址"`
-	DetailPdfUrl        string  `description:"报告详情PDF地址"`
-	CreateTime          string  `description:"创建时间"`
-	ModifyTime          string  `description:"修改时间"`
-	ApproveTime         string  `description:"审批时间"`
-	CanEdit             bool    `description:"是否可编辑"`
-	Editor              string  `description:"当前编辑人"`
-	HeadImg             string  `description:"报告头图地址"`
-	EndImg              string  `description:"报告尾图地址"`
-	CanvasColor         string  `description:"画布颜色"`
-	NeedSplice          int     `description:"0-不需要 1-需要"`
-	HeadResourceId      int     `description:"版头资源ID"`
-	EndResourceId       int     `description:"版尾资源ID"`
-	HeadStyle           string  `description:"版头样式"`
-	EndStyle            string  `description:"版尾样式"`
-}
-
-// FormatSmartReport2Item 格式化智能研报数据格式
-func FormatSmartReport2Item(origin *SmartReport) (item *SmartReportItem) {
-	item = new(SmartReportItem)
-	if origin == nil {
-		return
-	}
-	item.SmartReportId = origin.SmartReportId
-	item.ReportCode = origin.ReportCode
-	item.ClassifyIdFirst = origin.ClassifyIdFirst
-	item.ClassifyNameFirst = origin.ClassifyNameFirst
-	item.ClassifyIdSecond = origin.ClassifyIdSecond
-	item.ClassifyNameSecond = origin.ClassifyNameSecond
-	item.AddType = origin.AddType
-	item.Title = origin.Title
-	item.Abstract = origin.Abstract
-	item.Author = origin.Author
-	item.Frequency = origin.Frequency
-	item.Stage = origin.Stage
-	item.Content = html.UnescapeString(origin.Content)
-	item.ContentSub = html.UnescapeString(origin.ContentSub)
-	item.ContentStruct = html.UnescapeString(origin.ContentStruct)
-	item.VideoUrl = origin.VideoUrl
-	item.VideoName = origin.VideoName
-	item.VideoPlaySeconds = origin.VideoPlaySeconds
-	item.VideoSize = origin.VideoSize
-	item.AdminId = origin.AdminId
-	item.AdminRealName = origin.AdminRealName
-	item.LastModifyAdminId = origin.LastModifyAdminId
-	item.LastModifyAdminName = origin.LastModifyAdminName
-	item.ContentModifyTime = utils.TimeTransferString(utils.FormatDateTime, origin.ContentModifyTime)
-	item.Pv = origin.Pv
-	item.Uv = origin.Uv
-	item.State = origin.State
-	item.PublishTime = utils.TimeTransferString(utils.FormatDateTime, origin.PublishTime)
-	item.PrePublishTime = utils.TimeTransferString(utils.FormatDateTime, origin.PrePublishTime)
-	item.MsgIsSend = origin.MsgIsSend
-	item.MsgSendTime = utils.TimeTransferString(utils.FormatDateTime, origin.MsgSendTime)
-	item.DetailImgUrl = origin.DetailImgUrl
-	item.DetailPdfUrl = origin.DetailPdfUrl
-	item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
-	item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, origin.ModifyTime)
-	item.HeadImg = origin.HeadImg
-	item.EndImg = origin.EndImg
-	item.CanvasColor = origin.CanvasColor
-	item.ApproveTime = utils.TimeTransferString(utils.FormatDateTime, origin.ApproveTime)
-	item.NeedSplice = origin.NeedSplice
-	item.HeadResourceId = origin.HeadResourceId
-	item.EndResourceId = origin.EndResourceId
-	return
-}
-
-// SmartReportAddReq 新增智能研报请求体
-type SmartReportAddReq struct {
-	AddType            int    `description:"新增方式:1:新增报告,2:继承报告"`
-	ClassifyIdFirst    int    `description:"一级分类ID"`
-	ClassifyNameFirst  string `description:"一级分类名称"`
-	ClassifyIdSecond   int    `description:"二级分类ID"`
-	ClassifyNameSecond string `description:"二级分类名称"`
-	Title              string `description:"标题"`
-	Abstract           string `description:"摘要"`
-	Author             string `description:"作者"`
-	Frequency          string `description:"频度"`
-	HeadImg            string `description:"报告头图地址"`
-	EndImg             string `description:"报告尾图地址"`
-	CanvasColor        string `description:"画布颜色"`
-	HeadResourceId     int    `description:"版头资源ID"`
-	EndResourceId      int    `description:"版尾资源ID"`
-}
-
-// SmartReportEditReq 编辑智能研报请求体
-type SmartReportEditReq struct {
-	SmartReportAddReq
-	SmartReportId  int    `description:"智能研报ID"`
-	Content        string `description:"内容"`
-	ContentStruct  string `description:"内容结构"`
-	HeadImg        string `description:"报告头图地址"`
-	EndImg         string `description:"报告尾图地址"`
-	CanvasColor    string `description:"画布颜色"`
-	HeadResourceId int    `description:"版头资源ID"`
-	EndResourceId  int    `description:"版尾资源ID"`
-}
-
-// SmartReportRemoveReq 删除智能研报请求体
-type SmartReportRemoveReq struct {
-	SmartReportId int `description:"智能研报ID"`
-}
-
-// SmartReportPublishReq 发布智能研报请求体
-type SmartReportPublishReq struct {
-	SmartReportId int    `description:"智能研报ID"`
-	PublishState  int    `description:"1-取消发布; 2-发布"`
-	ReportUrl     string `description:"报告Url"`
-}
-
-// SmartReportPrePublishReq 预发布智能研报请求体
-type SmartReportPrePublishReq struct {
-	SmartReportId  int    `description:"智能研报ID"`
-	PrePublishTime string `description:"预发布时间"`
-	PreMsgSend     int    `description:"定时发布成功后是否立即推送模版消息:0否,1是"`
-	ReportUrl      string `description:"报告Url"`
-}
-
-// SmartReportSaveContentReq 保存草稿请求体
-type SmartReportSaveContentReq struct {
-	SmartReportId  int    `description:"智能研报ID"`
-	Content        string `description:"内容"`
-	ContentStruct  string `description:"内容结构"`
-	NoChange       int    `description:"内容是否未改变:1:内容未改变"`
-	HeadImg        string `description:"报告头图地址"`
-	EndImg         string `description:"报告尾图地址"`
-	CanvasColor    string `description:"画布颜色"`
-	HeadResourceId int    `description:"版头资源ID"`
-	EndResourceId  int    `description:"版尾资源ID"`
-}
-
-// SmartReportSaveContentResp 保存草稿响应体
-type SmartReportSaveContentResp struct {
-	SmartReportId int `description:"智能研报ID"`
-}
-
-// SmartReportSendMsgReq 消息推送请求体
-type SmartReportSendMsgReq struct {
-	SmartReportId int `description:"智能研报ID"`
-}
-
-// SmartReportMarkEditReq 标记编辑英文研报的请求数据
-type SmartReportMarkEditReq struct {
-	SmartReportId int `description:"智能研报ID"`
-	Status        int `description:"标记状态: 1-编辑中; 2-编辑完成"`
-}
-
-// SmartReportListResp 智能研报
-type SmartReportListResp struct {
-	List   []*SmartReportItem
-	Paging *paging.PagingItem `description:"分页数据"`
-}
-
-// ElasticSmartReport 智能研报es
-type ElasticSmartReport struct {
-	SmartReportId      int    `description:"智能研报ID"`
-	Title              string `description:"标题"`
-	Abstract           string `description:"摘要"`
-	BodyContent        string `description:"内容"`
-	PublishTime        string `description:"发布时间"`
-	PublishState       int    `description:"发布状态 1-未发布 2-已发布"`
-	Author             string `description:"作者"`
-	ClassifyIdFirst    int    `description:"一级分类ID"`
-	ClassifyNameFirst  string `description:"一级分类名称"`
-	ClassifyIdSecond   int    `description:"二级分类ID"`
-	ClassifyNameSecond string `description:"二级分类名称"`
-	StageStr           string `description:"报告期数"`
-	Frequency          string `description:"频度"`
-}
-
-// Report2ImgQueueReq 报告详情生成长图队列请求体
-type Report2ImgQueueReq struct {
-	ReportType int    `description:"报告类型: 1-研报; 2-智能研报"`
-	ReportCode string `description:"报告唯一编码"`
-}
-
-// UpdateSmartReportsStateByCond 批量更新报告状态
-func UpdateSmartReportsStateByCond(classifyFirstId, classifySecondId, oldState, newState int) (err error) {
-	o := global.DmSQL["rddp"]
-	cond := ``
-	if classifyFirstId > 0 {
-		cond += fmt.Sprintf(` AND classify_id_first = %d`, classifyFirstId)
-	}
-	if classifySecondId > 0 {
-		cond += fmt.Sprintf(` AND classify_id_second = %d`, classifySecondId)
-	}
-	sql := fmt.Sprintf(`UPDATE smart_report SET state = ?, pre_publish_time = NULL WHERE state = ? %s`, cond)
-	err = o.Exec(sql, newState, oldState).Error
-	return
-}
-
-// UpdateSmartReportsStateBySecondIds 批量更新二级分类报告状态
-func UpdateSmartReportsStateBySecondIds(oldState, newState int, secondIds []int) (err error) {
-	if len(secondIds) <= 0 {
-		return
-	}
-	o := global.DmSQL["rddp"]
-	// (有审批流的)未发布->待提交
-	sql := fmt.Sprintf(`UPDATE smart_report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
-	err = o.Exec(sql, newState, oldState, secondIds).Error
-	if err != nil {
-		return
-	}
-	// (无审批流的)待提交->未发布
-	sql = fmt.Sprintf(`UPDATE smart_report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
-	err = o.Exec(sql, oldState, newState, secondIds).Error
-	return
-}
-
-// UpdatePdfUrlSmartReportById 清空pdf相关字段
-func UpdatePdfUrlSmartReportById(reportId int) (err error) {
-	o := global.DmSQL["rddp"]
-	sql := `UPDATE smart_report SET detail_img_url = '',detail_pdf_url='',modify_time=NOW() WHERE smart_report_id = ? `
-	err = o.Exec(sql, reportId).Error
-	return
-}

+ 0 - 117
models/smart_report/smart_report_save_log.go

@@ -1,117 +0,0 @@
-package smart_report
-
-import (
-	"eta_gn/eta_api/global"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"strings"
-	"time"
-)
-
-type SmartReportSaveLog struct {
-	Id            int       `orm:"column(id);pk" gorm:"column:id;primaryKey" description:"日志ID"`
-	SmartReportId int       `gorm:"column:smart_report_id" description:"智能研报ID"`
-	Content       string    `gorm:"column:content" description:"内容"`
-	ContentSub    string    `gorm:"column:content_sub" description:"内容前两个章节"`
-	ContentStruct string    `gorm:"column:content_struct" description:"内容组件"`
-	AdminId       int       `gorm:"column:admin_id" description:"操作人ID"`
-	AdminName     string    `gorm:"column:admin_name" description:"操作人姓名"`
-	CreateTime    time.Time `gorm:"column:create_time" description:"创建时间"`
-}
-
-func (m *SmartReportSaveLog) TableName() string {
-	return "smart_report_save_log"
-}
-
-func (m *SmartReportSaveLog) PrimaryId() string {
-	return "id"
-}
-
-func (m *SmartReportSaveLog) Create() (err error) {
-	o := global.DmSQL["rddp"]
-	err = o.Create(m).Error
-	return
-}
-
-func (m *SmartReportSaveLog) CreateMulti(items []*SmartReportSaveLog) (err error) {
-	if len(items) == 0 {
-		return
-	}
-	o := global.DmSQL["rddp"]
-	err = o.CreateInBatches(items, utils.MultiAddNum).Error
-	return
-}
-
-func (m *SmartReportSaveLog) Update(cols []string) (err error) {
-	o := global.DmSQL["rddp"]
-	err = o.Model(m).Select(cols).Updates(m).Error
-	return
-}
-
-func (m *SmartReportSaveLog) Del() (err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Exec(sql, m.Id).Error
-	return
-}
-
-func (m *SmartReportSaveLog) MultiDel(menuIds []int) (err error) {
-	if len(menuIds) == 0 {
-		return
-	}
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	err = o.Exec(sql, menuIds).Error
-	return
-}
-
-func (m *SmartReportSaveLog) GetItemById(id int) (item *SmartReportSaveLog, err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).First(&item).Error
-	return
-}
-
-func (m *SmartReportSaveLog) GetItemByCondition(condition string, pars []interface{}) (item *SmartReportSaveLog, err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = o.Raw(sql, pars).First(&item).Error
-	return
-}
-
-func (m *SmartReportSaveLog) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := global.DmSQL["rddp"]
-	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars...).Scan(&count).Error
-	return
-}
-
-func (m *SmartReportSaveLog) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SmartReportSaveLog, err error) {
-	o := global.DmSQL["rddp"]
-	fields := strings.Join(fieldArr, ",")
-	if len(fieldArr) == 0 {
-		fields = `*`
-	}
-	order := `ORDER BY create_time DESC`
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	err = o.Raw(sql, pars...).First(&items).Error
-	return
-}
-
-func (m *SmartReportSaveLog) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SmartReportSaveLog, err error) {
-	o := global.DmSQL["rddp"]
-	fields := strings.Join(fieldArr, ",")
-	if len(fieldArr) == 0 {
-		fields = `*`
-	}
-	order := `ORDER BY create_time DESC`
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	err = o.Raw(sql, pars...).Find(&items).Error
-	return
-}

+ 0 - 117
models/system/sys_role_admin.go

@@ -115,120 +115,3 @@ func DeleteRoleAdmin(SysRoleAdminId int) (err error) {
 	err = global.DEFAULT_DmSQL.Exec(sql, SysRoleAdminId).Error
 	return
 }
-
-// GetEnglishAuthRoleAdminList 查询英文权限管理员列表
-func GetEnglishAuthRoleAdminList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*RoleAdminItem, err error) {
-	sql := `SELECT
-				s.id as sys_role_admin_id,
-				a.admin_id,
-				a.admin_name,
-				a.real_name,
-				a.mobile,
-				a.department_id,
-				a.department_name,
-				a.enabled,
-				a.role_id,
-				a.role_type_code ,
-				a.group_id,
-				a.authority,
-				a.group_name
-			FROM
-				sys_role_admin AS s
-			JOIN sys_role AS r ON s.role_id = r.role_id
-			JOIN admin AS a ON s.admin_id = a.admin_id
-			WHERE
-				1 = 1 `
-	sql += condition
-	sql += ` GROUP BY s.admin_id `
-
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	err = global.DEFAULT_DmSQL.Raw(totalSQl, pars...).Scan(&total).Error
-	if err != nil {
-		return
-	}
-
-	sql += ` ORDER BY s.create_time DESC,s.admin_id ASC LIMIT ?,? `
-	err = global.DEFAULT_DmSQL.Raw(sql, pars...).Find(&list).Error
-	return
-}
-
-// DeleteRoleAdminByAdminIdAndRoleIds 通过管理员ID及角色IDs删除绑定
-func DeleteRoleAdminByAdminIdAndRoleIds(adminId int, roleIds []int) (err error) {
-	if len(roleIds) == 0 {
-		return
-	}
-	sql := `DELETE FROM sys_role_admin WHERE admin_id = ? AND role_id IN (` + utils.GetOrmInReplace(len(roleIds)) + `) `
-	err = global.DEFAULT_DmSQL.Exec(sql, adminId, roleIds).Error
-	return
-}
-
-// CheckEnglishAuthRoleAdminByAdminIds 通过管理员IDs判断是否已经绑定过英文权限角色
-func CheckEnglishAuthRoleAdminByAdminIds(adminIds []int, roleCodes []string) (list []*SysRoleAdmin, err error) {
-	if len(adminIds) == 0 || len(roleCodes) == 0 {
-		return
-	}
-	sql := `SELECT
-				s.*
-			FROM
-				sys_role_admin AS s
-			JOIN sys_role AS r ON s.role_id = r.role_id
-			JOIN admin AS a ON s.admin_id = a.admin_id
-			WHERE
-				s.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `) AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)
-			GROUP BY
-				s.admin_id`
-	err = global.DEFAULT_DmSQL.Raw(sql, adminIds, roleCodes).Find(&list).Error
-	return
-}
-
-// EnglishAuthRoleDetail 英文权限角色详情
-type EnglishAuthRoleDetail struct {
-	AdminId      int    `description:"用户ID"`
-	RoleTypeCode string `description:"角色类型编码"`
-}
-
-// GetAdminEnglishAuthRoleDetail 获取用户英文权限详情
-func GetAdminEnglishAuthRoleDetail(adminId int, roleCodes []string) (list []*EnglishAuthRoleDetail, err error) {
-	if len(roleCodes) == 0 {
-		return
-	}
-	sql := `SELECT
-				s.admin_id, r.role_type_code
-			FROM
-				sys_role_admin AS s
-			JOIN sys_role AS r ON s.role_id = r.role_id
-			JOIN admin AS a ON s.admin_id = a.admin_id
-			WHERE
-				s.admin_id = ? AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
-	err = global.DEFAULT_DmSQL.Raw(sql, adminId, roleCodes).Find(&list).Error
-	return
-}
-
-// EditEnglishAuthRoleAdmin 编辑管理员英文权限
-func EditEnglishAuthRoleAdmin(adminId int, englishRoleIds []int, roleAdmins []*SysRoleAdmin) (err error) {
-	tx := global.DEFAULT_DmSQL.Begin()
-	defer func() {
-		if err != nil {
-			_ = tx.Rollback()
-			return
-		}
-		_ = tx.Commit()
-	}()
-
-	// 删除原绑定关系
-	sql := `DELETE FROM sys_role_admin WHERE admin_id = ? AND role_id IN (` + utils.GetOrmInReplace(len(englishRoleIds)) + `)`
-	err = tx.Exec(sql, adminId, englishRoleIds).Error
-	if err != nil {
-		return
-	}
-
-	// 新增绑定关系
-	err = tx.CreateInBatches(roleAdmins, utils.MultiAddNum).Error
-	return
-}
-
-// SyncAdminEnRole 同步用户英文角色
-type SyncAdminEnRole struct {
-	AdminName string   `description:"用户名"`
-	RoleCodes []string `description:"角色Codes"`
-}

+ 0 - 26
models/user_seller_relation.go

@@ -1,26 +0,0 @@
-package models
-
-import (
-	"eta_gn/eta_api/global"
-	"time"
-)
-
-type UserSellerRelation struct {
-	RelationId int64     `gorm:"column:relation_id;primaryKey;type:bigint" orm:"column(relation_id);pk" gorm:"primaryKey"  description:"关系ID"`
-	UserId     int       `gorm:"column:user_id;type:int" orm:"column(user_id)" description:"用户ID"`
-	CompanyId  int       `gorm:"column:company_id;type:int" orm:"column(company_id)" description:"企业用户ID"`
-	SellerId   int       `gorm:"column:seller_id;type:int" orm:"column(seller_id)" description:"销售ID"`
-	Seller     string    `gorm:"column:seller;type:varchar(255)" orm:"column(seller)" description:"销售员名称"`
-	ProductId  int       `gorm:"column:product_id;type:int" orm:"column(product_id)" description:"产品ID"`
-	Mobile     string    `gorm:"column:mobile;type:varchar(255)" orm:"column(mobile)" description:"手机号"`
-	Email      string    `gorm:"column:email;type:varchar(255)" orm:"column(email)" description:"邮箱"`
-	ModifyTime time.Time `gorm:"column:modify_time;type:datetime" orm:"column(modify_time)" description:"修改时间"`
-	CreateTime time.Time `gorm:"column:create_time;type:datetime" orm:"column(create_time)" description:"创建时间"`
-}
-
-// DeleteUserSellerRelationByProductId 根据产品id删除销售员与员工的关系
-func DeleteUserSellerRelationByProductId(userId, productId int) (err error) {
-	sql := ` DELETE FROM user_seller_relation WHERE user_id=? and product_id = ?`
-	err = global.DmSQL["weekly"].Exec(sql, userId, productId).Error
-	return
-}

+ 0 - 75
models/wx_user.go

@@ -1,75 +0,0 @@
-package models
-
-import (
-	"eta_gn/eta_api/global"
-	"time"
-)
-
-type WxUser struct {
-	UserId              int64     `gorm:"column:user_id;primaryKey;type:bigint" orm:"column(user_id);pk" gorm:"primaryKey"  description:"用户ID"`
-	Mobile              string    `gorm:"column:mobile;type:varchar(255)" orm:"column(mobile)" description:"手机号"`
-	Email               string    `gorm:"column:email;type:varchar(255)" orm:"column(email)" description:"邮箱"`
-	CompanyId           int       `gorm:"column:company_id;type:int" orm:"column(company_id)" description:"公司ID"`
-	RealName            string    `gorm:"column:real_name;type:varchar(255)" orm:"column(real_name)" description:"姓名"`
-	NickName            string    `gorm:"column:nick_name;type:varchar(255)" orm:"column(nick_name)" description:"昵称"`
-	CreatedTime         time.Time `gorm:"column:created_time;type:datetime" orm:"column(created_time)" description:"创建时间"`
-	MobileTwo           string    `gorm:"column:mobile_two;type:varchar(255)" orm:"column(mobile_two)" description:"备用手机号"`
-	BusinessCardUrl     string    `gorm:"column:business_card_url;type:varchar(255)" orm:"column(business_card_url)" description:"名片"`
-	IsMaker             int       `gorm:"column:is_maker;type:int" orm:"column(is_maker)" description:"是否决策人,1:是,0:否"`
-	Position            string    `gorm:"column:position;type:varchar(255)" orm:"column(position)" description:"职位"`
-	Sex                 int       `gorm:"column:sex;type:int" orm:"column(sex)" description:"普通用户性别,1为男性,2为女性"`
-	DepartmentName      string    `gorm:"column:department_name;type:varchar(255)" orm:"column(department_name)" description:"联系人部门"`
-	RegisterTime        time.Time `gorm:"column:register_time;type:datetime" orm:"column(register_time)" description:"注册时间"`
-	RegisterPlatform    int       `gorm:"column:register_platform;type:int" orm:"column(register_platform)" description:"注册平台"`
-	Remark              string    `gorm:"column:remark;type:varchar(255)" orm:"column(remark)" description:"备注"`
-	CountryCode         string    `gorm:"column:country_code;type:varchar(255)" orm:"column(country_code)" description:"区号,86、852、886等"`
-	OutboundMobile      string    `gorm:"column:outbound_mobile;type:varchar(255)" orm:"column(outbound_mobile)" description:"外呼手机号"`
-	OutboundCountryCode string    `gorm:"column:outbound_country_code;type:varchar(255)" orm:"column(outbound_country_code)" description:"外呼手机号区号,86、852、886等"`
-	LastUpdatedTime     time.Time `gorm:"column:last_updated_time;type:datetime" orm:"column(last_updated_time)" description:"最近一次更新时间"`
-	IsDeal              int       `gorm:"column:is_deal;type:int" orm:"column(is_deal)" description:"是否标记处理 0-未处理 1-已处理"`
-	OpenId              string    `gorm:"column:open_id;type:varchar(255)" orm:"column(open_id)" description:"微信openid"`
-	Headimgurl          string    `gorm:"column:headimgurl;type:varchar(255)" orm:"column(headimgurl)" description:"用户头像"`
-	UserLabel           string    `gorm:"column:user_label;type:varchar(255)" orm:"column(user_label)" description:"查研观向用户标签"`
-}
-
-func GetWxUserByMobile(mobile string) (item *WxUser, err error) {
-	sql := `SELECT * FROM wx_user WHERE mobile = ? LIMIT 1`
-	err = global.DmSQL["weekly"].Raw(sql, mobile).First(&item).Error
-	return
-}
-
-// Update 更新wxUser信息
-func (wxUser *WxUser) Update(cols []string) (err error) {
-	err = global.DmSQL["weekly"].Select(cols).Updates(wxUser).Error
-	return
-}
-
-// GetWxUserByCompanyIdAndMobile 根据客户ID及手机号获取用户
-func GetWxUserByCompanyIdAndMobile(companyId int, mobile string) (item *WxUser, err error) {
-	sql := ` SELECT * FROM wx_user WHERE company_id = ? AND mobile = ? LIMIT 1 `
-	err = global.DmSQL["weekly"].Raw(sql, companyId, mobile).First(&item).Error
-	return
-}
-
-// DeleteWxUserAndRecordByUserId 删除用户及第三方信息
-func DeleteWxUserAndRecordByUserId(userId int) (err error) {
-	to := global.DmSQL["weekly"].Begin()
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	// 删除wx_user
-	userSql := ` DELETE FROM wx_user WHERE user_id = ? LIMIT 1 `
-	err = to.Exec(userSql, userId).Error
-	// 删除user_record
-	if err == nil {
-		recordSql := ` DELETE FROM user_record WHERE user_id = ? `
-		err = to.Exec(recordSql, userId).Error
-	}
-
-	return
-}

+ 0 - 342
routers/commentsRouter.go

@@ -5290,15 +5290,6 @@ func init() {
 			Filters:          nil,
 			Params:           nil})
 
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/roadshow:CalendarController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/roadshow:CalendarController"],
-		beego.ControllerComments{
-			Method:           "ResearcherList",
-			Router:           `/researcher/list`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
 	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/sandbox:SandboxController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/sandbox:SandboxController"],
 		beego.ControllerComments{
 			Method:           "AddSandboxClassify",
@@ -5731,141 +5722,6 @@ func init() {
 			Filters:          nil,
 			Params:           nil})
 
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "Add",
-			Router:           `/add`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "CancelApprove",
-			Router:           `/approve/cancel`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "SubmitApprove",
-			Router:           `/approve/submit`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "Detail",
-			Router:           `/detail`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "DetailImg",
-			Router:           `/detail_img`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "Edit",
-			Router:           `/edit`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "LastPublishedReport",
-			Router:           `/last_published_report`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "List",
-			Router:           `/list`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "MarkEditStatus",
-			Router:           `/mark_edit`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "PrePublish",
-			Router:           `/pre_publish`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "Publish",
-			Router:           `/publish`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "Remove",
-			Router:           `/remove`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "SaveContent",
-			Router:           `/save_content`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "SendMsg",
-			Router:           `/send_msg`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportController"],
-		beego.ControllerComments{
-			Method:           "VoiceUpload",
-			Router:           `/voice_upload`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
 	beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportResourceController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers/smart_report:SmartReportResourceController"],
 		beego.ControllerComments{
 			Method:           "Add",
@@ -7495,24 +7351,6 @@ func init() {
 			Filters:          nil,
 			Params:           nil})
 
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ReportController"],
-		beego.ControllerComments{
-			Method:           "SetDayWeekReportEnableRule",
-			Router:           `/setDayWeekReportEnableUpdateRule`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ReportController"],
-		beego.ControllerComments{
-			Method:           "SetDayWeekReportUpdateRule",
-			Router:           `/setDayWeekReportUpdateRule`,
-			AllowHTTPMethods: []string{"post"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
 	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ReportController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:ReportController"],
 		beego.ControllerComments{
 			Method:           "ThsSendTemplateMsg",
@@ -8323,186 +8161,6 @@ func init() {
 			Filters:          nil,
 			Params:           nil})
 
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "CffexDataList",
-			Router:           `/data/cffex`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "CoalMineClassify",
-			Router:           `/data/coalMineData/classify`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "CoalMineData",
-			Router:           `/data/coalMineData/data`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "CoalMineFrequency",
-			Router:           `/data/coalMineData/frequency`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "CoalSingleData",
-			Router:           `/data/coalMineData/single_data`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "DalianDataList",
-			Router:           `/data/dalian`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicContinentList",
-			Router:           `/data/eicContinent`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicContinentListV2",
-			Router:           `/data/eicContinentV2`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicDataList",
-			Router:           `/data/eicData`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicDataV2",
-			Router:           `/data/eicDataV2`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicHistoryData",
-			Router:           `/data/eicHistoryData`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicHistoryDataV2",
-			Router:           `/data/eicHistoryDataV2`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicLatestDate",
-			Router:           `/data/eicLatestDate`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicLatestDateV2",
-			Router:           `/data/eicLatestDateV2`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "EicDataListV2",
-			Router:           `/data/eicSSODataV2`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "ExchangeClassify",
-			Router:           `/data/exchange/classify`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "ExchangeClassifyContract",
-			Router:           `/data/exchange/classifyContract`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "IneDataList",
-			Router:           `/data/ine`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "ShfeDataList",
-			Router:           `/data/shfe`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
-	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:TradeCommonController"],
-		beego.ControllerComments{
-			Method:           "ZhengzhouDataList",
-			Router:           `/data/zhengzhou`,
-			AllowHTTPMethods: []string{"get"},
-			MethodParams:     param.Make(),
-			Filters:          nil,
-			Params:           nil})
-
 	beego.GlobalControllerRouter["eta_gn/eta_api/controllers:UserLoginController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:UserLoginController"],
 		beego.ControllerComments{
 			Method:           "AreaCodeList",

+ 0 - 10
routers/router.go

@@ -25,7 +25,6 @@ import (
 	"eta_gn/eta_api/controllers/fe_calendar"
 	"eta_gn/eta_api/controllers/knowledge"
 	"eta_gn/eta_api/controllers/report_approve"
-	"eta_gn/eta_api/controllers/roadshow"
 	"eta_gn/eta_api/controllers/sandbox"
 	"eta_gn/eta_api/controllers/semantic_analysis"
 	"eta_gn/eta_api/controllers/smart_report"
@@ -101,9 +100,6 @@ func init() {
 			web.NSInclude(
 				&controllers.TargetCommonController{},
 			),
-			web.NSInclude(
-				&controllers.TradeCommonController{},
-			),
 		),
 
 		web.NSNamespace("/system",
@@ -171,11 +167,6 @@ func init() {
 				&data_manage.MyChartController{},
 			),
 		),
-		web.NSNamespace("/roadshow",
-			web.NSInclude(
-				&roadshow.CalendarController{},
-			),
-		),
 		web.NSNamespace("/taglib",
 			web.NSInclude(
 				&controllers.VarietyTagController{},
@@ -282,7 +273,6 @@ func init() {
 		),
 		web.NSNamespace("/smart_report",
 			web.NSInclude(
-				&smart_report.SmartReportController{},
 				&smart_report.SmartReportResourceController{},
 			),
 		),

+ 0 - 27
services/data/base_edb_lib.go

@@ -34,33 +34,6 @@ func AddEdbData(source int, edbCode, frequency string) (resp *models.BaseRespons
 	return
 }
 
-// AddEdbData 新增指标数据
-func AddEdbDataWindWsd(source int, stockCode, edbCode string) (resp *models.BaseResponse, err error) {
-	param := make(map[string]interface{})
-	param["EdbCode"] = edbCode
-	param["StockCode"] = stockCode
-	param["Source"] = source
-	urlStr := `wind/wsd/add`
-	if urlStr == "" {
-		err = fmt.Errorf("未实现该指标的刷新接口,请联系管理员")
-		return
-	}
-	resp, err = postRefreshEdbData(param, urlStr)
-	return
-}
-
-// AddEdbDataThsDs 新增指标数据
-func AddEdbDataThsDs(source int, stockCode, edbCode, extraPars string) (resp *models.BaseResponse, err error) {
-	param := make(map[string]interface{})
-	param["EdbCode"] = edbCode
-	param["StockCode"] = stockCode
-	param["Source"] = source
-	param["ExtraPars"] = extraPars
-	urlStr := `ths/ds/add`
-	resp, err = postRefreshEdbData(param, urlStr)
-	return
-}
-
 type AddPredictEdbDataResponse struct {
 	Ret         int
 	Msg         string

+ 0 - 86
services/elastic.go

@@ -4,7 +4,6 @@ import (
 	"context"
 	"eta_gn/eta_api/models"
 	saModel "eta_gn/eta_api/models/semantic_analysis"
-	"eta_gn/eta_api/models/smart_report"
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"github.com/olivere/elastic/v7"
@@ -19,32 +18,6 @@ func NewClient() (client *elastic.Client, err error) {
 	return
 }
 
-// indexName:索引名称
-// mappingJson:表结构
-func EsCreateIndex(indexName, mappingJson string) (err error) {
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
-	//定义表结构
-	exists, err := client.IndexExists(indexName).Do(context.Background()) //<5>
-	if err != nil {
-		return
-	}
-	if !exists {
-		resp, err := client.CreateIndex(indexName).BodyJson(mappingJson).Do(context.Background())
-		//BodyJson(bodyJson).Do(context.Background())
-		if err != nil {
-			fmt.Println("CreateIndex Err:" + err.Error())
-			return err
-		}
-		fmt.Println(resp.Index, resp.ShardsAcknowledged, resp.Acknowledged)
-	} else {
-		fmt.Println(indexName + " 已存在")
-	}
-	return
-}
-
 // 删除数据
 func EsDeleteData(indexName, docId string) (err error) {
 	client, err := NewClient()
@@ -186,62 +159,3 @@ func EsAddOrEditSaDoc(indexName, docId string, item *saModel.ElasticSaDoc) (err
 	fmt.Println("AddData", resp.Status, resp.Result)
 	return
 }
-
-// EsAddOrEditSmartReport 新增编辑es智能研报
-func EsAddOrEditSmartReport(indexName, docId string, item *smart_report.ElasticSmartReport) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println("EsAddOrEditSmartReport Err:", err.Error())
-		}
-	}()
-	client, err := NewClient()
-	if err != nil {
-		return
-	}
-	// docId为报告ID
-	searchById, err := client.Get().Index(indexName).Id(docId).Do(context.Background())
-	if err != nil && !strings.Contains(err.Error(), "404") {
-		fmt.Println("Get Err" + err.Error())
-		return
-	}
-	if searchById != nil && searchById.Found {
-		resp, err := client.Update().Index(indexName).Id(docId).Doc(map[string]interface{}{
-			"SmartReportId":      item.SmartReportId,
-			"Title":              item.Title,
-			"Abstract":           item.Abstract,
-			"BodyContent":        item.BodyContent,
-			"PublishTime":        item.PublishTime,
-			"PublishState":       item.PublishState,
-			"Author":             item.Author,
-			"ClassifyIdFirst":    item.ClassifyIdFirst,
-			"ClassifyNameFirst":  item.ClassifyNameFirst,
-			"ClassifyIdSecond":   item.ClassifyIdSecond,
-			"ClassifyNameSecond": item.ClassifyNameSecond,
-			"StageStr":           item.StageStr,
-			"Frequency":          item.Frequency,
-		}).Do(context.Background())
-		if err != nil {
-			return err
-		}
-		//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, err := client.Index().Index(indexName).Id(docId).BodyJson(item).Do(context.Background())
-		if err != nil {
-			fmt.Println("新增失败:", err.Error())
-			return err
-		}
-		if resp.Status == 0 && resp.Result == "created" {
-			fmt.Println("新增成功" + docId)
-			return nil
-		} else {
-			fmt.Println("AddData", resp.Status, resp.Result)
-		}
-	}
-	return
-}

+ 0 - 132
services/eta_trial/questionnaire.go

@@ -1,132 +0,0 @@
-package eta_trial
-
-import (
-	"encoding/json"
-	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/eta_trial"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"io/ioutil"
-	"net/http"
-	"strings"
-)
-
-type EtaTrialQuestionnaireListResp struct {
-	Code   int                                 `json:"code" description:"状态码"`
-	Msg    string                              `json:"msg" description:"提示信息"`
-	Data   eta_trial.EtaTrialQuestionnaireResp `json:"data" description:"返回数据"`
-	ErrMsg string                              `json:"-" description:"错误信息,不用返回给前端,只是做日志记录"`
-}
-
-// GetEtaTrialQuestionnaireList CRM_ETA服务-获取问卷列表
-func GetEtaTrialQuestionnaireList() (res eta_trial.EtaTrialQuestionnaireResp, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/questionnaire/list")
-
-	body := ioutil.NopCloser(strings.NewReader(""))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(EtaTrialQuestionnaireListResp)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = result.Data
-	return
-}
-
-type EtaTrialQuestionnaireCommitReq struct {
-	List []eta_trial.EtaTrialQuestionnaireRecord
-}
-
-// EtaTrialQuestionnaireCommit CRM_ETA服务-提交问卷调查
-func EtaTrialQuestionnaireCommit(pars EtaTrialQuestionnaireCommitReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/questionnaire/commit")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}

+ 0 - 451
services/eta_trial/user.go

@@ -1,451 +0,0 @@
-package eta_trial
-
-import (
-	"encoding/json"
-	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/eta_trial"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"io/ioutil"
-	"net/http"
-	"strings"
-)
-
-// EtaTrialUserReq 更新试用客户最后登录时间和次数请求体
-type EtaTrialUserReq struct {
-	Mobile string `description:"手机号"`
-}
-
-// UpdateEtaTrialUserLogin CRM_ETA服务-更新试用客户最后登录时间和次数
-func UpdateEtaTrialUserLogin(pars EtaTrialUserReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/update_login")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}
-
-// GetEtaTrialUserReq 获取试用客户请求体
-type GetEtaTrialUserReq struct {
-	Mobile string `description:"手机号"`
-}
-
-type EtaTrialUserResp struct {
-	Code   int                        `json:"code" description:"状态码"`
-	Msg    string                     `json:"msg" description:"提示信息"`
-	Data   eta_trial.EtaTrialUserItem `json:"data" description:"返回数据"`
-	ErrMsg string                     `json:"-" description:"错误信息,不用返回给前端,只是做日志记录"`
-}
-
-// DisableEtaTrialUser CRM_ETA服务-禁用试用客户
-func DisableEtaTrialUser(pars EtaTrialUserReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/disable")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}
-
-// EtaTrialUserEditReq 更新用户信息请求体
-type EtaTrialUserEditReq struct {
-	RealName string `description:"姓名"`
-	Position string `description:"职务"`
-	Mobile   string `description:"手机号"`
-	Enabled  int    `description:"禁启用"`
-}
-
-// EditEtaTrialUser CRM_ETA服务-编辑试用客户
-func EditEtaTrialUser(pars EtaTrialUserEditReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/edit")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}
-
-// UpdateUserIndexNum CRM_ETA服务-更新用户累计新增指标数
-func UpdateUserIndexNum(pars EtaTrialUserReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/update_index_num")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}
-
-// UpdateUserChartNum CRM_ETA服务-更新用户累计新增图表数
-func UpdateUserChartNum(pars EtaTrialUserReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/update_chart_num")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}
-
-// UpdateEtaTrialUserActiveTimeReq 更新试用客户活跃时长请求体
-type UpdateEtaTrialUserActiveTimeReq struct {
-	Mobile     string `description:"手机号"`
-	UserName   string `description:"用户姓名"`
-	ActiveTime int    `description:"活跃时长, 单位秒"`
-	Part       string `description:"活跃板块"`
-}
-
-// UpdateEtaTrialUserActiveTime CRM_ETA服务-更新试用客户活跃时长
-func UpdateEtaTrialUserActiveTime(pars UpdateEtaTrialUserActiveTimeReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/update_active_time")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}
-
-// UpdateEtaTrialUserLoginDurationReq 更新试用客户登录时长请求体
-type UpdateEtaTrialUserLoginDurationReq struct {
-	Mobile     string `description:"手机号"`
-	UserName   string `description:"用户姓名"`
-	ActiveTime int    `description:"活跃时长, 单位秒"`
-}
-
-// UpdateEtaTrialUserLoginDuration CRM_ETA服务-更新试用客户登录时长
-func UpdateEtaTrialUserLoginDuration(pars UpdateEtaTrialUserLoginDurationReq) (res bool, err error) {
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/user/update_login_duration")
-	params, e := json.Marshal(pars)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(params)))
-	client := &http.Client{}
-	req, e := http.NewRequest("POST", url, body)
-	if e != nil {
-		err = fmt.Errorf("http create request err: %s", e.Error())
-		return
-	}
-
-	contentType := "application/json;charset=utf-8"
-	req.Header.Set("Content-Type", contentType)
-	req.Header.Set("Authorization", utils.CrmEtaAuthorization)
-	resp, e := client.Do(req)
-	if e != nil {
-		err = fmt.Errorf("http client do err: %s", e.Error())
-		return
-	}
-	defer func() {
-		_ = resp.Body.Close()
-	}()
-	b, e := ioutil.ReadAll(resp.Body)
-	if e != nil {
-		err = fmt.Errorf("resp body read err: %s", e.Error())
-		return
-	}
-	if len(b) == 0 {
-		err = fmt.Errorf("resp body is empty")
-		return
-	}
-	// 生产环境解密, 注意有个坑前后的双引号
-	if utils.RunMode == "release" {
-		str := string(b)
-		str = strings.Trim(str, `"`)
-		b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
-	}
-
-	result := new(models.ResultData)
-	if e = json.Unmarshal(b, &result); e != nil {
-		err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
-		return
-	}
-	if result.Code != 200 {
-		err = fmt.Errorf("result: %s", string(b))
-		return
-	}
-	res = true
-	return
-}

+ 0 - 170
services/report.go

@@ -403,176 +403,6 @@ func reportBase64ToImg(imageBase64 string) (resourceUrl string, err error) {
 	return
 }
 
-//// UpdateReportVideo 更新报告及其章节音频
-//func UpdateReportVideo(reportId int) (err error) {
-//	defer func() {
-//		if err != nil {
-//			utils.FileLog.Error("UpdateReportVideo, reportId:%s, Err:%s", strconv.Itoa(reportId), err.Error())
-//			go alarm_msg.SendAlarmMsg("更新报告音频失败, 报告ID: "+strconv.Itoa(reportId)+", Err: "+err.Error(), 3)
-//			//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "更新报告音频失败, 报告ID: " + reportIdStr + ", Err: "+err.Error(), utils.EmailSendToUsers)
-//		}
-//	}()
-//	if reportId == 0 {
-//		return
-//	}
-//	reportInfo, err := models.GetReportByReportId(reportId)
-//	if err != nil {
-//		return
-//	}
-//	if reportInfo.HasChapter == 1 {
-//		// 更新章节音频
-//		chapterList, tmpErr := models.GetPublishedChapterListByReportId(reportInfo.Id)
-//		if tmpErr != nil {
-//			err = tmpErr
-//			return
-//		}
-//		chapterIdArr := make([]int, 0)
-//		for i := 0; i < len(chapterList); i++ {
-//			chapterIdArr = append(chapterIdArr, chapterList[i].ReportChapterId)
-//		}
-//		//go UpdateChaptersVideo(chapterIds)
-//		err = UpdateChaptersVideo(chapterIdArr)
-//	} else {
-//		// 更新报告音频
-//		if reportInfo.VideoUrl != "" {
-//			return
-//		}
-//		nowTime := time.Now()
-//		updateCols := make([]string, 0)
-//		updateCols = append(updateCols, "VideoUrl", "VideoName", "VideoSize", "VideoPlaySeconds")
-//		videoUrl, videoName, videoSize, videoPlaySeconds, tmpErr := CreateReportVideo(reportInfo.Title, html.UnescapeString(reportInfo.Content), nowTime.Format(utils.FormatDateTime))
-//		reportInfo.VideoUrl = videoUrl
-//		reportInfo.VideoName = videoName
-//		reportInfo.VideoSize = videoSize
-//		reportInfo.VideoPlaySeconds = fmt.Sprintf("%.2f", videoPlaySeconds)
-//		tmpErr = reportInfo.UpdateReport(updateCols)
-//		if tmpErr != nil {
-//			err = tmpErr
-//			return
-//		}
-//	}
-//	return
-//}
-//
-//func UpdateEmptyVideoReportVideo() (err error) {
-//	list, err := models.GetSyncEmptyVideoReport()
-//	if err != nil {
-//		return
-//	}
-//	listLen := len(list)
-//	if listLen <= 0 {
-//		fmt.Println("无报告需要更新音频")
-//		return
-//	}
-//	fmt.Println("Start 待更新报告音频数: ", listLen)
-//	for i := 0; i < listLen; i++ {
-//		if err = UpdateReportVideo(list[i].Id); err != nil {
-//			fmt.Printf("更新音频失败")
-//			fmt.Println(err.Error())
-//			return
-//		}
-//	}
-//	fmt.Println("End 报告音频更新完毕")
-//	return
-//}
-
-// checkDayWeekChapterWrite 校验晨周报已写章节与本期应写章节
-func checkDayWeekChapterWrite(chapters []*models.ReportChapter, reportType string) (publishReport bool, tips string, publishIdArr, unPublishIdArr []int, err error) {
-	nowTime := time.Now().Local()
-	updateTypeArr := make([]int, 0) // 需更新的章节类型IDs
-	publishIdArr = make([]int, 0)   // 需发布的章节IDs
-	unPublishIdArr = make([]int, 0) // 需取消发布/未发布的章节IDs
-	// 校验章节内容
-	if reportType == utils.REPORT_TYPE_DAY {
-		// 晨报章节不能都为空
-		isEmpty := true
-		for i := 0; i < len(chapters); i++ {
-			if chapters[i].Content != "" && chapters[i].Title != "" {
-				isEmpty = false
-				break
-			}
-		}
-		if isEmpty {
-			err = errors.New("报告章节内容均为空或标题为空,不可发布")
-			return
-		}
-	} else {
-		// 周报章节需至少有一篇已编辑且有标题
-		editNum := 0
-		for i := 0; i < len(chapters); i++ {
-			if chapters[i].IsEdit == 1 && chapters[i].Title != "" {
-				editNum += 1
-			}
-		}
-		if editNum == 0 {
-			err = errors.New("报告均未编辑或标题为空,不可发布")
-			return
-		}
-	}
-	// 章节类型列表
-	types, e := models.GetReportChapterTypeListByResearchType(reportType)
-	if e != nil {
-		err = errors.New("获取章节类型列表失败")
-		return
-	}
-	// 本期需更新的章节IDs
-	typeLen := len(types)
-	for i := 0; i < typeLen; i++ {
-		if types[i].IsSet != 1 && types[i].Enabled != 0 {
-			// 正常更新
-			updateTypeArr = append(updateTypeArr, types[i].ReportChapterTypeId)
-		} else {
-			// 被设置为零值的也算作正常更新
-			if types[i].PauseStartTime == utils.EmptyDateStr && types[i].PauseEndTime == utils.EmptyDateStr {
-				updateTypeArr = append(updateTypeArr, types[i].ReportChapterTypeId)
-				continue
-			}
-			// 暂停更新需校验时间
-			startTime, _ := time.Parse(utils.FormatDate, types[i].PauseStartTime)
-			endTime, _ := time.Parse(utils.FormatDate, types[i].PauseEndTime)
-			if nowTime.Before(startTime) || nowTime.After(endTime.AddDate(0, 0, 1)) {
-				updateTypeArr = append(updateTypeArr, types[i].ReportChapterTypeId)
-			}
-		}
-	}
-	// 校验本期需更新的章节是否都已编辑
-	chapterLen := len(chapters)
-	updateTypeLen := len(updateTypeArr)
-	tipsArr := make([]string, 0)
-	for i := 0; i < chapterLen; i++ {
-		isWrite := false
-		for ii := 0; ii < updateTypeLen; ii++ {
-			// 本期应发布的章节
-			if chapters[i].TypeId == updateTypeArr[ii] {
-				// 标题或者内容为空的情况下, 记录tips提示信息且不发布该章节
-				if chapters[i].Title == "" || chapters[i].Content == "" {
-					tipsArr = append(tipsArr, chapters[i].TypeName)
-					break
-				}
-				isWrite = true
-				break
-			}
-		}
-		if isWrite {
-			publishIdArr = append(publishIdArr, chapters[i].ReportChapterId)
-		} else {
-			unPublishIdArr = append(unPublishIdArr, chapters[i].ReportChapterId)
-		}
-	}
-	if len(tipsArr) > 0 {
-		tips = "部分章节未发布:" + strings.Join(tipsArr, "、") + "未填写标题/内容"
-	}
-	// 周报需发布的章节与需更新的章节数相等则表示可发布整期, 晨报无限制
-	if reportType == utils.REPORT_TYPE_DAY {
-		publishReport = true
-	} else {
-		if len(publishIdArr) == updateTypeLen {
-			publishReport = true
-		}
-	}
-	return
-}
-
 // PcCreateAndUploadSunCode 生成太阳码并上传OSS
 func PcCreateAndUploadSunCode(scene, page string) (imgUrl string, err error) {
 	if page == "" {

+ 2 - 124
services/smart_report.go

@@ -1,13 +1,10 @@
 package services
 
 import (
-	"encoding/json"
 	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/smart_report"
 	"eta_gn/eta_api/services/alarm_msg"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"html"
 	"os"
 	"os/exec"
 	"path"
@@ -15,127 +12,6 @@ import (
 	"time"
 )
 
-// SmartReportBuildVideoAndUpdate 生成音频
-func SmartReportBuildVideoAndUpdate(item *smart_report.SmartReport) {
-	if item == nil {
-		return
-	}
-	var err error
-	defer func() {
-		if err != nil {
-			tips := fmt.Sprintf("智能研报-音频生成, errMsg: %s", err.Error())
-			go alarm_msg.SendAlarmMsg(tips, 2)
-		}
-	}()
-
-	videoUrl, videoName, videoSize, videoPlaySeconds, e := CreateReportVideo(item.Title, item.Content, time.Now().Local().Format(utils.FormatDateTime))
-	if e != nil {
-		err = fmt.Errorf("create audio err: %s", e.Error())
-		return
-	}
-	item.VideoUrl = videoUrl
-	item.VideoName = videoName
-	item.VideoSize = videoSize
-	item.VideoPlaySeconds = videoPlaySeconds
-	item.ModifyTime = time.Now().Local()
-	cols := []string{"VideoUrl", "VideoName", "VideoSize", "VideoPlaySeconds", "ModifyTime"}
-	if e = item.Update(cols); e != nil {
-		err = fmt.Errorf("smart report update err: %s", e.Error())
-		return
-	}
-}
-
-// UpdateSmartReportEditing 更新研报当前更新状态
-// status 枚举值 1:编辑中,0:完成编辑, 2:只做查询
-func UpdateSmartReportEditing(reportId, status, thisUserId int, thisUserName string, adminIdName map[int]string, lang string) (ret models.MarkReportResp, err error) {
-	key := fmt.Sprint(utils.CACHE_SMART_REPORT_EDITING, reportId)
-	ret.Status = 0
-	ret.Msg = "无人编辑"
-
-	opUserId, e := utils.Rc.RedisInt(key)
-	var opUser models.MarkReportItem
-	var classifyNameFirst string
-	if e != nil {
-		opUserInfoStr, tErr := utils.Rc.RedisString(key)
-		if tErr == nil {
-			tErr = json.Unmarshal([]byte(opUserInfoStr), &opUser)
-			if tErr == nil {
-				opUserId = opUser.AdminId
-			}
-		}
-	}
-
-	if opUserId > 0 && opUserId != thisUserId {
-		editor := opUser.Editor
-		if editor == "" {
-			editor = adminIdName[opUserId]
-		}
-		ret.Status = 1
-		if lang == utils.EnLangVersion {
-			ret.Msg = fmt.Sprintf("%s is currently editing the report", editor)
-		} else {
-			ret.Msg = fmt.Sprintf("当前%s正在编辑报告", editor)
-		}
-		ret.Editor = editor
-		return
-	}
-
-	if status == 1 {
-		nowUser := &models.MarkReportItem{AdminId: thisUserId, Editor: thisUserName, ReportClassifyNameFirst: classifyNameFirst}
-		bt, e := json.Marshal(nowUser)
-		if e != nil {
-			err = fmt.Errorf("格式化编辑者信息失败")
-			return
-		}
-		if opUserId > 0 {
-			utils.Rc.Do("SETEX", key, int64(180), string(bt)) //3分钟缓存
-		} else {
-			utils.Rc.SetNX(key, string(bt), time.Second*60*3) //3分钟缓存
-		}
-	} else if status == 0 {
-		//清除编辑缓存
-		_ = utils.Rc.Delete(key)
-	}
-	return
-}
-
-// SmartReportElasticUpsert 新增/编辑报告es
-func SmartReportElasticUpsert(smartReportId int, state int) (err error) {
-	if smartReportId <= 0 {
-		return
-	}
-
-	reportOB := new(smart_report.SmartReport)
-	item, e := reportOB.GetItemById(smartReportId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			// 可能被删了就直接忽略掉
-			return
-		}
-		err = fmt.Errorf("获取报告失败, Err: %s", e.Error())
-		return
-	}
-
-	esReport := new(smart_report.ElasticSmartReport)
-	esReport.SmartReportId = item.SmartReportId
-	esReport.Title = item.Title
-	esReport.Abstract = item.Abstract
-	esReport.BodyContent = utils.TrimHtml(html.UnescapeString(item.Content))
-	esReport.PublishTime = item.PublishTime.Format(utils.FormatDateTime)
-	esReport.PublishState = state
-	esReport.Author = item.Author
-	esReport.ClassifyIdFirst = item.ClassifyIdFirst
-	esReport.ClassifyNameFirst = item.ClassifyNameFirst
-	esReport.ClassifyIdSecond = item.ClassifyIdSecond
-	esReport.ClassifyNameSecond = item.ClassifyNameSecond
-	esReport.StageStr = strconv.Itoa(item.Stage)
-	esReport.Frequency = item.Frequency
-	if err = EsAddOrEditSmartReport(utils.SmartReportIndexName, strconv.Itoa(item.SmartReportId), esReport); err != nil {
-		return
-	}
-	return
-}
-
 func ReportToPdf(width int, reportUrl, filePath string) (err error) {
 	pyCode := `
 import asyncio
@@ -315,6 +191,7 @@ func Report2pdfAndJpeg(reportUrl string, reportId, reportType int) {
 	pdfPath := `./static/` + reportCode + ".pdf"
 	jpegPath := `./static/` + reportCode + ".jpg"
 
+	// 生成pdf
 	width := 1560
 	if reportType == 3 {
 		width = 800
@@ -363,6 +240,7 @@ func Report2pdfAndJpeg(reportUrl string, reportId, reportType int) {
 
 	time.Sleep(1 * time.Minute)
 
+	// 生成图片
 	err = ReportToJpeg(width, reportUrl, jpegPath)
 	if err != nil {
 		utils.FileLog.Info("ReportToJpeg failed: , error: \n" + err.Error())

+ 0 - 68
services/system.go

@@ -1,10 +1,8 @@
 package services
 
 import (
-	"eta_gn/eta_api/models/company"
 	"eta_gn/eta_api/models/system"
 	"eta_gn/eta_api/utils"
-	"fmt"
 )
 
 func GetRoleTypeCode(roleType string) string {
@@ -36,72 +34,6 @@ func GetRoleTypeCode(roleType string) string {
 	return roleTypeCode
 }
 
-// CheckAdminIsSameBigGroup 判断是否两个系统用户是否同一个大组内
-func CheckAdminIsSameBigGroup(adminInfo1, adminInfo2 *system.Admin) (isSame bool, err error) {
-	// 如果销售和创建人是同一个小组
-	if adminInfo1.GroupId == adminInfo2.GroupId {
-		isSame = true
-		return
-	}
-	var admin1BigGroupId, admin2BigGroupId int
-
-	//获取第一个系统用户的大组id
-	{
-		//获取该账号的大组id
-		pid, tmpErr := company.GetParentIdFromGroup(adminInfo1.GroupId)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		if pid != nil && *pid > 0 {
-			//该账号放在了三级分组下
-			admin1BigGroupId = *pid
-		} else {
-			//该账号放在了二级分组下
-			admin1BigGroupId = adminInfo1.GroupId
-		}
-	}
-
-	//获取第二个系统用户的大组id
-	{
-		//获取该账号的大组id
-		pid, tmpErr := company.GetParentIdFromGroup(adminInfo2.GroupId)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-		if pid != nil && *pid > 0 {
-			//该账号放在了三级分组下
-			admin2BigGroupId = *pid
-		} else {
-			//该账号放在了二级分组下
-			admin2BigGroupId = adminInfo2.GroupId
-		}
-	}
-
-	if admin1BigGroupId == admin2BigGroupId {
-		isSame = true
-		return
-	}
-	return
-}
-
-// CheckRaiAdmin 判断是否为权益内部人员
-func CheckRaiAdmin(adminId int) (isRai bool, err error) {
-	raiAdmins, e := system.GetRaiAdmin()
-	if e != nil {
-		err = fmt.Errorf("获取权益内部人员失败, GetRaiAdmin Err: %s", e.Error())
-		return
-	}
-	for _, r := range raiAdmins {
-		if adminId == r.AdminId {
-			isRai = true
-			break
-		}
-	}
-	return
-}
-
 // GetMenuTreeRecursive 递归菜单树
 func GetMenuTreeRecursive(list []*system.SysMenuItem, parentId int) []*system.SysMenuItem {
 	res := make([]*system.SysMenuItem, 0)

+ 0 - 56
services/target.go

@@ -1,56 +0,0 @@
-package services
-
-import (
-	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/system"
-	"eta_gn/eta_api/utils"
-)
-
-// 新增指标数据
-func AddEdbItem(secName, unit, frequency string, classifyId int, sysUser *system.Admin) (errMsg string) {
-	//保存edb数据
-	tradeCode, err := models.GetMaxTradeCode()
-	if err != nil {
-		errMsg = "获取最大交易编码失败,Err:" + err.Error()
-		return
-	}
-
-	if tradeCode == "" {
-		errMsg = "最大编码为空"
-		return
-	}
-	maxTradeCode, err := utils.GetMaxTradeCode(tradeCode)
-	if err != nil {
-		errMsg = "获取编码信息失败,Err:" + err.Error()
-		return
-	}
-	if maxTradeCode == "" {
-		errMsg = "编码为空,请联系技术"
-		return
-	}
-	if secName == "" {
-		errMsg = "指标名称不能为空"
-		return
-	}
-	item, err := models.GetEdbinfoBySecName(secName)
-	if err != nil && !utils.IsErrNoRow(err) {
-		errMsg = "获取信息失败,Err:" + err.Error()
-		return
-	}
-	if item != nil {
-		errMsg = "指标名称已存在"
-		return
-	}
-	err = models.AddEdbinfo(maxTradeCode, secName, unit, "手动", frequency, "", classifyId, sysUser.AdminId, sysUser.RealName)
-	if err != nil {
-		errMsg = "新增失败,Err:" + err.Error()
-		return
-	}
-	err = models.AddEdbinfoUser(maxTradeCode, sysUser.Mobile)
-	if err != nil {
-		errMsg = "新增失败,Err:" + err.Error()
-		return
-	}
-
-	return
-}

+ 1 - 28
utils/email.go

@@ -6,7 +6,7 @@ import (
 	"strings"
 )
 
-//发送邮件
+// 发送邮件
 func SendEmail(title, content string, touser string) bool {
 	if RunMode == "debug" {
 		FileLog.Info(fmt.Sprint(title, ";", content))
@@ -33,30 +33,3 @@ func SendEmail(title, content string, touser string) bool {
 	}
 	return true
 }
-
-//发送邮件
-func SendEmailByHz(title, content string, touser string) (result bool, err error) {
-	var arr []string
-	sub := strings.Index(touser, ";")
-	if sub >= 0 {
-		spArr := strings.Split(touser, ";")
-		for _, v := range spArr {
-			arr = append(arr, v)
-		}
-	} else {
-		arr = append(arr, touser)
-	}
-	m := gomail.NewMessage()
-	m.SetHeader("From", "public@hzinsights.com")
-	m.SetHeader("To", arr...)
-	m.SetHeader("Subject", title)
-	m.SetBody("text/html", content)
-	d := gomail.NewDialer("smtp.mxhichina.com", 465, "public@hzinsights.com", "Hzinsights2018")
-	if err := d.DialAndSend(m); err != nil {
-		fmt.Println("DialAndSend Err:" + err.Error())
-		result = false
-		return result, err
-	}
-	result = true
-	return
-}