xingzai vor 1 Jahr
Ursprung
Commit
3ef0800620

+ 2 - 0
controllers/activity.go

@@ -826,6 +826,7 @@ func (this *ActivityNoLoginController) Detail() {
 					}
 				}
 			}
+
 		}
 		//if activityInfo.YidongActivityId != "" {
 		//	ydTgc, _ := services.GetYiDongCreateUserInfo(user)
@@ -878,6 +879,7 @@ func (this *ActivityNoLoginController) Detail() {
 			return
 		}
 		detailResp.SignupType = mapActivitySignup[activityId]
+		detailResp.ShareImg = services.GetActivityShareImg(activityInfo)
 		resp.Detail = detailResp
 	} else {
 		hasPermission, sellerName, sellerMobile, popupMsg, err := services.GetUserHasPermission(user)

+ 1 - 0
controllers/article.go

@@ -335,6 +335,7 @@ Loop:
 			return
 		}
 	}
+	detail.ShareImg = services.GetArticleShareImg(articleId)
 	resp.HasPermission = hasPermission
 	resp.IsSpecialArticle = detail.IsSpecialArticle
 	resp.Detail = detail

+ 48 - 0
controllers/wechat.go

@@ -254,3 +254,51 @@ func (this *MobileWechatController) WechatBindMobile() {
 	br.Success = true
 	br.Msg = "绑定成功"
 }
+
+// @Title 微信获取签名接口
+// @Description 微信获取签名接口
+// @Param   Url   query   string  true       "url地址"
+// @Success 200 {object} models.WechatSign
+// @router /getWxSign [get]
+func (this *WechatCommonController) GetWxSign() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	getUrl := this.GetString("Url")
+	accessToken, err := services.GetWxAccessTokenByMfyx()
+	if err != nil {
+		br.Msg = "获取用户信息失败"
+		br.ErrMsg = "获取access_token失败,err:" + err.Error()
+		return
+	}
+	if accessToken == "" {
+		br.Msg = "获取用户信息失败"
+		br.ErrMsg = "access_token 为空,"
+		return
+	}
+	ticket, err := services.GetWxTicket(accessToken)
+	if err != nil {
+		br.Msg = "获取Ticket失败,请联系客服"
+		br.ErrMsg = "获取Ticket失败,Err" + err.Error()
+		return
+	}
+	if ticket == "" {
+		br.Msg = "获取Ticket失败,请联系客服"
+		br.ErrMsg = "ticket为空" + ticket
+		return
+	}
+	nonceStr := utils.GetRandStringNoSpecialChar(16)
+	signature, nonceString, timestamp := services.GetWxSignature(ticket, getUrl, nonceStr)
+	resp := new(models.WechatSign)
+	resp.AppId = utils.WxPublicAppId
+	resp.NonceStr = nonceString
+	resp.Timestamp = timestamp
+	resp.Url = getUrl
+	resp.Signature = signature
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取签名成功"
+	br.Data = resp
+}

+ 1 - 1
controllers/yanxuan_special.go

