Browse Source

Merge branch 'feature/eta2.3.4_business_user' into debug

xyxie 3 months ago
parent
commit
8c8ceb4fc2
7 changed files with 277 additions and 243 deletions
  1. 7 42
      controllers/eta_trial.go
  2. 0 4
      models/db.go
  3. 2 7
      models/eta_trial/sys_user.go
  4. 0 130
      services/crm_eta.go
  5. 205 0
      services/eta_forum_hub/eta_trial.go
  6. 42 36
      services/eta_trial.go
  7. 21 24
      utils/config.go

+ 7 - 42
controllers/eta_trial.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_forum_admin/models/eta_trial"
 	"eta/eta_forum_admin/models/system"
 	"eta/eta_forum_admin/services"
+	"eta/eta_forum_admin/services/eta_forum_hub"
 	"eta/eta_forum_admin/utils"
 	"fmt"
 	"github.com/mozillazg/go-pinyin"
@@ -327,10 +328,10 @@ func (this *ETATrialController) Add() {
 		}
 
 		//检查是否公司内部人员
-		mobileCount, err := eta_trial.GetSysAdminCountByMobile(v.Mobile, 0)
-		if err != nil {
+		mobileCount, e := eta_forum_hub.GetEtaTrialMobileCount(v.Mobile)
+		if e != nil {
 			br.Msg = "判断手机号是否存在失败"
-			br.ErrMsg = "判断手机号是否存在失败,Err:" + err.Error()
+			br.ErrMsg = "判断手机号是否存在失败,Err:" + e.Error()
 			return
 		}
 		if mobileCount > 0 {
@@ -819,7 +820,7 @@ func (this *ETATrialController) Approval() {
 			br.ErrMsg = "启用失败,Err:" + err.Error()
 			return
 		}
-		err = eta_trial.UpdateAdminEnable(approval.Mobile)
+		err = eta_forum_hub.EnabledEtaTrialAdmin(approval.Mobile)
 		if err != nil {
 			br.Msg = "启用失败"
 			br.ErrMsg = "启用失败,Err:" + err.Error()
@@ -873,47 +874,11 @@ func (this *ETATrialController) Approval() {
 			return
 		}
 
-		//新增至试用平台的Admin
-
-		adminItem, err := eta_trial.GetSysUserByRoleAndDepartment("试用", "ETA试用客户")
+		err = eta_forum_hub.AddEtaTrialAdmin(&newItem)
 		if err != nil {
-			br.Msg = "获取用户信息失败"
-			br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
+			err = fmt.Errorf("新增试用用户失败")
 			return
 		}
-
-		admin := new(eta_trial.ETATrialAdmin)
-		admin.AdminName = newItem.Account
-		admin.RealName = newItem.UserName
-		admin.Password = utils.MD5(newItem.Password)
-		admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
-		admin.Enabled = 1
-		admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
-		admin.CreatedTime = time.Now()
-		admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
-		admin.Mobile = newItem.Mobile
-		admin.RoleType = 0
-
-		admin.RoleId = adminItem.RoleId
-		admin.RoleName = "试用"
-		admin.RoleTypeCode = "管理员"
-		admin.DepartmentId = adminItem.DepartmentId
-		admin.DepartmentName = "ETA试用客户"
-		admin.Role = "admin"
-		admin.Position = approval.Position
-
-		newId, err := eta_trial.AddAdmin(admin)
-		if err != nil {
-			br.Msg = "新增失败"
-			br.ErrMsg = "新增失败,AddAdmin Err:" + err.Error()
-			return
-		}
-
-		// 新增试用客户手工权限
-		go func() {
-			//_ = services.CreateTrialUserManualAuth(newId, admin.RealName)
-			_ = services.EtaTrialManualUserAddAuth(newId, admin.RealName)
-		}()
 	}
 
 	msgItem := new(company.CompanyApprovalMessage)

+ 0 - 4
models/db.go

@@ -21,10 +21,6 @@ func init() {
 	db, _ := orm.GetDB("default")
 	db.SetConnMaxLifetime(10 * time.Minute)
 
-	_ = orm.RegisterDataBase("weekly_trial", "mysql", utils.MYSQL_URL_WEEKLY_TRIAL)
-	orm.SetMaxIdleConns("weekly_trial", 50)
-	orm.SetMaxOpenConns("weekly_trial", 100)
-
 	orm.Debug = true
 	orm.DebugLog = orm.NewLog(utils.Binlog)
 

+ 2 - 7
models/eta_trial/sys_user.go

@@ -1,11 +1,6 @@
 package eta_trial
 
-import (
-	"fmt"
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
+/*
 type ETATrialAdmin struct {
 	AdminId                   int    `orm:"column(admin_id);pk" description:"系统用户id"`
 	AdminName                 string `description:"系统用户名称"`
@@ -81,4 +76,4 @@ func UpdateAdminEnable(mobile string) (err error) {
 	o := orm.NewOrmUsingDB("weekly_trial")
 	_, err = o.Raw(sql, mobile).Exec()
 	return
-}
+}*/

+ 0 - 130
services/crm_eta.go

@@ -1,130 +0,0 @@
-package services
-
-import (
-	"encoding/json"
-	"eta/eta_forum_admin/services/alarm_msg"
-	"eta/eta_forum_admin/utils"
-	"fmt"
-	"io/ioutil"
-	"net/http"
-	"strings"
-)
-
-const (
-	LoginAuthCodeSource = 1
-)
-
-// MiddleServerResultData 中间服务响应体
-type MiddleServerResultData struct {
-	Code   int         `json:"code" description:"状态码"`
-	Msg    string      `json:"msg" description:"提示信息"`
-	Data   interface{} `json:"data" description:"返回数据"`
-	ErrMsg string      `json:"-" description:"错误信息,不用返回给前端,只是做日志记录"`
-}
-
-// GetLoginAuthCodeReq 获取登录编码请求体
-type GetLoginAuthCodeReq struct {
-	AdminName string `json:"admin_name" description:"用户名"`
-	Source    int    `json:"source" description:"来源: 1-CRM; 2-ETA"`
-}
-
-// GetEtaTokenReq 获取Token请求体
-type GetEtaTokenReq struct {
-	AuthCode string `json:"auth_code"`
-}
-
-// GetEtaTokenDataResp 获取Token信息响应体
-type GetEtaTokenDataResp struct {
-	Code int             `json:"code" description:"状态码"`
-	Msg  string          `json:"msg" description:"提示信息"`
-	Data GetEtaTokenData `json:"data" description:"返回数据"`
-}
-
-// GetEtaTokenData Token数据
-type GetEtaTokenData struct {
-	Authorization   string `description:"Auth Token"`
-	AdminName       string `description:"系统用户名称"`
-	RealName        string `description:"系统用户姓名"`
-	RoleName        string `description:"角色名称"`
-	RoleTypeCode    string `description:"角色类型编码"`
-	SysRoleTypeCode string `description:"角色类型编码"`
-	AdminId         int    `description:"系统用户id"`
-	ProductName     string `description:"产品名称:admin,ficc,权益"`
-	Authority       int    `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
-}
-
-// EtaTrialManualUserAddAuthReq 体验版用户添加手工权限
-type EtaTrialManualUserAddAuthReq struct {
-	AdminId   int    `json:"admin_id" description:"用户ID"`
-	AdminName string `json:"admin_name" description:"用户名"`
-}
-
-// EtaTrialManualUserAddAuth CRM_ETA服务-体验版用户添加手工权限
-func EtaTrialManualUserAddAuth(adminId int, adminName string) (err error) {
-	// 体验版无测试环境
-	//if utils.RunMode != "release" {
-	//	return
-	//}
-	defer func() {
-		if err != nil {
-			alarm_msg.SendAlarmMsg(fmt.Sprintf("EtaTrialManualUserAddAuth, 新增试用客户手工录入权限失败, ErrMsg: %s", err.Error()), 3)
-		}
-	}()
-
-	url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/eta_trial/manual_user/add_auth")
-	param := EtaTrialManualUserAddAuthReq{
-		AdminId:   adminId,
-		AdminName: adminName,
-	}
-	data, e := json.Marshal(param)
-	if e != nil {
-		err = fmt.Errorf("data json marshal err: %s", e.Error())
-		return
-	}
-
-	body := ioutil.NopCloser(strings.NewReader(string(data)))
-	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.DesBase64DecryptNoKey([]byte(str))
-	}
-
-	result := new(MiddleServerResultData)
-	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
-	}
-	return
-}

+ 205 - 0
services/eta_forum_hub/eta_trial.go

@@ -0,0 +1,205 @@
+package eta_forum_hub
+
+import (
+	"encoding/json"
+	"eta/eta_forum_admin/models"
+	"eta/eta_forum_admin/models/eta_trial"
+	"eta/eta_forum_admin/services/alarm_msg"
+	"eta/eta_forum_admin/utils"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"strings"
+	"time"
+)
+
+const (
+	LoginAuthCodeSource = 1
+)
+
+// MiddleServerResultData 中间服务响应体
+type MiddleServerResultData struct {
+	Code   int         `description:"状态码"`
+	Msg    string      `description:"提示信息"`
+	Data   interface{} `description:"返回数据"`
+	ErrMsg string      `description:"错误信息,不用返回给前端,只是做日志记录"`
+}
+
+// AddEtaTrialAdminReq 体验版用户添加手工权限
+type AddEtaTrialAdminReq struct {
+	UserName    string `description:"客户名称"`
+	Password    string
+	Account     string
+	CompanyName string `description:"客户公司姓名"`
+	Position    string `description:"职位"`
+	Mobile      string `description:"手机号"`
+	Enabled     int    `description:"1:有效,0:禁用"`
+	SellerId    int    `description:"销售id"`
+	Seller      string `description:"销售员名称"`
+	CreateTime  time.Time
+	ModifyTime  time.Time
+}
+
+type EnabledEtaTrialAdminReq struct {
+	Mobile string `description:"手机号"`
+}
+
+// AddEtaTrialAdmin CRM_ETA服务-体验版用户添加手工权限
+func AddEtaTrialAdmin(req *eta_trial.EtaTrial) (err error) {
+	// 体验版无测试环境
+	//if utils.RunMode != "release" {
+	//	return
+	//}
+	defer func() {
+		if err != nil {
+			alarm_msg.SendAlarmMsg(fmt.Sprintf("AddEtaTrialAdmin, 新增试用客户手工录入权限失败, ErrMsg: %s", err.Error()), 3)
+		}
+	}()
+	param := AddEtaTrialAdminReq{
+		UserName:    req.UserName,
+		Password:    req.Password,
+		Account:     req.Account,
+		CompanyName: req.CompanyName,
+		Position:    req.Position,
+		Mobile:      req.Mobile,
+		Enabled:     req.Enabled,
+		CreateTime:  req.CreateTime,
+		ModifyTime:  req.ModifyTime,
+	}
+	reqJson, e := json.Marshal(param)
+	if e != nil {
+		err = fmt.Errorf("data json marshal err: %s", e.Error())
+		return
+	}
+
+	_, resultByte, err := post(string(reqJson), "/v1/eta_trial/admin/add")
+	resp := new(models.BaseResponse)
+	err = json.Unmarshal(resultByte, &resp)
+	if err != nil {
+		return
+	}
+	if resp.Ret != 200 {
+		err = fmt.Errorf("result: %s, errmsg: %s", resp.Msg, resp.ErrMsg)
+		return
+	}
+	return
+}
+
+// EnabledEtaTrialAdmin CRM_ETA服务-体验版用户添加手工权限
+func EnabledEtaTrialAdmin(mobile string) (err error) {
+	// 体验版无测试环境
+	//if utils.RunMode != "release" {
+	//	return
+	//}
+	defer func() {
+		if err != nil {
+			alarm_msg.SendAlarmMsg(fmt.Sprintf("EnabledEtaTrialAdmin, 新增试用客户手工录入权限失败, ErrMsg: %s", err.Error()), 3)
+		}
+	}()
+	param := EnabledEtaTrialAdminReq{
+		Mobile: mobile,
+	}
+	reqJson, e := json.Marshal(param)
+	if e != nil {
+		err = fmt.Errorf("data json marshal err: %s", e.Error())
+		return
+	}
+
+	_, resultByte, err := post(string(reqJson), "/v1/eta_trial/admin/enabled")
+	resp := new(models.BaseResponse)
+	err = json.Unmarshal(resultByte, &resp)
+	if err != nil {
+		return
+	}
+	if resp.Ret != 200 {
+		err = fmt.Errorf("result: %s, errmsg: %s", resp.Msg, resp.ErrMsg)
+		return
+	}
+	return
+}
+
+type GetEtaTrialMobileCountReq struct {
+	Mobile string `description:"手机号"`
+}
+
+type GetEtaTrialMobileCountResp struct {
+	Count int
+}
+
+// GetEtaTrialMobileCount CRM_ETA服务-体验版用户添加手工权限
+func GetEtaTrialMobileCount(mobile string) (count int, err error) {
+	// 体验版无测试环境
+	//if utils.RunMode != "release" {
+	//	return
+	//}
+	defer func() {
+		if err != nil {
+			alarm_msg.SendAlarmMsg(fmt.Sprintf("GetEtaTrialMobileCount, 新增试用客户手工录入权限失败, ErrMsg: %s", err.Error()), 3)
+		}
+	}()
+	param := GetEtaTrialMobileCountReq{
+		Mobile: mobile,
+	}
+	reqJson, e := json.Marshal(param)
+	if e != nil {
+		err = fmt.Errorf("data json marshal err: %s", e.Error())
+		return
+	}
+
+	_, resultByte, err := post(string(reqJson), "/v1/eta_trial/mobile/count")
+	resp := new(models.BaseResponse)
+	err = json.Unmarshal(resultByte, &resp)
+	if err != nil {
+		return
+	}
+	if resp.Ret != 200 {
+		err = fmt.Errorf("result: %s, errmsg: %s", resp.Msg, resp.ErrMsg)
+		return
+	}
+	data := resp.Data.(GetEtaTrialMobileCountResp)
+	count = data.Count
+	return
+}
+
+// post
+func post(paramStr string, urlStr string) (resp *models.BaseResponse, result []byte, err error) {
+	if utils.ETA_FORUM_HUB_URL == "" {
+		err = fmt.Errorf("ETA社区桥接服务地址为空")
+		return
+	}
+	postUrl := utils.ETA_FORUM_HUB_URL + urlStr
+	result, err = HttpPost(postUrl, paramStr, "application/json")
+	if err != nil {
+		err = fmt.Errorf("调用ETA社区桥接服务接口失败 error:%s", err.Error())
+		return
+	}
+	err = json.Unmarshal(result, &resp)
+	if err != nil {
+		return
+	}
+
+	return
+}
+
+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.ETA_FORUM_HUB_NAME_EN+utils.ETA_FORUM_HUB_MD5_KEY))
+	resp, err := client.Do(req)
+	if err != nil {
+		return nil, err
+	}
+	defer resp.Body.Close()
+	b, err := ioutil.ReadAll(resp.Body)
+	utils.FileLog.Debug("HttpPost:" + string(b))
+	return b, err
+}

+ 42 - 36
services/eta_trial.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_forum_admin/models/company"
 	"eta/eta_forum_admin/models/eta_trial"
 	"eta/eta_forum_admin/services/alarm_msg"
+	"eta/eta_forum_admin/services/eta_forum_hub"
 	"eta/eta_forum_admin/utils"
 	"fmt"
 	"github.com/mozillazg/go-pinyin"
@@ -108,7 +109,7 @@ func ApprovalApply(approvalId int) (err error) {
 			err = fmt.Errorf("启用失败, Err: %s", e.Error())
 			return
 		}
-		if e = eta_trial.UpdateAdminEnable(approval.Mobile); e != nil {
+		if e = eta_forum_hub.EnabledEtaTrialAdmin(approval.Mobile); e != nil {
 			err = fmt.Errorf("启用用户失败, Err: %s", e.Error())
 			return
 		}
@@ -157,43 +158,48 @@ func ApprovalApply(approvalId int) (err error) {
 			return
 		}
 
-		// 新增至试用平台的Admin
-		adminItem, e := eta_trial.GetSysUserByRoleAndDepartment("试用", "ETA试用客户")
-		if e != nil {
-			err = fmt.Errorf("获取ETA试用admin失败, Err: %s", e.Error())
-			return
-		}
-
-		admin := new(eta_trial.ETATrialAdmin)
-		admin.AdminName = newItem.Account
-		admin.RealName = newItem.UserName
-		admin.Password = utils.MD5(newItem.Password)
-		admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
-		admin.Enabled = 1
-		admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
-		admin.CreatedTime = time.Now()
-		admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
-		admin.Mobile = newItem.Mobile
-		admin.RoleType = 0
-		admin.RoleId = adminItem.RoleId
-		admin.RoleName = "试用"
-		admin.RoleTypeCode = "管理员"
-		admin.DepartmentId = adminItem.DepartmentId
-		admin.DepartmentName = "ETA试用客户"
-		admin.Role = "admin"
-		admin.Position = approval.Position
-
-		newId, e := eta_trial.AddAdmin(admin)
-		if e != nil {
-			err = fmt.Errorf("新增ETA试用admin失败, Err: %s", e.Error())
+		//// 新增至试用平台的Admin
+		//adminItem, e := eta_trial.GetSysUserByRoleAndDepartment("试用", "ETA试用客户")
+		//if e != nil {
+		//	err = fmt.Errorf("获取ETA试用admin失败, Err: %s", e.Error())
+		//	return
+		//}
+		//
+		//admin := new(eta_trial.ETATrialAdmin)
+		//admin.AdminName = newItem.Account
+		//admin.RealName = newItem.UserName
+		//admin.Password = utils.MD5(newItem.Password)
+		//admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
+		//admin.Enabled = 1
+		//admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
+		//admin.CreatedTime = time.Now()
+		//admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
+		//admin.Mobile = newItem.Mobile
+		//admin.RoleType = 0
+		//admin.RoleId = adminItem.RoleId
+		//admin.RoleName = "试用"
+		//admin.RoleTypeCode = "管理员"
+		//admin.DepartmentId = adminItem.DepartmentId
+		//admin.DepartmentName = "ETA试用客户"
+		//admin.Role = "admin"
+		//admin.Position = approval.Position
+		//
+		//newId, e := eta_trial.AddAdmin(admin)
+		//if e != nil {
+		//	err = fmt.Errorf("新增ETA试用admin失败, Err: %s", e.Error())
+		//	return
+		//}
+		//
+		//// 新增试用客户手工权限
+		//go func() {
+		//	//_ = CreateTrialUserManualAuth(newId, admin.RealName)
+		//	_ = eta_forum_hub.EtaTrialManualUserAddAuth(newId, admin.RealName)
+		//}()
+		err = eta_forum_hub.AddEtaTrialAdmin(&newItem)
+		if err != nil {
+			err = fmt.Errorf("新增试用用户失败")
 			return
 		}
-
-		// 新增试用客户手工权限
-		go func() {
-			//_ = CreateTrialUserManualAuth(newId, admin.RealName)
-			_ = EtaTrialManualUserAddAuth(newId, admin.RealName)
-		}()
 	}
 
 	// 推送消息给销售

+ 21 - 24
utils/config.go

@@ -9,15 +9,14 @@ import (
 )
 
 var (
-	RunMode                string //运行模式
-	APP_NAME_CN            string
-	MYSQL_URL              string        //数据库连接
-	MYSQL_URL_WEEKLY_TRIAL string        //eta试用数据库
-	Re                     error         //redis错误
-	Rc                     RedisClient   //redis缓存
-	MgoUrlData             string        // mongodb数据库连接配置
-	MgoDataCli             *mongo.Client // mongodb客户端连接
-	MgoDataDbName          string        // mongodb指标数据的库名
+	RunMode       string //运行模式
+	APP_NAME_CN   string
+	MYSQL_URL     string        //数据库连接
+	Re            error         //redis错误
+	Rc            RedisClient   //redis缓存
+	MgoUrlData    string        // mongodb数据库连接配置
+	MgoDataCli    *mongo.Client // mongodb客户端连接
+	MgoDataDbName string        // mongodb指标数据的库名
 )
 
 // ES配置
@@ -60,10 +59,6 @@ var (
 // AlarmMsgUrl 报警服务地址
 var AlarmMsgUrl string
 
-// CrmEtaServerUrl CRM-ETA服务地址
-var CrmEtaServerUrl string
-var CrmEtaAuthorization string
-
 var STATIC_DIR string
 
 // 对象存储客户端
@@ -128,6 +123,13 @@ var (
 	S3OpenAcl         string
 )
 
+// eta_forum_hub ETA社区桥接服务地址
+var (
+	ETA_FORUM_HUB_URL     string
+	ETA_FORUM_HUB_NAME_EN string
+	ETA_FORUM_HUB_MD5_KEY string
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
@@ -163,7 +165,6 @@ func init() {
 	}
 	APP_NAME_CN = appNameCn
 	MYSQL_URL = config["mysql_url"]
-	MYSQL_URL_WEEKLY_TRIAL = config["mysql_url_weekly_trial"]
 	// mongodb数据库连接配置
 	MgoUrlData = config["mgo_url_data"]
 	//日志配置
@@ -212,15 +213,6 @@ func init() {
 		CHART_INDEX_NAME = config["chart_index_name"]
 	}
 
-	// CRM-ETA服务地址
-	CrmEtaServerUrl = "http://127.0.0.1:8708"
-	if config["crm_eta_server_url"] != "" {
-		CrmEtaServerUrl = config["crm_eta_server_url"]
-	}
-	CrmEtaAuthorization = "NIi1RbEmH0C2rksXtPGDPBBgRgTZY87Q"
-	if config["crm_eta_authorization"] != "" {
-		CrmEtaAuthorization = config["crm_eta_authorization"]
-	}
 	// 静态文件目录
 	STATIC_DIR = config["static_dir"]
 	if STATIC_DIR == "" {
@@ -286,7 +278,12 @@ func init() {
 			S3DisableSSL = config["s3_disable_ssl"]
 			S3OpenAcl = config["s3_open_acl"]
 		}
-
+		// eta_forum_hub ETA社区桥接服务地址
+		{
+			ETA_FORUM_HUB_URL = config["eta_forum_hub_url"]
+			ETA_FORUM_HUB_NAME_EN = config["eta_forum_hub_name_en"]
+			ETA_FORUM_HUB_MD5_KEY = config["eta_forum_hub_md5_key"]
+		}
 	}
 }