Browse Source

no message

xingzai 1 year ago
parent
commit
57622fca51

+ 5 - 0
controllers/cygx/questionnaire.go

@@ -6,6 +6,7 @@ import (
 	"hongze/hz_crm_api/controllers"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
+	cygxService "hongze/hz_crm_api/services/cygx"
 	"hongze/hz_crm_api/utils"
 	"time"
 )
@@ -76,6 +77,10 @@ func (this *QuestionnaireController) PreserveAndPublish() {
 		br.ErrMsg = "保存失败,Err:" + err.Error()
 		return
 	}
+	//投票发布时,给所有开通买方研选正式试用的客户,推送模板消息
+	if questionnaireId == 0 {
+		go cygxService.SendWxMsgCygxQuestionnaire(questionnaireId)
+	}
 	br.Ret = 200
 	br.Success = true
 	br.IsAddLog = true

+ 17 - 2
models/company/company_permission.go

@@ -624,7 +624,6 @@ func GetReportPermissionIdsByCompanyIds(companyIds []int) (items []*CompanyListP
 	return
 }
 
-
 // GetCompanyReportPermissionByCompanyIdAndProductId 获取权限类型
 func GetCompanyReportPermissionByCompanyIdAndProductId(companyId, productId int) (items []*CompanyReportPermission, err error) {
 	o := orm.NewOrm()
@@ -639,4 +638,20 @@ WHERE
 	AND STATUS = '正式' `
 	_, err = o.Raw(sql, companyId, productId).QueryRows(&items)
 	return
-}
+}
+
+// 列表
+func GetCompanyReportPermissionList(condition string, pars []interface{}, startSize, pageSize int) (items []*CompanyReportPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM company_report_permission  WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	if startSize+pageSize > 0 {
+		sql += ` LIMIT ?,?  `
+		_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	} else {
+		_, err = o.Raw(sql, pars).QueryRows(&items)
+	}
+	return
+}

+ 102 - 0
services/cygx/cygx_questionnaire.go

@@ -0,0 +1,102 @@
+package cygx
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/services"
+	"hongze/hz_crm_api/services/alarm_msg"
+	"hongze/hz_crm_api/utils"
+	"strconv"
+)
+
+//func init() {
+//	SendWxMsgCygxQuestionnaire(2)
+//}
+
+// 投票发布时,给所有开通买方研选正式试用的客户
+func SendWxMsgCygxQuestionnaire(questionnaireId int) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("投票发布时,给所有开通买方研选正式试用的客户,questionnaireId:", questionnaireId, err.Error()), 2)
+		}
+	}()
+
+	//获取问卷详情
+	detail, e := cygx.GetCygxQuestionnaireDetail(questionnaireId)
+	if e != nil {
+		err = errors.New("GetCygxQuestionnaireDetail, Err: " + e.Error())
+		return
+	}
+
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var companyIds []int
+
+	var condition string
+	var pars []interface{}
+	condition = "  AND  chart_permission_id = 31 AND `status` IN ('正式','试用')  "
+	//获取所有开通买方研选正式试用的客户列表
+	listCompany, e := company.GetCompanyReportPermissionList(condition, pars, 0, 0)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxQuestionnaireDetail, Err: " + e.Error())
+		return
+	}
+	for _, v := range listCompany {
+		companyIds = append(companyIds, v.CompanyId)
+	}
+
+	//获取相关的用户
+	userList, e := models.GetWxUserByCompanyIds(companyIds)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetWxUserByCompanyIds, Err: " + e.Error())
+		return
+	}
+	mobile := make([]string, 0)
+	for _, v := range userList {
+		mobile = append(mobile, v.Mobile)
+	}
+	//获取用户对应的Openid
+	openIdList, e := cygx.GetUserRecordListByMobileArr(mobile)
+	if e != nil {
+		err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+		return
+	}
+
+	if len(openIdList) == 0 {
+		return
+	}
+	keyword1 = "买方研选【" + detail.ActivityTypeName + "】主题投票"
+	keyword2 = "请选择您感兴趣的主题"
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	redirectUrl := ""
+	if utils.RunMode == "release" {
+		redirectUrl = utils.WX_MSG_PATH_QUESTIONNAIRE_DETAIL + strconv.Itoa(questionnaireId)
+	}
+	sendInfo := new(services.SendWxTemplate)
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(questionnaireId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+
+	err = services.SendTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+	return
+}

+ 1 - 0
utils/constants.go

@@ -465,6 +465,7 @@ const (
 	WX_MSG_PATH_YX_SPECIAL_DETAIL               = "pages-purchaser/noteAndViewpoint/noteAndViewpoint?id="         //研选专栏详情
 	WX_MSG_PATH_YX_SPECIAL_ENABLE_DETAIL        = "pages-purchaser/toExamine/toExamine?id="                       //研选专栏审核详情页面
 	WX_MSG_PATH_YX_SPECIAL_CENTER               = "pages-purchaser/contentAllPage/contentAllPage?Status=4"        //研选专栏内容中心
+	WX_MSG_PATH_QUESTIONNAIRE_DETAIL            = ""                                                              //问卷调查详情页
 )
 
 // 图表类型