浏览代码

活动模版替换完成

zhangchuanxing 5 天之前
父节点
当前提交
c7ed8b30db

+ 8 - 39
controllers/cygx/activity.go

@@ -683,18 +683,7 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 					itemVideo.CreateTime = time.Now().Format(utils.FormatDateTime)
 					sourceVivo = utils.CYGX_OBJ_ACTIVITYVIDEO
 				}
-				//删除原有的视频数据
-				//if itemVideo.VideoUrl != "" {
-				//videoDetail, err := cygx.GetCygxActivityVideoReqDetail(activityId)
-				//if err != nil && err.Error() != utils.ErrNoRow() {
-				//	br.Msg = "获取信息失败"
-				//	br.ErrMsg = "GetCygxActivityVideoReqDetail,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
-				//	return
-				//}
-				//if videoDetail != nil {
-				//	go cygxService.UpdateResourceData(videoDetail.VideoId, "activityvideo", "delete", time.Now().Format(utils.FormatDateTime))
-				//}
-				//}
+
 				//处理音视频上传
 				err = cygxService.UpdateActivityVideoAndVoice(activityInfo, itemVoice, itemVideo)
 				if err != nil && err.Error() != utils.ErrNoRow() {
@@ -709,19 +698,7 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 					br.ErrMsg = "UpdateActivityVideoAndVoice,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
 					return
 				}
-				//if itemVoice.VoiceUrl != "" {
-				//voiceReqList, err := cygx.GetCygxActivityVoiceReqList(activityId)
-				//if err != nil && err.Error() != utils.ErrNoRow() {
-				//	br.Msg = "获取信息失败"
-				//	br.ErrMsg = "GetCygxActivityVoiceReqList,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
-				//	return
-				//}
-				//if len(voiceReqList) > 0 {
-				//	for _, voice := range voiceReqList {
-				//		go cygxService.UpdateResourceData(voice.ActivityVoiceId, "activityvoice", "delete", time.Now().Format(utils.FormatDateTime))
-				//	}
-				//}
-				//}
+
 				//如果活动信息有如下变更则做消息推送
 				err = cygx.EditActivity(item, activityInfo.PublishStatus, industrialActivityItemsList, subjectActivityItemsList, itemPointsSet)
 				if err != nil {
@@ -729,18 +706,10 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 					br.ErrMsg = "操作失败,Err:" + err.Error()
 					return
 				}
-				////更新活动音频
-				//if int(voiceIdNew) > 0 {
-				//	go cygxService.UpdateResourceData(int(voiceIdNew), "activityvoice", "add", activityInfo.ActivityTime)
-				//}
-				////更新活动视频
-				//if int(videoIdNew) > 0 {
-				//	go cygxService.UpdateResourceData(int(videoIdNew), "activityvideo", "add", activityInfo.ActivityTime)
-				//}
 
 				errAct = err
 				if activityInfo.PublishStatus == 1 && activityInfo.ActivityTimeText != item.ActivityTimeText {
-					go services.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ActivityTimeText, item.ActivityTimeText, "timeType")
+					go cygxService.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ActivityTimeText, item.ActivityTimeText, "timeType")
 					if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 						activityTime, err := time.Parse(utils.FormatDateTime, item.ActivityTime)
 						if err != nil {
@@ -755,26 +724,26 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 				oldExpert, _ := cygx.GetReportContentTextSub(activityInfo.Expert)
 				newExpert, _ := cygx.GetReportContentTextSub(item.Expert)
 				if activityInfo.PublishStatus == 1 && oldExpert != newExpert {
-					go services.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, oldExpert, newExpert, "expertType")
+					go cygxService.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, oldExpert, newExpert, "expertType")
 					if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 						go services.SendWxCategoryMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ActivityTimeText, newExpert, "expertType")
 					}
 				}
 				if activityInfo.PublishStatus == 1 && activityInfo.Address != item.Address {
-					go services.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.Address, item.Address, "addressType")
+					go cygxService.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.Address, item.Address, "addressType")
 					if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 						go services.SendWxCategoryMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ActivityTimeText, item.Address, "addressType")
 					}
 				}
 				if activityInfo.PublishStatus == 1 && activityInfo.ParticipationCode != item.ParticipationCode {
-					go services.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ParticipationCode, item.ParticipationCode, "participationCode")
+					go cygxService.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ParticipationCode, item.ParticipationCode, "participationCode")
 					if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 						go services.SendWxCategoryMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ActivityTimeText, item.ParticipationCode, "participationCode")
 					}
 				}
 
 				if activityInfo.PublishStatus == 1 && activityInfo.Theme != item.Theme {
-					go services.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.Theme, item.Theme, "Theme")
+					go cygxService.SendWxMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.Theme, item.Theme, "Theme")
 					if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 						go services.SendWxCategoryMsgWithCygxActivityUpdateTime(req.ActivityId, activityInfo.ActivityTimeText, item.Theme, "Theme")
 					}
