Browse Source

Merge branch 'edb_data/v8.0' into debug

# Conflicts:
#	services/task.go
Roc 3 years ago
parent
commit
c54874096d

+ 39 - 0
models/base.go

@@ -0,0 +1,39 @@
+package models
+
+type BaseResponse struct {
+	Ret         int
+	Msg         string
+	ErrMsg      string
+	ErrCode     string
+	Data        interface{}
+	Success     bool `description:"true 执行成功,false 执行失败"`
+	IsSendEmail bool `json:"-" description:"true 发送邮件,false 不发送邮件"`
+	IsAddLog    bool `json:"-" description:"true 新增操作日志,false 不新增操作日志" `
+}
+
+type BaseResponseRef struct {
+	Ret     int
+	Msg     string
+	ErrMsg  string
+	ErrCode string
+	Data    string
+}
+
+type BaseResponseResult struct {
+	Ret     int    `description:"状态:200 成功,408 重新登录,403:为失败"`
+	Msg     string `description:"提示信息,对用户展示"`
+	ErrMsg  string `description:"错误信息,供开发定位问题"`
+	ErrCode string `description:"错误编码,预留"`
+	Data    string `description:"返回数据,json格式字符串"`
+}
+
+func (r *BaseResponse) Init() *BaseResponse {
+	return &BaseResponse{Ret: 403, IsSendEmail: true}
+}
+
+type BaseRequest struct {
+}
+
+func (br *BaseRequest) Init() *BaseRequest {
+	return &BaseRequest{}
+}

+ 39 - 13
models/company_report_permission.go

@@ -1,8 +1,8 @@
 package models
 
 import (
-	"hongze/hongze_task/utils"
 	"github.com/rdlucklib/rdluck_tools/orm"
+	"hongze/hongze_task/utils"
 	"time"
 )
 