@@ -269,7 +269,7 @@ func (this *YanxuanSpecialNoLoginController) Detail() {
 	//if resp.HasPermission != 1 || sysUser.UserId == 0 {
 	//	resp.Content = utils.InterceptHtmlLength(resp.Content, 240)
 	//}
-
+	resp.ShareImg = utils.YANXUAN_SPECIAL_SHARE_IMG
 	br.Data = resp
 	br.Ret = 200
 	br.Success = true

+ 1 - 0
models/activity.go

@@ -236,6 +236,7 @@ type ActivityListResp struct {
 	IsYidongActivity        bool                       `description:"是否属于易董同步过来的活动"`
 	TopTime                 int                        `description:"置顶时间"`
 	LabelKeywordImgLink     string                     `description:"标签关键词ico"`
+	ShareImg                string                     `description:"分享图片"`
 }
 
 type ActivityCheck struct {

+ 23 - 0
models/activity_share_img.go

@@ -0,0 +1,23 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type CygxActivityShareImgResp struct {
+	Id                  int    `description:"主键ID"`
+	ActivityTypeId      int    `description:"活动类型ID,默认值为0"`
+	ActivityTypeName    string `description:"活动类型名称"`
+	ChartPermissionId   int    `description:"表chart_permission中的ID,默认值为0"`
+	ChartPermissionName string `description:"行业名称"`
+	City                string `description:"城市"`
+	Img                 string `description:"图片地址"`
+}
+
+// 根据活动类型,行业或者城市,获取对应的封面图片
+func CygxActivityShareImgDetail(activityTypeId, chartPermissionId int, city string) (item *CygxActivityShareImgResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT   *  FROM  cygx_activity_share_img WHERE activity_type_id = ? AND  (chart_permission_id = ? OR  city = ? )  LIMIT  1 `
+	err = o.Raw(sql, activityTypeId, chartPermissionId, city).QueryRow(&item)
+	return
+}

+ 1 - 0
models/article.go

@@ -79,6 +79,7 @@ type ArticleDetail struct {
 	SubCategoryName          string          `description:"二级分类"`
 	ArticleTypeId            int             `description:"文章类型ID"`
 	IsApplyAppointmentExpert bool            `description:"是否属于专家访谈"`
+	ShareImg                 string          `description:"分享图片"`
 }
 
 type CygxArticleIdReq struct {

+ 9 - 1
models/article_data.go

@@ -24,7 +24,7 @@ type ComapnyNameResp struct {
 	ComapnyName string `description:"公司民称"`
 }
 
-//列表
+// 列表
 func CygxArticleDataList(condition string, pars []interface{}) (items []*CygxArticleDataResp, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -44,3 +44,11 @@ func CygxArticleDataList(condition string, pars []interface{}) (items []*CygxArt
 	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
+
+// 获取文章封面
+func CygxCygxArticleDataDetail(articleId int) (item *CygxArticleDataResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT   *  FROM  cygx_article_data WHERE article_id  = ?  LIMIT  1 `
+	err = o.Raw(sql, articleId).QueryRow(&item)
+	return
+}

+ 4 - 3
models/cygx_yanxuan_special.go

@@ -69,9 +69,10 @@ type CygxYanxuanSpecialResp struct {
 	Docs            []Doc
 	CompanyTags     []string
 	IndustryTags    []string
-	HasPermission   int  `description:"1:正常展示,2:不展示"`
-	IsApprovalAdmin bool // 是否是审批人员
-	IsFollowAuthor  bool // 是否关注作者
+	HasPermission   int    `description:"1:正常展示,2:不展示"`
+	IsApprovalAdmin bool   // 是否是审批人员
+	ShareImg        string `description:"分享图片"`
+	IsFollowAuthor  bool   // 是否关注作者
 }
 
 type Doc struct {

+ 9 - 0
routers/commentsRouter.go

@@ -880,6 +880,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_web_mfyx/controllers:WechatCommonController"] = append(beego.GlobalControllerRouter["hongze/hongze_web_mfyx/controllers:WechatCommonController"],
+        beego.ControllerComments{
+            Method: "GetWxSign",
+            Router: `/getWxSign`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_web_mfyx/controllers:WechatCommonController"] = append(beego.GlobalControllerRouter["hongze/hongze_web_mfyx/controllers:WechatCommonController"],
         beego.ControllerComments{
             Method: "WechatLogin",

+ 31 - 0
services/activity.go

@@ -1914,3 +1914,34 @@ func GetYanxuanActivityIds(user *models.WxUserItem) (activityIds []int) {
 	}
 	return
 }
+
+// 获取活动分享封面图片
+func GetActivityShareImg(activityDetail *models.ActivityDetail) (shareImg string) {
+	var err error
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("获取活动分享封面图片失败Err:", err.Error(), "活动ID:", activityDetail.ActivityId), 2)
+		}
+	}()
+	activityTypeId := activityDetail.ActivityTypeId
+	chartPermissionId := activityDetail.ChartPermissionId
+	city := activityDetail.City
+
+	//分析师C类电话会,等于分析师电话会
+	if activityTypeId == 7 {
+		activityTypeId = 2
+	}
+	defaultCity := []string{"北京", "广州", "杭州", "南京", "上海", "深圳", "苏州"} //几个默认城市
+	if city != "" {
+		if !utils.InArrayByStr(defaultCity, city) {
+			city = "其他"
+		}
+	}
+	imgDetail, e := models.CygxActivityShareImgDetail(activityTypeId, chartPermissionId, city)
+	if e != nil {
+		err = errors.New("CygxActivityShareImgDetail, Err: " + e.Error())
+		return
+	}
+	shareImg = imgDetail.Img
+	return
+}

+ 22 - 0
services/article.go

@@ -812,3 +812,25 @@ func GetYanxuanArticleIds() (articleIds []int) {
 	}
 	return
 }