@@ -1344,7 +1313,7 @@ func (this *ActivityCoAntroller) PublishAndCancel() {
 		item.IsCancel = 1
 	}
 	if activityInfo.PublishStatus == 1 {
-		go services.SendWxMsgWithCygxActivity(req.ActivityId)
+		go cygxService.SendWxMsgWithCygxActivity(req.ActivityId)
 		//同步活动到最新数据表
 		//go cygxService.UpdateResourceData(req.ActivityId, "activity", "delete", "")
 		if activityInfo.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {

+ 12 - 19
models/cygx/cygx_user_record.go

@@ -231,31 +231,24 @@ func GetCygxActiviyUserFllowOpenid(activityId int) (items []*OpenIdList, err err
 //}
 
 // GetCygxUserRecordPowerByActivitySet 根据活动设置,获取所有有权限的用户的opid
-func GetCygxUserRecordPowerByActivitySet(chartPermissionIds, condition string) (items []*OpenIdList, itemsYx []*OpenIdList, err error) {
-	//o := orm.NewOrm()
-	//sql := `SELECT
-	//		cr.open_id,
-	//		u.user_id,
-	//		u.company_id,
-	//		u.real_name,
-	//		u.mobile
-	//	FROM
-	//		company_report_permission AS p
-	//		INNER JOIN wx_user AS u ON u.company_id = p.company_id
-	//		INNER JOIN user_record AS r ON r.user_id = u.user_id
-	//		INNER JOIN cygx_user_record AS cr ON cr.union_id = r.union_id
-	//	WHERE
-	//		p.chart_permission_id IN (` + chartPermissionIds + `) ` + condition + ` AND r.create_platform = 4
-	//		AND p.STATUS IN ('正式','试用','永续')   GROUP BY cr.open_id `
-	//_, err = o.Raw(sql).QueryRows(&items)
-
+func GetCygxUserRecordPowerByActivitySet(chartPermissionIds, condition string, mobileArrJmcj []string) (items []*OpenIdList, itemsYx []*OpenIdList, err error) {
 	listMobile, err := GetCygxUserRecordPowerByActivitySetListMobile(chartPermissionIds, condition)
 	if err != nil {
 		return
 	}
 	var mobileArr []string
+	var mobileArrYx []string
+	//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+	for _, v := range mobileArrJmcj {
+		if v != "" {
+			mobileArr = append(mobileArr, v)
+		}
+	}
 	for _, v := range listMobile {
 		if v.Mobile != "" {
+			if !utils.InArrayByStr(mobileArrJmcj, v.Mobile) {
+				mobileArrYx = append(mobileArrYx, v.Mobile)
+			}
 			mobileArr = append(mobileArr, v.Mobile)
 		}
 	}
@@ -269,7 +262,7 @@ func GetCygxUserRecordPowerByActivitySet(chartPermissionIds, condition string) (
 	}
 	items = openIdList
 
-	openIdListYx, err := GetMfyxUserRecordListByMobileArr(mobileArr)
+	openIdListYx, err := GetMfyxUserRecordListByMobileArr(mobileArrYx)
 	if err != nil {
 		return
 	}

+ 10 - 19
services/cygx/acitvity.go

@@ -920,24 +920,6 @@ func DoActivityOnenIdWxTemplateMsg(activityId int) (err error) {
 	//conditionPer = ` AND p.chart_permission_id IN (` + utils.GetOrmInReplace(len(chartPermissionIdArr)) + `) `
 	parsPer = append(parsPer, chartPermissionIdArr)
 
-	//if len(chartPermissionStarus) > 0 {
-	//	conditionPer += ` AND p.STATUS IN (` + utils.GetOrmInReplace(len(chartPermissionStarus)) + `) `
-	//	parsPer = append(parsPer, chartPermissionStarus)
-	//}
-
-	//先获取有对应权限的所有用户
-	//openidPowerList, e := cygx.GetCygxUserRecordPowerOpenid(conditionPer, parsPer)
-	//if e != nil && e.Error() != utils.ErrNoRow() {
-	//	err = errors.New("GetCygxUserRecordPowerOpenid, Err: " + e.Error())
-	//	return
-	//}
-	//fmt.Println(len(openidPowerList))
-	// 获取所有有权的用户的 openid
-	//openidPowerList, err := cygx.GetCygxUserRecordPower(chartPermissionIds)
-	//if err != nil {
-	//	return
-	//}
-
 	var havePowerCompanyid string
 	//如果活动限制人数就做可见区分判断
 	if activityInfo.IsLimitPeople > 0 {
@@ -1242,8 +1224,17 @@ func DoActivityOnenIdWxTemplateMsg(activityId int) (err error) {
 		mapOpenidFllow[v.UserId] = v.OpenId
 	}
 
+	var mobileArrJmcj []string
+	listUserJmcj, err := models.GetWxUserListCompanyId(utils.JMCJ_COMPANY_ID)
+	if err != nil {
+		return
+	}
+	for _, v := range listUserJmcj {
+		mobileArrJmcj = append(mobileArrJmcj, v.Mobile)
+	}
+
 	//fmt.Println(mapOpenidFllow)
-	openidPowerByActivitySetList, openidPowerByActivitySetListYx, err := cygx.GetCygxUserRecordPowerByActivitySet(chartPermissionIds, condition)
+	openidPowerByActivitySetList, openidPowerByActivitySetListYx, err := cygx.GetCygxUserRecordPowerByActivitySet(chartPermissionIds, condition, mobileArrJmcj)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		return err
 	}

+ 253 - 0
services/cygx/activity_wx_msg.go

@@ -9,7 +9,9 @@ import (
 	"hongze/hz_crm_api/services"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
+	"html"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -101,6 +103,16 @@ func SendWxMsgWithCygxActivityUpdateLimitPeople(activityId int) (err error) {
 		openiditems = append(openiditems, openiditem)
 	}
 
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
+	}
+
 	first := "您好,本场活动已增加活动名额至" + activityInfo.LimitPeopleNum + "人,欢迎报名"
 	keyword1 := activityInfo.ActivityName
 	keyword2 := "已增加活动名额至" + activityInfo.LimitPeopleNum + "人,欢迎报名"
@@ -336,3 +348,244 @@ func SendWxMsgWithUpdateActivityVideoAndVoice(activityId int, fileName string) (
 	}
 	return
 }
+
+// 活动更改时间消息通知
+func SendWxMsgWithCygxActivityUpdateTime(activityId int, oldStr, newStr, strType string) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
+			utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
+		}
+		if msg != "" {
+			utils.FileLogCygx.Info("发送模版消息失败,msg:%s", msg)
+		}
+	}()
+
+	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
+	if err != nil {
+		msg = "GetReportInfo Err:" + err.Error()
+		return
+	}
+	if activityInfo == nil {
+		utils.FileLogCygx.Info("活动信息不存在")
+		return
+	}
+
+	var openIdList []*cygx.OpenIdList
+
+	openIdList, err = cygx.GetActivityOpenIdList(activityId)
+	if err != nil {
+		msg = "get openIdList err:" + err.Error()
+		return
+	}
+
+	mapOpenid := make(map[int]string)
+	for _, v := range openIdList {
+		mapOpenid[v.UserId] = v.OpenId
+	}
+	//添加预约纪要的openid
+	openIdListAppointment, err := cygx.GetActivityAppointmentOpenIdList(activityId)
+	if err != nil {
+		msg = "GetActivityAppointmentOpenIdList err:" + err.Error()
+		return
+	}
+	if len(openIdListAppointment) > 0 {
+		for _, v := range openIdListAppointment {
+			if _, ok := mapOpenid[v.UserId]; !ok {
+				item := new(cygx.OpenIdList)
+				item.UserId = v.UserId
+				item.OpenId = v.OpenId
+				openIdList = append(openIdList, item)
+			}
+			mapOpenid[v.UserId] = v.OpenId
+
+		}
+	}
+
+	//添加带问的openid
+	openIdListActivityHelpAsk, err := cygx.GetActivityHelpAskOpenIdList(activityId)
+	if err != nil {
+		msg = "openIdListActivityHelpAsk err:" + err.Error()
+		return
+	}
+	if len(openIdListActivityHelpAsk) > 0 {
+		for _, v := range openIdListActivityHelpAsk {
+			if _, ok := mapOpenid[v.UserId]; !ok {
+				item := new(cygx.OpenIdList)
+				item.UserId = v.UserId
+				item.OpenId = v.OpenId
+				openIdList = append(openIdList, item)
+			}
+			mapOpenid[v.UserId] = v.OpenId
+		}
+	}
+
+	if len(openIdList) == 0 {
+		return err
+	}
+	//sendMap := make(map[string]interface{})
+	//sendData := make(map[string]interface{})
+	var first string
+	var keyword1, keyword2, keyword3, keyword4, redirectUrl string
+
+	activityInfo.ActivityTypeName = strings.Replace(activityInfo.ActivityTypeName, "(C类)", "", -1)
+	if strType == "timeType" {
+		//first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了时间变更"
+		keyword2 = "时间变更为:【 " + newStr + "】"
+	} else if strType == "expertType" {
+		//first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了专家变更"
+		keyword2 = "专家变更为:【" + newStr + "】"
+	} else if strType == "addressType" {
+		//first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了地址变更"
+		keyword2 = "地点变更为:【" + newStr + "】"
+	} else if strType == "participationCode" {
+		//first = "您有一场【" + activityInfo.ActivityTypeName + "】公布了拨入密码"
+		keyword2 = "拨入密码为: " + newStr
+	} else if strType == "Theme" {
+		//first = "您有一场【" + activityInfo.ActivityTypeName + "】更新了活动主题"
+		newStr = strings.Replace(newStr, "</p><p>", "\n", -1)
+		newStr = html.EscapeString(newStr)
+		newStrHtml, _ := cygx.GetReportContentTextSub(newStr)
+		newStr = newStrHtml
+		keyword2 = "主题变更为: " + newStr
+	}
+
+	keyword1 = activityInfo.ActivityName
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
+	}
+	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId) + "&IsSendWx=1"
+	sendInfo := new(services.SendWxTemplate)
+	sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	//sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(activityId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE
+	sendInfo.OpenIdArr = openIdArr
+	e := services.SendTemplateMsg(sendInfo)
+	if e != nil {
+		err = errors.New("推送模板消息失败" + e.Error())
+		return
+	}
+	return
+}
+
+// 活动取消消息通知
+func SendWxMsgWithCygxActivity(activityId int) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
+			utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
+		}
+		if msg != "" {
+			utils.FileLogCygx.Info("发送模版消息失败,msg:%s", msg)
+		}
+	}()
+	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
+	if err != nil {
+		msg = "GetReportInfo Err:" + err.Error()
+		return
+	}
+	var openIdList []*cygx.OpenIdList
+	openIdList, err = cygx.GetActivityOpenIdList(activityId)
+	if err != nil {
+		msg = "get GetActivityOpenIdList err:" + err.Error()
+		return
+	}
+	mapOpenid := make(map[int]string)
+	for _, v := range openIdList {
+		mapOpenid[v.UserId] = v.OpenId
+	}
+	//添加预约纪要的openid
+	openIdListAppointment, err := cygx.GetActivityAppointmentOpenIdList(activityId)
+	if err != nil {
+		msg = "GetActivityAppointmentOpenIdList err:" + err.Error()
+		return
+	}
+	if len(openIdListAppointment) > 0 {
+		for _, v := range openIdListAppointment {
+			if _, ok := mapOpenid[v.UserId]; !ok {
+				item := new(cygx.OpenIdList)
+				item.UserId = v.UserId
+				item.OpenId = v.OpenId
+				openIdList = append(openIdList, item)
+			}
+			mapOpenid[v.UserId] = v.OpenId
+
+		}
+	}
+
+	//添加带问的openid
+	openIdListActivityHelpAsk, err := cygx.GetActivityHelpAskOpenIdList(activityId)
+	if err != nil {
+		msg = "openIdListActivityHelpAsk err:" + err.Error()
+		return
+	}
+	if len(openIdListActivityHelpAsk) > 0 {
+		for _, v := range openIdListActivityHelpAsk {
+			if _, ok := mapOpenid[v.UserId]; !ok {
+				item := new(cygx.OpenIdList)
+				item.UserId = v.UserId
+				item.OpenId = v.OpenId
+				openIdList = append(openIdList, item)
+			}
+			mapOpenid[v.UserId] = v.OpenId
+		}
+	}
+	activityInfo.ActivityTypeName = strings.Replace(activityInfo.ActivityTypeName, "(C类)", "", -1)
+	if len(openIdList) == 0 {
+		return err
+	}
+	var keyword1, keyword2, keyword3, keyword4, redirectUrl string
+	keyword1 = activityInfo.ActivityName
+	keyword2 = "活动已取消"
+
+	var openIdArr []string
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+		//需求池 1043:深圳进门财经科技股份有限公司下所有的账号,所有活动的新增修改都做推送,所有的报告的新增修改都不做推送。
+		jmcjOpenId := GetUserOpenidByComapnyIdRai(utils.JMCJ_COMPANY_ID)
+		for _, v := range jmcjOpenId {
+			if !utils.InArrayByStr(openIdArr, v) {
+				openIdArr = append(openIdArr, v)
+			}
+		}
+	}
+
+	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId) + "&IsSendWx=1"
+	sendInfo := new(services.SendWxTemplate)
+	//sendInfo.First = first
+	sendInfo.Keyword1 = keyword1
+	sendInfo.Keyword2 = keyword2
+	sendInfo.Keyword3 = keyword3
+	sendInfo.Keyword4 = keyword4
+	//sendInfo.Remark = remark
+	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
+	sendInfo.RedirectUrl = redirectUrl
+	sendInfo.RedirectTarget = 3
+	sendInfo.Resource = strconv.Itoa(activityId)
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_CACLE
+	sendInfo.OpenIdArr = openIdArr
+	err = services.SendTemplateMsg(sendInfo)
+	return
+}

