|
@@ -4,6 +4,7 @@ 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"
|
|
@@ -192,3 +193,117 @@ func SendWxMsgWithCygxActivitySignUpBySell(items []*cygx.CygxSignupUser) (err er
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// 已结束的活动上传音频或视频后给已关注这个活动关联的产业的正式、试用 客户发送模板信息
|
|
|
+func SendWxMsgWithUpdateActivityVideoAndVoice(activityId int, fileName string) (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go alarm_msg.SendAlarmMsg(fmt.Sprint("已结束的活动上传音频或视频后给已关注这个活动关联的产业的正式、试用 客户发送模板信息失败,Err:"+err.Error()+";activityId:", activityId), 3)
|
|
|
+ //utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ activityInfo, e := cygx.GetAddActivityInfoById(activityId)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("活动不存在, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if activityInfo == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ industrialList, e := cygx.GetIndustrialActivityGroupListByactivityIds(strconv.Itoa(activityId))
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetIndustrialActivityGroupListByactivityIds: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //if len(industrialList) == 0 {
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+
|
|
|
+ var industrialManagementIds []int
|
|
|
+
|
|
|
+ for _, v := range industrialList {
|
|
|
+ industrialManagementIds = append(industrialManagementIds, v.IndustrialManagementId)
|
|
|
+ }
|
|
|
+ lenindustrialManagementIds := len(industrialManagementIds)
|
|
|
+ if lenindustrialManagementIds == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ //获取试用正式权益客户
|
|
|
+ condition = " AND product_id = 2 AND `status` IN('正式','试用') "
|
|
|
+ listCompany, e := company.GetCompanyProductList(condition, pars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCompanyProductList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyIds []int
|
|
|
+ for _, v := range listCompany {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
+ lencompanyIds := len(companyIds)
|
|
|
+ if lencompanyIds == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据产业关注ID,与有权限的公司ID获取对应的用户列表
|
|
|
+ condition = " AND industrial_management_id IN (" + utils.GetOrmInReplace(lenindustrialManagementIds) + ") AND company_id IN (" + utils.GetOrmInReplace(lencompanyIds) + ") "
|
|
|
+ pars = append(pars, industrialManagementIds, companyIds)
|
|
|
+ userFllowList, e := cygx.GetCygxIndustryFllowList(condition, pars, 0, 0)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxIndustryFllowList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取这些用户的手机号
|
|
|
+ var mobileArr []string
|
|
|
+ for _, v := range userFllowList {
|
|
|
+ mobileArr = append(mobileArr, v.Mobile)
|
|
|
+ }
|
|
|
+ mobileLen := len(mobileArr)
|
|
|
+ if mobileLen == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ openIdList, e := cygx.GetUserRecordListByMobileArr(mobileArr)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxOpenIdBList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(openIdList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ openIdArr := make([]string, len(openIdList))
|
|
|
+ for _, v := range openIdList {
|
|
|
+ openIdArr = append(openIdArr, v.OpenId)
|
|
|
+ }
|
|
|
+
|
|
|
+ keyword1 := fileName
|
|
|
+ keyword2 := "路演回放已发布,欢迎查看"
|
|
|
+ keyword3 := ""
|
|
|
+ keyword4 := ""
|
|
|
+
|
|
|
+ redirectUrl := utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId)
|
|
|
+ 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(activityId)
|
|
|
+ sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_LIMIT_PEOPLE
|
|
|
+ sendInfo.OpenIdArr = openIdArr
|
|
|
+ e = services.SendTemplateMsg(sendInfo)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("SendTemplateMsg, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|