+
+// 获取报告分享图片
+func GetArticleShareImg(articleId int) (shareImg string) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("获取活动分享封面图片失败 GetArticleShareImg Err:", err.Error(), "活动ID:", articleId), 2)
+		}
+	}()
+	imgDetail, e := models.CygxCygxArticleDataDetail(articleId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("CygxCygxArticleDataDetail, Err: " + e.Error())
+		return
+	}
+	if imgDetail != nil {
+		shareImg = imgDetail.Cover
+	} else {
+		shareImg = utils.YANXUAN_ARTICLE_SHARE_IMG
+	}
+	return
+}

+ 3 - 3
services/wechat.go

@@ -130,10 +130,10 @@ type WxUserDetail struct {
 	Nickname   string
 }
 
-func GetWxAccessTokenByXzs() (accessTokenStr string, err error) {
+func GetWxAccessTokenByMfyx() (accessTokenStr string, err error) {
 	//缓存校验
 	if utils.RunMode == "release" {
-		cacheKey := "xygxxzs_wxtoken"
+		cacheKey := "mfyx_gzh_wxtoken"
 		accessTokenStr, _ = utils.Rc.RedisString(cacheKey)
 		if accessTokenStr != "" {
 			return
@@ -175,7 +175,7 @@ func GetWxTicket(accessToken string) (string, error) {
 
 // 获取测试环境的AccessToken
 func GetWxAccessToken() (accessTokenStr string, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly_report")
 	sql := `SELECT * FROM wx_token LIMIT 1`
 	wxToken := new(WxToken)
 	err = o.Raw(sql).QueryRow(&wxToken)

+ 6 - 0
utils/constants.go

@@ -296,3 +296,9 @@ const (
 	LABEL_ICO_5 string = "https://hzstatic.hzinsights.com/cygx_web/config/jiyao.png"                    // 纪要
 	LABEL_ICO_6 string = "https://hzstatic.hzinsights.com/cygx_web/config/maifangshalong.png"           // 买方沙龙
 )
+
+const (
+	PRODUCT_INTERIOR_SHARE_IMG string = "https://hzstatic.hzinsights.com/static/images/202402/20240205/wlSvE6xyT1L9ly4doDhxLO14RMwz.png" //产品内测分享图片
+	YANXUAN_SPECIAL_SHARE_IMG  string = "https://hzstatic.hzinsights.com/static/images/202402/20240205/JNxgV260CgccDfKWFFRnip37ulUA.png" //研选专栏分享图片
+	YANXUAN_ARTICLE_SHARE_IMG  string = "https://hzstatic.hzinsights.com/static/images/202402/20240205/Ns2nqEx1piNGB7YthA6AfQOeiJMh.png" //研选报告分享图片
+)