+ 31 - 0
services/cygx/user_remind.go

@@ -3,6 +3,7 @@ package cygx
 import (
 	"errors"
 	"fmt"
+	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
@@ -38,3 +39,33 @@ func GetCygxUserRemindListMap(userIds []int) (mapResp map[int]bool) {
 	}
 	return
 }
+
+// 获取某一个公司下所有OpenId (查研观向主体)
+func GetUserOpenidByComapnyIdRai(comppanyId int) (openIdArr []string) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg(fmt.Sprint("获取某一个公司下所有用户的手机号 失败 comppanyId", comppanyId, "err", err.Error()), 2)
+		}
+	}()
+	listUser, e := models.GetWxUserListCompanyId(comppanyId)
+	if e != nil {
+		err = errors.New("GetWxUserListCompanyId" + e.Error())
+		return
+	}
+	var mobileArr []string
+	openIdArr = make([]string, 0)
+	for _, v := range listUser {
+		mobileArr = append(mobileArr, v.Mobile)
+	}
+	openIdListJmcj, e := cygx.GetUserRecordListByMobileArr(mobileArr)
+	if e != nil {
+		err = errors.New("GetUserRecordListByMobileArr" + e.Error())
+		return
+	}
+	for _, v := range openIdListJmcj {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	return
+}

