Przeglądaj źródła

fix:常量拆分出来称为配置项

Roc 1 rok temu
rodzic
commit
f624669cd9

+ 5 - 0
services/aiser/ai.go

@@ -2,11 +2,16 @@ package aiser
 
 import (
 	"encoding/json"
+	"errors"
 	"github.com/rdlucklib/rdluck_tools/http"
 	"hongze/hz_eta_api/utils"
 )
 
 func ChatAutoMsg(prompt string, model int) (result string, err error) {
+	if utils.ChatUrl == `` {
+		err = errors.New("chatGPT服务未配置")
+		return
+	}
 	chatUrl := `http://8.210.169.38:8399/v1/chat/auto_msg`
 	param := make(map[string]interface{})
 	param["Prompt"] = prompt

+ 4 - 5
services/alarm_msg/alarm_msg.go

@@ -6,16 +6,15 @@ import (
 	"hongze/hz_eta_api/utils"
 )
 
-var (
-	AlarmMsgUrl = "http://127.0.0.1:8606/api/alarm/send"
-)
-
 // SendAlarmMsg
 // projectName-项目名称
 // runMode-运行模式
 // msgBody-消息内容
 // level:消息基本,1:提示消息,2:警告消息,3:严重错误信息,默认为1 提示消息
 func SendAlarmMsg(msgBody string, level int) {
+	if utils.AlarmMsgUrl == `` {
+		return
+	}
 	params := make(map[string]interface{})
 	params["ProjectName"] = utils.APPNAME
 	params["RunMode"] = utils.RunMode
@@ -26,5 +25,5 @@ func SendAlarmMsg(msgBody string, level int) {
 		utils.FileLog.Info("SendAlarmMsg json.Marshal Err:" + err.Error())
 		return
 	}
-	http.Post(AlarmMsgUrl, string(param))
+	http.Post(utils.AlarmMsgUrl, string(param))
 }

+ 5 - 0
services/aliyun.go

@@ -4,6 +4,7 @@ import (
 	"crypto/tls"
 	"encoding/base64"
 	"encoding/json"
+	"errors"
 	"fmt"
 	openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
 	ocr20191230 "github.com/alibabacloud-go/ocr-20191230/v3/client"
@@ -87,6 +88,10 @@ func AliyunBusinessCard(imgUrl string) (result *OcrResult, err error) {
 
 // AliyunBusinessCardOcr 阿里云的ocr识别
 func AliyunBusinessCardOcr(imgUrl string) (result OcrResult, err error) {
+	if utils.AccessKeyId == `` {
+		err = errors.New("阿里云信息未配置")
+		return
+	}
 	config := &openapi.Config{
 		// 2、"YOUR_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_SECRET" 的生成请参考https://help.aliyun.com/document_detail/175144.html
 		// 如果您是用的子账号AccessKey,还需要为子账号授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html

+ 5 - 12
services/aliyun_email.go

@@ -6,27 +6,20 @@ import (
 	dm "github.com/alibabacloud-go/dm-20151123/v2/client"
 	util "github.com/alibabacloud-go/tea-utils/v2/service"
 	"github.com/alibabacloud-go/tea/tea"
+	"hongze/hz_eta_api/utils"
 	"time"
 )
 
-var (
-	AliyunEmailAccountName       = "ficcemail@hzmail.hzinsights.com"
-	AliyunEmailAccessKeyId       = "LTAIFMZYQhS2BTvW"
-	AliyunEmailAccessKeySecret   = "12kk1ptCHoGWedhBnKRVW5hRJzq9Fq"
-	AliyunEmailReplyAddress      = "ficcemail@hzinsights.com"
-	AliyunEmailReplyAddressAlias = "弘则研究"
-)
-
 // AliyunEmail 阿里云邮件
 type AliyunEmail struct {
 	Client *dm.Client
 }
 
-// NewClient
+// NewClient 创建新的链接
 func (em *AliyunEmail) NewClient() (err error) {
 	config := &openapi.Config{
-		AccessKeyId:     tea.String(AliyunEmailAccessKeyId),
-		AccessKeySecret: tea.String(AliyunEmailAccessKeySecret),
+		AccessKeyId:     tea.String(utils.AliyunEmailAccessKeyId),
+		AccessKeySecret: tea.String(utils.AliyunEmailAccessKeySecret),
 	}
 	// 访问的域名
 	config.Endpoint = tea.String("dm.aliyuncs.com")
@@ -66,7 +59,7 @@ func (em *AliyunEmail) SendEmail(item *EnglishReportSendEmailRequest) (ok bool,
 		}
 	}
 	singleSendMailRequest := &dm.SingleSendMailRequest{}
-	singleSendMailRequest.SetAccountName(AliyunEmailAccountName)
+	singleSendMailRequest.SetAccountName(utils.AliyunEmailAccountName)
 	singleSendMailRequest.SetAddressType(1)
 	singleSendMailRequest.SetReplyToAddress(false)
 	singleSendMailRequest.SetSubject(item.Subject)

+ 3 - 2
services/elastic.go

@@ -7,13 +7,14 @@ import (
 	"hongze/hz_eta_api/models"
 	saModel "hongze/hz_eta_api/models/semantic_analysis"
 	"hongze/hz_eta_api/services/alarm_msg"
+	"hongze/hz_eta_api/utils"
 	"strings"
 )
 
 func NewClient() (client *elastic.Client, err error) {
 	client, err = elastic.NewClient(
-		elastic.SetURL(ES_URL),
-		elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD),
+		elastic.SetURL(utils.ES_URL),
+		elastic.SetBasicAuth(utils.ES_USERNAME, utils.ES_PASSWORD),
 		elastic.SetSniff(false))
 	return
 }

+ 3 - 2
services/elastic/elastic.go

@@ -8,14 +8,15 @@ import (
 	"github.com/olivere/elastic/v7"
 	"hongze/hz_eta_api/models"
 	"hongze/hz_eta_api/models/data_manage"
+	"hongze/hz_eta_api/utils"
 	"strconv"
 	"strings"
 )
 
 func NewClient() (client *elastic.Client, err error) {
 	client, err = elastic.NewClient(
-		elastic.SetURL(ES_URL),
-		elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD),
+		elastic.SetURL(utils.ES_URL),
+		elastic.SetBasicAuth(utils.ES_USERNAME, utils.ES_PASSWORD),
 		elastic.SetSniff(false))
 	return
 }

+ 1 - 9
services/elastic/elasticsearch.go

@@ -4,17 +4,9 @@ import (
 	"fmt"
 )
 
-const (
-	ES_URL      = "http://es-cn-nif227b580019rgw6.public.elasticsearch.aliyuncs.com:9200" //<1>
-	ES_USERNAME = "elastic"                                                               //<2>
-	ES_PASSWORD = "hongze@2021"                                                           //<3>
-	//Grafana pwd-> 20521bb9
-	//Grafana username-> emon
-)
-
 type tracelog struct{}
 
-//实现输出
+// 实现输出
 func (tracelog) Printf(format string, v ...interface{}) {
 	fmt.Printf(format, v...)
 }

+ 1 - 47
services/elasticsearch.go

@@ -1,23 +1,12 @@
 package services
 
 import (
-	"context"
-	"encoding/json"
 	"fmt"
-	"github.com/olivere/elastic/v7"
-)
-
-const (
-	ES_URL      = "http://es-cn-nif227b580019rgw6.public.elasticsearch.aliyuncs.com:9200" //<1>
-	ES_USERNAME = "elastic"                                                               //<2>
-	ES_PASSWORD = "hongze@2021"                                                           //<3>
-	//Grafana pwd-> 20521bb9
-	//Grafana username-> emon
 )
 
 type tracelog struct{}
 
-//实现输出
+// 实现输出
 func (tracelog) Printf(format string, v ...interface{}) {
 	fmt.Printf(format, v...)
 }
@@ -32,38 +21,3 @@ func RemoveDuplicatesAndEmpty(a []string) (ret []string) {
 	}
 	return
 }
-
-func init21123() {
-	fmt.Println("start")
-	client, err := elastic.NewClient(elastic.SetURL(ES_URL), elastic.SetBasicAuth(ES_USERNAME, ES_PASSWORD), elastic.SetSniff(false))
-	if err != nil {
-		fmt.Println("err:", err)
-	}
-	fmt.Println(client)
-	keyWordStr := "医疗器械"
-	queryString := elastic.NewQueryStringQuery(`Title:(` + keyWordStr + `)`)
-
-	boolqueryJson, err := json.Marshal(queryString)
-	fmt.Println("err:", err)
-	fmt.Println("queryString ", string(boolqueryJson))
-
-	var esIndex = "cygx_article"
-	//boolquery.Must(elastic.NewMatchQuery("Title", keyWord), elastic.NewMatchQuery("BodyText", keyWord))
-	highlight := elastic.NewHighlight()
-	highlight = highlight.Fields(elastic.NewHighlighterField("Title"), elastic.NewHighlighterField("BodyText"))
-	highlight = highlight.PreTags("<font color='red'>").PostTags("</font>")
-	request := client.Search(esIndex).Highlight(highlight).Query(queryString)
-
-	requestJson, err := json.Marshal(request)
-	fmt.Println("err:", err)
-	fmt.Println("requestJson ", string(requestJson))
-
-	searchByMatch, err := request.Do(context.Background())
-
-	if searchByMatch.Hits != nil {
-
-	}
-
-	fmt.Println(searchByMatch)
-	fmt.Println("end")
-}

+ 7 - 5
services/google/google_translate.go

@@ -4,16 +4,13 @@ import (
 	"bytes"
 	"encoding/json"
 	"fmt"
+	"hongze/hz_eta_api/utils"
 	"html"
 	"io/ioutil"
 	"net/http"
 	"strconv"
 )
 
-var (
-	googleTranslateUrl = "http://8.210.169.38:8396/api/google/translate"
-)
-
 type GoogleApiResp struct {
 	Code   int               `json:"code"`
 	Msg    string            `json:"msg"`
@@ -41,6 +38,11 @@ func BatchTranslateHandlerByGoogle(contentMap map[string]string) (contentEnMap m
 
 // GoogleTranslateApi content 为json字符串
 func GoogleTranslateApi(content string) (contentEnMap map[string]string, err error, errMsg string) {
+	if utils.GoogleTranslateUrl == `` {
+		//errMsg = "谷歌翻译服务未配置"
+		//err = errors.New(errMsg)
+		return
+	}
 	params := make(map[string]interface{})
 	params["content"] = content
 	bytesData, err := json.Marshal(params)
@@ -50,7 +52,7 @@ func GoogleTranslateApi(content string) (contentEnMap map[string]string, err err
 	}
 	// 将解析之后的数据转为*Reader类型
 	reader := bytes.NewReader(bytesData)
-	resp, err := http.Post(googleTranslateUrl, "application/json", reader)
+	resp, err := http.Post(utils.GoogleTranslateUrl, "application/json", reader)
 	if err != nil {
 		errMsg = err.Error()
 		err = fmt.Errorf("调用谷歌翻译接口失败")

+ 20 - 13
services/oss.go

@@ -12,16 +12,11 @@ import (
 	"hongze/hz_eta_api/utils"
 )
 
-var (
-	RoleArn            = "acs:ram::1884217364581072:role/hzossrole"
-	RoleSessionName    = "hzossRole"
-	RAMAccessKeyId     = "LTAI5t9S36LXduhTnECVY6Hn"
-	RAMAccessKeySecret = "V6FG5bdzjKKqMpqEqxeWijJCdzDCuL"
-	STSTokenCacheKey   = "hongze_admin_sts_token"
-)
-
 // UploadAliyunV2 图片上传到阿里云
 func UploadAliyunV2(filename, filepath string) (string, error) {
+	if utils.AccessKeyId == `` {
+		return "0", errors.New("阿里云信息未配置")
+	}
 	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
 	if err != nil {
 		return "1", err
@@ -42,6 +37,9 @@ func UploadAliyunV2(filename, filepath string) (string, error) {
 
 // UploadAudioAliyun 音频上传到阿里云
 func UploadAudioAliyun(filename, filepath string) (string, error) {
+	if utils.AccessKeyId == `` {
+		return "0", errors.New("阿里云信息未配置")
+	}
 	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
 	if err != nil {
 		return "1", err
@@ -62,6 +60,9 @@ func UploadAudioAliyun(filename, filepath string) (string, error) {
 
 // UploadVideoAliyun 视频上传到阿里云
 func UploadVideoAliyun(filename, filepath, savePath string) error {
+	if utils.AccessKeyId == `` {
+		return errors.New("阿里云信息未配置")
+	}
 	defer func() {
 		os.Remove(filepath)
 	}()
@@ -86,6 +87,9 @@ func UploadVideoAliyun(filename, filepath, savePath string) error {
 
 // UploadFileToAliyun 上传文件到阿里云
 func UploadFileToAliyun(filename, filepath, savePath string) error {
+	if utils.AccessKeyId == `` {
+		return errors.New("阿里云信息未配置")
+	}
 	defer func() {
 		os.Remove(filepath)
 	}()
@@ -125,7 +129,7 @@ func GetOssSTSToken() (item *STSToken, err error) {
 	}()
 	item = new(STSToken)
 	// 获取缓存中的Token
-	recent, _ := utils.Rc.RedisString(STSTokenCacheKey)
+	recent, _ := utils.Rc.RedisString(utils.STSTokenCacheKey)
 	if recent != "" {
 		lastToken := new(STSToken)
 		if e := json.Unmarshal([]byte(recent), &lastToken); e != nil {
@@ -159,7 +163,7 @@ func GetOssSTSToken() (item *STSToken, err error) {
 		return
 	}
 	// 覆盖缓存
-	if e := utils.Rc.Put(STSTokenCacheKey, newTokenJson, time.Hour); e != nil {
+	if e := utils.Rc.Put(utils.STSTokenCacheKey, newTokenJson, time.Hour); e != nil {
 		err = errors.New("GetOssSTSToken SetRedis Err: " + e.Error())
 		return
 	}
@@ -175,7 +179,7 @@ func NewSTSToken() (item *STSToken, err error) {
 		}
 	}()
 	item = new(STSToken)
-	client, e := sts.NewClientWithAccessKey("cn-shanghai", RAMAccessKeyId, RAMAccessKeySecret)
+	client, e := sts.NewClientWithAccessKey("cn-shanghai", utils.RAMAccessKeyId, utils.RAMAccessKeySecret)
 	if e != nil {
 		err = errors.New("NewSTSToken NewClient Err: " + e.Error())
 		return
@@ -183,9 +187,9 @@ func NewSTSToken() (item *STSToken, err error) {
 	request := sts.CreateAssumeRoleRequest()
 	request.Scheme = "https"
 	request.RegionId = "cn-shanghai"
-	request.RoleArn = RoleArn
+	request.RoleArn = utils.RoleArn
 	now := time.Now().Format(utils.FormatDateTimeUnSpace)
-	request.RoleSessionName = RoleSessionName + now
+	request.RoleSessionName = utils.RoleSessionName + now
 	request.DurationSeconds = "3600"
 
 	response, e := client.AssumeRole(request)
@@ -206,6 +210,9 @@ func NewSTSToken() (item *STSToken, err error) {
 
 // UploadAliyunToDir 上传至hzchart
 func UploadAliyunToDir(filename, filepath, uploadDir, fileDir string) (string, error) {
+	if utils.AccessKeyId == `` {
+		return "0", errors.New("阿里云信息未配置")
+	}
 	client, err := oss.New(utils.Endpoint, utils.AccessKeyId, utils.AccessKeySecret)
 	if err != nil {
 		return "1", err

+ 4 - 0
services/ppt2img/ppt2img.go

@@ -21,6 +21,10 @@ type Ppt2ImgResponse struct {
 // Ppt2Img ppt转图片
 // @params pptUrl ppt的在线url
 func Ppt2Img(pptUrl string) (resourceUrlList []string, err error) {
+	// ppt转图片的地址未配置的话,直接返回
+	if utils.Ppt2ImageUrl == `` {
+		return
+	}
 	params := make(map[string]interface{})
 	params["PptUrl"] = pptUrl
 	param, err := json.Marshal(params)

+ 4 - 0
services/public_api/base_public_api.go

@@ -29,6 +29,10 @@ type ReportChapterReq struct {
 
 // HandleVideoDecibel 处理音频
 func HandleVideoDecibel(reportChapterId int) (err error) {
+	if utils.HandleVideoDecibelUrl == `` {
+		// 处理音频的地址未配置的话,直接返回
+		return
+	}
 	postData := ReportChapterReq{
 		ReportChapterId: reportChapterId,
 	}

+ 5 - 0
services/sms.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"hongze/hz_eta_api/services/alarm_msg"
 	"hongze/hz_eta_api/utils"
@@ -44,6 +45,10 @@ func SendSmsCode(mobile, ip string, codeType int, vcode string) bool {
 }
 
 func sendSms(mobile, tplId, code string) (rs []byte, err error) {
+	if utils.JhGnAppKey == `` {
+		err = errors.New("短信未配置")
+		return
+	}
 	var Url *url.URL
 	apiURL := "http://v.juhe.cn/sms/send"
 	//初始化参数

+ 12 - 14
services/tencent_yun.go

@@ -2,21 +2,15 @@ package services
 
 import (
 	"encoding/json"
+	"errors"
 	"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
-	"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
+	tencentErr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
 	"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
 	ses "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses/v20201002"
+	"hongze/hz_eta_api/utils"
 	"time"
 )
 
-const (
-	TencentSDKSecretId  = "AKIDa4WvJar361NZXkogKoHgtyxvkVDqKclq" // 腾讯云主账号SecretId
-	TencentSDKSecretKey = "61sdMzVvMejjZFj2KTQ9tgR4adYMzR1a"     // 腾讯云主账号SecretKey
-
-	TencentEmailFromEmailAddress = "email@txhzmail.hzinsights.com" // 腾讯云邮件发信地址
-	TencentEmailTemplateID       = 54181                           // 腾讯云邮件模板ID
-)
-
 // TencentEmail 腾讯云邮件
 type TencentEmail struct {
 	Client *ses.Client
@@ -24,11 +18,15 @@ type TencentEmail struct {
 
 // NewClient
 func (te *TencentEmail) NewClient() (err error) {
+	if utils.TencentSDKSecretId == `` {
+		err = errors.New("腾讯云邮箱未配置")
+		return
+	}
 	// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
 	// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
 	credential := common.NewCredential(
-		TencentSDKSecretId,
-		TencentSDKSecretKey,
+		utils.TencentSDKSecretId,
+		utils.TencentSDKSecretKey,
 	)
 	// 实例化一个client选项,可选的,没有特殊需求可以跳过
 	cpf := profile.NewClientProfile()
@@ -82,16 +80,16 @@ func (te *TencentEmail) SendEmail(req *EnglishReportSendEmailRequest) (ok bool,
 	}
 	tmpDataStr := string(tmpDataByte)
 	request.Template = &ses.Template{
-		TemplateID:   common.Uint64Ptr(TencentEmailTemplateID),
+		TemplateID:   common.Uint64Ptr(utils.TencentEmailTemplateID),
 		TemplateData: common.StringPtr(tmpDataStr),
 	}
-	request.FromEmailAddress = common.StringPtr(TencentEmailFromEmailAddress)
+	request.FromEmailAddress = common.StringPtr(utils.TencentEmailFromEmailAddress)
 	request.Destination = common.StringPtrs([]string{req.Email})
 	request.Subject = common.StringPtr(req.Subject)
 
 	// 返回的resp是一个SendEmailResponse的实例,与请求对象对应
 	response, e := te.Client.SendEmail(request)
-	if _, o := e.(*errors.TencentCloudSDKError); o {
+	if _, o := e.(*tencentErr.TencentCloudSDKError); o {
 		errByte, _ := json.Marshal(e)
 		result = string(errByte)
 		return

+ 8 - 0
services/video.go

@@ -21,6 +21,10 @@ import (
 )
 
 func CreateVideo(report *models.ReportDetail) (err error) {
+	if utils.XfAPPID == `` {
+		// 如果科大讯飞未配置,那么就直接返回,不生成音频了
+		return
+	}
 	defer func() {
 		if err != nil {
 			utils.FileLog.Error("CreateVideo Err:%s", err.Error())
@@ -188,6 +192,10 @@ func getFourccType(boxHeader BoxHeader) (fourccType string) {
 
 // CreateReportVideo 生成报告video
 func CreateReportVideo(reportTitle, reportContent, reportTime string) (uploadUrl, videoName, sizeStr string, playSeconds float64, err error) {
+	if utils.XfAPPID == `` {
+		// 如果科大讯飞未配置,那么就直接返回,不生成音频了
+		return
+	}
 	defer func() {
 		if err != nil {
 			utils.FileLog.Error("CreateReportVideo Err:%s", err.Error())

+ 4 - 0
services/wechat_send_msg.go

@@ -184,6 +184,10 @@ type SendWxTemplate struct {
 
 // SendTemplateMsg 推送模板消息
 func SendTemplateMsg(sendInfo *SendWxTemplate) (err error) {
+	if utils.SendWxTemplateMsgUrl == `` {
+		// 找不到推送服务
+		return
+	}
 	postData, err := json.Marshal(sendInfo)
 	if err != nil {
 		alarm_msg.SendAlarmMsg("SendTemplateMsg json.Marshal Err:"+err.Error(), 1)

+ 2 - 9
services/wx_app.go

@@ -21,20 +21,13 @@ var (
 	EnvVersion  string // 小程序版本, release-正式版; trial-体验版; develop-开发版
 )
 
-func init() {
-	WxAppId = `wxb059c872d79b9967`
-	WxId = `gh_75abb562a946`
-	WxAppSecret = `1737c73e9f69a21de1a345b8f0800258`
-	WxPlatform = 6 //弘则研报来源
-}
-
 func GetWxApp() (miniprogram *miniprogram.MiniProgram) {
 	wc := wechat.NewWechat()
 	memory := cache.NewMemory()
 	//memory := cache.NewRedis(global.Redis)
 	cfg := &config.Config{
-		AppID:     WxAppId,
-		AppSecret: WxAppSecret,
+		AppID:     utils.WxYbAppId,
+		AppSecret: utils.WxYbAppSecret,
 		Cache:     memory,
 	}
 

+ 153 - 27
utils/config.go

@@ -5,6 +5,7 @@ import (
 	beeLogger "github.com/beego/bee/v2/logger"
 	"github.com/beego/beego/v2/server/web"
 	"github.com/rdlucklib/rdluck_tools/cache"
+	"strconv"
 )
 
 var (
@@ -29,16 +30,29 @@ var (
 	DesKey           string // 接口返回加密KEY
 	APPNAME          string //项目中文名称
 	EmailSendToUsers string // 邮件提醒人员
+	JhGnAppKey       string // 聚合短信,国内AppKey
+)
+
+// ES配置
+var (
+	ES_URL      string // ES服务器地址
+	ES_USERNAME string // ES账号
+	ES_PASSWORD string // ES密码
 )
 
 // 公共api内部服务调用
 var (
 	// EDB_LIB_URL 公共指标库
-	EDB_LIB_URL string
+	EDB_LIB_URL         string
+	APP_EDB_LIB_NAME_EN string
+	EDB_LIB_Md5_KEY     string
 
 	// SendWxTemplateMsgUrl 模板消息推送
 	SendWxTemplateMsgUrl string
 
+	// SendTemplateMsgAuthorization 模板推送秘钥
+	SendTemplateMsgAuthorization string
+
 	// HandleVideoDecibelUrl 处理音频分贝的url
 	HandleVideoDecibelUrl string
 
@@ -53,16 +67,28 @@ var (
 
 	// EnPolicyReportUrl 英文策略报告
 	EnPolicyReportUrl string
+
+	// GoogleTranslateUrl 谷歌翻译服务
+	GoogleTranslateUrl string
+
+	// AlarmMsgUrl 报警服务地址
+	AlarmMsgUrl string
+
+	// ChatUrl chatGPT服务地址
+	ChatUrl string
 )
 
 // 微信配置信息
 var (
 	WxId                string //微信原始ID
-	WxAppId             string
-	WxAppSecret         string
+	WxAppId             string // 公众号appid
+	WxAppSecret         string // 公众号秘钥
 	TemplateIdByProduct string //产品运行报告通知-模板ID
 
-	WxYbAppId string // 研报小程序appid
+	WxYbAppId     string // 研报小程序appid
+	WxYbId        string // 研报小程序微信原始ID
+	WxYbAppSecret string // 研报小程序秘钥
+	WxYbPlatform  int    //弘则研报来源
 )
 
 // ES索引配置
@@ -75,17 +101,6 @@ var (
 	EsSemanticAnalysisDocIndexName string //ES语义分析文档索引名
 )
 
-// 阿里云配置
-var (
-	Bucketname       string
-	Endpoint         string
-	Imghost          string
-	UploadDir        string
-	Upload_Audio_Dir string
-	AccessKeyId      string
-	AccessKeySecret  string
-)
-
 // 科大讯飞--语音合成
 var (
 	XfSTATUS_FIRST_FRAME    = 0 //第一帧标识
@@ -101,6 +116,44 @@ var (
 	XfVcn                   string //发言人
 )
 
+// 阿里云配置
+var (
+	Bucketname       string
+	Endpoint         string
+	Imghost          string
+	UploadDir        string
+	Upload_Audio_Dir string
+	AccessKeyId      string
+	AccessKeySecret  string
+)
+
+// 阿里云oss前端上传用
+var (
+	RoleArn            string
+	RoleSessionName    string
+	RAMAccessKeyId     string
+	RAMAccessKeySecret string
+	STSTokenCacheKey   string
+)
+
+// 阿里云邮箱配置
+var (
+	AliyunEmailAccountName       string
+	AliyunEmailAccessKeyId       string
+	AliyunEmailAccessKeySecret   string
+	AliyunEmailReplyAddress      string
+	AliyunEmailReplyAddressAlias string
+)
+
+// 腾讯云邮箱配置
+var (
+	TencentSDKSecretId  string // 腾讯云主账号SecretId
+	TencentSDKSecretKey string // 腾讯云主账号SecretKey
+
+	TencentEmailFromEmailAddress string // 腾讯云邮件发信地址
+	TencentEmailTemplateID       uint64 // 云邮件模板ID
+)
+
 // LibreOfficePath LibreOfficePath的地址
 var LibreOfficePath string
 
@@ -168,40 +221,79 @@ func init() {
 
 	// 接口返回加密KEY
 	DesKey = config["des_key"]
+
 	// 邮件提醒人员
 	EmailSendToUsers = config["email_send_to_users"]
 
+	// 聚合短信,国内AppKey
+	JhGnAppKey = config["jh_gn_app_key"]
+
 	// ppt 转图片服务地址
 	Ppt2ImageUrl = config["ppt2_image_url"]
 
 	// 静态文件目录
 	STATIC_DIR = config["static_dir"]
 
-	EDB_LIB_URL = config["edb_lib_url"]
+	// 系统内部服务地址
+	{
+		// 公共指标库相关
+		EDB_LIB_URL = config["edb_lib_url"]
+		APP_EDB_LIB_NAME_EN = config["app_edb_lib_name_en"]
+		EDB_LIB_Md5_KEY = config["edb_lib_md5_key"]
+
+		// 发送微信模板消息地址
+		SendWxTemplateMsgUrl = config["send_wx_template_msg_url"]
 
-	// 发送微信模板消息地址
-	SendWxTemplateMsgUrl = config["send_wx_template_msg_url"]
+		// 发送微信模板消息地址
+		SendTemplateMsgAuthorization = config["send_template_msg_authorization"]
 
-	// 语音分贝处理的地址
-	HandleVideoDecibelUrl = config["handle_video_decibel_url"]
+		// 语音分贝处理的地址
+		HandleVideoDecibelUrl = config["handle_video_decibel_url"]
 
-	// 弘则open api的地址
-	HongzeOpenApiHost = config["hongze_open_api_host"]
+		// 弘则open api的地址
+		HongzeOpenApiHost = config["hongze_open_api_host"]
 
-	// 英文研报分享的地址
-	EnglishShareUrl = config["english_share_url"]
+		// 英文研报分享的地址
+		EnglishShareUrl = config["english_share_url"]
 
-	// 策略报告地址
-	EnPolicyReportUrl = config["en_policy_report_url"]
+		// 策略报告地址
+		EnPolicyReportUrl = config["en_policy_report_url"]
+
+		// 谷歌翻译服务地址
+		GoogleTranslateUrl = config["google_translate_url"]
+
+		// 报警服务地址
+		AlarmMsgUrl = config["alarm_msg_url"]
+
+		// chatGPT服务地址
+		ChatUrl = config["chat_url"]
+	}
+
+	// ES配置
+	{
+		ES_URL = config["es_url"]
+		ES_USERNAME = config["es_username"]
+		ES_PASSWORD = config["es_password"]
+	}
 
 	// 微信相关
 	{
-		WxYbAppId = config["wx_yb_appid"] //弘则研报小程序
 		WxAppId = config["wx_appid"]
 		WxAppSecret = config["wx_app_secret"]
 		WxId = config["wx_id"]
 		//模板消息
 		TemplateIdByProduct = config["template_id_by_product"]
+
+		WxYbAppId = config["wx_yb_appid"]          //弘则研报小程序
+		WxYbId = config["wx_yb_id"]                // 研报小程序微信原始ID
+		WxYbAppSecret = config["wx_yb_app_secret"] // 研报小程序秘钥
+		wxYbPlatformStr := config["wx_yb_platform"]
+		if wxYbPlatformStr != `` {
+			WxYbPlatform, err = strconv.Atoi(wxYbPlatformStr) //弘则研报来源
+			if err != nil {
+				panic(any("配置文件读取wx_yb_platform错误 " + err.Error()))
+			}
+		}
 	}
 
 	// OSS相关
@@ -215,6 +307,40 @@ func init() {
 		AccessKeySecret = config["access_key_secret"]
 	}
 
+	// OSS相关(前端使用)
+	{
+		RoleArn = config["role_arn"]
+		RoleSessionName = config["role_session_name"]
+		RAMAccessKeyId = config["ram_access_key_id"]
+		RAMAccessKeySecret = config["ram_access_key_secret"]
+		STSTokenCacheKey = config["sts_token_cache_key"]
+	}
+
+	// 阿里云邮箱配置
+	{
+		AliyunEmailAccountName = config["aliyun_email_account_name"]
+		AliyunEmailAccessKeyId = config["aliyun_email_access_key_id"]
+		AliyunEmailAccessKeySecret = config["aliyun_email_access_key_secret"]
+		AliyunEmailReplyAddress = config["aliyun_email_reply_address"]
+		AliyunEmailReplyAddressAlias = config["aliyun_email_reply_address_alias"]
+	}
+
+	// 腾讯云邮箱配置
+	{
+		TencentSDKSecretId = config["tencent_sdk_secret_id"]                      // 腾讯云主账号SecretId
+		TencentSDKSecretKey = config["tencent_sdk_secret_key"]                    // 腾讯云主账号SecretKey
+		TencentEmailFromEmailAddress = config["tencent_email_from_email_address"] // 腾讯云邮件发信地址
+
+		tencentEmailTemplateIDtr := config["tencent_email_template_id"]
+		if tencentEmailTemplateIDtr != `` {
+			tmpTencentEmailTemplateID, err := strconv.Atoi(tencentEmailTemplateIDtr) //弘则研报来源
+			if err != nil {
+				panic(any("配置文件读取tencent_email_template_id错误 " + err.Error()))
+			}
+			TencentEmailTemplateID = uint64(tmpTencentEmailTemplateID)
+		}
+	}
+
 	// 科大讯飞
 	{
 

+ 2 - 17
utils/constants.go

@@ -35,11 +35,6 @@ const (
 	LOGIN_CODE               //登录
 )
 
-// 聚合短信
-var (
-	JhGnAppKey = "4c8504c49dd335e99cfd7b6a3a9e2415" //聚合国内AppKey
-)
-
 // 管理员,ficc管理员,ficc销售,权益管理员,权益销售。
 // 角色类型/类型编码
 const (
@@ -198,8 +193,8 @@ const (
 	CACHE_CHART_INFO_DATA             = "chart:info:data:"                    //图表数据
 	CACHE_CHART_CLASSIFY              = "chart:classify"                      //图表分类数据
 	CACHE_IMPORT_MANUAL_DATA          = "import:manual:data"                  //手工数据导入后刷新
-	CACHE_ACCESS_TOKEN_LOGIN          = "pc_admin:login:"                     //管理后台登录
-	CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST = "pc_admin:login:no_trust:"            //管理后台登录(不可信登录态)
+	CACHE_ACCESS_TOKEN_LOGIN          = "pc_eta_admin:login:"                 //管理后台登录
+	CACHE_ACCESS_TOKEN_LOGIN_NO_TRUST = "pc_eta_admin:login:no_trust:"        //管理后台登录(不可信登录态)
 	CACHE_KEY_MYSTEEL_REFRESH         = "mysteel_chemical:refresh"            //钢联化工刷新
 	CACHE_KEY_DAYNEW_REFRESH          = "admin:day_new:refresh"               //每日资讯拉取企业微信聊天记录
 	CACHE_KEY_DAYNEW_TRANSLATE        = "admin:day_new:translate"             //每日资讯中翻英
@@ -211,12 +206,6 @@ const (
 	TEMPLATE_MSG_REPORT = iota + 1 //日度点评报告推送
 )
 
-// EDB_LIB
-var (
-	APP_EDB_LIB_NAME_EN = "hongze_edb_lib"
-	EDB_LIB_Md5_KEY     = "GuRaB6dY1bXOJcwG"
-)
-
 // 研报类型标识
 var (
 	REPORT_TYPE_DAY      = "day"
@@ -240,10 +229,6 @@ func GetFiccAdminDepartmentIds() (idStr string) {
 	return
 }
 
-const (
-	SendTemplateMsgAuthorization = "dc855fce962a639faa779cbdd4cd332f"
-)
-
 const (
 	ReportFrequencyDay     = "日度"
 	ReportFrequencyWeek    = "周度"