@@ -12,13 +12,13 @@ type CompanyReportPermission struct {
 	ProductId                 int       `description:"产品id"`
 	ProductName               string    `description:"产品名称"`
 	ReportPermissionId        int       `description:"权限id(作废)"`
-	Status          		  string	`description:"状态"`
+	Status                    string    `description:"状态"`
 	CreatedTime               time.Time `description:"创建时间"`
 	LastUpdatedTime           time.Time `description:"更新时间"`
 	ChartPermissionId         int       `description:"大分类ID"`
-	StartDate       string    `description:"合同开始日期"`
-	EndDate         string    `description:"合同结束日期"`
-	ModifyTime         string    `description:"更新时间"`
+	StartDate                 string    `description:"合同开始日期"`
+	EndDate                   string    `description:"合同结束日期"`
+	ModifyTime                string    `description:"更新时间"`
 }
 
 func GetCompanyReportPermission(companyId int) (items []*CompanyReportPermission, err error) {
@@ -33,14 +33,24 @@ func AddCompanyReportPermission(item *CompanyReportPermission) (err error) {
 	return
 }
 
-func ModifyCompanyOldPermission(startDate, endDate, productName string, companyId, productId int) (err error){
+func ModifyCompanyOldPermission(startDate, endDate, productName string, companyId, productId int) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE company_report_permission SET start_date=?,end_date=?,product_id=?,product_name=?,modify_time=NOW() WHERE company_id=? AND start_date IS NULL `
-	_,err=o.Raw(sql, startDate, endDate, productId, productName, companyId).Exec()
+	_, err = o.Raw(sql, startDate, endDate, productId, productName, companyId).Exec()
+	return
+}
+
+// GetCompanyReportPermissionNeedTryOut 获取需要正式转关闭的产品权益
+func GetCompanyReportPermissionNeedTryOut(endDate string) (items []*CompanyReportPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *
+          FROM company_report_permission
+			WHERE status='正式' AND end_date<=?`
+	_, err = o.Raw(sql, endDate).QueryRows(&items)
 	return
 }
 
-//获取需要关闭的产品权益
+// GetCompanyReportPermissionNeedClose 获取需要关闭的产品权限
 func GetCompanyReportPermissionNeedClose(endDate string) (items []*CompanyReportPermission, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *
@@ -50,12 +60,28 @@ func GetCompanyReportPermissionNeedClose(endDate string) (items []*CompanyReport
 	return
 }
 
-//关闭用户权限
-func CompanyReportPermissionClose(companyReportPermissionId int64,companyId, productId int) (err error) {
+// CompanyReportPermissionTryOut 正式转试用用户权限
+func CompanyReportPermissionTryOut(companyReportPermissionId int64, companyId, productId int) (err error) {
+	startDate := time.Now().Format(utils.FormatDate)
+	endDate := time.Now().AddDate(0, 2, 0).Format(utils.FormatDate)
+	o := orm.NewOrm()
+	//修改产品权限状态为关闭
+	//sql := `UPDATE company_report_permission SET status='试用',modify_time=NOW() WHERE company_report_permission_id = ? AND company_id= ? AND product_id = ? `
+	sql := `UPDATE company_report_permission SET status='试用',start_date=?,end_date=?,modify_time=NOW() WHERE company_report_permission_id = ? AND company_id= ? AND product_id = ? `
+	_, err = o.Raw(sql, startDate, endDate, companyReportPermissionId, companyId, productId).Exec()
+	//_, err = o.Raw(sql, companyReportPermissionId, companyId, productId).Exec()
+	if err != nil {
+		return err
+	}
+	return
+}
+
+// CompanyReportPermissionClose 关闭用户权限
+func CompanyReportPermissionClose(companyReportPermissionId int64, companyId, productId int) (err error) {
 	o := orm.NewOrm()
 	//修改产品权限状态为关闭
 	sql := `UPDATE company_report_permission SET status='关闭',modify_time=NOW() WHERE company_report_permission_id = ? AND company_id= ? AND product_id = ? `
-	_, err = o.Raw(sql, companyReportPermissionId,companyId, productId).Exec()
+	_, err = o.Raw(sql, companyReportPermissionId, companyId, productId).Exec()
 	if err != nil {
 		return err
 	}
@@ -63,13 +89,13 @@ func CompanyReportPermissionClose(companyReportPermissionId int64,companyId, pro
 }
 
 //查询是否存在还未过期的产品权限
-func GetCompanyReportPermissionCount(companyId, productId int) (count int,err error) {
+func GetCompanyReportPermissionCount(companyId, productId int) (count int, err error) {
 	o := orm.NewOrm()
 	startDate := time.Now().Format(utils.FormatDate)
 	countSql := `SELECT
 			COUNT(company_report_permission_id ) AS COUNT
 			FROM company_report_permission WHERE status in ('试用','正式') AND end_date >= ? AND company_id= ? AND product_id = ? `
 
-	err = o.Raw(countSql, startDate,companyId,productId).QueryRow(&count)
+	err = o.Raw(countSql, startDate, companyId, productId).QueryRow(&count)
 	return
 }

+ 92 - 0
models/data_manage/table_data.go

@@ -0,0 +1,92 @@
+package data_manage
+
+import (
+	"github.com/rdlucklib/rdluck_tools/orm"
+	"time"
+)
+
+type TableData struct {
+	TableDataId       int       `orm:"column(table_data_id);pk"`
+	TableInfoId       int       `description:"表格id"`
+	Date              time.Time `description:"指标时间"`
+	DataCol1          string    `orm:"column(data_col_1);" description:"第1个表格的数据"`
+	DataCol2          string    `orm:"column(data_col_2);" description:"第2个表格的数据"`
+	DataCol3          string    `orm:"column(data_col_3);" description:"第3个表格的数据"`
+	DataCol4          string    `orm:"column(data_col_4);" description:"第4个表格的数据"`
+	DataCol5          string    `orm:"column(data_col_5);" description:"第5个表格的数据"`
+	DataCol6          string    `orm:"column(data_col_6);" description:"第6个表格的数据"`
+	DataCol7          string    `orm:"column(data_col_7);" description:"第7个表格的数据"`
+	DataCol8          string    `orm:"column(data_col_8);" description:"第8个表格的数据"`
+	DataCol9          string    `orm:"column(data_col_9);" description:"第9个表格的数据"`
+	DataCol10         string    `orm:"column(data_col_10);" description:"第10个表格的数据"`
+	DataType          int8      `description:"数据类型,默认的区间数据是 1;插入数据是 2"`
+	Sort              int       `description:"排序字段,越小越靠前"`
+	AfterTableDataId  int       `description:"在某个表格数据id后面"`
+	BeforeTableDataId int       `description:"在某个表格数据id前面"`
+	ModifyTime        time.Time `description:"修改时间"`
+	CreateTime        time.Time `description:"创建时间"`
+}
+
+// GetBetweenTableDataListByTableInfoId 根据表格id获取数据列表
+func GetBetweenTableDataListByTableInfoId(tableInfoId, dataType int) (items []*TableData, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT * FROM table_data WHERE table_info_id = ? and after_table_data_id =0  and before_table_data_id =0 `
+	_, err = o.Raw(sql, tableInfoId).QueryRows(&items)
+	return
+}
+
+// GetInsertTableDataListByTableInfoId 根据表格id获取区间数据列表
+func GetInsertTableDataListByTableInfoId(tableInfoId, dataType int) (items []*TableData, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	pars := make([]interface{}, 0)
+	pars = append(pars, tableInfoId)
+
+	sql := ` SELECT * FROM table_data WHERE table_info_id = ? and data_type=2 and (after_table_data_id !=0 and before_table_data_id != 0) `
+	if dataType > 0 {
+		sql += ` and data_type=? `
+		pars = append(pars, dataType)
+	}
+	_, err = o.Raw(sql, pars...).QueryRows(&items)
+	return
+}
+
+// GetTableDataListByTableInfoId 根据表格id获取插入数据列表
+func GetTableDataListByTableInfoId(tableInfoId int) (items []*TableData, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	pars := make([]interface{}, 0)
+	pars = append(pars, tableInfoId)
+
+	sql := ` SELECT * FROM table_data WHERE table_info_id = ? order by sort asc `
+
+	_, err = o.Raw(sql, tableInfoId).QueryRows(&items)
+	return
+}
+
+// GetBetweenTableDataByTableInfoIdAndDate 根据表格id获取区间数据
+func GetBetweenTableDataByTableInfoIdAndDate(tableInfoId int, date string) (item *TableData, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT * FROM table_data WHERE table_info_id = ? and date = ? and after_table_data_id =0 `
+	err = o.Raw(sql, tableInfoId, date).QueryRow(&item)
+	return
+}
+
+// GetMaxSortByTableInfoId 根据表格id获取最大排序
+func GetMaxSortByTableInfoId(tableInfoId int) (sort int, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT max(sort) FROM table_data WHERE table_info_id = ?  `
+	err = o.Raw(sql, tableInfoId).QueryRow(&sort)
+	return
+}
+
+// ExecTableDataSql 执行ETA表格的sql
+func ExecTableDataSql(sql string) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	_, err = o.Raw(sql).Exec()
+	return
+}

+ 52 - 0
models/data_manage/table_edb_mapping.go

@@ -0,0 +1,52 @@
+package data_manage
+
+import (
+	"github.com/rdlucklib/rdluck_tools/orm"
+	"time"
+)
+
+// TableEdbMapping ETA表格指标关系表
+type TableEdbMapping struct {
+	TableEdbMappingId int       `orm:"column(table_edb_mapping_id);pk"`
+	TableInfoId       int       `description:"表格id"`
+	EdbInfoId         int       `description:"指标id"`
+	UniqueCode        string    `description:"唯一编码"`
+	EdbDataColIndex   int       `description:"指标数据对应的列,从1开始"`
+	EndDate           time.Time `description:"最后一次数据更新日期"`
+	ModifyTime        time.Time `description:"修改时间"`
+	CreateTime        time.Time `description:"创建时间"`
+}
+
+// TableEdbMappingItem ETA表格指标关系表
+type TableEdbMappingItem struct {
+	TableEdbMappingId int       ``
+	TableInfoId       int       `description:"表格id"`
+	EdbInfoId         int       `description:"指标id"`
+	Source            int       `description:"指标来源"`
+	UniqueCode        string    `description:"唯一编码"`
+	EdbDataColIndex   int       `description:"指标数据对应的列,从1开始"`
+	EndDate           time.Time `description:"最后一次数据更新日期"`
+	EdbDataEndDate    time.Time `description:"指标数据更新结束日期"`
+	ModifyTime        time.Time `description:"修改时间"`
+	CreateTime        time.Time `description:"创建时间"`
+}
+
+// GetAllTableEdbMappingItemList 获取所有的 ETA表格指标关系列表数据
+func GetAllTableEdbMappingItemList() (items []*TableEdbMappingItem, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` select a.*,b.source,b.end_date edb_data_end_date from table_edb_mapping a 
+ join edb_info b on a.edb_info_id=b.edb_info_id `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+// GetAllTableEdbMappingItemListByTableInfoId 根据表格id获取ETA表格所有的指标关系列表数据
+func GetAllTableEdbMappingItemListByTableInfoId(tableInfoId int) (items []*TableEdbMappingItem, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` select a.*,b.source,b.end_date edb_data_end_date from table_edb_mapping a 
+ join edb_info b on a.edb_info_id=b.edb_info_id where a.table_info_id = ?`
+	_, err = o.Raw(sql, tableInfoId).QueryRows(&items)
+	return
+}

+ 108 - 0
models/data_manage/table_info.go

@@ -0,0 +1,108 @@
+package data_manage
+
+import (
+	"github.com/rdlucklib/rdluck_tools/orm"
+	"time"
+)
+
+type TableInfo struct {
+	TableInfoId     int       `orm:"column(table_info_id);pk"`
+	TableName       string    `description:"表格名称"`
+	UniqueCode      string    `description:"表格唯一编码"`
+	TableClassifyId int       `description:"表格分类id"`
+	SysUserId       int       `description:"操作人id"`
+	SysUserRealName string    `description:"操作人真实姓名"`
+	StartDate       time.Time `description:"开始日期"`
+	EdbInfoIds      string    `description:"指标id"`
+	TableType       int       `description:"表格类型,1:指标+日期"`
+	TableImage      string    `description:"图表图片"`
+	Sort            int       `description:"排序字段,数字越小越排前面"`
+	EdbEndDate      time.Time `description:"指标最后更新日期"`
+	ModifyTime      time.Time
+	CreateTime      time.Time
+}
+
+type TableInfoItem struct {
+	TableInfoId     int    `description:"图表id"`
+	TableName       string `description:"图表名称"`
+	TableClassifyId int    `description:"图表分类"`
+}
+
+//图表检索数据
+type TableInfoSearch struct {
+	EdbCode   string `description:"图表编码"`
+	StartDate string `description:"起始日期"`
+	EndDate   string `description:"终止日期"`
+	DataList  []*EdbInfoSearchData
+}
+
+// GetTableInfoById 根据id获取表格详情
+func GetTableInfoById(tableInfoId int) (item *TableInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT * FROM table_info WHERE table_info_id=? `
+	err = o.Raw(sql, tableInfoId).QueryRow(&item)
+	return
+}
+
+// GetAllTableInfoList 获取所有的 ETA表格信息
+func GetAllTableInfoList() (items []*TableInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` select * from table_info order by table_info_id desc`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+func GetTableInfoByCondition(condition string, pars []interface{}) (item *TableInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT * FROM table_info WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&item)
+	return
+}
+
+func ModifyTableInfoModifyTime(tableInfoId int64) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` UPDATE  table_info SET modify_time = NOW() WHERE table_info_id = ? `
+	_, err = o.Raw(sql, tableInfoId).Exec()
+	return
+}
+
+// TableDataList 表格数据
+type TableDataList struct {
+	Date      string `description:"指标日期"`
+	DataCol1  string `description:"第1个表格的数据"`
+	DataCol2  string `description:"第2个表格的数据"`
+	DataCol3  string `description:"第3个表格的数据"`
+	DataCol4  string `description:"第4个表格的数据"`
+	DataCol5  string `description:"第5个表格的数据"`
+	DataCol6  string `description:"第6个表格的数据"`
+	DataCol7  string `description:"第7个表格的数据"`
+	DataCol8  string `description:"第8个表格的数据"`
+	DataCol9  string `description:"第9个表格的数据"`
+	DataCol10 string `description:"第10个表格的数据"`
+	DataType  int8   `description:"数据类型,默认的区间数据是 1;插入数据是 2"`
+	Sort      int    `description:"排序字段,越小越靠前"`
+}
+
+// Update 更新图表基础信息
+func (tableInfo *TableInfo) Update(cols []string) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	_, err = o.Update(tableInfo, cols...)
+	return
+}
+
+// GetTableInfoByClassifyIdAndName 根据分类id和图表名获取图表信息
+func GetTableInfoByClassifyIdAndName(classifyId int, tableName string) (item *TableInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT * FROM table_info WHERE table_classify_id = ? and table_name=? `
+	err = o.Raw(sql, classifyId, tableName).QueryRow(&item)
+	return
+}

+ 8 - 0
models/db.go

@@ -95,3 +95,11 @@ func init() {
 		new(data_manage.EdbDataLt),               //路透指标数据表
 	)
 }
+
+func initEdb() {
+	orm.RegisterModel(
+		new(data_manage.TableData),
+		new(data_manage.TableEdbMapping),
+		new(data_manage.TableInfo),
+	)
+}

+ 1 - 0
models/free_viewer.go

@@ -17,6 +17,7 @@ func GetFreeViewerDetails(startTime, endTime string) (items []*FreeViewerDetails
 	LEFT JOIN user_view_history uvh on u.user_id = uvh.user_id
     INNER JOIN user_record AS c ON u.user_id=c.user_id
 	where u.company_id = 1
+	and u.is_deal=0
 	and u.apply_method<>2
 	and u.mobile is not null
 	AND u.mobile<>''

+ 62 - 27
services/company_report_permission.go

@@ -1,18 +1,53 @@
 package services
 
 import (
+	"context"
 	"fmt"
 	"hongze/hongze_task/models"
 	"hongze/hongze_task/utils"
 	"time"
-	"context"
 )
 
+// CompanyReportPermissionTryOut 产品正式权限  ->  产品权限试用
+func CompanyReportPermissionTryOut(cont context.Context) (err error) {
+	//fmt.Println("开始进入产品试用权限  ->  产品权限关闭")
+	endDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	items, err := models.GetCompanyReportPermissionNeedTryOut(endDate)
+
+	if err != nil {
+		utils.FileLog.Info("GetCompanyReportPermissionNeedTryOut Err:%s" + err.Error())
+		return
+	}
+
+	for _, v := range items {
+		//fmt.Println(k, v)
+		//continue
+		//查看是否有审批单,如果有审批单,那么就退出当前循环,进入下一循环
+
+		//count, err := models.GetCompanyApprovalCount(v.CompanyId, v.ProductId)
+		//if err != nil {
+		//	continue
+		//}
+		//if count > 0 {
+		//	continue
+		//}
+
+		//正式转试用用户产品权限
+		err = models.CompanyReportPermissionTryOut(v.CompanyReportPermissionId, v.CompanyId, v.ProductId)
+		if err != nil {
+			utils.FileLog.Info("CompanyReportPermissionTryOut Err:%s" + err.Error())
+			continue
+		}
+		//添加正式转试用用户产品权限日志
+		_ = AddCompanyReportPermissionLog(v.CompanyReportPermissionId, v.CompanyId, v.ProductId, utils.AdminId, v.ProductName, utils.RealName, "正式转试用", "try_out", v.Status)
+	}
+	return
+}
 
 //产品试用权限  ->  产品权限关闭
 func CompanyReportPermissionClose(cont context.Context) (err error) {
 	//fmt.Println("开始进入产品试用权限  ->  产品权限关闭")
-	endDate := time.Now().AddDate(0,0,-1).Format(utils.FormatDate)
+	endDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
 	items, err := models.GetCompanyReportPermissionNeedClose(endDate)
 
 	if err != nil {
@@ -27,7 +62,7 @@ func CompanyReportPermissionClose(cont context.Context) (err error) {
 		//fmt.Println(k, v)
 		//continue
 		//查看是否有审批单,如果有审批单,那么就退出当前循环,进入下一循环
-		count, err := models.GetCompanyApprovalCount(v.CompanyId,v.ProductId)
+		count, err := models.GetCompanyApprovalCount(v.CompanyId, v.ProductId)
 		if err != nil {
 			continue
 		}
@@ -36,33 +71,33 @@ func CompanyReportPermissionClose(cont context.Context) (err error) {
 		}
 
 		//关闭用户产品权限
-		err = models.CompanyReportPermissionClose(v.CompanyReportPermissionId,v.CompanyId, v.ProductId)
+		err = models.CompanyReportPermissionClose(v.CompanyReportPermissionId, v.CompanyId, v.ProductId)
 		if err != nil {
 			utils.FileLog.Info("CompanyReportPermissionClose Err:%s" + err.Error())
 			continue
 		}
 		//添加关闭用户产品权限日志
-		_ = AddCompanyReportPermissionLog(v.CompanyReportPermissionId,v.CompanyId,v.ProductId,utils.AdminId,v.ProductName,utils.RealName,"试用转关闭","close",v.Status)
+		_ = AddCompanyReportPermissionLog(v.CompanyReportPermissionId, v.CompanyId, v.ProductId, utils.AdminId, v.ProductName, utils.RealName, "试用转关闭", "close", v.Status)
 
 		//如果不存在该数据,那么将该数据放入待处理用户产品权限列表
-		mapKey := fmt.Sprintf("%v_%v",v.CompanyId,v.ProductId)
-		if _,ok := freezeCompanyProductList[mapKey];ok==false{
+		mapKey := fmt.Sprintf("%v_%v", v.CompanyId, v.ProductId)
+		if _, ok := freezeCompanyProductList[mapKey]; ok == false {
 			freezeCompanyProductList[mapKey] = v
 		}
 
 	}
 
 	//遍历待处理的用户产品权限列表,查询用户产品权限信息并冻结用户产品
-	for _,companyReportPermission := range freezeCompanyProductList{
+	for _, companyReportPermission := range freezeCompanyProductList {
 		go queryAndFreezeCompanyProduct(companyReportPermission)
 	}
 	return
 }
 
 //查询用户产品权限信息并冻结用户产品
-func queryAndFreezeCompanyProduct(companyReportPermission *models.CompanyReportPermission){
+func queryAndFreezeCompanyProduct(companyReportPermission *models.CompanyReportPermission) {
 	//查询该用户名下是否存在还在使用的权限
-	count,err := models.GetCompanyReportPermissionCount(companyReportPermission.CompanyId, companyReportPermission.ProductId)
+	count, err := models.GetCompanyReportPermissionCount(companyReportPermission.CompanyId, companyReportPermission.ProductId)
 	if err != nil {
 		utils.FileLog.Info("CompanyReportPermissionClose query other permission Err:%s" + err.Error())
 	}
@@ -72,18 +107,18 @@ func queryAndFreezeCompanyProduct(companyReportPermission *models.CompanyReportP
 	}
 
 	//冻结该用户产品
-	_,err = models.CompanyFreeze(companyReportPermission.CompanyId, companyReportPermission.ProductId)
+	_, err = models.CompanyFreeze(companyReportPermission.CompanyId, companyReportPermission.ProductId)
 	if err != nil {
 		go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode+";冻结该用户产品", "services:queryAndFreezeCompanyProduct;Err"+err.Error(), utils.EmailSendToUsers)
 		return
 	}
 
 	//查询用户产品信息
-	companyProduct ,err := models.GetCompanyProduct(companyReportPermission.CompanyId,companyReportPermission.ProductId)
+	companyProduct, err := models.GetCompanyProduct(companyReportPermission.CompanyId, companyReportPermission.ProductId)
 	//if err!=nil && err.Error() != utils.ErrNoRow() {
 	if err != nil {
-		if err.Error() != utils.ErrNoRow(){
-			go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode+";查询用户产品信息", fmt.Sprint("services:queryAndFreezeCompanyProduct;Err"+err.Error(),"CompanyId:",companyReportPermission.CompanyId,";ProductId:",companyReportPermission.ProductId), utils.EmailSendToUsers)
+		if err.Error() != utils.ErrNoRow() {
+			go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode+";查询用户产品信息", fmt.Sprint("services:queryAndFreezeCompanyProduct;Err"+err.Error(), "CompanyId:", companyReportPermission.CompanyId, ";ProductId:", companyReportPermission.ProductId), utils.EmailSendToUsers)
 		}
 		//go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode+";查询用户产品信息", fmt.Sprint("services:queryAndFreezeCompanyProduct;Err"+err.Error(),"CompanyId:",companyReportPermission.CompanyId,";ProductId:",companyReportPermission.ProductId), utils.EmailSendToUsers)
 		return
@@ -102,22 +137,22 @@ func queryAndFreezeCompanyProduct(companyReportPermission *models.CompanyReportP
 }
 
 //添加用户权限操作日志
-func AddCompanyReportPermissionLog(companyReportPermissionId int64,companyId,productId,sysUserId int,productName string,sysUserName,remark,operation,status string) (err error) {
+func AddCompanyReportPermissionLog(companyReportPermissionId int64, companyId, productId, sysUserId int, productName string, sysUserName, remark, operation, status string) (err error) {
 	record := models.CompanyReportPermissionLog{
-		CompanyReportPermissionId : companyReportPermissionId,
-		CompanyId : companyId,
-		ProductId : productId,
-		ProductName : productName,
-		SysUserId : sysUserId,
-		SysUserName : sysUserName,
-		Remark : remark,
-		Operation : operation,
-		Status : status,
-		CreateTime : time.Now(),
+		CompanyReportPermissionId: companyReportPermissionId,
+		CompanyId:                 companyId,
+		ProductId:                 productId,
+		ProductName:               productName,
+		SysUserId:                 sysUserId,
+		SysUserName:               sysUserName,
+		Remark:                    remark,
+		Operation:                 operation,
+		Status:                    status,
+		CreateTime:                time.Now(),
 	}
 	_, err = models.AddCompanyReportPermissionLog(&record)
-	if err != nil{
+	if err != nil {
 		go utils.SendEmail(utils.APPNAME+"失败提醒"+utils.RunMode, "services:AddCompanyReportPermissionLog;Err"+err.Error(), utils.EmailSendToUsers)
 	}
 	return
-}
+}

+ 148 - 0
services/data/base_edb_lib.go

@@ -0,0 +1,148 @@
+package data
+
+import (
+	"encoding/json"
+	"fmt"
+	"hongze/hongze_task/models"
+	"hongze/hongze_task/utils"
+	"io/ioutil"
+	"net/http"
+	"strings"
+)
+
+//新增指标数据
+func AddEdbData(source int, edbCode string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	urlStr := ``
+	switch source {
+	case utils.DATA_SOURCE_THS:
+		urlStr = "/ths/add"
+	case utils.DATA_SOURCE_WIND:
+		urlStr = "/wind/add"
+	case utils.DATA_SOURCE_PB:
+		urlStr = "/pb/add"
+	case utils.DATA_SOURCE_MANUAL:
+		urlStr = "/manual/add"
+	case utils.DATA_SOURCE_LZ:
+		urlStr = "/lz/add"
+	case utils.DATA_SOURCE_YS:
+		urlStr = "/smm/add"
+	case utils.DATA_SOURCE_GL:
+		urlStr = "/mysteel/add"
+	case utils.DATA_SOURCE_ZZ:
+		urlStr = "/zz/add"
+	case utils.DATA_SOURCE_DL:
+		urlStr = "/dl/add"
+	case utils.DATA_SOURCE_SH:
+		urlStr = "/sh/add"
+	case utils.DATA_SOURCE_CFFEX:
+		urlStr = "/cffex/add"
+	case utils.DATA_SOURCE_SHFE:
+		urlStr = "/shfe/add"
+	case utils.DATA_SOURCE_GIE:
+		urlStr = "/gie/add"
+	case utils.DATA_SOURCE_LT:
+		urlStr = "/lt/add"
+	default:
+	}
+	if urlStr == "" {
+		err = fmt.Errorf("未实现该指标的刷新接口,请联系管理员")
+		return
+	}
+	resp, err = postRefreshEdbData(param, urlStr)
+	return
+}
+
+// RefreshEdbData 刷新指标数据
+func RefreshEdbData(edbInfoId, source int, edbCode, startDate string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	param["EdbInfoId"] = edbInfoId
+	param["StartDate"] = startDate
+	urlStr := ``
+	switch source {
+	case utils.DATA_SOURCE_THS:
+		urlStr = "/ths/refresh"
+	case utils.DATA_SOURCE_WIND:
+		urlStr = "/wind/refresh"
+	case utils.DATA_SOURCE_PB:
+		urlStr = "/pb/refresh"
+	case utils.DATA_SOURCE_MANUAL:
+		urlStr = "/manual/refresh"
+	case utils.DATA_SOURCE_LZ:
+		urlStr = "/lz/refresh"
+	case utils.DATA_SOURCE_YS:
+		urlStr = "/smm/refresh"
+	case utils.DATA_SOURCE_GL:
+		urlStr = "/mysteel/refresh"
+	case utils.DATA_SOURCE_ZZ:
+		urlStr = "/zz/refresh"
+	case utils.DATA_SOURCE_DL:
+		urlStr = "/dl/refresh"
+	case utils.DATA_SOURCE_SH:
+		urlStr = "/sh/refresh"
+	case utils.DATA_SOURCE_CFFEX:
+		urlStr = "/cffex/refresh"
+	case utils.DATA_SOURCE_SHFE:
+		urlStr = "/shfe/refresh"
+	case utils.DATA_SOURCE_GIE:
+		urlStr = "/gie/refresh"
+	case utils.DATA_SOURCE_LT:
+		urlStr = "/lt/refresh"
+	}
+	if urlStr == "" {
+		err = fmt.Errorf(fmt.Sprint("source:", source, ";未实现该指标的刷新接口,请联系管理员"))
+		return
+	}
+	resp, err = postRefreshEdbData(param, urlStr)
+	return
+}
+
+// RefreshEdbCalculateData 刷新计算指标数据请求
+func RefreshEdbCalculateData(edbInfoId int, edbCode, startDate string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	param["EdbInfoId"] = edbInfoId
+	param["StartDate"] = startDate
+	resp, err = postRefreshEdbData(param, "/calculate/refresh")
+	return
+}
+
+// postRefreshEdbData 刷新指标数据
+func postRefreshEdbData(param map[string]interface{}, urlStr string) (resp *models.BaseResponse, err error) {
+	postUrl := utils.EDB_LIB_URL + urlStr
+	postData, err := json.Marshal(param)
+	if err != nil {
+		return
+	}
+	result, err := HttpPost(postUrl, string(postData), "application/json")
+	if err != nil {
+		return
+	}
+	err = json.Unmarshal(result, &resp)
+	if err != nil {
+		return
+	}
+	return resp, nil
+}
+
+func HttpPost(url, postData string, params ...string) ([]byte, error) {
+	body := ioutil.NopCloser(strings.NewReader(postData))
+	client := &http.Client{}
+	req, err := http.NewRequest("POST", url, body)
+	if err != nil {
+		return nil, err
+	}
+	contentType := "application/x-www-form-urlencoded;charset=utf-8"
+	if len(params) > 0 && params[0] != "" {
+		contentType = params[0]
+	}
+	req.Header.Set("Content-Type", contentType)
+	req.Header.Set("authorization", utils.MD5(utils.APP_EDB_LIB_NAME_EN+utils.EDB_LIB_Md5_KEY))
+	resp, err := client.Do(req)
+	defer resp.Body.Close()
+	b, err := ioutil.ReadAll(resp.Body)
+	fmt.Println("HttpPost:" + string(b))
+	return b, err
+}

File diff suppressed because it is too large
+ 592 - 262
services/data/edb_info.go


+ 1 - 1
services/data/edb_info_notice.go

@@ -125,7 +125,7 @@ func RefreshNotice() (err error) {
 	allTable += ` </tbody></table></div>`
 	noticeSendBody += allDiv + allTable
 
-	utils.SendEmailByHongze("指标更新情况通知", noticeSendBody, utils.RefreshEdbInfoEmailSendToUsers, "", "")
+	go utils.SendEmailByHongze("指标更新情况通知", noticeSendBody, utils.RefreshEdbInfoEmailSendToUsers, "", "")
 	//utils.SendEmailByHongze("指标更新情况通知", noticeSendBody, "317699326@qq.com", "", "")
 	return
 }

+ 18 - 2
services/data/edb_info_sync.go

@@ -3,10 +3,14 @@ package data
 import (
 	"hongze/hongze_task/models/data_manage"
 	"hongze/hongze_task/utils"
+	"sync"
 )
 
+var lock sync.Mutex
+
 //同步钢炼数据
 func SyncGlDataBase() {
+	lock.Lock()
 	var err error
 	defer func() {
 		if err != nil {
@@ -38,14 +42,18 @@ func SyncGlDataBase() {
 			}
 		}
 	}
+	lock.Unlock()
 }
 
+var lzLock sync.Mutex
 //同步隆重数据
 func SyncLzDataBase() {
+	lzLock.Lock()
 	var err error
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("SyncLzDataBase Err:" + err.Error())
+			go utils.SendEmailByHongze("同步隆众数据失败","同步隆众数据失败 Err:"+err.Error() , utils.RefreshEdbInfoEmailSendToUsers, "", "")
 		}
 	}()
 	var condition string
@@ -72,14 +80,18 @@ func SyncLzDataBase() {
 			}
 		}
 	}
+	lzLock.Unlock()
 }
 
+var smmLock sync.Mutex
 //同步有色数据
 func SyncSmmDataBase() {
+	smmLock.Lock()
 	var err error
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("SyncSmmDataBase Err:" + err.Error())
+			go utils.SendEmailByHongze("同步有色数据失败","同步隆众数据失败 Err:"+err.Error() , utils.RefreshEdbInfoEmailSendToUsers, "", "")
 		}
 	}()
 	var condition string
@@ -107,15 +119,18 @@ func SyncSmmDataBase() {
 			}
 		}
 	}
+	smmLock.Unlock()
 }
 
-
+var manualLock sync.Mutex
 //同步手工数据
 func SyncManualDataBase() {
 	var err error
+	manualLock.Lock()
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("SyncLzDataBase Err:" + err.Error())
+			go utils.SendEmailByHongze("同步手工数据失败","同步手工数据失败 Err:"+err.Error() , utils.RefreshEdbInfoEmailSendToUsers, "", "")
 		}
 	}()
 	var condition string
@@ -144,4 +159,5 @@ func SyncManualDataBase() {
 			}
 		}
 	}
-}
+	manualLock.Unlock()
+}

+ 126 - 0
services/data/table_info.go

@@ -0,0 +1,126 @@
+package data
+
+import (
+	"context"
+	"fmt"
+	"hongze/hongze_task/models/data_manage"
+	"hongze/hongze_task/utils"
+	"strings"
+)
+
+// AppendDataToEdbTable 追加数据到ETA表格
+func AppendDataToEdbTable(cont context.Context) (err error) {
+	errMsgList := make([]string, 0)
+	defer func() {
+		if len(errMsgList) > 0 {
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "追加数据到ETA表格; ErrMsg:"+strings.Join(errMsgList, "\n"), utils.EmailSendToUsers)
+		}
+	}()
+	tableInfoList, err := data_manage.GetAllTableInfoList()
+	if err != nil {
+		errMsgList = append(errMsgList, fmt.Sprint("获取ETA表格列表失败,Err:", err.Error()))
+		return
+	}
+
+	for _, tableInfo := range tableInfoList {
+		edbMappingList, tmpErr := data_manage.GetAllTableEdbMappingItemListByTableInfoId(tableInfo.TableInfoId)
+		if tmpErr != nil {
+			errMsgList = append(errMsgList, fmt.Sprint(tableInfo.TableInfoId, "获取关联关系失败,Err:", tmpErr.Error()))
+			continue
+		}
+
+		dataMap := make(map[string]map[string]float64)
+		dateList := make([]string, 0)
+		mappingMap := make(map[int]string) //指标map的最后一次更新时间
+		for _, v := range edbMappingList {
+			//如果最近更新eta表格数据的时间早于最新数据时间,那么需要查询出该数据并插入到eta表格中
+			if v.EdbDataEndDate.After(v.EndDate) {
+				dataList, tmpErr := data_manage.GetEdbDataListAll(" and edb_info_id=? and data_time > ?", []interface{}{v.EdbInfoId, v.EndDate.Format(utils.FormatDate)}, v.Source, 1)
+				if tmpErr != nil {
+					errMsg := fmt.Sprint(v.TableInfoId, "获取指标数据失败,Err:", tmpErr.Error())
+					errMsgList = append(errMsgList, errMsg)
+					continue
+				}
+				if len(dataList) <= 0 {
+					continue
+				}
+				for _, data := range dataList {
+					//指标map的最后一次更新时间
+					mappingMap[v.TableEdbMappingId] = data.DataTime
+
+					tmpDataMap, ok := dataMap[data.DataTime]
+					if !ok {
+						tmpDataMap = make(map[string]float64)
+						dateList = append(dateList, data.DataTime)
+					}
+					key := fmt.Sprint("data_col_", v.EdbDataColIndex)
+					tmpDataMap[key] = data.Value
+					dataMap[data.DataTime] = tmpDataMap
+				}
+			}
+		}
+
+		fmt.Println(dataMap)
+		fmt.Println(dateList)
+		for _, date := range dateList {
+			tmpErr = insertOrUpdateTableData(tableInfo.TableInfoId, date, dataMap[date])
+			if tmpErr != nil {
+				errMsgList = append(errMsgList, fmt.Sprint(tableInfo.TableInfoId, "插入更新", date, "数据失败,Err:", tmpErr.Error()))
+				continue
+			}
+		}
+
+		for tableEdbMappingId, date := range mappingMap {
+			tmpErr = updateTableEdbMappingEndDate(tableEdbMappingId, date)
+			if tmpErr != nil {
+				errMsgList = append(errMsgList, fmt.Sprint(tableEdbMappingId, "更新最后一次数据更新日期数据失败,Err:", tmpErr.Error()))
+				continue
+			}
+		}
+	}
+	return
+}
+
+// insertOrUpdateTableData 插入/更新ETA表格数据
+func insertOrUpdateTableData(tableInfoId int, date string, dataMap map[string]float64) (err error) {
+	item, err := data_manage.GetBetweenTableDataByTableInfoIdAndDate(tableInfoId, date)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	err = nil
+	sql := ``
+	//如果找不到数据,那么是插入数据
+	if item == nil {
+		sort, tmpErr := data_manage.GetMaxSortByTableInfoId(tableInfoId)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+
+		columnStr := ``
+		valueStr := ``
+		for columnValue, value := range dataMap {
+			columnStr += columnValue + ","
+			valueStr += fmt.Sprint(value, ",")
+		}
+		sort = sort + 1
+		sql = fmt.Sprintf("INSERT INTO `table_data`( `table_info_id`, `date`, %s `data_type`,  `sort`, `modify_time`, `create_time`) VALUES ( %d, '%s', %s 1, %d, now(), now());", columnStr, tableInfoId, date, valueStr, sort)
+
+	} else {
+		updateStr := ``
+		for columnValue, value := range dataMap {
+			updateStr += fmt.Sprint(columnValue, "=", value, ",")
+		}
+		sql = fmt.Sprintf("UPDATE `table_data` SET %s `modify_time` = now() WHERE `table_data_id` = %d;", updateStr, item.TableDataId)
+	}
+	fmt.Println(sql)
+	err = data_manage.ExecTableDataSql(sql)
+	return
+}
+
+func updateTableEdbMappingEndDate(tableEdbMappingId int, endDate string) (err error) {
+	sql := fmt.Sprintf("UPDATE `table_edb_mapping` SET  `end_date` = '%s', `modify_time` = now() WHERE `table_edb_mapping_id` = %d;", endDate, tableEdbMappingId)
+	fmt.Println(sql)
+	err = data_manage.ExecTableDataSql(sql)
+	return
+}

+ 13 - 4
services/data_source_longzhong.go

@@ -15,6 +15,7 @@ import (
 	"github.com/rdlucklib/rdluck_tools/http"
 	"strconv"
 	"strings"
+	"sync"
 	"time"
 )
 
@@ -1050,11 +1051,16 @@ func GetLzSurveyProduct(cont context.Context) (err error) {
 	return
 }
 
+var lzLock sync.Mutex
+
 //隆众-调研指标数据
 func GetLzSurveyProductData(cont context.Context) (err error) {
+	lzLock.Lock()
 	utils.FileLogLz.Info("GetLzSurveyProductData start:" + time.Now().Format(utils.FormatDateTime))
+	go utils.SendEmail("隆众数据开始获取"+time.Now().Format("2006-01-02 15:04:05"), time.Now().Format("2006-01-02 15:04:05"), utils.EmailSendToUsers)
 	var msg string
 	defer func() {
+		go utils.SendEmail("隆众数据获取完成"+time.Now().Format("2006-01-02 15:04:05"), ";msg:"+msg, utils.EmailSendToUsers)
 		if err != nil {
 			fmt.Println("Err:" + err.Error())
 			go utils.SendEmail("获取隆众调研指标数据失败"+time.Now().Format("2006-01-02 15:04:05"), ";Err:"+err.Error(), utils.EmailSendToUsers)
@@ -1080,7 +1086,7 @@ func GetLzSurveyProductData(cont context.Context) (err error) {
 	paramMap["pageSize"] = 100
 
 	//startDate := time.Now().AddDate(-4, 0, 0).UnixNano() / 1e6
-	startDateTime, _ := time.Parse(utils.FormatDate, "2018-01-01")
+	startDateTime, _ := time.Parse(utils.FormatDate, "2021-12-01")
 	startDate := startDateTime.UnixNano() / 1e6
 	endDate := time.Now().AddDate(utils.DATA_END_DATE_LIMIT, 0, 0).UnixNano() / 1e6
 
@@ -1097,9 +1103,9 @@ func GetLzSurveyProductData(cont context.Context) (err error) {
 		//	startDate = endDateTime.UnixNano() / 1e6
 		//}
 		if startDate < 0 {
-			startDate = time.Now().AddDate(-4, 0, 0).UnixNano() / 1e6
+			startDate = time.Now().AddDate(0, -4, 0).UnixNano() / 1e6
 		}
-		fmt.Println("startDate:" + time.Now().AddDate(-4, 0, 0).Format(utils.FormatDate))
+		fmt.Println("startDate:" + time.Now().AddDate(0, -4, 0).Format(utils.FormatDate))
 		fmt.Println("endDate:" + time.Now().Format(utils.FormatDate))
 
 		for {
@@ -1123,7 +1129,7 @@ func GetLzSurveyProductData(cont context.Context) (err error) {
 				return err
 			}
 			utils.FileLogLz.Info("GetLzSurveyProductData:" + string(body))
-			fmt.Println("result:"+string(body))
+			fmt.Println("result:" + string(body))
 			if !strings.Contains(string(body), "<html>") {
 				dataList := new(models.LzSurveyData)
 				err = json.Unmarshal(body, &dataList)
@@ -1212,5 +1218,8 @@ func GetLzSurveyProductData(cont context.Context) (err error) {
 		}
 		time.Sleep(2 * time.Second)
 	}
+	lzLock.Unlock()
+	fmt.Println("GetLzSurveyProductData start:" + time.Now().Format(utils.FormatDateTime))
+	utils.FileLogLz.Info("GetLzSurveyProductData start:" + time.Now().Format(utils.FormatDateTime))
 	return
 }

+ 13 - 6
services/task.go

@@ -38,8 +38,12 @@ func Task() {
 	companyLoss := task.NewTask("companyLoss", "0 20 2 * * *", CompanyLoss)
 	task.AddTask("冻结->流失", companyLoss)
 
+	//用户产品权限正式-->试用
+	companyReportPermissionTryOut := task.NewTask("companyReportPermissionTryOut", "0 30 2 * * *", CompanyReportPermissionTryOut)
+	task.AddTask("用户产品权限正式-->试用", companyReportPermissionTryOut)
+
 	//用户产品权限试用-->关闭
-	companyReportPermissionClose := task.NewTask("companyReportPermissionClose", "0 30 2 * * *", CompanyReportPermissionClose)
+	companyReportPermissionClose := task.NewTask("companyReportPermissionClose", "0 35 2 * * *", CompanyReportPermissionClose)
 	task.AddTask("用户产品权限试用-->关闭", companyReportPermissionClose)
 
 	//删除日志记录
@@ -85,7 +89,11 @@ func Task() {
 	//路演-活动状态修改
 	modifyRsCalendarStatus := task.NewTask("modifyRsCalendarStatus", "0 */1 * * * * ", roadshow.ModifyRsCalendarResearcherStatus)
 	task.AddTask("modifyRsCalendarStatus", modifyRsCalendarStatus)
-	
+
+	// 定时往追加数据到ETA表格(凌晨5点)
+	appendDataToEdbTable := task.NewTask("appendDataToEdbTable", "0 1 5 * * * ", data.AppendDataToEdbTable)
+	task.AddTask("定时往追加数据到ETA表格", appendDataToEdbTable)
+
 	task.StartTask()
 
 	fmt.Println("task end")
@@ -184,7 +192,6 @@ func OneMinute(cont context.Context) (err error) {
 func RefreshData(cont context.Context) (err error) {
 	wg := sync.WaitGroup{}
 	wg.Add(8)
-	//wind
 	go data.RefreshDataFromWind(&wg)
 	//同花顺
 	go data.RefreshDataFromThs(&wg)
@@ -202,11 +209,11 @@ func RefreshData(cont context.Context) (err error) {
 	go data.RefreshDataFromLt(&wg)
 
 	wg.Wait()
-	//计算指标
+	////计算指标
 	data.RefreshDataFromCalculateAll()
-
-	time.Sleep(2 * time.Second)
+	time.Sleep(5 * time.Second)
 	data.RefreshNotice()
+	fmt.Println("Refresh End")
 	return
 }
 

+ 10 - 0
utils/config.go

@@ -50,6 +50,11 @@ var (
 	THS_PubKey         string //同花顺公钥
 )
 
+// 经济数据库
+var (
+	EDB_LIB_URL string
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
@@ -101,6 +106,9 @@ ZwIDAQAB
 		THS_SyncWxGroupUrl = `https://board.10jqka.com.cn/gateway/ps/syncWechatGroupInfo`
 		//同花顺,万得接口服务地址(阿里云windows服务器地址;内网地址)
 		Hz_Server_Data_Url = "http://172.19.173.231:7000/"
+
+		EDB_LIB_URL = "http://172.19.173.232:8300/edbapi/"
+		//EDB_LIB_URL = "http://47.102.213.75:8300/edbapi/"
 	} else {
 		CompanyId = 16
 		RealName = "超级管理员"
@@ -116,6 +124,8 @@ ZwIDAQAB
 		THS_SyncWxGroupUrl = `https://mtest.10jqka.com.cn/gateway/ps/syncWechatGroupInfo`
 		//同花顺,万得接口服务地址(阿里云windows服务器地址;外网地址)
 		Hz_Server_Data_Url = "http://139.196.136.213:7000/"
+
+		EDB_LIB_URL = "http://8.136.199.33:8300/edbapi/"
 	}
 }
 

+ 8 - 1
utils/constants.go

@@ -22,7 +22,8 @@ const (
 const (
 	APPNAME                        = "弘则-task"
 	EmailSendToUsers               = "317699326@qq.com;984198890@qq.com;512188925@qq.com"
-	RefreshEdbInfoEmailSendToUsers = "317699326@qq.com;984198890@qq.com;jhwang@hzinsights.com;lnyan@hzinsights.com;vwang@hzinsights.com"
+	//RefreshEdbInfoEmailSendToUsers = "317699326@qq.com;984198890@qq.com;jhwang@hzinsights.com;lnyan@hzinsights.com;vwang@hzinsights.com"
+	RefreshEdbInfoEmailSendToUsers = "317699326@qq.com;984198890@qq.com;jhwang@hzinsights.com;lnyan@hzinsights.com"
 )
 
 //手机号,电子邮箱正则
@@ -107,3 +108,9 @@ const (
 var (
 	Hz_Server_Data_Url string //同花顺,万得接口服务地址(阿里云windows服务器地址)
 )
+
+//EDB_LIB
+var (
+	APP_EDB_LIB_NAME_EN = "hongze_edb_lib"
+	EDB_LIB_Md5_KEY     = "GuRaB6dY1bXOJcwG"
+)

Some files were not shown because too many files changed in this diff