+ 0 - 269
services/wechat_send_msg.go

@@ -10,7 +10,6 @@ import (
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
-	"html"
 	"io/ioutil"
 	"net/http"
 	"strconv"
@@ -418,250 +417,6 @@ func SendCompanyReceiveWxTemplateMsg(companyName, productName, sellerName, other
 	return
 }
 
-// 活动取消消息通知
-func SendWxMsgWithCygxActivity(activityId int) (err error) {
-	var msg string
-	defer func() {
-		if err != nil {
-			go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
-			utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
-		}
-		if msg != "" {
-			utils.FileLogCygx.Info("发送模版消息失败,msg:%s", msg)
-		}
-	}()
-	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
-	if err != nil {
-		msg = "GetReportInfo Err:" + err.Error()
-		return
-	}
-	var openIdList []*cygx.OpenIdList
-	openIdList, err = cygx.GetActivityOpenIdList(activityId)
-	if err != nil {
-		msg = "get GetActivityOpenIdList err:" + err.Error()
-		return
-	}
-	mapOpenid := make(map[int]string)
-	for _, v := range openIdList {
-		mapOpenid[v.UserId] = v.OpenId
-	}
-	//添加预约纪要的openid
-	openIdListAppointment, err := cygx.GetActivityAppointmentOpenIdList(activityId)
-	if err != nil {
-		msg = "GetActivityAppointmentOpenIdList err:" + err.Error()
-		return
-	}
-	if len(openIdListAppointment) > 0 {
-		for _, v := range openIdListAppointment {
-			if _, ok := mapOpenid[v.UserId]; !ok {
-				item := new(cygx.OpenIdList)
-				item.UserId = v.UserId
-				item.OpenId = v.OpenId
-				openIdList = append(openIdList, item)
-			}
-			mapOpenid[v.UserId] = v.OpenId
-
-		}
-	}
-
-	//添加带问的openid
-	openIdListActivityHelpAsk, err := cygx.GetActivityHelpAskOpenIdList(activityId)
-	if err != nil {
-		msg = "openIdListActivityHelpAsk err:" + err.Error()
-		return
-	}
-	if len(openIdListActivityHelpAsk) > 0 {
-		for _, v := range openIdListActivityHelpAsk {
-			if _, ok := mapOpenid[v.UserId]; !ok {
-				item := new(cygx.OpenIdList)
-				item.UserId = v.UserId
-				item.OpenId = v.OpenId
-				openIdList = append(openIdList, item)
-			}
-			mapOpenid[v.UserId] = v.OpenId
-		}
-	}
-	activityInfo.ActivityTypeName = strings.Replace(activityInfo.ActivityTypeName, "(C类)", "", -1)
-	if len(openIdList) == 0 {
-		return err
-	}
-	var keyword1, keyword2, keyword3, keyword4, redirectUrl string
-	keyword1 = activityInfo.ActivityName
-	keyword2 = "活动已取消"
-	openIdArr := make([]string, len(openIdList))
-	for i, v := range openIdList {
-		openIdArr[i] = v.OpenId
-	}
-	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId) + "&IsSendWx=1"
-	sendInfo := new(SendWxTemplate)
-	//sendInfo.First = first
-	sendInfo.Keyword1 = keyword1
-	sendInfo.Keyword2 = keyword2
-	sendInfo.Keyword3 = keyword3
-	sendInfo.Keyword4 = keyword4
-	//sendInfo.Remark = remark
-	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
-	sendInfo.RedirectUrl = redirectUrl
-	sendInfo.RedirectTarget = 3
-	sendInfo.Resource = strconv.Itoa(activityId)
-	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_CACLE
-	sendInfo.OpenIdArr = openIdArr
-	err = SendTemplateMsg(sendInfo)
-	return
-}
-
-// 活动更改时间消息通知
-func SendWxMsgWithCygxActivityUpdateTime(activityId int, oldStr, newStr, strType string) (err error) {
-	var msg string
-	defer func() {
-		if err != nil {
-			go alarm_msg.SendAlarmMsg("发送模版消息失败,Err:"+err.Error()+";msg:"+msg, 3)
-			utils.FileLogCygx.Info(fmt.Sprintf("发送模版消息失败,Err:%s,%s", err.Error(), msg))
-		}
-		if msg != "" {
-			utils.FileLogCygx.Info("发送模版消息失败,msg:%s", msg)
-		}
-	}()
-
-	activityInfo, err := cygx.GetAddActivityInfoById(activityId)
-	if err != nil {
-		msg = "GetReportInfo Err:" + err.Error()
-		return
-	}
-	if activityInfo == nil {
-		utils.FileLogCygx.Info("活动信息不存在")
-		return
-	}
-
-	//var accessToken string
-	//if utils.RunMode == "release" {
-	//	accessToken, err = models.GetWxAccessTokenByXzs()
-	//	if err != nil {
-	//		msg = "GetWxAccessToken Err:" + err.Error()
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		msg = "accessToken is empty"
-	//		return
-	//	}
-	//} else {
-	//	accessToken, err = models.GetWxAccessToken()
-	//	if err != nil {
-	//		msg = "GetWxAccessToken Err:" + err.Error()
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		msg = "accessToken is empty"
-	//		return
-	//	}
-	//}
-	var openIdList []*cygx.OpenIdList
-
-	openIdList, err = cygx.GetActivityOpenIdList(activityId)
-	if err != nil {
-		msg = "get openIdList err:" + err.Error()
-		return
-	}
-
-	mapOpenid := make(map[int]string)
-	for _, v := range openIdList {
-		mapOpenid[v.UserId] = v.OpenId
-	}
-	//添加预约纪要的openid
-	openIdListAppointment, err := cygx.GetActivityAppointmentOpenIdList(activityId)
-	if err != nil {
-		msg = "GetActivityAppointmentOpenIdList err:" + err.Error()
-		return
-	}
-	if len(openIdListAppointment) > 0 {
-		for _, v := range openIdListAppointment {
-			if _, ok := mapOpenid[v.UserId]; !ok {
-				item := new(cygx.OpenIdList)
-				item.UserId = v.UserId
-				item.OpenId = v.OpenId
-				openIdList = append(openIdList, item)
-			}
-			mapOpenid[v.UserId] = v.OpenId
-
-		}
-	}
-
-	//添加带问的openid
-	openIdListActivityHelpAsk, err := cygx.GetActivityHelpAskOpenIdList(activityId)
-	if err != nil {
-		msg = "openIdListActivityHelpAsk err:" + err.Error()
-		return
-	}
-	if len(openIdListActivityHelpAsk) > 0 {
-		for _, v := range openIdListActivityHelpAsk {
-			if _, ok := mapOpenid[v.UserId]; !ok {
-				item := new(cygx.OpenIdList)
-				item.UserId = v.UserId
-				item.OpenId = v.OpenId
-				openIdList = append(openIdList, item)
-			}
-			mapOpenid[v.UserId] = v.OpenId
-		}
-	}
-
-	if len(openIdList) == 0 {
-		return err
-	}
-	//sendMap := make(map[string]interface{})
-	//sendData := make(map[string]interface{})
-	var first string
-	var keyword1, keyword2, keyword3, keyword4, redirectUrl string
-
-	activityInfo.ActivityTypeName = strings.Replace(activityInfo.ActivityTypeName, "(C类)", "", -1)
-	if strType == "timeType" {
-		//first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了时间变更"
-		keyword2 = "时间变更为:【 " + newStr + "】"
-	} else if strType == "expertType" {
-		//first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了专家变更"
-		keyword2 = "专家变更为:【" + newStr + "】"
-	} else if strType == "addressType" {
-		//first = "您有一场【" + activityInfo.ActivityTypeName + "】发生了地址变更"
-		keyword2 = "地点变更为:【" + newStr + "】"
-	} else if strType == "participationCode" {
-		//first = "您有一场【" + activityInfo.ActivityTypeName + "】公布了拨入密码"
-		keyword2 = "拨入密码为: " + newStr
-	} else if strType == "Theme" {
-		//first = "您有一场【" + activityInfo.ActivityTypeName + "】更新了活动主题"
-		newStr = strings.Replace(newStr, "</p><p>", "\n", -1)
-		newStr = html.EscapeString(newStr)
-		newStrHtml, _ := cygx.GetReportContentTextSub(newStr)
-		newStr = newStrHtml
-		keyword2 = "主题变更为: " + newStr
-	}
-
-	keyword1 = activityInfo.ActivityName
-	openIdArr := make([]string, len(openIdList))
-	for i, v := range openIdList {
-		openIdArr[i] = v.OpenId
-	}
-
-	redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(activityId) + "&IsSendWx=1"
-	sendInfo := new(SendWxTemplate)
-	sendInfo.First = first
-	sendInfo.Keyword1 = keyword1
-	sendInfo.Keyword2 = keyword2
-	sendInfo.Keyword3 = keyword3
-	sendInfo.Keyword4 = keyword4
-	//sendInfo.Remark = remark
-	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
-	sendInfo.RedirectUrl = redirectUrl
-	sendInfo.RedirectTarget = 3
-	sendInfo.Resource = strconv.Itoa(activityId)
-	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE
-	sendInfo.OpenIdArr = openIdArr
-	e := SendTemplateMsg(sendInfo)
-	if e != nil {
-		err = errors.New("推送模板消息失败" + e.Error())
-		return
-	}
-	return
-}
-
 func SendArticleWxTemplateMsg(nickName, aticleTiele, publishDate, abstract, industryName, msgType string, articleId, departmentId, industrialManagementId int, isResearch bool) (err error) {
 	var msg string
 	defer func() {
@@ -675,31 +430,7 @@ func SendArticleWxTemplateMsg(nickName, aticleTiele, publishDate, abstract, indu
 			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
 		}
 	}()
-	//var accessToken string
-	//if utils.RunMode == "release" {
-	//	accessToken, err = models.GetWxAccessTokenByXzs()
-	//	if err != nil {
-	//		msg = "GetWxAccessToken Err:" + err.Error()
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		msg = "accessToken is empty"
-	//		return
-	//	}
-	//} else {
-	//	accessToken, err = models.GetWxAccessToken()
-	//	if err != nil {
-	//		msg = "GetWxAccessToken Err:" + err.Error()
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		msg = "accessToken is empty"
-	//		return
-	//	}
-	//}
 	var openIdList []*cygx.OpenIdList
-	//utils.FileLog.Info("mobile:%s", otherSellerMobile)
-	//openIdList, err = models.GetOpenIdListByMobile(otherSellerMobile)
 	var resource string
 
 	if msgType == "Department" {

+ 1 - 0
utils/constants.go

@@ -476,6 +476,7 @@ const (
 
 const (
 	HZ_COMPANY_ID        = 16
+	JMCJ_COMPANY_ID      = 19642 // 深圳进门财经科技股份有限公司ID
 	DEFAULT_COUNTRY_CODE = "86"
 )